{"id":13436984,"url":"https://github.com/flosse/rust-os-comparison","last_synced_at":"2025-05-15T06:04:29.654Z","repository":{"id":37622955,"uuid":"43598764","full_name":"flosse/rust-os-comparison","owner":"flosse","description":"A comparison of operating systems written in Rust","archived":false,"fork":false,"pushed_at":"2025-05-13T22:47:34.000Z","size":69,"stargazers_count":765,"open_issues_count":6,"forks_count":47,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-14T00:33:18.310Z","etag":null,"topics":["comparison","kernel","microcontroller","operating-system","rust","unmaintained"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flosse.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}},"created_at":"2015-10-03T12:44:52.000Z","updated_at":"2025-05-13T22:47:38.000Z","dependencies_parsed_at":"2023-01-30T22:30:59.365Z","dependency_job_id":"12254c93-7935-4176-bdf9-dca0af1bae6c","html_url":"https://github.com/flosse/rust-os-comparison","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosse%2Frust-os-comparison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosse%2Frust-os-comparison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosse%2Frust-os-comparison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosse%2Frust-os-comparison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flosse","download_url":"https://codeload.github.com/flosse/rust-os-comparison/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254283337,"owners_count":22045140,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["comparison","kernel","microcontroller","operating-system","rust","unmaintained"],"created_at":"2024-07-31T03:00:53.486Z","updated_at":"2025-05-15T06:04:29.645Z","avatar_url":"https://github.com/flosse.png","language":null,"funding_links":[],"categories":["Others","Applications","应用程序 Applications","Applications written in Rust","应用","应用 Applications"],"sub_categories":["Operating systems","操作系统 Operating systems","操作系统"],"readme":"# Rust OS comparison\n\nA comparison of operating systems written in [Rust](https://rustlang.org).\n\nThere are several open source operating systems written in Rust.\nMost of them are proofs of concepts.\nThe only system that goes a step further is **Redox**.\nIt comes with a window manager as well as basic applications like an\n[editor](https://github.com/redox-os/sodium) and a file manager.\n**Theseus** is approaching maturity with the ability to execute legacy components in a WASM sandboxed environment.\n\n- **Redox**             ([repository](https://gitlab.redox-os.org/redox-os/redox/) / [homepage](https://www.redox-os.org/))\n- **Theseus OS**        ([repository](https://github.com/theseus-os/Theseus) / [homepage](https://www.theseus-os.com/))\n- **Tock**              ([repository](https://github.com/helena-project/tock) / [homepage](http://www.tockos.org/))\n- **intermezzOS**       ([repository](https://github.com/intermezzos/kernel) / [homepage](http://intermezzos.github.io/))\n- **ParvaOS**\n([repository](https://github.com/gianndev/ParvaOS))\n- **reenix**\n([repository](https://github.com/scialex/reenix))\n- **rustboot**          ([repository](https://github.com/charliesome/rustboot))\n- **RustOS**            ([repository](https://github.com/ryanra/RustOS))\n- **QuiltOS**           ([repository](https://github.com/QuiltOS/QuiltOS))\n- **Tifflin (rust_os)** ([repository](https://github.com/thepowersgang/rust_os))\n- **bkernel**           ([repository](https://github.com/rasendubi/bkernel))\n- **Quasar**            ([repository](https://github.com/LeoTestard/Quasar))\n- **SOS**               ([repository](https://github.com/hawkw/sos-kernel))\n- **MOROS**             ([repository](https://github.com/vinc/moros) / [homepage](http://moros.cc/))\n- **Fexlix OS**         ([repository](https://github.com/mrgian/felix))\n- **Aero**              ([repository](https://github.com/Andy-Python-Programmer/aero))\n- **Hermit**            ([repository](https://github.com/hermitcore/rusty-hermit))\n- **Asterinas**         ([repository](https://github.com/asterinas/asterina))\n\n\n| Name            | Architectures     | Pure Rust | Active? | Kernel architecture          | Target              | Userpace? | Optional GUI? | Contributors | Filesystem              | License                    |\n|-----------------|-------------------|-----------|---------|------------------------------|---------------------|-----------|---------------|--------------|-------------------------|----------------------------|\n| **Redox**       | x86, x86_64, ARM64 and RISC-V    | yes       | yes     | Microkernel                  | General purpose     | yes       | yes           | 60           | [RedoxFS]/[FAT32]/[ramfs] | MIT                        |\n| **Theseus OS**  | x86_64, ARM WIP   | yes       | yes     | Safe-language SAS/SPL OS[^1] | General + Embedded  | N/A       | yes           | 25           | Custom/FAT32            | MIT                        |\n| **Tock**        | Cortex-M, RISC-V, x86 | yes   | yes     | Safe-language SAS/SPL kernel with userspace | embedded  | yes  | no            | 264          |                         | APL 2 / MIT                |\n| **intermezzOS** | x86_64            | no        | yes     | ?                            | PoC                 | no        | no            | 18           | no                      | APL 2 / MIT                |\n| **ParvaOS**     | x86_64            | yes | yes | Monolithic | General purpose | no | yes | 1 | no | GPL-3.0\n| **RustOS**      | i386              | ?         | yes     | None                         | PoC                 | no        | no            | 10           | no                      | APL 2 / MIT                |\n| **rustboot**    | i386              | ?         | no      | None                         | PoC                 | no        | no            | 8            | no                      | MIT                        |\n| **bkernel**     | ARM               | yes       | yes     | ?                            | Embedded devices    | no        | no            | 4            | ?                       | GPL with linking exception |\n| **SOS**         | x86_64            | yes       | yes     | Microkernel                  | PoC                 | no        | no            | 3            | ?                       | MIT                        |\n| **reenix**      | [Brown's CS167/9] | no        | no      | Monolithic (current state)   | PoC                 | no        | no            | 3            | ?                       | [unknown]                  |\n| **Quasar**      | x86_64            | ?         | no      | ?                            | ?                   | no        | no            | 2            | ?                       | ?                          |\n| **Tifflin**     | x86_64/amd64      | almost    | yes     | Monolithic                   | ?                   | ?         | yes           | 1            | ISO9660                 | 2-Clause-BSD               |\n| **MOROS**       | x86_64            | yes       | yes     | Monolithic                   | General purpose     | limited   | no            | 1            | [MFS]                   | MIT                        |\n| **Felix OS**    | x86_64            | yes       | yes     | ?                            | General purpose     | ?         | no            | 3            | [FAT16]  Read Only      | MIT                        |\n| **Aero**        | x86_64            | ?         | yes     | Monolithic                   | General purpose     | ?         | yes           | 10           | ?                       | GPL                        |\n| **Hermit**      | x86_64, aarch64   | yes       | yes     | Unikernel                    | Cloud and HPC       | no        | no            | \u003e30          | virtiofs                | Apache, BSD                |\n| **Embassy**     | many              | yes       | yes     | embedded framework           | embedded            | n/a       | no            | 388          | ?                       | APL2 / MIT / CC 4.0        |\n| **Hubris**      | many              | yes       | yes     | message passing kernel       | embedded            | n/a       | no            | 50           | ?                       | MPL 2.0                    |\n| **Asterinas**   | x86_64            |           | yes     | [Framekernel]                | General purpose     | ?         | ?             | 42           | ?                       | MPL 2.0                    |\n\nAlso worth noting: [Robigalia](https://gitlab.com/robigalia/sel4), a sel4 userspace, written in Rust.\n\n[Brown's CS167/9]: http://cs.brown.edu/courses/cs167/\n[RedoxFS]: https://github.com/redox-os/redoxfs\n[FAT32]: https://gitlab.redox-os.org/redox-os/redox-loader\n[ramfs]: https://gitlab.redox-os.org/redox-os/base/-/tree/main/ramfs?ref_type=heads\n[unknown]: https://github.com/scialex/reenix/issues/1\n[MFS]: https://github.com/vinc/moros/blob/trunk/doc/filesystem.md\n[Framekernel]: https://asterinas.github.io/book/kernel/the-framekernel-architecture.html\n\n[^1]: Theseus is a safe-language OS that runs all components within a [Single Address Space (SAS)](https://en.wikipedia.org/wiki/Single_address_space_operating_system) and Single Privilege Level (SPL).\n\n## Blog posts and papers\n\n-[Writing the second video game for the Micro:bit in Rust](https://hackernoon.com/writing-the-second-video-game-for-the-micro-bit-in-rust-3cd8b5ab22d3)\n\n- Talking Tock Week\n    - [5](http://www.tockos.org/blog/2016/talking-tock-5/),\n    - [4](http://www.tockos.org/blog/2016/talking-tock-4/),\n    - [3](http://www.tockos.org/blog/2016/talking-tock-3/),\n    - [2](http://www.tockos.org/blog/2016/talking-tock-2/),\n    - [1](http://www.tockos.org/blog/2016/talking-tock-1/)\n\n- Theseus OS Documents\n    - [Theseus OS Book](https://www.theseus-os.com/Theseus/book/index.html)\n    - [Theseus OS Source Code Documentation](https://www.theseus-os.com/Theseus/doc/___Theseus_Crates___/index.html)\n    - [Theseus OS Conference Publications](https://www.theseus-os.com/Theseus/book/misc/papers_presentations.html)\n    - [Theseus OS source code on GitHub](https://github.com/theseus-os/Theseus)\n    - [Theseus OS Technical Blog](https://www.theseus-os.com/)\n\n\n- [FreeRTOS meets Rust](http://www.hashmismatch.net/freertos-meets-rust/)\n- [Pragmatic Bare Metal Rust](http://www.hashmismatch.net/pragmatic-bare-metal-rust/)\n- This week in intermezzOS:\n  - [1](https://intermezzos.github.io/blog/articles/twii1/),\n  - [2](https://intermezzos.github.io/blog/articles/twii2/),\n  - [3](https://intermezzos.github.io/blog/articles/twii3/)\n\n- [Writing an OS in Rust](http://os.phil-opp.com/)\n    - [Returning from Exceptions](http://os.phil-opp.com/returning-from-exceptions.html)\n    - [Allocating Frames](http://os.phil-opp.com/allocating-frames.html)\n    - [Printing to Screen](http://os.phil-opp.com/printing-to-screen.html)\n    - [Setup Rust](http://os.phil-opp.com/setup-rust.html)\n    - [Entering Long Mode](http://os.phil-opp.com/entering-longmode.html)\n    - [A minimal x86 kernel](http://blog.phil-opp.com/rust-os/multiboot-kernel.html)\n    - [Remap the Kernel](http://os.phil-opp.com/remap-the-kernel.html)\n    - [Kernel Heap](http://os.phil-opp.com/kernel-heap.html)\n\n- [This Week in Redox 1](http://www.redox-os.org/news/this-week-in-redox-1/) / [Redox News](http://www.redox-os.org/news/)\n- [Redox is Serious](http://dictator.redox-os.org/index.php?controller=post\u0026action=view\u0026id_post=17)\n- [Reenix: Implementing a Unix-Like Operating System in Rust](https://scialex.github.io/reenix.pdf) (PDF)\n- [Experiences Building an OS in Rust](https://mostlytyped.com/posts/experiences-building-an-os-in-ru)\n- [Writing an OS in Rust in tiny steps (Steps 1-5)](http://jvns.ca/blog/2014/03/12/the-rust-os-story/)\n- [My Rust OS will never be finished (and it's a success!)](http://jvns.ca/blog/2014/03/21/my-rust-os-will-never-be-finished/)\n- [Ownership is Theft: Experiences Building an Embedded OS in Rust](http://amitlevy.com/papers/tock-plos2015.pdf) (PDF)\n- [Using Rust for an Undergraduate OS Course](http://rust-class.org/0/pages/using-rust-for-an-undergraduate-os-course.html)\n- [Running Rust on the Rumprun unikernel](https://gandro.github.io/2015/09/27/rust-on-rumprun/)\n- [Making Popcorn: Adding a disk to a Rust Rumprun Unikernel](https://polyfractal.com/post/adding-a-disk-to-a-rust-rumprun-unikernel/)\n- [bkernel: a Rust Operating System](http://www.alexeyshmalko.com/2015/bkernel-a-rust-operating-system/)\n- [(x86_64) Why are platform features such as the red zone enabled by default?](https://internals.rust-lang.org/t/x86-64-why-are-platform-features-such-as-the-red-zone-enabled-by-default/)\n- [Operating system development wiki](https://github.com/rust-lang/rust-wiki-backup/blob/master/Operating-system-development.md)\n- [Create a secure POSIX-compatible userland on top of seL4](https://robigalia.org/)\n- [Betriebssystem Redox in Rust geschrieben](http://www.pro-linux.de/news/1/23383/betriebssystem-redox-in-rust-geschrieben.html) (German)\n\n### Embedded Systems\n\n- [Safer microcontrollers almost here](http://dylanmckay.io/blog/rust/avr/llvm/2017/02/09/safer-microcontrollers-almost-here.html)\n- [Exploring ARM inline assembly in Rust](http://embed.rs/articles/2016/arm-inline-assembly-rust/)\n- Bare Metal Rust\n    - [3: Configure your PIC to handle interrupts correctly](http://www.randomhacks.net/2015/11/16/bare-metal-rust-configure-your-pic-interrupts/)\n    - [2: Retarget your compiler so interrupts are not evil](http://www.randomhacks.net/2015/11/11/bare-metal-rust-custom-target-kernel-space/)\n    - [1: Low-level CPU I/O ports](http://www.randomhacks.net/2015/11/09/bare-metal-rust-cpu-port-io/)\n- [Rust bare metal on ARM microcontroller](http://antoinealb.net/programming/2015/05/01/rust-on-arm-microcontroller.html)\n- [Blinking an LED with Rust on a Beaglebone Black](http://theotherandygrove.com/blinking-an-led-with-rust-on-a-beaglebone-black/)\n- [Zinc goals redefined and extended](http://zinc.rs/blog/#/2014/07/14/zinc-goals/)\n- Rust on an Arduino Uno\n  - [Part 1](http://jakegoulding.com/blog/2016/01/02/rust-on-an-arduino-uno/)\n  - [Part 2](http://jakegoulding.com/blog/2016/01/17/rust-on-an-arduino-uno-part-2/)\n  - [Part 3](http://jakegoulding.com/blog/2016/01/24/rust-on-an-arduino-uno-part-3/)\n  - [Part 4](http://jakegoulding.com/blog/2016/05/12/rust-on-an-arduino-uno-part-4/)\n- [Rust on Arduino Due](http://de.slideshare.net/kellogh/glue-con14)\n- http://embedded.hannobraun.de/\n- [Raspberry Pi Bare Metal Programming with Rust](https://blog.thiago.me/raspberry-pi-bare-metal-programming-with-rust/)\n- [Running Rust code on a BBC micro:bit micro-controller](https://github.com/SimonSapin/rust-on-bbc-microbit)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflosse%2Frust-os-comparison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflosse%2Frust-os-comparison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflosse%2Frust-os-comparison/lists"}