34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
# 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!
|