40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# <img width="40" height="40" alt="red-pepper" src="https://i.ibb.co/mrHH6d1m/pixil-frame-0-4.png" /> pepperOS: "will never be done"
|
|
|
|
## Trying the kernel
|
|
|
|
First install the dependencies: `sudo apt install xorriso make qemu-system`
|
|
|
|
Then, to compile the kernel and make an ISO image file: `make build-iso`
|
|
To run it with QEMU, `make run`
|
|
|
|
## TODO
|
|
|
|
The basics that I'm targeting are:
|
|
|
|
- Fix terminal driver (backspace issues, scrolling) OR add Flanterm or equivalent
|
|
- Implement paging / see what Limine does at boot with memory management
|
|
- Implement tasks, and task switching
|
|
- Load an executable
|
|
- Scheduler (round-robin using the PIT timer interrupt)
|
|
- Filesystem (TAR for read-only initfs, then maybe read-write using FAT12/16/32
|
|
- Getting to userspace (syscalls)
|
|
- Porting musl libc or equivalent
|
|
|
|
In the future, maybe?
|
|
|
|
- SMP support
|
|
- Parsing the ACPI tables and using them for something
|
|
- Replacing the PIT timer with APIC
|
|
|
|
## Thanks
|
|
|
|
PepperOS wouldn't be possible without the following freely-licensed software:
|
|
|
|
- the [Limine](https://codeberg.org/Limine/Limine) portable bootloader
|
|
- Marco Paland's freestanding [printf implementation](https://github.com/mpaland)
|
|
- the [ZAP](https://www.zap.org.au/projects/console-fonts-zap/) PSF console fonts
|
|
|
|
...and without these amazing resources:
|
|
|
|
- the [OSDev](https://osdev.org) wiki & forums
|