{"id":19278257,"url":"https://github.com/i5-650/turb-os","last_synced_at":"2026-05-17T10:35:45.940Z","repository":{"id":67632633,"uuid":"446205576","full_name":"i5-650/Turb-OS","owner":"i5-650","description":"A small OS made in C/C++, made for a supervized project ! This project is NOT an example","archived":false,"fork":false,"pushed_at":"2024-09-01T00:07:44.000Z","size":26666,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-18T18:22:40.046Z","etag":null,"topics":["c","cpp","operating-system","os","school-project"],"latest_commit_sha":null,"homepage":"","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/i5-650.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-09T21:21:14.000Z","updated_at":"2024-09-01T00:08:04.000Z","dependencies_parsed_at":"2024-11-09T21:09:01.157Z","dependency_job_id":null,"html_url":"https://github.com/i5-650/Turb-OS","commit_stats":null,"previous_names":["i5-650/turb-os"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/i5-650/Turb-OS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i5-650%2FTurb-OS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i5-650%2FTurb-OS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i5-650%2FTurb-OS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i5-650%2FTurb-OS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i5-650","download_url":"https://codeload.github.com/i5-650/Turb-OS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i5-650%2FTurb-OS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33135098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["c","cpp","operating-system","os","school-project"],"created_at":"2024-11-09T21:08:55.135Z","updated_at":"2026-05-17T10:35:45.924Z","avatar_url":"https://github.com/i5-650.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Turb-OS\nThis project was done to be a school projet, it's NOT an example... About why and how, everything is explained bellow. \nThere is an `image.iso` which is the last working Turb-OS' ISO. \nYou can try to compile it by yourself, but Turb-OS is based on an old version of `limine`. \n\n## What's the goal ?\n\nHave a \"usable\" OS that can be used on embedded systems. \nMeaning we want to implement:\n- dynamic allocation\n- scheduling / multitasking\n- minimal display\n\n## Tools used:\n- clang\n- lld\n- LLVM\n- Make\n- nasm\n- qemu\n- xorriso\n- wget\n- tar\nYou may encounter problems while compiling on the asm files, an error about reference. Using development version of those tools may solve it (I used to be on manjaro and have development version tools, didn't find yet where the bug comes from)\n\n### Install tools\n```\nsudo apt-get install clang lld make nasm xorriso wget tar qemu-system-x86\n```\n\nif you're on windows, you need to compile with a WSL and run it with qemu ON WINDOWS\n\nAfter cloning the repo, you can compile and run the OS by using:\n```\nmake all\n```\nor to go faster and use multiple cores\n```\nmake -j$(nproc --all)\n```\n\n\n# TODO LIST\n\n- [x] minimal display\n- [x] dynamic allocation\n- [x] interruptions\n- [x] keyboard input (PS/2)\n- [x] mouse input (PS/2)\n- [x] SMP\n- [x] UBSAN\n- [x] serial debugging\n- [x] kernel panic\n- [x] HPET (not tested)\n- [x] scheduler\n- [x] VFS\n\n## Quick preview\n### Starting and Commands\n![Starting and Commands](screens/introduction.png)\n### Filesystem\n![Filesystem](screens/filesystem.png)\n### Drawing with the mouse\n![Drawing with the mouse](screens/drawing.png)\n### Multitasking\n![Multi-threading](screens/multi.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi5-650%2Fturb-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fi5-650%2Fturb-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi5-650%2Fturb-os/lists"}