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