rux - A hobbyist microkernel written in Rust, featuring a capability-based system similar to seL4.

  •        19

Rux is a hobbyist microkernel written in Rust, featuring a capability-based system similar to seL4. Rux's goal is to become a safe general-purpose microkernel. It tries to take advantage of Rust's memory model -- ownership and lifetime. While the kernel will be small, unsafe code should be kept minimal. This makes updating functionalities of the kernel hassle-free.

https://source.that.world/source/rux/
https://github.com/sorpaas/rux

Tags
Implementation
License
Platform

   




Related Projects

SImple Microkernel Distributed OS

  •    C

SIMDOS stands for SImple Microkernel Distributed Operating System. SIMDOS is a micro-kernel based operating system which implements the concepts of Distributed Shared Memory at the kernel level to provide seemless addition on cluster nodes.

L4KA microkernel

  •    C

The L4Ka microkernel is an L4 compatible microkernel running on multiple platforms (x86, ARM, MIPS, PPC, 68K). Its official name is now L4Ka::Hazelnut. This kernel has been discontinued in favor of L4Ka::Pistachio. See http://l4ka.org/

redox - Redox: A Rust Operating System

  •    Shell

Redox is an operating system written in Rust, a language with focus on safety and high performance. Redox, following the microkernel design, aims to be secure, usable, and free. Redox is inspired by previous kernels and operating systems, such as SeL4, MINIX, Plan 9, and BSD. Redox is not just a kernel, it's a full-featured Operating System, providing packages (memory allocator, file system, display manager, core utilities, etc.) that together make up a functional and convenient operating system. You can loosely think of it as the GNU or BSD ecosystem, but in a memory safe language and with modern technology. See this list for overview of the ecosystem.

Dix Is eXtra

  •    

The Dix is a Unix like kernel using microkernel design approach. As a solo kernel, it contains no user section of an operating system. Dix provide a single set of primitive like IPC, Scheduler, and Kernel I/O.

zircon - Zircon Kernel, Core Drivers, and Services

  •    C++

Zircon is the core platform that powers the Fuchsia OS. Zircon is composed of a microkernel (source in kernel/...) as well as a small set of userspace services, drivers, and libraries (source in system/...) necessary for the system to boot, talk to hardware, load userspace processes and run them, etc. Fuchsia builds a much larger OS on top of this foundation. The Zircon Kernel provides syscalls to manage processes, threads, virtual memory, inter-process communication, waiting on object state changes, and locking (via futexes).


Minix - Operating System by Andrew S. Tanenbaum

  •    C

MINIX 3 is a free, open-source, operating system designed to be highly reliable, flexible, and secure. It is based on a tiny microkernel running in kernel mode with the rest of the operating system running as a collection of isolated, protected, processes in user mode.

kernel - The Redox microkernel

  •    Rust

Running qemu with the -s flag will set up qemu to listen on port 1234 for a gdb client to connect to it. To debug the redox kernel run. This will start a VM with and listen on port 1234 for a gdb or lldb client.

Quantix

  •    C

Quantix is a microkernel operating system distribution based on the Mach kernel. Quantix uses the X windowing environment for a user interface.

Bachar (kernel for AdaOS, IA-32 v1)

  •    Assembly

Project to create a new microkernel for AdaOS. Intended to be especially suited to Ada programming language, but will have pragmatic design which is actually language neutral. Will be practical, general-purpose, and secure, but otherwise minimal.

rDSN - Robust Distributed System Nucleus (rDSN) is an open framework for quickly building and managing high performance and robust distributed systems

  •    C++

Robust Distributed System Nucleus (rDSN) is a framework for quickly building robust distributed systems. It has a microkernel for pluggable components, including applications, distributed frameworks, devops tools, and local runtime/resource providers, enabling their independent development and seamless integration. The project was originally developed for Microsoft Bing, and now has been adopted in production both inside and outside Microsoft.The core of rDSN is a service kernel with which we can develop (via Service API and Tool API) and plugin lots of different application, framework, tool, and local runtime modules, so that they can seamlessly benefit each other. Here is an incomplete list of the pluggable modules.

The GNU HURD

  •    C

The GNU Hurd is the GNU project's replacement for the Unix kernel. The Hurd is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by Unix

