Terrakernel is a hybrid x86_64 kernel.
During the development of TK the kernel will always be on version v1.0-rc1. Terra is the operating system I'm planning to use terrakernel for.
*: WIP
- Port printf implementation
- Support for some COM1 serial output using port 0x3F8
- End of initial stuff
- Write a GDT
- Write an IDT
- Write a physical memory manager
- Write a virtual memory manager
- Write a heap
- Write a PIT timer (Unused now, use APIC)
- Write an APIC and Multiprocessing support (no MP for now)
- Write an APIC timer
- Switch to fully graphical (flanterm) messages and logs
- Port uACPI
- (Other) Write a VFS and TMPFS and parse a USTAR Initrd archive
- Scheduling and multithreading*
- Switching to userspace
- Write some basic syscalls
- Load x86_64 ELF binaries, static and relocatable (copy from old version of TK) (delayed)
- End of x86_64 stuff (almost) (almost)
- Write a VFS and TMPFS and parse a USTAR Initrd archive
- Write a PCI driver (PCIe as well)
- Write a PS2 keyboard driver and PS2 mouse driver
- Line discipline
- Try to write an XHCI driver for USB device support (optional)
- Write some disk drivers, probably AHCI only for now
- Some filesystem drivers, probably FAT32 and maybe, maybe, maybe EXT3 or EXT4
- End of other
- Write or port a LibC
- Port binutils and coreutils
- Port DOOM
- Port a window manager (window server) (probably Xorg)
- Port anything else
- End of porting software
- End of project... or at least this version...
Check BUILD_INSTRUCTIONS.md
258 text files.
237 unique files.
5 files ignored.
github.com/AlDanial/cloc v 1.98 T=2.21 s (107.4 files/s, 38514.3 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 55 6540 4142 36391
C/C++ Header 141 3432 11642 15216
C++ 35 1363 13 5948
Assembly 5 36 0 232
CMake 1 0 0 21
-------------------------------------------------------------------------------
SUM: 237 11371 15797 57808 (56632 old)
-------------------------------------------------------------------------------
