Kernel for learning purposes
scripts | ||
src | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
run.sh |
sen
This is my custom kernel for learning purposes. I'm not a osdev at all, so please excuse the mess.
Right now it compiles for x86_64
, 32-bit is not supported. Most of this is just skeleton code from osdev.org, but I cleaned
some stuff. I use Stivale for higher half kernel loading and not having to gaff about a bootloader for now. Limine is included
as my bootloader of choice.
Organization
This file organization is definitely not final, and will be shuffled around as sen is developed. Currently it is:
src/
- All of the source files for sen, including ld configs etc.boot/
- Bootloader-related sources and entrypoints.drivers/
- Drivers for specific subsystems in the kernel, such as tty drivers.kernel/
- Vendor-agnostic stuff like the actual loop, the startup sequence, etc. This also contains the public kernel interface.
Building
Currently, sen requires GNU make, and some version of GCC. If you wish to build the iso, you also need xorriso.
Run make to build the elf:
make
Or if you wish to start a quick qemu test, use run.sh
:
./run.sh
Credit
- https://wiki.osdev.org/ of course!