{"id":14990739,"url":"https://github.com/zystemos/pluto","last_synced_at":"2026-04-04T12:57:31.379Z","repository":{"id":37029325,"uuid":"177123135","full_name":"ZystemOS/pluto","owner":"ZystemOS","description":"An x86 kernel written in Zig","archived":false,"fork":false,"pushed_at":"2024-01-03T14:09:27.000Z","size":2907,"stargazers_count":620,"open_issues_count":34,"forks_count":27,"subscribers_count":15,"default_branch":"develop","last_synced_at":"2025-04-04T12:52:24.400Z","etag":null,"topics":["hacktoberfest","kernel","operating-system","x86","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/ZystemOS.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}},"created_at":"2019-03-22T10:49:28.000Z","updated_at":"2025-04-04T08:13:49.000Z","dependencies_parsed_at":"2024-05-03T03:01:51.512Z","dependency_job_id":"897457ce-dd4e-4735-931b-ae733e8e9081","html_url":"https://github.com/ZystemOS/pluto","commit_stats":null,"previous_names":["samtebbs33/pluto"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZystemOS%2Fpluto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZystemOS%2Fpluto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZystemOS%2Fpluto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZystemOS%2Fpluto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZystemOS","download_url":"https://codeload.github.com/ZystemOS/pluto/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247182389,"owners_count":20897381,"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":["hacktoberfest","kernel","operating-system","x86","zig"],"created_at":"2024-09-24T14:20:42.227Z","updated_at":"2026-04-04T12:57:31.335Z","avatar_url":"https://github.com/ZystemOS.png","language":"Zig","readme":"# Pluto\n\n[![Build Status](https://github.com/SamTebbs33/pluto/workflows/CI/badge.svg)](https://github.com/SamTebbs33/pluto/actions)\n\nPluto is a kernel written almost entirely in [Zig](https://github.com/ziglang/zig) and supports x86, with aarch64 and x64 backends being planned.\n\n![Hello image](hello.jpg)\n\n## Goals\n\n* **Should be written in Zig as much as possible**. Assembly should only be used where required for functionality or performance reasons.\n* **Light and performant**. The kernel should be usable both on embedded and desktop class CPUs, made possible by it being lightweight and modular.\n* **Basic utilities will be written in Zig**. This includes a basic text editor and shell, and will be part of the filesystem external to the kernel itself.\n* **Easy to port**. The kernel is oblivious to the underlying architecture, meaning that ports only need to implement the defined interface and they should work without a hitch.\n\nAll of these goals will benefit from the features of Zig.\n\n## Build\n\nRequires a master build of Zig 0.9.1([downloaded](https://ziglang.org/download) or [built from source](https://github.com/ziglang/zig#building-from-source)), *xorriso* and the grub tools (such as *grub-mkrescue*). A *qemu-system* binary compatible with your chosen target is required to run the kernel (e.g. *qemu-system-i386*).\n\n```Shell\nzig build\n```\n\n## Run\n\n```Shell\nzig build run\n```\n\nor if you want to wait for a gdb connection:\n\n```Shell\nzig build debug-run\n```\n\n## Debug\n\nLaunch a gdb-multiarch instance and connect to qemu.\n\n```Shell\nzig build debug\n```\n\n## Unit testing\n\nRun the unit tests.\n\n```Shell\nzig build test\n```\n\n## Runtime testing\n\nRun the runtime tests.\n\n```Shell\nzig build rt-test -Dtest-mode=\u003cMODE\u003e\n```\n\nAvailable test modes:\n\n* `None`: This is the default, this will run the OS normally.\n* `Initialisation`: Run the OS's initialisation runtime tests to ensure the OS is properly set up.\n* `Panic`: Run the panic runtime test.\n\n## Options\n\n* `-D[build-mode]=`: Boolean (default `false`).\n  * **build**: Build a certain build mode (*release-safe*, *release-fast*, *release-small*). Don't set in order to use the *debug* build mode.\n  * **test**: Test a certain build mode (*release-safe*, *release-fast*, *release-small*). Don't set in order to use the *debug* build mode.\n* `-Dtarget=`: String (default `i386-freestanding`). The standard target options for building with zig. Currently supported targets:\n  * `i386-freestanding`\n* `-Ddisable-display`: Boolean (default `false`)\n  * This disables the display output of QEMU.\n\n## Contribution\n\nWe welcome all contributions, be it bug reports, feature suggestions or pull requests. We follow the style mandated by zig fmt so make sure you've run `zig fmt` on your code before submitting it.\n\nWe also like to order a file's members (public after non-public):\n\n1. imports\n2. type definitions\n3. constants\n4. variables\n5. inline functions\n6. functions\n7. entry point/init function\n\nMore styling information is available on the [wiki](https://github.com/SamTebbs33/pluto/wiki/Code-Styling-(Detailed))\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzystemos%2Fpluto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzystemos%2Fpluto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzystemos%2Fpluto/lists"}