Here is the list of the things that are missing and in what order they will be done:
Kernel
- [x] Sierra Libc in freestanding mode. (partially)
- [x] Multiboot
- [x] Terminal Interface (TTY)
- [x] Creating a Build System
- [x]
Stack Smash Protector (not doing that anymore)
- [ ] GDT and Interrupts (IDT & IRQ as well)
- [ ] Memory management:
- [ ] Paging
- [ ] Memory Allocation Functions
- [ ] Kernel Heap
- [ ] Virtual Memory Objects
- [ ] Multitasking
- [ ] Basic Time Driver
- [ ] Keyboard Driver
- [ ] Initial Ramdisk (initrd)
- [ ] VFS
- [ ] Filesystem support (ext2)
- [ ] Internal Kernel Debugger (not sure if I will do it)
User Space
- [ ] Sierra Libc in hosted mode (Will feature a basic POSIX API with the needed features only) (Porting Newlib is also an option).
- [ ] TSS
- [ ] User Mode
- [ ] ELF program loading driver.
- [ ] System Calls
- [ ] Simple Shell
- [ ] OS specific toolchain
- [ ] Extended Sierra Libc (More POSIX support)
- [ ] Extended Time Driver
- [ ] Threads (pthreads)
- [ ] Threads Local Storage
- [ ] Symmetric Multiprocessing
- [ ] Secondary Storage (USB, Floppy, Hard drives, etc)
- [ ] Sound Driver
- [ ] Real Graphics Driver
- [ ] GUI
Bootstrapping
- [ ] Porting Software (GCC, Binutils, bash, Make, etc..)
- [ ] Port Build System
- [ ] Become Self Hosted
Goal |
Date |
Safety |
Result |
Finish the whole kernel checklist |
Late february 2017 |
Reduce the tasks to be done (move them to extras) |
- |