Next Generation WASM Microkernel Operating System
at trap_handler 69 lines 2.5 kB view raw view rendered
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