Back to browse
GitHub Repository

x86-64 operating system kernel

17 starsC++

Nos – a hobby x86-64 C++ OS kernel running on real KVM clouds

by irqlevel·Feb 17, 2026·3 points·0 comments

AI Analysis

●●SolidBig BrainRabbit HoleWizardry

Readable x86-64 kernel in C++20 that actually boots on Google Cloud KVM instances.

Strengths
  • Clean C++20 codebase with clear abstractions (virtual memory, scheduling, networking) designed to be followable end-to-end—a genuine learning resource unlike the Linux kernel's labyrinthine scale.
  • Realistic systems work: preemptive SMP scheduler, 4-level paging, TLB shootdown, ACPI parsing, interrupt routing, TCP with retransmission, and DNS—not toy features.
  • Proven on real infrastructure: tested on Google Cloud and Yandex Cloud KVM instances, not just QEMU.
Weaknesses
  • Explicitly a hobby/learning project with no user-mode execution or real-world applicability—it's a reference implementation, not a usable system.
  • Windows/macOS support and broader hardware compatibility are non-goals; audience is OS enthusiasts, not a general-purpose platform.
Target Audience

OS and kernel developers, systems programming learners, hobbyists wanting readable alternatives to Linux kernel study

Similar To

OSDev.org resources · Minix · Redox

Post Description

Hi HN,

I want to share nos, a hobby x86-64 OS kernel I’ve been working on.

I started this mainly because I wanted to learn kernel development properly, and studying the Linux kernel feels pretty overwhelming these days. It’s huge, highly optimized, and hard to follow end-to-end. So I decided to build something smaller but still realistic.

nos is written in C++20 + NASM and currently has:

SMP + preemptive scheduler for kernel tasks (no user-mode yet)

virtual memory (4-level paging, high-half kernel)

interrupts + basic ACPI

PCI scan/probing + virtio drivers (blk + scsi + net + rng)

IPv4/TCP, DHCP, DNS, UDP, ARP, ICMP, simple HTTP client

small filesystem + shell (including remote)

timekeeping (pit, tsc, kvm clock, rtc)

It runs in QEMU/KVM — and also boots on real cloud VMs (I’ve tested it on Google Cloud using KVM-based instances e2-medium).

This is mostly a learning project, but I tried to keep the design clean and readable while still being close to how real systems work. I’d really appreciate any feedback, especially on scheduler design, memory management, or networking.

Repo: https://github.com/irqlevel/nos

Thanks for reading.

Similar Projects