Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zkrnl32

A from-scratch 32-bit x86 kernel in Rust — no external crates, booted by GRUB.

What this is

A hand-written i386 kernel built without leaning on the Rust kernel-dev ecosystem (bootloader, x86_64, uefi, etc.). Everything that runs after GRUB hands control to the kernel is written here: the boot stub, the screen driver, the kernel runtime, the lot.

It exists as a learning vehicle. The goal isn't to ship an OS; it's to internalise how an x86 machine actually starts, what the privilege rings really do, how paging is laid out by hand, how interrupts are dispatched, and how a small kernel grows into something that can run a userspace process.

Status

Early.

  • Stage 1 (kfs1): boot + screen - done.
  • Stage 2 (kfs2): GDT + stack - done.
  • Stage 3 (kfs3): memory - in progress.

Building

make build
make iso
make run

Use make run-headless when no graphical QEMU display is available.

Requirements

  • nasm
  • rust nightly
  • rust-src for the nightly toolchain
  • grub-mkrescue
  • xorriso
  • mtools
  • qemu-system-i386

Documentation

License

MIT — see LICENSE.

About

A from-scratch 32-bit x86 kernel in Rust — no external crates, booted by GRUB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages