Next Generation WASM Microkernel Operating System
1<div align="center">
2 <h1>
3 <code>k23</code>
4 </h1>
5 <p>
6 <strong>Experimental WASM Microkernel Operating System</strong>
7 </p>
8 <p>
9 <a href="https://jonaskruckenberg.github.io/k23/">Manual</a>
10 <a href="https://discord.gg/KUGGcUS5cW">k23 Discord</a>
11
12[![MIT licensed][mit-badge]][mit-url]
13
14 </p>
15</div>
16
17[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
18[mit-url]: LICENSE
19
20## About
21
22k23 is an active research project exploring a *more secure, modular, and easy to develop for* operating system by using WebAssembly as the primary execution environment.
23
24## Roadmap
25
26- **Phase 0 - Bringup**
27 - [x] Bootloader stage
28 - [x] Risc-V Support
29 - [x] Cryptographic Kernel Integrity
30 - [x] Compressed Kernel Support
31 - [x] Test Runner & Testing against WASM specification
32 - [x] Kernel Backtraces
33 - [x] Proper Error Handling
34 - [x] KASLR (Kernel Address Space Layout Randomization)
35- **Phase 1 - Basic WASM Features**
36 - [x] Guest memory management
37 - [x] Guest ASLR (Address Space Layout Randomization)
38 - [x] Executing WASM
39 - [x] Handling Guest Traps & Fault Recovery
40 - [x] WASM module Imports & Exports
41 - [x] Execute WASM in Userspace
42 - [x] Support WASM Builtins
43 - [x] Handle WASM Traps
44 - [ ] Syscall context switching & Basic Host Functions
45 - [ ] WASM Proposal - Extended Constant Expressions
46 - [ ] WASM Proposal - Multi-Value
47 - [ ] WASM Proposal - Tail Call
48 - [ ] WASM Proposal - Reference Types
49 - [ ] WASM Proposal - Fixed-width SIMD
50 - [ ] WASM Proposal - Relaxed SIMD
51 - [ ] WASM Proposal - Multiple Memories
52- **Phase 2 - Concurrency**
53 - [x] Kernel Concurrency
54 - [x] Scheduler
55 - [ ] WASM Proposal - Threads (Atomics)
56 - [ ] WASM Proposal - Shared Everything Threads
57- **Phase 2.5 - Kotlin on k23**
58 - [ ] WASM Proposal - Garbage Collection
59 - [ ] WASM Proposal - Exception Handling
60- **Phase 3 - Drivers**
61 - [ ] Support MMIO regions (WASM Memory Control Proposal *or* Typed Multiple Memories)
62 - [ ] WASM Proposal - Component Model
63 - [ ] WASM Component Linking
64
65## Contributing
66
67I believe OS development should be fun, easy, and approachable. If you would like to hack on k23, fork it for your own experiments or just hang out and philosophize about computers. Be my guest! You can [join our small, but growing community][discord-url] of likeminded, awesome people that all believe better computer system are possible!
68
69[discord-url]: https://discord.gg/KUGGcUS5cW