{"id":46681174,"url":"https://github.com/ggielly/strat9-os","last_synced_at":"2026-03-09T00:10:52.905Z","repository":{"id":339265499,"uuid":"1161025890","full_name":"ggielly/strat9-os","owner":"ggielly","description":"Strat9-OS is a modular microkernel written in Rust. Run native binary (WASM, ELF...) with small footprint directly on the kernel. Looking for contributors and help !","archived":false,"fork":false,"pushed_at":"2026-03-05T22:30:53.000Z","size":3672,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T02:05:53.912Z","etag":null,"topics":["kernel","microkernel","operating-system","plan9","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ggielly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-18T16:43:08.000Z","updated_at":"2026-03-05T15:20:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ggielly/strat9-os","commit_stats":null,"previous_names":["ggielly/strat9-os"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ggielly/strat9-os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggielly%2Fstrat9-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggielly%2Fstrat9-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggielly%2Fstrat9-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggielly%2Fstrat9-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggielly","download_url":"https://codeload.github.com/ggielly/strat9-os/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggielly%2Fstrat9-os/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30278153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T20:45:49.896Z","status":"ssl_error","status_checked_at":"2026-03-08T20:45:49.525Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kernel","microkernel","operating-system","plan9","rust"],"created_at":"2026-03-09T00:10:49.454Z","updated_at":"2026-03-09T00:10:52.875Z","avatar_url":"https://github.com/ggielly.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Strat9-OS\n\nStrat9-OS is an Operating System based on a modular microkernel written in Rust. The kernel provides scheduling, IPC, memory primitives, and interrupt routing. Everything else (filesystems, networking, drivers...) runs as isolated userspace components called Silos, also written in Rust.\n\nThe goal is to run various native binaries (ELF, JS, WASM..) inside the silo environment =\u003e IPC =\u003e kernel. And give features to silos like network stack, filesystem, etc. with Strates.\n\nThe Chevron shell can manage silos and strates with a bunch of commands.\n\nArchitecture concept summary: Bedrock is the microkernel, Silos are isolated Ring-3 execution units, Strates are functional layers hosted inside Silos and they can discuss together. Silos are isolated eachother.\n\n## Architecture\n\n- Kernel (Bedrock) in Ring 0 : minimal, `#![no_std]`.\n- Silos are in Ring 3 : isolated components communicate via IPC.\n- Strate are in Silo : network stack, filesystem, etc.\n- Capabilities gate access to resources.\n- Plan 9 style scheme model for resources.\n\n## Status, some highlights\n\nThis project is in active development and not production-ready. The ABI is still not stabilized: the [ABI documentation is here|https://ggielly.github.io/strat9-os-docs/index.html].\n\n### Screenshots from QEMU : bootsequence and Chevron shell\n\n![Graphics test](doc/boot_welcome.png)\n*Chevron and boot*\n\n![Top - process monitor](doc/top.png)\n*2D framebuffered process monitor like (top command)*\n\n![ls and uptime](doc/ls_uptime.png)\n*ls and uptime*\n\n![Networking](doc/network.png)\n*Networking*\n\n![Strate](doc/strate.png)\n*strate screen management*\n\n![Memory and CPU info](doc/mem_cpu.jpg)\n*Memory and CPU information*\n\n![Graphics test](doc/gfx-test.jpg)\n*Graphics subsystem test*\n\n#### Kernel\n\n    - SMP boot with per-CPU data, TSS/GDT, GSBase-based SYSCALL, per-CPU caches and per-CPU scheduler\n    - Two-stage allocator: buddy allocator for early boot and a dedicated kernel allocator (CoW support, heap/kmalloc/slab)\n    - Virtual memory: 4-level paging, HHDM, CR3 switching, page-fault handling (COW, mmap), user/kernel mappings\n    - Preemptive multitasking with APIC/x2APIC and per-CPU timers\n    - Limine boot path and bootable ISO\n    - Scheduler with priority/round-robin and CPU hotplug support\n    - IPC: synchronous ports, shared-memory rings (zero-copy), capability manager and VFS scheme router\n    - ELF loader and Ring-3 execution (userspace silos)\n    - POSIX interval timers and signal infrastructure\n    - Interrupts \u0026 exceptions: IDT, IRQ handling, exception dumps and backtraces\n    - Device model: PCI discovery, VirtIO and legacy drivers (block, net), console drivers\n    - Debugging \u0026 tooling: early serial/VGA output, configurable log levels, QEMU run targets and ISO tooling\n    - ACPI support and power management\n    - Optional Linux ABI compatibility shim for ELF binaries\n\n#### Userspace components\n\n    - EXT4 filesystem\n    - RamFS filesystem\n    - XFS filesystem (WiP and disabled) \n    - VirtIO block and net drivers (kernel-side)\n    - libc (relibc from the Redox-OS project)\n    - IPv4 network stack with UDP/TCP/ICMP support, dhcp client, telnet server\n    - e1000/e1000e and virtio NIC drivers\n    - WASM native execution strate\n    - Remote access via SSHd or grapical with VNC\n    - CLI for managing silo and strate : memory management, start, stop, delete...\n    - Basic commands : cat, ls, uptime, reboot, shutdown, cd, top\n    - VFS with /proc /sys ...\n\n\n```mermaid\ngraph TD\n    subgraph Ring 3 [Userspace / Silos]\n        direction TB\n        App[Application]:::app\n        Drivers[Drivers \u0026 Services]:::sys\n\n        subgraph Silo_JS [JIT JS Silo]\n            JS_Runtime[JIT JS Runtime]:::app --\u003e|IPC| Net[Net Stack]:::sys\n            JS_Runtime --\u003e|IPC| FS[Filesystem]:::sys\n        end\n\n        subgraph Silo_Native [Native Silo]\n            ELF[ELF Binary]:::app --\u003e|IPC| Console[Console Driver]:::sys\n        end\n    end\n\n    subgraph Ring 0 [Kernel SpacSee `LICENSE`.e / Bedrock]\n        Kernel[Bedrock Kernel]:::kernel\n        Sched[Scheduler]:::kernel\n        IPC[IPC System]:::kernel\n        MM[Memory Manager]:::kernel\n\n        Kernel --- Sched\n        Kernel --- IPC\n        Kernel --- MM\n    end\n\n    JS_Runtime -.-\u003e|Syscall/IPC| Kernel\n    Net -.-\u003e|Syscall/IPC| Kernel\n    FS -.-\u003e|Syscall/IPC| Kernel\n    ELF -.-\u003e|Syscall/IPC| Kernel\n    Console -.-\u003e|Syscall/IPC| Kernel\n\n    classDef kernel fill:#f96,stroke:#333,stroke-width:2px;\n    classDef sys fill:#8cf,stroke:#333,stroke-width:1px;\n    classDef app fill:#8f9,stroke:#333,stroke-width:1px;\n```\n\n## Build\n\n### Prerequisites\n\n- Rust nightly with `rust-src` and `llvm-tools-preview`.\n- QEMU.\n\n### Commands\n\n#### Install the Rust toolchain\n\n```bash\nrustup install nightly\nrustup component add rust-src llvm-tools-preview\nrustup target add x86_64-unknown-none\n```\n\n#### Compile the kernel and run it\n\n```bash\ncargo make kernel\ncargo make limine-image\ncargo make run-gui-smp or cargo make run-gui (for single CPU test)\n```\n\nor\n\n```bash\ncargo make\n```\n\n## Device list where Strat9-OS is booting\n\n- QEMU\n- Lenovo Thinkpad X13\n\n## Repository way of life\n\n- `workspace/kernel/` : the strat9-os kernel : Bedrock\n- `workspace/components/` : userspace components\n- `workspace/bootloader/` : limine-based bootloader\n- `doc/` : specifications and design docs\n- `tools/` : build and helper scripts\n\n### Related specifications\n\ntodo...\n\n## License\n\nAll the code is under GPLv3. See THIRD_PARTY_LICENCES.txt for more informations about librairies and software shared. Many thanks to the authors !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggielly%2Fstrat9-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggielly%2Fstrat9-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggielly%2Fstrat9-os/lists"}