{"id":23235734,"url":"https://github.com/pure-linux/tinyort","last_synced_at":"2026-02-13T15:02:59.359Z","repository":{"id":266260536,"uuid":"897847330","full_name":"pure-linux/tinyort","owner":"pure-linux","description":"TIO Runtime","archived":false,"fork":false,"pushed_at":"2024-12-08T04:47:48.000Z","size":31,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"release/alpha/0.0.1","last_synced_at":"2025-08-19T21:46:29.799Z","etag":null,"topics":["clone-flags","containers","cri","kubernetes-alternative","linux-namespaces","mount","pivot-root","runtime","unshare"],"latest_commit_sha":null,"homepage":"https://github.com/pure-linux/tinyo","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pure-linux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2024-12-03T10:47:24.000Z","updated_at":"2024-12-09T02:55:57.000Z","dependencies_parsed_at":"2025-08-21T23:38:32.476Z","dependency_job_id":null,"html_url":"https://github.com/pure-linux/tinyort","commit_stats":null,"previous_names":["pure-linux/tinyo-runtime-container","pure-linux/tinyort"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pure-linux/tinyort","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pure-linux%2Ftinyort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pure-linux%2Ftinyort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pure-linux%2Ftinyort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pure-linux%2Ftinyort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pure-linux","download_url":"https://codeload.github.com/pure-linux/tinyort/tar.gz/refs/heads/release/alpha/0.0.1","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pure-linux%2Ftinyort/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29411138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["clone-flags","containers","cri","kubernetes-alternative","linux-namespaces","mount","pivot-root","runtime","unshare"],"created_at":"2024-12-19T03:29:22.241Z","updated_at":"2026-02-13T15:02:59.313Z","avatar_url":"https://github.com/pure-linux.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"100\" height=\"100\" src=\"https://avatars.githubusercontent.com/u/190339082\"\u003e\n  \u003ch2\u003e𐬺 Tinyo Runtime\u003c/h2\u003e\n  \u003ch5\u003eNext level orchestration.\u003c/h5\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/pure-linux/tinyo#vision\"\u003e\u003cb\u003eWhy\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://github.com/pure-linux/tinyo#quickstart\"\u003e\u003cb\u003eQuickstart\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://discord.gg/ERKBk6ArnQ\" target=\"_blank\"\u003e\u003cb\u003eDiscord\u003c/b\u003e\u003c/a\u003e •\n    \u003ca href=\"https://x.com/PureLinux\" target=\"_blank\"\u003e𝕏\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n### Architecture\n\n#### Core\n\n##### Libs\n\nThe Tinyo runtime leverages several Linux libraries and features to implement containerization at a low level. Below is a list of the core components and their purposes:\n\nThe code is located here: [features/runtime/core.rs][src-features-runtime-core.rs].\n\n- **Linux Namespaces** (`unshare`, `CloneFlags`)\nUsed to isolate the container's process from the host system by creating separate namespaces for PID, network, UTS (hostname), and mount points. This provides the basic building blocks for process isolation in Linux.\n\n- **Mount API** (`mount`, `umount2`, `pivot_root`)\nResponsible for setting up the container's root filesystem, making it independent of the host's file structure. `pivot_root` is crucial for replacing the current root filesystem with the container's filesystem, while `mount` and `umount2` manage additional filesystem bindings.\n\n- **Process Control** (`fork`, `execvp`, `waitpid`)\nImplements the forking mechanism to create a new containerized process and execute commands inside the container. fork creates a child process, `execvp` executes the container's entrypoint (e.g., /bin/sh), and waitpid monitors the lifecycle of the containerized process.\n\n- **Filesystem Utilities** (`mkdir`, `chdir`)\nEnsures the necessary directory structure is created for the container's filesystem. `chdir` is used to change the working directory to the container's root during the filesystem setup.\n\n- **Hostname Management** (`sethostname`)\nAllows the container to have its own hostname, providing isolation at the UTS (Unix Timesharing System) level. This is particularly useful for multi-container environments where hostname uniqueness is required.\n\n- **Temporary Filesystems** (`tmpfs`)\n`tmpfs` is mounted for `/dev` to create an isolated and writable environment for device files. This ensures the container operates independently of the host's `/dev`.\n\n- **Proc and Sys Filesystems** (`proc`, `sysfs`)\nThese are mounted inside the container to provide system-level information and kernel interfaces specific to the container's process namespace. `/proc` is essential for process-related metadata, while `/sys` is used for interacting with kernel features.\n\n[src-features-runtime-core.rs]: /src/features/runtime/core.rs\n\n---\n\n**[PureLinux.org][purelinux.org]** | Delivering to the open-source community what matters most.\n\n###### Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.\n\n[purelinux.org]: https://purelinux.org","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpure-linux%2Ftinyort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpure-linux%2Ftinyort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpure-linux%2Ftinyort/lists"}