{"id":29284430,"url":"https://github.com/fidelicura/orb","last_synced_at":"2025-10-31T05:40:04.828Z","repository":{"id":296604908,"uuid":"993931101","full_name":"fidelicura/orb","owner":"fidelicura","description":"Well-documented implementation of RISC-V kernel in Zig, built on QEMU emulation.","archived":false,"fork":false,"pushed_at":"2025-06-04T20:45:55.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-07T11:16:35.760Z","etag":null,"topics":["kernel","qemu","risc-v","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","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/fidelicura.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":"2025-05-31T20:41:27.000Z","updated_at":"2025-06-07T16:45:31.000Z","dependencies_parsed_at":"2025-06-01T08:28:34.532Z","dependency_job_id":"1195a4ff-81f9-4609-ad2a-083a35278f0e","html_url":"https://github.com/fidelicura/orb","commit_stats":null,"previous_names":["fidelicura/orb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fidelicura/orb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fidelicura%2Forb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fidelicura%2Forb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fidelicura%2Forb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fidelicura%2Forb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fidelicura","download_url":"https://codeload.github.com/fidelicura/orb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fidelicura%2Forb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281936334,"owners_count":26586735,"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","status":"online","status_checked_at":"2025-10-31T02:00:07.401Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","qemu","risc-v","zig"],"created_at":"2025-07-05T21:02:05.892Z","updated_at":"2025-10-31T05:40:04.755Z","avatar_url":"https://github.com/fidelicura.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\nThis project is a very-very commented and detailed explanation on writing your own small kernel for 32-bit RISC-V.\nIt is built upon [QEMU] - an emulation software, using [`virt`].\n\n# Build\n\n1) Install [Zig] programming language:\n- Linux: \u003chttps://ziglang.org/download\u003e\n2) Install [QEMU] system for RISC-V:\n- Ubuntu: `apt install qemu-system-misc`\n- Arch: `pacman -S qemu-system-riscv`\n3) Install [Just] command runner:\n- Ubuntu: `apt install just`\n- Arch: `pacman -S just`\n4) Install [`gdb`] debugger:\n- Ubuntu: `apt install gdb`\n- Arch: `pacman -S gdb`\n4) Run or build in an appropriate way:\n- `just build`: builds a whole project as a single binary\n- `just run`: builds a whole project and runs built binary in a QEMU\n- `just dbg`: builds a whole project and runs build binary in a QEMU with open debugging port\n- `just gdb`: connects to the open QEMU debugging port (_see `just dbg`_) using [`gdb`]\n\n\u003eThere is also `helper.gdb` [GDB] script for printing relevant information while debugging. You may find it useful.\n\n# Code\n\nOrder of look-through:\n1) `src/linker.lds`\n2) `src/boot.s`\n3) `src/kernel.zig`\n4) `src/uart.zig`\nJust read comments from file in a provided order.\n\n# Clarifications\n\nKernel is built for 4-core RV32IM ISA compatible CPU with ILP32 ABI using [GNU] toolchain (see [GCC]). The source code does not implement BIOS, only the kernel itself!\n\n\u003c!-- Appendix: links --\u003e\n[QEMU]: https://qemu.org\n[`virt`]: https://qemu.org/docs/master/system/riscv/virt.html\n[Zig]: https://ziglang.org\n[Just]: https://just.systems\n[`gdb`]: https://gnu.org/software/gdb\n[GDB]: https://gnu.org/software/gdb\n[GNU]: https://gnu.org/\n[GCC]: https://gcc.gnu.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffidelicura%2Forb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffidelicura%2Forb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffidelicura%2Forb/lists"}