A simple Intel x86 operating system written in assembly and C++, developed on Ubuntu and Bochs.
- Boot
- The master boot record for system startup.
- Memory
- Memory segmentation and paging.
- Virtual memory mapping based on bitmaps.
- Heap management (
std::malloc
andstd::free
) based on memory arenas.
- Interrupts
- Interrupt control based on Intel 8259A.
- Timer interrupts based on Intel 8253.
- Threads
- Thread scheduling based on timer interrupts.
- Semaphores and locks based on interrupts.
- Processes
- User processes based on Intel x86 task state segments.
- Fork.
- Graphic
- Character printing in VGA text mode.
- Keyboard
- Keyboard control based on Intel 8042.
- The circular keyboard input buffer.
- Disks
- IDE channel and disk control.
- Disk partition scanning.
- File System
- File and directory management based on index nodes.
- System Calls
- Privilege switching and system calls based on interrupts.
- C/C++
- Basic C/C++ standard libraries.
.
โโโ CITATION.cff
โโโ Debugging.md
โโโ LICENSE
โโโ Makefile
โโโ README.md
โโโ docs
โย ย โโโ Boot
โย ย โย ย โโโ Images
โย ย โย ย โย ย โโโ loader
โย ย โย ย โย ย โโโ memory-paging.drawio
โย ย โย ย โย ย โโโ memory-paging.svg
โย ย โย ย โย ย โโโ page-directory-table.drawio
โย ย โย ย โย ย โโโ page-directory-table.svg
โย ย โย ย โโโ Loader.md
โย ย โย ย โโโ Master Boot Record.md
โย ย โโโ Getting Started
โย ย โย ย โโโ Building the System.md
โย ย โย ย โโโ Development Environment.md
โย ย โโโ Kernel
โย ย โย ย โโโ File System.md
โย ย โย ย โโโ Images
โย ย โย ย โย ย โโโ file-system
โย ย โย ย โย ย โย ย โโโ directory-entries.drawio
โย ย โย ย โย ย โย ย โโโ directory-entries.svg
โย ย โย ย โย ย โย ย โโโ index-node.drawio
โย ย โย ย โย ย โย ย โโโ index-node.svg
โย ย โย ย โย ย โโโ memory
โย ย โย ย โย ย โย ย โโโ memory-heap.drawio
โย ย โย ย โย ย โย ย โโโ memory-heap.svg
โย ย โย ย โย ย โย ย โโโ memory-pools.drawio
โย ย โย ย โย ย โย ย โโโ memory-pools.svg
โย ย โย ย โย ย โโโ threads
โย ย โย ย โย ย โโโ thread-block.drawio
โย ย โย ย โย ย โโโ thread-block.svg
โย ย โย ย โย ย โโโ thread-lists.drawio
โย ย โย ย โย ย โโโ thread-lists.svg
โย ย โย ย โย ย โโโ thread-switching.drawio
โย ย โย ย โย ย โโโ thread-switching.svg
โย ย โย ย โโโ Interrupts.md
โย ย โย ย โโโ Memory.md
โย ย โย ย โโโ System Calls.md
โย ย โย ย โโโ Threads.md
โย ย โย ย โโโ User Processes.md
โย ย โโโ badges
โย ย โโโ C++.svg
โย ย โโโ License-MIT.svg
โย ย โโโ Linux.svg
โย ย โโโ Made-with-GitHub-Actions.svg
โย ย โโโ Made-with-Make.svg
โย ย โโโ NASM.svg
โโโ include
โย ย โโโ boot
โย ย โย ย โโโ boot.inc
โย ย โโโ kernel
โย ย โย ย โโโ debug
โย ย โย ย โย ย โโโ assert.h
โย ย โย ย โโโ descriptor
โย ย โย ย โย ย โโโ desc.h
โย ย โย ย โย ย โโโ desc.inc
โย ย โย ย โย ย โโโ gdt
โย ย โย ย โย ย โโโ idx.h
โย ย โย ย โย ย โโโ tab.h
โย ย โย ย โโโ interrupt
โย ย โย ย โย ย โโโ intr.h
โย ย โย ย โย ย โโโ pic.h
โย ย โย ย โโโ io
โย ย โย ย โย ย โโโ disk
โย ย โย ย โย ย โย ย โโโ disk.h
โย ย โย ย โย ย โย ย โโโ disk.inc
โย ย โย ย โย ย โย ย โโโ file
โย ย โย ย โย ย โย ย โย ย โโโ dir.h
โย ย โย ย โย ย โย ย โย ย โโโ file.h
โย ย โย ย โย ย โย ย โย ย โโโ inode.h
โย ย โย ย โย ย โย ย โย ย โโโ super_block.h
โย ย โย ย โย ย โย ย โโโ ide.h
โย ย โย ย โย ย โโโ file
โย ย โย ย โย ย โย ย โโโ dir.h
โย ย โย ย โย ย โย ย โโโ file.h
โย ย โย ย โย ย โย ย โโโ path.h
โย ย โย ย โย ย โโโ io.h
โย ย โย ย โย ย โโโ keyboard.h
โย ย โย ย โย ย โโโ timer.h
โย ย โย ย โย ย โโโ video
โย ย โย ย โย ย โโโ console.h
โย ย โย ย โย ย โโโ print.h
โย ย โย ย โย ย โโโ print.inc
โย ย โย ย โโโ krnl.h
โย ย โย ย โโโ krnl.inc
โย ย โย ย โโโ memory
โย ย โย ย โย ย โโโ page.h
โย ย โย ย โย ย โโโ page.inc
โย ย โย ย โย ย โโโ pool.h
โย ย โย ย โโโ process
โย ย โย ย โย ย โโโ elf.inc
โย ย โย ย โย ย โโโ proc.h
โย ย โย ย โย ย โโโ tss.h
โย ย โย ย โโโ selector
โย ย โย ย โย ย โโโ sel.h
โย ย โย ย โย ย โโโ sel.inc
โย ย โย ย โโโ stl
โย ย โย ย โย ย โโโ algorithm.h
โย ย โย ย โย ย โโโ array.h
โย ย โย ย โย ย โโโ cerron.h
โย ย โย ย โย ย โโโ cmath.h
โย ย โย ย โย ย โโโ cstddef.h
โย ย โย ย โย ย โโโ cstdint.h
โย ย โย ย โย ย โโโ cstdlib.h
โย ย โย ย โย ย โโโ cstring.h
โย ย โย ย โย ย โโโ iterator.h
โย ย โย ย โย ย โโโ mutex.h
โย ย โย ย โย ย โโโ semaphore.h
โย ย โย ย โย ย โโโ source_location.h
โย ย โย ย โย ย โโโ span.h
โย ย โย ย โย ย โโโ string_view.h
โย ย โย ย โย ย โโโ type_traits.h
โย ย โย ย โย ย โโโ utility.h
โย ย โย ย โโโ syscall
โย ย โย ย โย ย โโโ call.h
โย ย โย ย โโโ thread
โย ย โย ย โย ย โโโ sync.h
โย ย โย ย โย ย โโโ thd.h
โย ย โย ย โโโ util
โย ย โย ย โโโ bit.h
โย ย โย ย โโโ bitmap.h
โย ย โย ย โโโ block_queue.h
โย ย โย ย โโโ format.h
โย ย โย ย โโโ metric.h
โย ย โย ย โโโ metric.inc
โย ย โย ย โโโ tag_list.h
โย ย โโโ user
โย ย โโโ io
โย ย โย ย โโโ file
โย ย โย ย โย ย โโโ dir.h
โย ย โย ย โย ย โโโ file.h
โย ย โย ย โโโ video
โย ย โย ย โโโ console.h
โย ย โโโ memory
โย ย โย ย โโโ pool.h
โย ย โโโ process
โย ย โย ย โโโ proc.h
โย ย โโโ stl
โย ย โย ย โโโ cstdint.h
โย ย โโโ syscall
โย ย โโโ call.h
โโโ src
โโโ boot
โย ย โโโ loader.asm
โย ย โโโ mbr.asm
โโโ kernel
โย ย โโโ debug
โย ย โย ย โโโ assert.cpp
โย ย โโโ descriptor
โย ย โย ย โโโ desc.asm
โย ย โย ย โโโ gdt
โย ย โย ย โโโ tab.cpp
โย ย โโโ interrupt
โย ย โย ย โโโ intr.asm
โย ย โย ย โโโ intr.cpp
โย ย โย ย โโโ pic.cpp
โย ย โโโ io
โย ย โย ย โโโ disk
โย ย โย ย โย ย โโโ disk.cpp
โย ย โย ย โย ย โโโ file
โย ย โย ย โย ย โย ย โโโ dir.cpp
โย ย โย ย โย ย โย ย โโโ file.cpp
โย ย โย ย โย ย โย ย โโโ inode.cpp
โย ย โย ย โย ย โย ย โโโ super_block.cpp
โย ย โย ย โย ย โโโ ide.cpp
โย ย โย ย โย ย โโโ part.cpp
โย ย โย ย โโโ file
โย ย โย ย โย ย โโโ dir.cpp
โย ย โย ย โย ย โโโ file.cpp
โย ย โย ย โย ย โโโ path.cpp
โย ย โย ย โโโ io.asm
โย ย โย ย โโโ io.cpp
โย ย โย ย โโโ keyboard.cpp
โย ย โย ย โโโ timer.cpp
โย ย โย ย โโโ video
โย ย โย ย โโโ console.cpp
โย ย โย ย โโโ print.asm
โย ย โย ย โโโ print.cpp
โย ย โโโ krnl.cpp
โย ย โโโ main.cpp
โย ย โโโ memory
โย ย โย ย โโโ page.asm
โย ย โย ย โโโ page.cpp
โย ย โย ย โโโ pool.cpp
โย ย โโโ process
โย ย โย ย โโโ proc.cpp
โย ย โย ย โโโ tss.asm
โย ย โย ย โโโ tss.cpp
โย ย โโโ stl
โย ย โย ย โโโ cstring.cpp
โย ย โย ย โโโ mutex.cpp
โย ย โย ย โโโ semaphore.cpp
โย ย โโโ syscall
โย ย โย ย โโโ call.asm
โย ย โย ย โโโ call.cpp
โย ย โโโ thread
โย ย โย ย โโโ sync.cpp
โย ย โย ย โโโ thd.asm
โย ย โย ย โโโ thd.cpp
โย ย โโโ util
โย ย โโโ bitmap.cpp
โย ย โโโ format.cpp
โย ย โโโ tag_list.cpp
โโโ user
โโโ io
โย ย โโโ file
โย ย โย ย โโโ dir.cpp
โย ย โย ย โโโ file.cpp
โย ย โโโ video
โย ย โโโ console.cpp
โโโ memory
โย ย โโโ pool.cpp
โโโ process
โโโ proc.cpp
Distributed under the MIT License. See LICENSE
for more information.