nuta/kerla

A new operating system kernel with Linux binary compatibility written in Rust.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 34 minutes ago
Type:Model / Research CodeCategory(s):Operating Systems & LinuxSystems, Hardware & HPC
Added to GitGenius on September 20th, 2026
Created on May 18th, 2021
Open Issues & Pull Requests: 27 (+0)
GitHub issues: Enabled
Number of forks: 96
Total Stargazers: 3,467 (+0)
Total Subscribers: 41 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 669 days
Stale 30+ days: 3
Stale 90+ days: 3

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Kerla is an operating system kernel written in Rust that runs Linux binaries without modification by implementing Linux ABI compatibility.

The project addresses the challenge of building a functional operating system kernel from scratch while maintaining compatibility with existing Linux applications. It supports commonly used syscalls such as write, stat, mmap, pipe, and poll. The kernel includes pseudo file systems (tmpfs and devfs), TCP/IP networking via smoltcp, terminal and pseudo-terminal support, and can run on x86_64 architecture under QEMU and Firecracker emulators with virtio-net device driver support. Currently it lacks disk support and uses initramfs as the root file system, though it offers experimental support for running Docker images as root file systems.

Kerla is suited for developers interested in operating system internals, kernel development in Rust, or exploring how to build a Linux-compatible system from first principles. The project explicitly positions itself as educational material for learning how operating system kernels work. It is not intended for production use or as a replacement for Linux, but rather as a research and learning platform. The experimental Docker image support is limited and acknowledged to be in an early stage with compatibility issues on most real-world images.

The project is no longer actively maintained, with the author having moved on to a successor project. The repository remains available for reference and learning purposes, and the maintainer welcomes bug reports, feature requests, and patches on GitHub, particularly for implementing missing features that would enable more Linux applications to run and for documentation improvements.