Archived
1
Fork 0
Kernel for learning purposes
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2022-06-06 22:06:43 -04:00
scripts Initial files 2022-06-06 20:50:50 -04:00
src Shuffle around directories 2022-06-06 22:06:43 -04:00
.gitignore Ignore emacs swap files 2022-06-06 21:36:42 -04:00
LICENSE Initial files 2022-06-06 20:50:50 -04:00
Makefile Separate stivale tty code 2022-06-06 21:36:25 -04:00
README.md Shuffle around directories 2022-06-06 22:06:43 -04:00
run.sh Initial files 2022-06-06 20:50:50 -04:00

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