A 64-bit higher half kernel OS
You need an GCC compiler, ld linker which are usually pre-installed on UNIX-like systems. Also qemu, nasm, xorriso and make must be available.
We also use clang-format in the make format
script, so make sure to have it installed in a development workspace.
In order to run the debugger, be sure to have gdb.
to compile and build in debug mode run:
make
to compile and build in production mode run:
make prod
if you want to run the os using qemu, execute:
make run
if you want to use gdb:
make drun
then open another shell and move to the same directory and:
make gdb
Feature | State |
---|---|
Limine bootloader | works |
kernel loading | works |
GDT | works |
IDT | works |
PIC | works |
PIT | works |
Keyboard | works |
printf | works |
basic prompt | works |
Memory Mapping | works |
process | works |
context switching | works |
thread | works |
file system | basic vfs implemented |
USTar | works |
userspace | needs more testing |
games | snake and gameoflife work |
programs | cat, ls work |
Feature to be implemented |
---|
maybe implement ACPI to gain access to more advanced devices |
user space |
support for simple file systems like FAT |
support for ELF |
syscalls to execute binaries like ELFs |
simple hardware support like usb |
The goal is to implement a fully functional OS which would have basic tools and perhaps support libc and some Unix-like programs and applications.
Special thanks to the contributers of Lyre-OS for being one of the main references of ideas and implementation.