{"id":16799711,"url":"https://github.com/bugenzhao/litchi-rs","last_synced_at":"2026-03-11T19:06:42.340Z","repository":{"id":103498742,"uuid":"472465238","full_name":"BugenZhao/litchi-rs","owner":"BugenZhao","description":"An x86-64 kernel with ~100% Rust (originally) in a week. `async` inside!","archived":false,"fork":false,"pushed_at":"2022-05-08T16:26:34.000Z","size":188,"stargazers_count":53,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T11:28:03.218Z","etag":null,"topics":["kernel","osdev","rust-osdev","x86-64"],"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/BugenZhao.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}},"created_at":"2022-03-21T18:34:50.000Z","updated_at":"2024-10-07T16:01:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"927a7732-4df2-4bab-a375-84f69384fe01","html_url":"https://github.com/BugenZhao/litchi-rs","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/BugenZhao%2Flitchi-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugenZhao%2Flitchi-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugenZhao%2Flitchi-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugenZhao%2Flitchi-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BugenZhao","download_url":"https://codeload.github.com/BugenZhao/litchi-rs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugenZhao%2Flitchi-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259164048,"owners_count":22815262,"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":["kernel","osdev","rust-osdev","x86-64"],"created_at":"2024-10-13T09:29:34.434Z","updated_at":"2026-03-11T19:06:37.309Z","avatar_url":"https://github.com/BugenZhao.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# litchi-rs\n\nAn x86-64 kernel with ~100% Rust (originally) in a week. The continuation of [Litchi](https://github.com/BugenZhao/Litchi).\n\n![Screenshot](https://user-images.githubusercontent.com/25862682/164913642-d955504b-7d66-4136-be95-12d52157580c.png)\n\n## Try it\n\nMake sure the Rust toolchains and `qemu-system-x86_64` are installed, then simply execute...\n\n```bash\nmake qemu PROFILE=release\n```\n\n## Roadmap\n\n### Booting\n\n- [x] Bare-metal UEFI application.\n- [x] In-memory ELF program loader.\n- [x] Locate kernel executable with UEFI's simple file system.\n- [x] Jump into the kernel.\n- [x] Prepare `BootInfo` and pass to the kernel.\n- [ ] ...\n\n### Kernel Initializations\n\n- [x] Serial logger.\n- [x] Global Descriptor Table \u0026 Task State Segment.\n- [x] Physical frame allocator, based on the boot info.\n- [x] Kernel page table.\n- [x] Kernel heap allocation \u0026 `extern crate alloc`.\n- [x] Resolve ACPI table for interrupts \u0026 multiprocessors.\n- [x] Trap handlers for critical faults.\n- [x] Local APIC for the timer interrupt.\n- [x] IO APIC for the UART serial.\n- [ ] Bootstrap application processors.\n- [ ] ...\n\n### User Tasks\n\n- [x] Load embedded ELF user programs.\n- [x] RAII-style user memory allocator and mapper.\n- [x] User library to provide init code.\n- [x] Switch to user mode.\n- [x] Frame-preserving timer interrupt handler for preemption.\n- [x] Round-robin task scheduler.\n- [x] System calls with shared memory.\n- [x] User heap allocator.\n- [x] Task recycling.\n- [x] Idle task with kernel privilege.\n- [x] Basic priority-based scheduler.\n- [x] File or device resource management.\n- [x] Blocking system calls.\n- [x] A basic userspace shell.\n- [ ] Task spawning and forking.\n- [ ] Synchronization primitives.\n- [ ] Asynchronous IO.\n- [ ] ...\n\n### Other Kernel Functionalities\n\n- [x] Event-driven UART serial input handler.\n- [x] Kernel task with async Rust!\n- [ ] Multiprocessors.\n- [ ] Simple file systems.\n- [ ] IPC mechanisms.\n- [ ] ...\n\n\n## References\n\n- https://os.phil-opp.com\n- https://github.com/BugenZhao/Litchi\n- https://github.com/alesharik/distros\n- https://github.com/rcore-os/rboot\n- https://github.com/rcore-os/trapframe-rs\n- https://osdev.org\n- https://pdos.csail.mit.edu/6.828/2018/schedule.html\n- ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugenzhao%2Flitchi-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugenzhao%2Flitchi-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugenzhao%2Flitchi-rs/lists"}