MCPcopy Index your code
hub / github.com/JonasKruckenberg/k23

github.com/JonasKruckenberg/k23 @v0.0.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.8 ↗ · + Follow
3,985 symbols 11,615 edges 298 files 810 documented · 20% updated 1d agonightly-2026-07-07 · 2026-07-07★ 64882 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

k23

<strong>Experimental WASM Microkernel Operating System</strong>

Manual k23 Discord

MIT licensed

About

k23 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.

Roadmap

  • Phase 0 - Bringup
  • [x] Bootloader stage
  • [x] Risc-V Support
  • [x] Cryptographic Kernel Integrity
  • [x] Compressed Kernel Support
  • [x] Test Runner & Testing against WASM specification
  • [x] Kernel Backtraces
  • [x] Proper Error Handling
  • [x] KASLR (Kernel Address Space Layout Randomization)
  • Phase 1 - Basic WASM Features
  • [x] Guest memory management
  • [x] Guest ASLR (Address Space Layout Randomization)
  • [x] Executing WASM
  • [x] Handling Guest Traps & Fault Recovery
  • [x] WASM module Imports & Exports
  • [x] Execute WASM in Userspace
  • [x] Support WASM Builtins
  • [x] Handle WASM Traps
  • [ ] Syscall context switching & Basic Host Functions
  • [ ] WASM Proposal - Extended Constant Expressions
  • [ ] WASM Proposal - Multi-Value
  • [ ] WASM Proposal - Tail Call
  • [ ] WASM Proposal - Reference Types
  • [ ] WASM Proposal - Fixed-width SIMD
  • [ ] WASM Proposal - Relaxed SIMD
  • [ ] WASM Proposal - Multiple Memories
  • Phase 2 - Concurrency
  • [x] Kernel Concurrency
  • [x] Scheduler
  • [ ] WASM Proposal - Threads (Atomics)
  • [ ] WASM Proposal - Shared Everything Threads
  • Phase 2.5 - Kotlin on k23
  • [ ] WASM Proposal - Garbage Collection
  • [ ] WASM Proposal - Exception Handling
  • Phase 3 - Drivers
  • [ ] Support MMIO regions (WASM Memory Control Proposal or Typed Multiple Memories)
  • [ ] WASM Proposal - Component Model
  • [ ] WASM Component Linking

Contributing

I 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 of likeminded, awesome people that all believe better computer system are possible!

Extension points exported contracts — how you extend this code

Clear (Interface)
Trait implemented by types which can be cleared in place, retaining any allocated memory. This is essentially a general [7 …
libs/ksharded-slab/src/clear.rs
Parse (Interface)
A trait for parsing a fragment of syntax in a recursive descent fashion. The [`Parse`] trait is main abstraction you'll [211 …
libs/wast/src/parser.rs
Linked (Interface)
Trait implemented by types which can be members of an [intrusive WAVL tree][WAVLTree]. In order to be part of an intrus [10 …
libs/wavltree/src/lib.rs
VmSafe (Interface)
A custom "marker trait" used to tag types that are safe to share with compiled wasm code. The intention of this trait i [30 …
kernel/src/wasm/vm/provenance.rs
LookupContinuation (Interface)
This trait represents a partially complete operation that can be resumed once a load of needed split DWARF data is compl [3 …
libs/kaddr2line/src/lookup.rs
MaybeUninitExt (Interface)
(no doc) [1 implementers]
libs/util/src/checked_maybe_uninit.rs
Pack (Interface)
(no doc) [7 implementers]
libs/ksharded-slab/src/lib.rs
Peek (Interface)
A trait for types which be used to "peek" to see if they're the next token in an input stream of [`Parser`]. Often when [30 …
libs/wast/src/parser.rs

Core symbols most depended-on inside this repo

new
called by 872
kernel/src/arch/riscv64/device/clock.rs
unwrap
called by 650
libs/unwind2/src/exception.rs
push
called by 262
libs/ksharded-slab/src/page/mod.rs
as_ref
called by 220
kernel/src/wasm/types.rs
push1
called by 209
kernel/src/wasm/cranelift/state.rs
field
called by 176
libs/wast/src/component/resolve.rs
map
called by 133
libs/kaddr2line/src/lookup.rs
parens
called by 121
libs/wast/src/parser.rs

Shape

Method 2,545
Class 690
Function 522
Enum 189
Interface 39

Languages

Rust100%

Modules by API surface

kernel/src/wasm/types.rs96 symbols
kernel/src/wasm/cranelift/env.rs96 symbols
libs/wavltree/src/lib.rs80 symbols
kernel/src/wasm/vm/instance.rs75 symbols
kernel/src/wasm/vm/vmcontext.rs72 symbols
libs/wast/src/lexer.rs66 symbols
kernel/src/wasm/translate/mod.rs62 symbols
libs/wast/src/parser.rs56 symbols
libs/wast/src/core/expr.rs56 symbols
libs/spin/src/rw_lock.rs50 symbols
kernel/src/wasm/type_registry.rs46 symbols
libs/wast/src/core/types.rs45 symbols

For agents

$ claude mcp add k23 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page