All Projects → nebulet → Nebulet

nebulet / Nebulet

Licence: mit
A proof-of-concept microkernel that implements a WebAssembly "usermode" that runs in Ring 0.

Programming Languages

rust
11053 projects
WebAssembly
147 projects
assembly
5116 projects

Projects that are alternatives of or similar to Nebulet

rust os
My hobby operating system microkernel written in Rust
Stars: ✭ 33 (-98.52%)
Mutual labels:  osdev, operating-system, microkernel
munix
🦠 µnix is a UNIX-like operating system
Stars: ✭ 57 (-97.45%)
Mutual labels:  osdev, operating-system, microkernel
kwast
Rust operating system running WebAssembly as userspace in ring 0
Stars: ✭ 83 (-96.29%)
Mutual labels:  osdev, operating-system, microkernel
MoonOS
MoonOS (just a kernel atm) is a micro kernel designed for the x86_64 and arm architecure.
Stars: ✭ 82 (-96.33%)
Mutual labels:  osdev, operating-system, microkernel
saturn
A microkernel based operating system developed from scratch. This repository also includes all Saturn services and applications.
Stars: ✭ 21 (-99.06%)
Mutual labels:  osdev, operating-system, microkernel
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (-90.3%)
Mutual labels:  osdev, operating-system, microkernel
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (-91.77%)
Mutual labels:  operating-system, osdev
Greentea
🍵 Userspace of the @GreenteaOS
Stars: ✭ 56 (-97.5%)
Mutual labels:  operating-system, osdev
Toaru Nih
NOTICE: The ToaruOS-NIH Project has been MERGED UPSTREAM. This repository is now archived.
Stars: ✭ 66 (-97.05%)
Mutual labels:  operating-system, osdev
Boneos
💥 BoneOS Kernel and Operating System Source Tree
Stars: ✭ 96 (-95.71%)
Mutual labels:  operating-system, osdev
Hidamari
Modern operating system aimed at running WebAssembly code.
Stars: ✭ 49 (-97.81%)
Mutual labels:  operating-system, webassembly
Dgos
Operating System
Stars: ✭ 90 (-95.98%)
Mutual labels:  operating-system, osdev
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (-94.99%)
Mutual labels:  operating-system, osdev
Skift
🥑 A simple, handmade, operating system with a graphical user interface.
Stars: ✭ 1,068 (-52.26%)
Mutual labels:  operating-system, osdev
Dennix
Dennix is a unix-like hobbyist operating system written from scratch.
Stars: ✭ 53 (-97.63%)
Mutual labels:  operating-system, osdev
Marvinos
A hobby Operating System developed from scratch using C/C++ and assembly
Stars: ✭ 60 (-97.32%)
Mutual labels:  operating-system, osdev
Cuteos
A 64-bit SMP-safe kernel for the PC architecture.
Stars: ✭ 51 (-97.72%)
Mutual labels:  operating-system, osdev
Reactos
A free Windows-compatible Operating System
Stars: ✭ 10,216 (+356.68%)
Mutual labels:  operating-system, osdev
Emerald
An operating system written in C
Stars: ✭ 118 (-94.73%)
Mutual labels:  operating-system, osdev
Raspberry Pi Os
Learning operating system development using Linux kernel and Raspberry Pi
Stars: ✭ 11,000 (+391.73%)
Mutual labels:  operating-system, osdev

Read this (from the creator of Nebulet)

Hi everyone,

It's been a while since I've looked at this repository.

Nebulet is not in active development, and hasn't been for a bit more than a year. There are a few reasons for this, but the main one is that I felt it had fulfilled its purpose: to demonstrate that microkernels that run managed code in kernel-mode are viable (before spectre/meltdown ruined things), at least to some extent. (Additionally, it helped me get internships, jobs, etc)

As it stands right now, I don't have the time or the motivation to work on Nebulet. My interests have moved on to other things, primarily the space industry (please message me [email in profile] if anyone who reads this works in the space industry, looking for internships/co-ops).

If someone would like to take on the Nebulet banner and continue to work on it, I'd be happy to pass it on. Otherwise, it'll probably sit here for the foreseeable future and will likely be archived at some point.

- Lachlan Sneff

Nebulet

Join the chat at https://gitter.im/nebulet/nebulet Build Status

What is Nebulet?

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.

The Cranelift compiler is used to compile WebAssembly to native machine code. Once compiled, there are no complex interactions between the application and the runtime (unlike jit compilers, like v8) to reduce surface area for vulnerabilities.

Right now, Nebulet isn't ready to do anything yet, but it'll get there.

Building & Running

MacOS requires you to first cross compile binutils and to add the newly compiled ld-bfd to your path.

# checkout code and associated submodules
$> git clone https://github.com/nebulet/nebulet.git
$> cd nebulet/ && rustup override set nightly

# install tools
# make sure that `python` is accessible.
$> rustup component add rust-src
$> rustup target add wasm32-unknown-unknown
$> cargo install cargo-xbuild
$> cargo install --git https://github.com/nebulet/bootimage --branch packaging

# build userspace
$> cargo userspace

# compile the kernel
$> bootimage build --release

# compile and run the kernel in qemu
$> bootimage run --release -- -serial stdio
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].