{"id":26689412,"url":"https://github.com/muellerconstantin/ttos","last_synced_at":"2026-05-04T03:35:48.803Z","repository":{"id":258308986,"uuid":"823623388","full_name":"MuellerConstantin/ttos","owner":"MuellerConstantin","description":"Just another Tiny Toy Operating System (TTOS) for learning purposes.","archived":false,"fork":false,"pushed_at":"2024-10-29T11:19:46.000Z","size":378,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T13:19:04.719Z","etag":null,"topics":["assembly","c","grub2","hobby-os","kernel","multiboot","osdev","x86"],"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/MuellerConstantin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-07-03T11:42:20.000Z","updated_at":"2024-10-29T11:19:50.000Z","dependencies_parsed_at":"2024-11-26T18:02:12.867Z","dependency_job_id":null,"html_url":"https://github.com/MuellerConstantin/ttos","commit_stats":null,"previous_names":["muellerconstantin/ttos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MuellerConstantin/ttos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuellerConstantin%2Fttos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuellerConstantin%2Fttos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuellerConstantin%2Fttos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuellerConstantin%2Fttos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MuellerConstantin","download_url":"https://codeload.github.com/MuellerConstantin/ttos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuellerConstantin%2Fttos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32593945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"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":["assembly","c","grub2","hobby-os","kernel","multiboot","osdev","x86"],"created_at":"2025-03-26T14:35:37.883Z","updated_at":"2026-05-04T03:35:48.789Z","avatar_url":"https://github.com/MuellerConstantin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TTOS\n\n\u003e Just another Tiny Toy Operating System (TTOS) for learning purposes.\n\n![](https://img.shields.io/badge/C-gray?logo=c)\n![](https://img.shields.io/badge/Qemu-orange?logo=qemu\u0026logoColor=white)\n![](https://img.shields.io/badge/Intel%20x86-blue?logo=intel)\n\n---\n\n- [Introduction](#introduction)\n- [Build Instructions](#build-instructions)\n  - [Requirements](#requirements)\n  - [Build Process](#build-process)\n- [License](#license)\n  - [Forbidden](#forbidden)\n\n---\n\n## Introduction\n\nWelcome to the *Tiny Toy Operating System (TTOS)* project. This project is\nintended to be a simple operating system for learning purposes. It is written\nfor the Intel x86 architecture and originally aimed at gaining a deeper\nunderstanding of the internal processes of an operating system as well as the\nfunctionality of the hardware. The kernel is written in C and Assembly and\nis [multiboot](https://www.gnu.org/software/grub/manual/multiboot/multiboot.html)\ncompliant, which means it can be booted by the [GRUB](https://www.gnu.org/software/grub/)\nbootloader.\n\nThe project itself is divided into multiple parts:\n\n- **kernel**: The core of the operating system. It contains the source code\n  for all core functionalities and default drivers of the operating system. See\n  [here](kernel/README.md) for more information.\n- **libc**: A naive implementation of a standard C library for the TTOS project.\n  It may be replaced by an existing C library implementation/port in the future.\n  See [here](libc/README.md) for more information.\n- **libsys**: An additional library that bundles system-level calls. With the help\n  of this library, user programs can perform system-specific operations. See\n  [here](libsys/README.md) for more information.\n- **userland**: A subproject that contains the source code for userland applications\n  provided by the operating system by default. See [here](userland/README.md) for\n  more information.\n\n## Build Instructions\n\nThe TTOS Project is intended to be built using the GNU toolchain with the GNU Compiler\nCollection (GCC) and the Netwide Assembler (NASM) on a Unix-like system, but similar\nconfigurations might also work. In addition, [GRUB](https://www.gnu.org/software/grub/)\nis used to boot the operating system and create a bootable image. The build process\nis automated using a GNU Make and corresponding Makefiles.\n\n### Requirements\n\n- **GNU Make**: The GNU Make utility is used to build the TTOS project. It is\n  required to run the build process using `make`.\n- **GCC**: The GNU Compiler Collection is a collection of compilers for various\n  programming languages. It is the default compiler for the TTOS project.\n- **NASM**: The Netwide Assembler is an assembler and disassembler for the Intel\n  x86 architecture. It is used to compile the assembly code of the TTOS project.\n- **GRUB**: The GNU GRUB (GRand Unified Bootloader) is a multiboot compliant\n  bootloader that is used to boot the TTOS kernel. For creating a bootable image,\n  GRUB command line tools, especially `grub-mkrescue`, are required.\n\n### Build Process\n\nAs mentioned before, the build process is automated using a GNU Make and\ncorresponding Makefiles. Hence, building the TTOS project is as simple as\nrunning the `make` command in the root directory of the project. The following\ncommands are available:\n\n- **`make all`**: Builds the TTOS project, this includes building the kernel,\n  the libc, and the libk library, and creating a bootable image. This results\n  in a bootable image that is placed at `\u003cROOTDIR\u003e/ttos-\u003cVERSION\u003e-intel-x86.iso`.\n- **`make kernel`**: Builds the kernel of the TTOS project without creating a\n  bootable image. This results in a kernel binary that is placed at\n  `\u003cROOTDIR\u003e/kernel/kernel.elf`.\n- **`make clean`**: Cleans the build directory and removes all generated files.\n\n## License\n\nCopyright (c) 2024 Constantin Müller\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n[MIT License](https://opensource.org/licenses/MIT) or [LICENSE](LICENSE) for\nmore details.\n\n### Forbidden\n\n**Hold Liable**: Software is provided without warranty and the software\nauthor/license owner cannot be held liable for damages.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuellerconstantin%2Fttos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuellerconstantin%2Fttos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuellerconstantin%2Fttos/lists"}