{"id":13739952,"url":"https://github.com/Garnek0/GarnOS","last_synced_at":"2025-05-08T19:35:09.113Z","repository":{"id":192224251,"uuid":"673755745","full_name":"Garnek0/GarnOS","owner":"Garnek0","description":"OS powered by a modular kernel","archived":false,"fork":false,"pushed_at":"2024-11-10T10:57:30.000Z","size":7006,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"alpha","last_synced_at":"2024-11-15T09:44:21.265Z","etag":null,"topics":["c","kernel","operating-system","os","osdev"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Garnek0.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":"2023-08-02T10:54:06.000Z","updated_at":"2024-11-12T13:43:26.000Z","dependencies_parsed_at":"2023-09-03T14:11:42.934Z","dependency_job_id":"1b485efa-a302-4010-934e-2cde2c8ffc4e","html_url":"https://github.com/Garnek0/GarnOS","commit_stats":null,"previous_names":["garnek0/garnos"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Garnek0%2FGarnOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Garnek0%2FGarnOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Garnek0%2FGarnOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Garnek0%2FGarnOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Garnek0","download_url":"https://codeload.github.com/Garnek0/GarnOS/tar.gz/refs/heads/alpha","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253135589,"owners_count":21859669,"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":["c","kernel","operating-system","os","osdev"],"created_at":"2024-08-03T04:00:40.115Z","updated_at":"2025-05-08T19:35:08.865Z","avatar_url":"https://github.com/Garnek0.png","language":"C","funding_links":[],"categories":["Open Source Operating Systems"],"sub_categories":[],"readme":"# GarnOS\r\n\r\n![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge\u0026logo=c\u0026logoColor=white\u0026color=orange)\r\n![](https://tokei.rs/b1/github/garnek0/garnos?type=c,c++,cheader,assembly,assemblyGAS,Rust\u0026style=for-the-badge\u0026color=orange)\r\n\r\n\u003cimg width=\"256\" height=\"256\" src=\"GarnOS.svg\"\u003e\r\n\r\nGarnOS is a simple, open-source, 64-bit hobby operating system.\r\n\r\nThe main goals of GarnOS are compatibility and modularity.\r\n\r\n## Notable Features\r\n\r\n- Terminal Emulator\r\n- Module Loader\r\n- Userspace\r\n- Device Manager\r\n\r\n# Building \u0026 Running\r\n\r\n## Dependencies\r\n- GCC and Binutils\r\n- At least a minimum toolset to build a cross-toolchain\r\n- QEMU\r\n- Xorriso (for ISO images)\r\n- GNU Parted\r\n- Git\r\n- make/gmake and cmake (cmake is required by mlibc)\r\n\r\n## Building\r\n\r\nFirst of all, you need to build the toolchain:\r\n```\r\nmake all-toolchain\r\n``` \r\n\r\nThen, in the root directory, run:\r\n```\r\nmake all # ISO Image\r\nmake all-hdd # HDD Image\r\n```\r\nNOTE: The ISO image will probably not work. Use the HDD image instead!\r\n\r\nYou may also run the OS directly, as described below, since the `run-*` targets also build the OS in case it hasn't been built already.\r\n\r\n## Running\r\nIn the root directory, run:\r\n```\r\nmake run # Run using ISO Image\r\nmake run-hdd # Run using HDD Image\r\n```\r\n\r\nYou can also run GarnOS in an EFI environment by appending `-uefi` to the commands shown above\r\n\r\nFor debugging, it is recommended to append `DEBUG=y\"` to whatever make command you're using.\r\n\r\n## License\r\nSee LICENSE for details.\r\n\r\n## Known Bugs\r\n\r\n- Disk access doesnt work properly on \"large\" drives (\u003e ~512 MiB).\r\n- Disk access is EXTREMELY slow. It's so slow it takes 2-4 seconds to load a simple program such as `ls`.\r\n- AHCI driver doesn't work on real hardware.\r\n- mlibc sometimes panics when running user programs.\r\n\r\n## Support\r\n\r\n**General**: PCI \\\r\n**Input**: PS/2 Keyboards \\\r\n**Storage**: IDE, AHCI \\\r\n**File Systems**: FAT32 \\\r\n**Graphics**: Standard Graphics\r\n\r\n\u003cimg src=\"shell.png\"\u003e\r\n\r\n## Acknowledgements\r\n\r\n- Limine Bootloader (mintsuki et al.)\r\n- uACPI (d-tatianin and DataBeaver)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGarnek0%2FGarnOS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGarnek0%2FGarnOS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGarnek0%2FGarnOS/lists"}