Join us

Writing an operating system kernel from scratch

Writing an operating system kernel from scratch

A barebones **time-sharing OS kernel**, written in **Zig**, running on **RISC-V**. It leans on **OpenSBI** for console I/O and timer interrupts. Threads? Statically allocated, each running in **user mode (U-mode)**. The kernel stays in **supervisor mode (S-mode)**, where it catches **system calls** and **context switches** via timer ticks. One neat trick: kernel and userland share a **single binary**. No dynamic linking. No loaders. Everything stitched together upfront.


Let's keep in touch!

Stay updated with my latest posts and news. I share insights, updates, and exclusive content.

Unsubscribe anytime. By subscribing, you share your email with @faun and accept our Terms & Privacy.

Give a Pawfive to this post!


Only registered users can post comments. Please, login or signup.

Start writing about what excites you in tech — connect with developers, grow your voice, and get rewarded.

Join other developers and claim your FAUN.dev() account now!

Avatar

The FAUN

FAUN.dev()

@faun
The FAUN watches over the forest of developers. It roams between Kubernetes clusters, code caves, AI trails, and cloud canopies, gathering the signals that matter and clearing out the noise.
Developer Influence
3k

Influence

302k

Total Hits

3712

Posts