{"id":43343838,"url":"https://github.com/automas-dev/os","last_synced_at":"2026-02-02T01:19:42.186Z","repository":{"id":275499070,"uuid":"785968477","full_name":"automas-dev/os","owner":"automas-dev","description":"Hobby i386 Operating System","archived":false,"fork":false,"pushed_at":"2025-12-25T02:01:15.000Z","size":1095,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-25T16:53:49.148Z","etag":null,"topics":[],"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/automas-dev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-13T03:21:19.000Z","updated_at":"2025-12-22T18:07:53.000Z","dependencies_parsed_at":"2025-03-22T22:25:09.789Z","dependency_job_id":"4c0ca9b5-c4c0-471c-8627-ffabd42c92a2","html_url":"https://github.com/automas-dev/os","commit_stats":null,"previous_names":["twh2898/os","automas-dev/os"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/automas-dev/os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automas-dev%2Fos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automas-dev%2Fos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automas-dev%2Fos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automas-dev%2Fos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/automas-dev","download_url":"https://codeload.github.com/automas-dev/os/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/automas-dev%2Fos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28998619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T23:10:54.274Z","status":"ssl_error","status_checked_at":"2026-02-01T23:10:47.298Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-02-02T01:19:42.104Z","updated_at":"2026-02-02T01:19:42.169Z","avatar_url":"https://github.com/automas-dev.png","language":"C","readme":"# os\n\n~~Following the tutorials under https://github.com/cfenollosa/os-tutorial~~\n\nActive and planned work is tracked in [notes.md](notes.md)\n\nFor current specs see\n\n- [boot.md](design/boot.md)\n- ~~[filesystem.md](design/filesystem.md)~~\n- [memory.md](design/memory.md)\n- [process.md](design/process.md)\n- [system_call.md](design/system_call.md)\n\n## Goals\n\nThe OS will be finished when all of the following are implemented.\n\n1. Able to get and draw basic http web page\n2. Compiler for at least Assembly or C\n3. Playable Minecraft Clone\n\nThe following lists show the planned development stages and planned tasks to\nachieve these goals.\n\n### Near Near Term\n\n- [x] Read extended kernel form floppy\n- [x] Switch to protected mode\n- [x] some stdio.h\n- [x] printf\n- [x] some string.h\n- [x] keyboard driver\n- [x] ata driver\n- [x] terminal with command parsing\n- [x] circular buffer + tests (builtin, needs separating)\n\n### Near Term\n\n- [ ] Kernel stats (stats command returns # disk io, keys, mounts, etc.)\n- [ ] Detect stack overflows\n- [ ] fs\n  - [ ] Finish implementing fs functions\n  - [ ] Implement file io\n- [x] basic malloc (linked list)\n- [x] malloc\n  - [x] Actually manage memory\n  - [x] Need to find end of kernel to not overflow at runtime (for malloc start)\n  - [x] Detect max memory for malloc\n  - [x] Do that fancy memory map\n- [x] Paging\n  - [x] Setup page dir and table\n  - [x] Enter paging\n- [x] Load user space application\n- [ ] Ring 3\n  - [x] Kernel Service Calls\n- [ ] Date and Time\n- [ ] Optional don't disable interrupts during interrupt (nested interrupts)\n- [x] Better key event buffer (with mods) (maybe in addition to char buffer)\n- [x] Change stdlib names with k prefix for namespace during testing\n- [ ] Optimize disk read to check if area already in buffer\n\n### Long Term\n\nThese tasks will be broken down further after completion of Near Term, when\nthere is a better foundation and design to work with.\n\n- [ ] Switch to 2d graphics mode\n- [x] Virtual memory pages / memory paging\n- [ ] Memory permissions (eg. stack can't exec, code can't write)\n- [ ] User level applications (might need 3rd level kernel from filesystem)\n- [ ] Testing\n- [ ] FAT or EXT2 filesystem driver\n- [ ] Audio Driver\n- [x] 64 bit support printf (needs libgcc)\n- [ ] Text editor\n\n### Long Long Term\n\nThese tasks will be broken down further after completion of Long Term, when\nthere is enough support for their development.\n\n- [ ] Graphics card driver (pseudo opengl)\n- [ ] Threading / multi-process\n- [ ] (Maybe) Multiboot or GRUB?\n\n## Setup\n\nYou will need to install the gcc i386 elf cross compiler. This project expects\nthis to be under `~/.local/opt/cross` but this can be changed by editing the\nroot `CMakeLists.txt`. For instructions of how to build the i386 elf compiler\nfrom source, follow the instructions on the OS-Dev Wiki\n[GCC_Cross-Compiler](https://wiki.osdev.org/GCC_Cross-Compiler)\n\n```sh\ngit clone git@github.com:automas-dev/os.git\ncd os\nmake setup\n```\n\n### Building\n\n```sh\nmake build\n```\n\n### Running\n\n```sh\nmake run\n```\n\nOnce running, use the `help` command to see what you can do.\n\n### Testing\n\n```sh\nmake test\nmake test_cov\nmake test_cov DARK_MODE=ON\n```\n\n### Formatting / Linting\n\n```sh\nmake lint\nmake format\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomas-dev%2Fos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautomas-dev%2Fos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomas-dev%2Fos/lists"}