{"id":18033930,"url":"https://github.com/sjkingo/luminary","last_synced_at":"2025-10-12T07:37:28.895Z","repository":{"id":142697015,"uuid":"37751628","full_name":"sjkingo/luminary","owner":"sjkingo","description":"Luminary is a small x86 real-time operating system","archived":false,"fork":false,"pushed_at":"2020-04-29T01:44:22.000Z","size":128,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-03T08:45:06.485Z","etag":null,"topics":["kernel","operating-system","osdev","qemu","real-time","ulysses","x86"],"latest_commit_sha":null,"homepage":"","language":"C","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/sjkingo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-06-20T00:08:14.000Z","updated_at":"2024-03-07T11:19:35.000Z","dependencies_parsed_at":"2023-04-07T05:32:34.469Z","dependency_job_id":null,"html_url":"https://github.com/sjkingo/luminary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sjkingo/luminary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjkingo%2Fluminary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjkingo%2Fluminary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjkingo%2Fluminary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjkingo%2Fluminary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjkingo","download_url":"https://codeload.github.com/sjkingo/luminary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjkingo%2Fluminary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010667,"owners_count":26084784,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":["kernel","operating-system","osdev","qemu","real-time","ulysses","x86"],"created_at":"2024-10-30T11:08:59.458Z","updated_at":"2025-10-12T07:37:28.887Z","avatar_url":"https://github.com/sjkingo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Luminary OS\n\nLuminary is a small x86 real-time operating system written in C and assembly.\nIts goal is to implement a kernel that includes a hard real-time scheduler that\ncan run time-sensitive tasks.\n\nIt takes concepts from an existing operating system by the same author called [Ulysses](https://github.com/sjkingo/ulysses).\n\nWritten by Sam Kingston.\n\n**Latest version: 0.10.0**\n\n![Luminary, version 0.10.0](https://raw.githubusercontent.com/sjkingo/luminary/master/screenshots/startup-0.10.0.png \"Luminary, version 0.10.0\")\n\n## Features\n\n* Small codebase\n* Hard priority-based [preemptive scheduler](https://github.com/sjkingo/luminary/blob/master/src/sched.c#L1-L82)\n* Flat memory model (no virtual addresses)\n* Support for [basic I/O drivers](https://github.com/sjkingo/luminary/tree/master/src/drivers)\n\nSome architecture notes and *gotchas* are located in [NOTES.md](https://github.com/sjkingo/luminary/blob/master/NOTES.md).\n\n## Build configuration\n\nYou may configure the build by editing the `$DEFINES` variable at the top of [`src/Makefile`](https://github.com/sjkingo/luminary/blob/master/src/Makefile#L3).\n\nAvailable options are:\n\n* `-DDEBUG`: produce debugging output to the console. You probably want this with `-DTURTLE`\n* `-DTURTLE`: scale the scheduler down to 1 task per second\n* `-DUSE_SERIAL`: enable the serial subsystem, which writes console output to COM1. This may be used with `qemu -nographic`.\n\n## How to build\n\nFirst, ensure all build requirements are met:\n\n* `gcc` and GNU `as` compilers that are capable of producing 32-bit executables\n* `glibc-devel.i686`\n\nThen, building the kernel is as simple as running the included `Makefile`:\n\n```bash\n$ make -C src\n```\n\n## Running\n\nAfter building, you may run the kernel in QEMU with some shortcuts:\n\nTo have QEMU load the kernel image directly, opening an SDL window (fastest):\n\n```bash\n$ make -C src qemu\n```\n\nOr to build a bootable ISO image with Grub2 Multiboot and boot that way (requires `xorriso`):\n\n```bash\n$ make -C src qemucd\n```\n\nYou may also redirect output to the terminal by using:\n\n```bash\n$ make -C src console\n```\n\nNote that the kernel must be built with the `-DUSE_SERIAL` option for this to work or you will\nget no output from the kernel.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjkingo%2Fluminary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjkingo%2Fluminary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjkingo%2Fluminary/lists"}