A from-scratch operating system — kernel, drivers, filesystems, network stack, desktop and package manager — written in Adder, a Python-syntax systems language with its own compiler. Plan 9-shape namespaces at the syscall layer, a Linux ABI shim above them, sharing one kernel.
Not a Linux distribution and not a Linux fork. The kernel, the compiler and the language were all written for this project.
Native code sees Plan 9-shape files — /dev/cpuinfo,
/net/tcp, per-process namespaces built with
bind. Linux binaries run inside
enter linux { … }, where the same kernel
file servers are bound at the paths Debian expects. No string
rewriting in the syscall path.
Adder has Python's syntax and a systems language's semantics. A hand-written x86_64 backend compiles the kernel and doubles as the differential oracle; an LLVM backend builds all 278 userland applications and is the only supported AArch64 path.
TCP, UDP and TLS 1.3 are exposed as the /net file
tree, Plan 9 style. There are zero BSD socket syscalls at the
native layer. curl, sshd and an NTP
client all dial out through files.
A scene-file compositor in which the kernel owns no pixels —
each window is a display list in a file server. Panel, menu,
drag and drop, .desktop launchers, and a native
toolkit underneath.
HTML, CSS and a JavaScript engine written from scratch and measured against the Web Platform Tests. It renders real pages, and it is not a Firefox replacement — the table below says exactly where it stands.
hpm — binary packages, Ed25519-signed indexes, a
dependency solver, Debian-shape channels. It fetches from this
very site, and keeps working from an on-disk mirror after
installation with no network at all.
Captured from the framebuffer of a running system, not mock-ups.
.desktop files.
This is a 1.0 in the sense of "it works and it is worth looking at", not "ready to be your daily driver". That distinction matters enough to spell out.
| Area | State | Detail |
|---|---|---|
| Boot (UEFI, virtual machine) | works | Boots to a desktop under QEMU/KVM with OVMF. This is the tested path. |
| Boot (bare metal) | stale | Booted on an Intel NUC and an Asus laptop — historically, many hundreds of commits ago. Not re-verified at 1.0. |
| Filesystems & storage | works | ext4 read and write (validated clean by e2fsck), FAT32, MBR + GPT, AHCI and NVMe. |
| Networking | works | ARP, IP, UDP, TCP, ICMP, DHCP, DNS, HTTP, TLS 1.3 over the /net file tree. virtio-net, e1000e, r8169. |
| Linux binaries | works | Real Debian apt and dpkg install packages inside enter linux. CPython and busybox run as static-PIE. |
| Memory over time | works | A four-hour soak — 2,444 application launches and closes — finished with no measurable leak. |
| Web engine | partial | ~83% of a pinned Web Platform Tests subset; Chromium scores ~91% on the identical harness. Renders real pages; heavy JavaScript sites will not work. |
| AArch64 | in progress | Boots to EL0 on QEMU virt with per-task address spaces, demand paging and per-task kernel stacks. No hardware port yet. |
| Wi-Fi | no | No native driver. Wired networking only. |
| GPU acceleration | no | Software rasteriser throughout. |
Images are published on GitHub Releases. The recommended artifact is the in-RAM installer image: firmware loads the kernel and a squashfs root entirely into memory, so nothing is read from the boot medium after handoff.
Or build it yourself. The tree is self-contained; the host needs
Python, clang and QEMU.
# build the in-RAM installer image, then boot it under QEMU
git clone https://github.com/HamnixOS/Hamnix
cd Hamnix
bash scripts/build_installer_img.sh
This site is also the live hpm repository.
Top-level directories are channels, mirroring Debian's split.
hpm reads each channel's index.json and
fetches packages by URL and SHA-256.
| Channel | Index | Contents |
|---|---|---|
main |
main/index.json |
First-party, free software. Enabled by default. 100 packages —
one per CLI tool, plus the hamnix-base
metapackage, the bootloader, installer tools and a curated
Debian rootfs tree. |
non-free |
non-free/index.json |
Reserved for software whose licence is not DFSG-free. Empty
placeholder; opt in with
hpm channels enable non-free. |
non-free-firmware |
non-free-firmware/index.json |
Reserved for redistributable firmware blobs. Empty placeholder. |
# on a running Hamnix system
hpm refresh
hpm search editor
hpm install hamnix-base
Channel indexes are
Ed25519-signed and verified against a compiled-in key. An installed
system carries an on-disk mirror of the packages outside the base
set, so hpm keeps working with no network.
HamnixOS/Hamnix
— the OS, the language and the compiler.
HamnixOS/packages
— this site and the package channels.
architecture.md for the layering, native-api.md for the syscall surface, and the Adder guide for the language.
Bare-metal results, boot logs from machines that fail, and pages the browser renders badly are all useful. Open an issue.