2026-05-08 12:58:08 +02:00
2026-05-08 12:38:16 +02:00
2026-05-06 14:04:28 +02:00
2026-05-06 14:04:28 +02:00
2026-05-08 12:38:16 +02:00
2026-03-13 12:51:29 +01:00
2025-12-20 09:18:55 +01:00
2026-05-08 12:38:16 +02:00
2026-05-08 12:58:08 +02:00

red-pepper pepperOS: "will never be done"

pepper

Description

PepperOS is a 64-bit freely-licensed monolithic kernel for x86 processors, with round-robin preemptive scheduling and 4-level paging. See the manual for more.

Trying the kernel in QEMU

Debian-based distributions

First, install the dependencies: sudo apt install nasm python3 xorriso make qemu-system

Then, you can get an x86_64 toolchain for compilation. The easiest way to do that on most systems is to install it from Homebrew:

brew install x86_64-elf-gcc

If you're already on a 64-bit machine (which you probably are), and don't want to install a cross-compiler, you can just override CC and LD variables in the Makefile, like so:

CC := gcc
LD := ld

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

Compile the kernel and generate an ISO image like described above, then burn the image to a USB stick, /dev/sdX being the device name (you can get it using lsblk):

sudo dd if=pepper.iso of=/dev/sdX

Compilation options

By default, PepperOS is compiled without the following features:

UBSAN - undefined behavior sanitization

These features can be activated by setting them to "true" at the end of the make command, for example:

make UBSAN=true

Writing software for PepperOS

If you want to write software for PepperOS, take a look at the Software Developer's guide.

Thanks

PepperOS wouldn't be possible without the following freely-licensed software:

...and without these amazing resources:

S
Description
64-bit libre hobby kernel
Readme GPL-3.0 1.2 MiB
Languages
C 96.7%
Assembly 1.9%
Makefile 0.9%
Python 0.3%
Linker Script 0.2%