seL4 - The seL4 microkernel

  •    C

This repository contains the source code of seL4 microkernel. For details about the seL4 microkernel, including details about its formal correctness proof, please see the sel4.systems website and associated FAQ.

nebulet - (Going to be) A microkernel that implements a WebAssembly "usermode" that runs in Ring 0.

  •    Rust

Nebulet is a Google Summer of Code project started during the summer of 2018. More details about Nebulet and GSoC are here. Under the hood, Nebulet is a microkernel that executes WebAssembly modules in ring 0 and a single address space to increase performance. This allows for low context-switch overhead, syscalls just being function calls, and exotic optimizations that simply would not be possible on conventional operating systems. The WebAssembly is verified, and due to a trick used to optimize out bounds-checking, unable to even represent the act of writing or reading outside its assigned linear memory.

OzJS - A microkernel for modular javascript, a toolchain for modern front-end, a micro-framework for growable WebApp

  •    Javascript

OzJS is NOT yet another script loader, but a microkernel that provides sorely-missing module mechanism at runtime (that means it mainly works at language-level, not file-level. Use Ozma.js to process files statically at build time based on the same mechanism) for large/complex javascript program, compatible with the de facto standards (AMD, NodeJS/CommonJS and traditional module pattern). Even better, it was implemented earlier than the well-known RequireJS, so there are differences between similar APIs in philosophy and approach, which bring more value.

ManRiX:Microkernel Based Open Source OS

  •    Assembly

ManRiX is an open source microkernel based operating system with POSIX interface. It is written from scratch using C and Assembly. Microkernel contains just few basic components of an Operating System while others are implemented as user process.

Real-time microkernel

  •    

Project to create a real-time microkernel.

Sartoris Microkernel Project

  •    C

The aim of our project is to create a portable microkernel and a set of OS services that allow good local performance, multiple concurrent operative system personalities (ie UNIX and a native interface) and easy integration of distributed components.

f-stack - F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API

  •    C

With the rapid development of Network Interface Cards the poor performance of data packet processing with the Linux kernel has become the bottleneck in modern network systems. Yet, the increasing demands of the Internet's growth demand a higher performant network processing solution. Kernel bypass has emerged to catch more and more attention. There are various similar technologies such as: DPDK, NETMAP and PF_RING. The main idea of kernel bypass is that Linux is only used to deal with control flow; all data streams are processed in user space. Therefore, kernel bypass can avoid performance bottlenecks caused by kernel packet copying, thread scheduling, system calls, and interrupts. Furthermore, kernel bypass can achieve higher performance with multi-optimizing methods. Within various techniques, DPDK has been widely used because of it's more thorough isolation from kernel scheduling and active community support. To deal with the increasingly severe DDoS attacks the authorized DNS server of Tencent Cloud DNSPod switched from Gigabit Ethernet to 10-Gigabit at the end of 2012. We faced several options: one is to continue to use the original network stack in the Linux kernel, another is to use kernel bypass techniques. After several rounds of investigation; we finally chose to develop our next generation of DNS server based on DPDK. The reason is DPDK provides ultra-high performance and can be seamlessly extended to 40G, or even 100G NIC, in the future.

Two Kernel Monte

  •    C

Two Kernel Monte is a Linux kernel module which allows Linux to load another kernel image into RAM and restart the machine from that kernel. The loader supports initial RAM disks and passing arbitrary kernel command line parameters to the new kernel.

raspberry-pi-os - Learning operating system development using Linux kernel and Raspberry Pi

  •    C

This repository contains a step-by-step guide that teaches how to create a simple operating system (OS) kernel from scratch. I call this OS Raspberry Pi OS or just RPi OS. The RPi OS source code is largely based on Linux kernel, but the OS has very limited functionality and supports only Raspberry PI 3. Each lesson is designed in such a way that it first explains how some kernel feature is implemented in the RPi OS, and then it tries to demonstrate how the same functionality works in the Linux kernel. Each lesson has a corresponding folder in the src directory, which contains a snapshot of the OS source code at the time when the lesson had just been completed. This allows the introduction of new concepts gracefully and helps readers to follow the evolution of the RPi OS. Understanding this guide doesn't require any specific OS development skills.