This project exists for the sole purpose of learning about low-level programming and the fundamentals of operating systems. This project was ultimately inspired by the SerenityOS project but will be much less grand in scale.
These are some of the long term goals that I'd like the project to eventually achieve.
- Unix like terminal
- Ability to switch between kernel and user level privelage modes
- Basic file system (probably FAT)
- Driver modules for
qemu
"hardware" - Scheduler
- Processes and threads
- Maybe multi-core utilization
- Basic suite of built in software like
cat
,grep
,top
, etc - Basic networking capabilites
- Basic
ping
program at minimum - Maybe http/s capabilities, i.e.
curl
- Basic
- Maybe get
gcc
working within OS
- Boot from GRUB
- Switch to 64-bit long mode
- IO
- Basic stdlib
- Interrupts
- Dynamic paging
- Memory allocation
- FPU/SSE
- Basic terminal
- Timers
- Virtual file system
- Basic file system driver
- Process scheduler
See Building for more information.