Just for fun.
I use C++ and Assembly to develop the OS. I use g++ and Nasm for compiler tools
- Any
gcctoolchain that support x64. makenasmgrubxorriso- For making iso file used bygrub-mkrescure.qemu- Usingqemu-system-x86_64for 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