Microkernel-based hobby OS
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bragi/proto posix: Implement relative path resolution Jan 28, 2019
core core/virtio: Memorize memory offset Dec 22, 2018
drivers drivers/kernletcc: Support arbitrary bindings Feb 2, 2019
eir thor: Enable framebuffer during early boot Jun 29, 2018
frigg
hel posix: Add support for getrusage() Jan 12, 2019
libarch general: Minor updates for mlibc changes Nov 11, 2018
libnet Replace sendStringResp() with async calls Jul 20, 2016
mbus general: Update to new libasync mechanism May 25, 2018
posix posix: Implement relative path resolution Jan 28, 2019
protocols drivers/kernletcc: Support arbitrary bindings Feb 2, 2019
thor/kernel posix: Add support for getrusage() Jan 12, 2019
tools/frigg_pb
utils/runsvr thor: Allow upload of server files to kernel Jun 17, 2018
README.md Update README.md Dec 23, 2018
configure thor: Implement caching physical window Jan 27, 2017
meson.build thor: Implement kernlets Dec 22, 2018
meson_options.txt tools/frigg_pb: Build using meson Dec 16, 2018
rules.makefile makefile: Fix dependency generation Jan 3, 2017
toplevel.makefile

README.md

The managarm Operating System

Screenshot

What is this about?

This is the main repository of managarm, a microkernel-based operating system.

What is special about managarm? Some notable properties of managarm are: (i) managarm is based on a microkernel while common Desktop operating systems like Linux and Windows use monolithic kernels, (ii) managarm uses a completely asynchronous API for I/O and (iii) despite those internal differences, managarm provides good compatibility with Linux at the user space level.

Aren't microkernels slow? Microkernels do have some performance disadvantages over monolithic kernels. managarm tries to mitigate some of those issues by providing good abstractions (at the driver and system call levels) that allow efficient implementations of common user space functionality (like POSIX).

Is this a Linux distribution? No, managarm runs its own kernel that does not originate from Linux. While the managarm user space API supports many Linux APIs (e.g. epoll, timerfd, signalfd or tmpfs), managarm does not share any source code (or binaries) with the Linux kernel.

Supported Software

Currently, Weston (the Wayland reference compositor) and GNU Bash run on managarm.

Supported Hardware

General USB (UHCI, EHCI)
Graphics Generic VBE graphics, Intel G45, virtio GPU, Bochs VBE interface
Input USB human interface devices, PS/2 keyboard and mouse
Storage USB mass storage devices, ATA, virtio block

Building managarm

While this repository contains managarm's kernel, its drivers and other core functionality, it is not enough to build a full managarm distribution. Instead, we refer to the bootstrap-managarm repository for build instructions.