Load raw C binary + docs

This commit is contained in:
2026-05-08 12:38:16 +02:00
parent 9a1a0e428a
commit eb8a03facd
10 changed files with 169 additions and 50 deletions
+5 -26
View File
@@ -23,8 +23,9 @@ CC := gcc
LD := ld
```
Then, to compile the kernel and make an ISO image file, run: `make build-iso`
To run it with QEMU, do: `make run`
Then, to compile the kernel and make an ISO image file, run: `make`.
To build the user programs and the initial filesystem, do `make user`.
To run it with QEMU, do: `make run`.
## Trying the kernel on real hardware
@@ -48,31 +49,9 @@ These features can be activated by setting them to "true" at the end of the make
make UBSAN=true
```
## TODO
## Writing software for PepperOS
The basics that I'm targeting are:
### Basic utility of what we call a "kernel"
- 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 (ring 3 switching, syscall interface)
- 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, ...)
### 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
If you want to write software for PepperOS, take a look at the [Software Developer's guide](docs/SOFTWARE.md).
## Thanks