{"id":20917223,"url":"https://github.com/c1m50c/rust-os","last_synced_at":"2026-04-23T15:36:53.119Z","repository":{"id":155671722,"uuid":"627228596","full_name":"c1m50c/rust-os","owner":"c1m50c","description":"Repository loosely following the \"Writing an Operating System in Rust\" blog by Philipp Oppermann.","archived":false,"fork":false,"pushed_at":"2023-07-09T17:33:41.000Z","size":42,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-19T16:42:20.593Z","etag":null,"topics":["actions","github-actions","kernel","qemu","rust","rust-lang","rust-os"],"latest_commit_sha":null,"homepage":"https://os.phil-opp.com/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c1m50c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2023-04-13T03:24:56.000Z","updated_at":"2023-06-18T02:24:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c9a421f-2838-45a3-92fd-f553ff16d2ef","html_url":"https://github.com/c1m50c/rust-os","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/c1m50c%2Frust-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c1m50c%2Frust-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c1m50c%2Frust-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c1m50c%2Frust-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c1m50c","download_url":"https://codeload.github.com/c1m50c/rust-os/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243311390,"owners_count":20270963,"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":["actions","github-actions","kernel","qemu","rust","rust-lang","rust-os"],"created_at":"2024-11-18T16:31:19.937Z","updated_at":"2025-12-26T16:02:57.236Z","avatar_url":"https://github.com/c1m50c.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rust-os\n\n[![Verify](https://github.com/c1m50c/rust-os/actions/workflows/verify.yaml/badge.svg?branch=main\u0026event=push)](https://github.com/c1m50c/rust-os/actions/workflows/verify.yaml)\n\nRepository following the [\"Writing an Operating System in Rust\"] blog by Philipp Oppermann. \n\n[\"Writing an Operating System in Rust\"]: https://os.phil-opp.com/\n\n## Installing Requirements\n\n### Compilation Tools\n\nThis operating system is written in Rust so you'll need to install the language's compilation tools by running the following commmands:\n\n#### Windows\n\n```bash\n$ choco install rust\n```\n\n#### MacOS\n\n```bash\n$ brew install rust\n```\n\n### Nightly Channel\n\nAlongside the normal compilation toolkit you'll need to add the [`nightly`] channel to your [`rustup`] installation, you can do so by running the following commands:\n\n```bash\n$ rustup update\n\u003e ...\n\n$ rustup toolchain install nightly\n\u003e ...\n\n# Also add the `x86_64-unknown-none` build target for compiling our kernel.\n$ rustup target add x86_64-unknown-none\n```\n\n[`rustup`]: https://rust-lang.github.io/rustup/index.html\n[`nightly`]: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust\n\n### QEMU\n\nLastly, you'll need to install [QEMU] to emulate our operating system. To do so, follow the [installation instructions] for the platform you're currently using.\n\n[QEMU]: https://www.qemu.org/\n[installation instructions]: https://www.qemu.org/download/\n\n## Running\n\nAfter you've installed all of the requirements, running the operating system should be as simple as executing any of the following commands:\n\n```bash\n$ cargo run --release -- help\n\u003e ... # Help menu will pop up displaying a valid list of commands\n\n$ cargo run --release -- uefi\n\u003e ... # QEMU Window should pop up launching our kernel's UEFI image\n\n$ cargo run --release -- bios\n\u003e ... # QEMU Window should pop up launching our kernel's BIOS image\n```\n\n## Testing\n\nDue to the way this currently setup, testing is a bit funky. You can run the following commands to launch the kernel in test mode:\n\n```bash\n# This can be set to any value, as long as its present the kernel will be compiled in test mode.\n$ export KERNEL_TEST_MODE=\"true\"\n\n$ cargo run --release -F testing -- \u003cuefi||bios\u003e\n\u003e ...\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc1m50c%2Frust-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc1m50c%2Frust-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc1m50c%2Frust-os/lists"}