{"id":20797702,"url":"https://github.com/littlefox94/lf-os_amd64","last_synced_at":"2025-05-06T18:43:41.630Z","repository":{"id":77328128,"uuid":"206421393","full_name":"LittleFox94/lf-os_amd64","owner":"LittleFox94","description":"Hobby operating system for amd64 with high ambitions - mirror","archived":false,"fork":false,"pushed_at":"2025-04-29T11:21:23.000Z","size":1843,"stargazers_count":44,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-29T12:26:24.426Z","etag":null,"topics":["amd64","hobby-os","kernel","lowlevel","microkernel","osdev"],"latest_commit_sha":null,"homepage":"https://praios.lf-net.org/littlefox/lf-os_amd64","language":"C++","has_issues":false,"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/LittleFox94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":["LittleFox94"]}},"created_at":"2019-09-04T21:51:21.000Z","updated_at":"2025-04-29T11:21:28.000Z","dependencies_parsed_at":"2023-10-31T19:23:39.728Z","dependency_job_id":"9a3c127a-2970-4e53-8ad4-dd5e8851a9f9","html_url":"https://github.com/LittleFox94/lf-os_amd64","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/LittleFox94%2Flf-os_amd64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleFox94%2Flf-os_amd64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleFox94%2Flf-os_amd64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleFox94%2Flf-os_amd64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LittleFox94","download_url":"https://codeload.github.com/LittleFox94/lf-os_amd64/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252747290,"owners_count":21798125,"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":["amd64","hobby-os","kernel","lowlevel","microkernel","osdev"],"created_at":"2024-11-17T16:34:59.242Z","updated_at":"2025-05-06T18:43:41.609Z","avatar_url":"https://github.com/LittleFox94.png","language":"C++","funding_links":["https://github.com/sponsors/LittleFox94"],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" height=\"100\" src=\"LF OS.svg\"\u003e\n\n# LF OS\n\nThis is the 5th(?) attempt at writing an operating system from scratch, where \"attempt\" means: starting from zero.\n\nDevelopment mainly happens on my Gitlab at\n\u003ca href=\"https://praios.lf-net.org/littlefox/lf-os_amd64\" target=\"_blank\"\u003ehttps://praios.lf-net.org/littlefox/lf-os_amd64\u003c/a\u003e - check it out!\n\n[It can run Doom!](https://twitter.com/0x0a_fox/status/1386095877165551616)\n\n## Key difference to previous attempts\n\n* amd64, why use i386 like everyone else when I did not even manage to get a working system there?\n* uefi and custom loader, why use Grub like everyone else when I did not even ...... ^\n* I'm actually able to program things now\n  - I actually became a good software developer in the meantime\n  - first attempt was even before finishing school\n* there are some docs\n* I thought about system design and even wrote some things down\n* I don't write throw-away code or just paste tutorials right now\n  - maybe later in user space though\n\n## Design\n\nThis will be a microkernel providing the following inside the kernel\n\n* base system initialization (CPU, physical memory, common bus systems)\n* memory management for processes (virtual memory)\n* inter-process communication facilities\n  - mostly via shared memory and message queues\n  - later also via helper userspace programs to make communication between processes A and B over an arbitrary\n    channel between C and D, where A, B, C and D may run on different computers\n  - IPC between different computers will be transparent to processes in a later version\n* service registry\n  - processes announce services (file system, block device, character device, ...)\n  - other processes need services\n  - ask kernel for process implementing service x\n  - IPC to process for service x\n\nAll drivers for special hardware (everything not attached to a common bus) are userspace programs that will be\ndesigned to recover after crashed. They can store a small amount of information in the kernel (like hard disk\nx is fully initialized, just read from address $y and port $x) and when they crash, they are just restarted.\n\nSince IPC between processes running on different computers is planned to be transparent, it's actually\npossible to run a single instance of LF OS on a whole data center (or bigger, but latency).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlefox94%2Flf-os_amd64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flittlefox94%2Flf-os_amd64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlefox94%2Flf-os_amd64/lists"}