{"id":34540417,"url":"https://github.com/d3ara1n/halcyon","last_synced_at":"2026-05-28T22:31:11.288Z","repository":{"id":49526084,"uuid":"461751706","full_name":"d3ara1n/halcyon","owner":"d3ara1n","description":"学习用RUST写RISCV操作系统","archived":false,"fork":false,"pushed_at":"2024-06-29T08:57:49.000Z","size":5397,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-29T09:50:33.553Z","etag":null,"topics":["embedded","kernel","operating-system","osdev","risc-v","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d3ara1n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-02-21T07:35:44.000Z","updated_at":"2024-04-29T07:33:34.000Z","dependencies_parsed_at":"2024-06-29T09:46:59.125Z","dependency_job_id":"5176bb53-03a5-4a0b-b58e-3f8ed91dfedc","html_url":"https://github.com/d3ara1n/halcyon","commit_stats":null,"previous_names":["d3ara1n/halcyon"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/d3ara1n/halcyon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ara1n%2Fhalcyon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ara1n%2Fhalcyon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ara1n%2Fhalcyon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ara1n%2Fhalcyon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3ara1n","download_url":"https://codeload.github.com/d3ara1n/halcyon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ara1n%2Fhalcyon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33629560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"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":["embedded","kernel","operating-system","osdev","risc-v","rust"],"created_at":"2025-12-24T06:15:52.077Z","updated_at":"2026-05-28T22:31:11.283Z","avatar_url":"https://github.com/d3ara1n.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eRhino\n\n操作系统学习：RV64\n\n## 设计\n\n参阅 `./notes/{doc}.md`\n\n## 进度\n\n- [ ] IPC\n  - [x] 信号\n  - [ ] 消息\n  - [ ] 隧道\n    - [x] syscall\n    - [ ] Runnel\n- [ ] 设备租借\n  - [ ] 中断转发\n- [ ] 文件系统\n  - [ ] FAL/syscall\n    - [x] access\n    - [x] inspect\n    - [x] read\n    - [x] write\n    - [ ] create\n    - [ ] delete\n    - [ ] open\n  - [ ] FAL/ipc\n  - [ ] 内核文件系统\n    - [ ] rootfs\n    - [ ] procfs\n    - [ ] sysfs\n  - [ ] 具体文件系统\n    - [ ] FAT32\n\n## (将)受支持的平台\n\n- [x] qemu-virt: 4 cores 128MB ram with MMU\n- [x] qemu-sifive_u: 5 cores(#0 disabled) 128MB ram with MMU\n- [ ] k210: 2 cores 8MB ram with MMU *内存太少了哇*\n- [ ] D1s(F133): single core 64MB with MMU\n\n只有 virt 能跑，其他的会遇到莫名bug\n\n## 标准库\n\n~~Porting std is huge work, I wont do it at the current stage.~~\n\n仅提供 `rinlib`\n\n## 源码使用\n\n构建系统用的 Justfile, 可执行名为 `/bin/just`\n\n使用参数 `PLATFORM` 和 `MODEL` 来对应 `platforms/{{PLATFORM}}/{{MODEL}}/*` 的设备文件。\n由于我不知道如何用 just 做到使用 dict 保存并应用 PLATFORM/MODEL 到 OpenSBI/PLATFORM/FW_CONFIG 的特定配置，编译或者运行需要 `just build(或run)_$MODEL`，要求指定型号。\n\n### 构建\n\n```sh\njust PLATFORM=foo MODEL=bar build\n```\n\n### 运行\n\n需要 `qemu-system-riscv64`\n\n```sh\njust run\n```\n\n### 调试\n\n~~~用 gdb 调试会有字长问题，这里用`riscv64-elf-gdb`~~~\n用 riscv64-elf-gdb 调试会有 rust-testsuit 问题，这里用 `git-multiarch`\n\n```sh\njust debug\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3ara1n%2Fhalcyon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3ara1n%2Fhalcyon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3ara1n%2Fhalcyon/lists"}