# 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!