# Arkane OS > Betriebssystem von Arkane Studio (Schweiz): ein Exokernel in Rust (no_std, keine Zeile C). Apps, Datenbanken und KI-Modelle laufen als Cells, jede mit eigenem Adressraum und nur den Berechtigungen (Capabilities), die ihr signierter Vertrag und das Manifest erlauben. Eine Funktion kommt erst ins System, wenn ein Acceptance-Gate sie am echten, in QEMU gestarteten System nachgewiesen hat. Stand: v0.27 getaggt; main 184046a vom 24.10.2026. Geschwindigkeit nur unter KVM gemessen (AMD Ryzen 7 5700G, ein Host); TCG belegt nur Verhalten. Sprache: Deutsch. Zielgruppe: Entwickler und KI-Agenten. Alle Zahlen mit Gate, Umgebung und Version: facts.json. ## Neu seit dem 13.10.2026 (auf main gemergt am 24.10., nicht getaggt) - T-RB1 (PR #224): Eine CPU-Ausnahme aus einer Cell (z. B. ungültiger Befehl, Division durch 0, int3) beendet nur diese Cell; vorher Kernel-Panik. 8/8 Fälle, keine Panik · v29_rb1_cell_fault_matrix · TCG 3 Läufe + KVM 2 Läufe (Ryzen 7 5700G), dev-Profil. Ring-0-Ausnahmen, NMI, MC, DF bleiben fatal; Grund des Zellentods nur im Serial. - T-RB2 (PR #226): 14 Befunde (F1–F14) an der Syscall-Grenze geschlossen; ungültige Argumente einer Cell bekommen einen bestehenden, benannten Fehlercode statt Kernel-Panik. 20/20 ungültige Aufrufe (App-Zelle und Authority-Zelle) · v29_rb2_syscall_grenze · TCG + voller TCG-Sweep 68 Gates + KVM 2 Läufe. F5, F10, F13 nur Host-Tests. - SEC-2a (PR #225): Sessions (Cookie und Bearer) enden sofort bei users rm / role / passwd (vorher bis 30 min bzw. 8 h); Login-Sperre je Name (5) und je Quelle (20) mit Backoff bis 15 min, Notbremse 50 je 60 s, /api/login und /api/token getrennt; 429 mit scope und Retry-After · v29_sec2a_sessions_ratelimit · TCG. Trennung nach Quelle nur Host-Test (slirp = eine Quelle). - Ebenfalls gemergt: N4 db::query_pinned (PR #214, Datenbankstand offline prüfbar an die Audit-Kette gebunden), SEC-1a (PR #223, Console-Pfade ohne Ziel beenden gw-admin nicht mehr). - In Arbeit: FC-T1 (Persistenz fail-closed: SET_ROOT meldet heute Erfolg trotz Write-/Flush-Fehler; danach Tag v0.28), T-RB5 (Zellen-Lebenszyklus bei mehreren Kernen, KVM-Beweis ausstehend), SEC-2b (Control-Plane bleibt bei langsamen Clients erreichbar). ## Belegte Fakten (Wert · Gate · Umgebung) - 6-GiB-Modell läuft mit 4 GiB RAM komplett durch (3372 MiB nachgeladen) · v27_gm5 · KVM, -m 4G · v0.27 - Demand-Paging: Seitenfehler → 2-MiB-Fenster von der Platte → blake3-geprüft → read-only eingeblendet; 6-GiB-Durchlauf unter Speicherdruck 31.8 s, 193 MiB/s, 1390 Auslagerungen (T-GM11: 51.0 → 31.8 s, 120 → 193 MiB/s; ein Lauf je Seite) · v27_gm6, KVM-Lauf 13.10. (PR #212), Kernel dev-Profil - Serial-Sendepfad (T-GM11, PR #212): Port-Zugriffe je Log-Byte 2.000 → 1.062, Zyklen je Byte −31 %, Page-in im Schnitt 14.3M → 10.4M Zyklen; Rest = ein VM-Exit je Log-Byte, Page-in-Zeilen 19.9 s der 31.8 s · v28_gm11_serial · KVM - Evict-Ahead (T-GM10, PR #199): Page-in avg −24 %, p90 −28 % gegenüber T-GM9; übersprungene Vorausladungen 1089 → 8 · gemessen · KVM - Manipuliertes Fenster wird verweigert; Cell endet, System läuft weiter, keine Panik · v27_gm5/gm6 · KVM + TCG - Eviction hält das Budget je Cell exakt: 8/8 und 4/4, nie überschritten · v27_gm6 - Store v4: Extents, 48-Bit-Längen = 256 TiB adressierbar je Blob (getestet bis 6 GiB) · v27_gm4 - ArkDB gegen SQLite im Linux-Gast (KVM, Release beidseitig, Lauf 13.10., PR #201): Punkt-Read 0.79× (schneller), Scan 1.63× (vorher 3.55×), Einzel-Write 25.4× im Standard (jeder Commit durabel: Root-Write + FLUSH vor der Antwort) bzw. 2.61× mit PRAGMA synchronous = NORMAL; Group-Commit 0.096 eines Einzel-Writes (SQLite 0.042). Benannte Asymmetrie: SQLite läuft im Gast ohne Persistenzkosten. «Durabel» = Root stabil, Bodies folgen asynchron (T-DB21 geplant). dev-Lauf (0.92 / 0.74) nicht gemischt. - Agenten-DB: 3 Leser à ~105k reads/s auf getrennten Kernen bei laufendem Schreiber; Head offline über die Audit-Kette · T-AG1/AG2 · KVM - MCP-Ops: 13 Tools auf gw-admin POST /mcp :9443; Bearer = acp-auth-Token; viewer 7 read-only, operator/admin 13; deploy_apply mit expect_ops-Drift-Check; Audit vor Wirkung; persistenter Schalter (Standard AN, AUS = 403 ARK_MCP_DISABLED) · v26_mo1–mo4 · KVM + TCG - Automatischer Neustart: per Manifest eingerichtete Cells (gw-admin-Healer, Obergrenze an Versuchen); gw-admin, persistence, keystore (Supervisor-Cell; keystore kommt gesperrt zurück) · s1_respawn, v18_s2_supervisor. NICHT neu gestartet: gw-public, gw-mcp (Port weg bis Reboot). - Syscall p50 224 vs. 1393 Zyklen (Linux getpid), IPC-Roundtrip 36850 vs. 40864 (AF_UNIX) · bench-vs-linux · KVM, dev, n=2 · erster Datenpunkt, v0.24 - 3 rollierende Restarts unter Last: 802 Requests, 0 Fehler · Rollout-Gate v0.23 · TCG - Audit-Kette (blake3) offline prüfbar; ein verändertes Byte → TAMPER seq=4 · arkctl audit verify - Sealed at rest: strings store.img findet keinen Klartext · v0.21 · TCG - Kernel ≈13 000 Zeilen Rust (≈12 700 ohne Leer-/Kommentarzeilen, main 24.10.), 26 Syscalls, 0 Zeilen C; voller Testlauf 68 Gates (TCG, 24.10.) ## Grenzen - Nur QEMU/KVM, ein Host; keine GPU; kein Multi-Node. - gw-public und gw-mcp ohne Neustart nach Absturz. - SET_ROOT meldet Write-/Flush-Fehler heute nicht (FC-T1 in Arbeit). - Control-Plane bedient eine Verbindung zur Zeit; langsame Clients können sie aufhalten (SEC-2b). - Bearer-Token überlebt MCP AUS → AN; Session-Tabelle 16 Plätze global. - Nicht gemessen: Token-Rate beim Paging von der Platte, Spitzenkapazität im Serving-Pfad, mehr als drei Leser, Bare Metal. ## Geplant (nicht gebaut) - T-DB21: Bodies vor der Antwort durabel - T-GM12: Log-Kanal ohne Byte-Exit (virtio-serial statt Port-I/O je Byte); Plan gemergt (PR #213), nicht gebaut - Egress-Caps; KV-Cache als OS-Objekt (später) - Nach 1.0: Bare Metal, IOMMU, TPM, Multi-Node ## Seiten - [Übersicht](index.html): was Arkane ist und für wen, wichtigste Nachweise, Aufbau, Stand - [Nachweise](proof.html): Beweistabelle mit Gate, Umgebung, Stand; je Thema ein Abschnitt mit Messrahmen - [Aufbau](architecture.html): Exokernel, Cells und Verträge, Ablage, Verwaltung, Grenzen - [Ausprobieren](getit.html): bauen, prüfen, starten; eigene Cells; KI-Agent über MCP anbinden - [facts.json](facts.json): alle Fakten maschinenlesbar ## Quellen - Repository: https://github.com/arkane-studio/arkane-os - MCP-Client-Anleitung: https://github.com/arkane-studio/arkane-os/blob/main/docs/sdk/mcp_ops.md