JacobOS

C and x86 assembly.

Live system loading…
Click the screen, then type. Input goes straight to the kernel's keyboard driver.

Try it

A small shell with real directory traversal, a persistent filesystem, and user programs in ring 3.

helplist every command
lslist the current directory
cat readme.txtprint a file
cd docschange directory
mkdir notesmake a directory
echo hi > f.txtwrite a file
pslist concurrent tasks
spawnstart a background task
gtrun cooperative green threads
exec /hellorun an ELF program in ring 3
meminfoheap & cache stats
stresshammer the allocator & scheduler

Files persist across visits — the whole machine state, disk included, is saved to your browser's IndexedDB when you leave (or press Save session) and restored next time. Reset disk wipes it for a clean boot.

Under the hood

Boot
Custom MBR bootloader → protected mode → C kernel, loaded over LBA disk reads.
Interrupts
IDT with full ISR/IRQ stubs, remapped 8259 PIC, PS/2 keyboard driver.
Memory
Bitmap physical frame allocator, 4 MB-page paging, first-fit kernel heap.
Tasking
1:1 preemptive kernel threads, round-robin scheduler driven by the PIT.
Storage
ATA PIO driver → hierarchical filesystem → write-back block cache.
Ring 3
ELF loader, TSS privilege switch, int 0x80 syscalls — user programs run unprivileged.