{"id":20784230,"url":"https://github.com/sohnryang/skeleton-os","last_synced_at":"2026-05-17T17:09:08.112Z","repository":{"id":92290501,"uuid":"329851871","full_name":"sohnryang/skeleton-os","owner":"sohnryang","description":"OS with bare bones only. (WIP)","archived":false,"fork":false,"pushed_at":"2021-12-09T13:43:36.000Z","size":56,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-18T09:33:03.941Z","etag":null,"topics":["assembly","c","os"],"latest_commit_sha":null,"homepage":"","language":"C","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/sohnryang.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":"2021-01-15T08:24:08.000Z","updated_at":"2021-12-09T13:43:40.000Z","dependencies_parsed_at":"2023-05-16T19:00:37.820Z","dependency_job_id":null,"html_url":"https://github.com/sohnryang/skeleton-os","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/sohnryang%2Fskeleton-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sohnryang%2Fskeleton-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sohnryang%2Fskeleton-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sohnryang%2Fskeleton-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sohnryang","download_url":"https://codeload.github.com/sohnryang/skeleton-os/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243125564,"owners_count":20240276,"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":["assembly","c","os"],"created_at":"2024-11-17T14:27:12.649Z","updated_at":"2026-05-17T17:09:03.077Z","avatar_url":"https://github.com/sohnryang.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skeletonOS\n\nOS with bare bones only. (That's why the name is skeletonOS)\n\n## Why?\n\nI cloned [torvalds/linux](https://github.com/torvalds/linux) a few weeks ago, and still don't know what I should do. So I decided to learn some OS concepts by building one.\n\n## Project Goals\n\n[Track progress here](https://github.com/sohnryang/skeleton-os/projects/2)\n\n- Write most of the OS in C language for portability\n  - Main target arch will be x86(-64) and ARM though\n- Should run on actual hardware such as Raspberry Pi\n- Feature basic OS elements such as file system and process scheduling.\n\n## Building \u0026 Running the OS\n\nThis project uses [`meson`](https://mesonbuild.com/) as a build system. Therefore, `meson` and `ninja` is needed.\n\n### x86\n\nx86 builds require a compiler which targets `i686-elf`. OSDev Wiki has [an article](https://wiki.osdev.org/GCC_Cross-Compiler) about how to build such compiler yourself.\n\n```\n$ meson setup build --cross-file=cross-files/cross.ini --cross-file=cross-files/i686.ini\n$ cd build\n$ ninja\n```\n\n`os.bin` will be created after a successful build. This file can be run in QEMU using `-kernel` flag.\n\n```\n$ qemu-system-i386 -kernel os.bin\n```\n\n### local (libc test only)\n\nlibc is platform-independent, so it can be built locally, for running unit tests.\n\n```\n$ meson setup build-libc --native-file=native-files/libc-local.ini\n$ cd build-libc\n$ ninja\n```\n\nUnit test can be run using `test` target.\n\n```\n$ ninja test\n```\n\n## Build Status\n\n| libc unit tests                                              | OS integration test                                       |\n| ------------------------------------------------------------ | --------------------------------------------------------- |\n| [![Run libc unit tests](https://github.com/sohnryang/skeleton-os/actions/workflows/libc-unit-test.yml/badge.svg)](https://github.com/sohnryang/skeleton-os/actions/workflows/libc-unit-test.yml) | [WIP](https://github.com/sohnryang/skeleton-os/issues/14) |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsohnryang%2Fskeleton-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsohnryang%2Fskeleton-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsohnryang%2Fskeleton-os/lists"}