red-pepper pepperOS: "will never be done"

Trying the kernel

First install the dependencies: sudo apt install python3 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:

Basic utility of what we call a "kernel"

  • Fix terminal driver (backspace issues, scrolling) OR add Flanterm or equivalent
  • Implement tasks, and task switching + context switching and spinlock acquire/release
  • Load an executable
  • Filesystem (TAR for read-only initfs, then maybe read-write using FAT12/16/32 or easier fs) w/ VFS layer
  • Getting to userspace (syscalls)
  • Porting musl libc or equivalent

Scalability/maintenance/expansion features

  • Documentation
  • SOME error handling in functions
  • Unit tests
  • Good error codes (like Linux kernel: ENOMEM, ENOENT, ...)
  • Make the panic function work within itself without dependencies + error message (and still get cpu context?)

Optional features

In the future, maybe?

  • SMP support (Limine provides functionality to make this easier)
  • 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:

...and without these amazing resources:

  • the OSDev wiki & forums
Description
64-bit libre hobby kernel
Readme GPL-3.0 629 KiB
Languages
C 92.6%
Assembly 4.7%
Makefile 1.8%
Python 0.8%