Just for fun.
I use C++ and Assembly to develop the OS. I use g++ and Nasm for compiler tools
- Any
gcc
toolchain that support x64. make
nasm
grub
xorriso
- For making iso file used bygrub-mkrescure
.qemu
- Usingqemu-system-x86_64
for testing.
Make sure all dependencies were installed, and you good to go.
Build the source code with make
or make all
or run the os on Qemu with make demo
. You will see the OS screen
- Enter Long mode: check CPU support, setup Memory mapping, setup GDT
- Create interrupt handler. Using PIC. I have plan to move to APIC later.
- Create debug functions: print, printNumber, printAddress.
- Some simple drivers: Timer, Keyboard, Video Graphics
- Create DynamicMemory module. Now we use operator: new, delete, new[], delete[]
- Add datastructure: list. We need to add more data structure like: tree, hashtable...
- Support multithreading. Schedule tasks
- ...
Reference: https://wiki.osdev.org/Expanded_Main_Page