- Paging and virtual memory.
- Higher half kernel.
- Interrupt dispatchers.
- Dynamic virtual/physical memory allocation.
- Heap allocator.
- PIC.
- Multi-threading.
- Mutex/Semaphores.
- Multi-programming.
- User space.
- Virtual File System.
- FS: Pipes
- System calls.
- Inter-process communication.
- PCI bus.
- FS: fat32/ext2.
- Keyboard driver.
- GUI.
- Network Driver.
- USB.
sudo apt-get update
sudo apt-get install build-essential g++-multilib nasm python cmake grub2 xorriso qemu
For Windows users, you can build and run the system on WSL(Windows Subsystem for Linux). Or you can build it using MinGW32, nasm and CMake and run it using qemu, though it still needs WSL to make a bootable ISO using grub2-rescue
.
git clone --recursive https://github.com/AymenSekhri/CyanOS.git
cd ./CyanOS
mkdir build && cd build
cmake ..
make && make test
And you can boot up the OS in Qemu using:
make run
- Operating Systems: Internals And Design Principles By William Stallings.
- Operating Systems: Design and Implementation By Albert S. Woodhull and Andrew S. Tanenbaum.
- http://www.brokenthorn.com/Resources
- https://littleosbook.github.io
- http://www.jamesmolloy.co.uk/tutorial_html
- https://samypesse.gitbook.io/how-to-create-an-operating-system/
- https://wiki.osdev.org/Main_Page
- https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf