{"name":"avyos: An Experimental Linux-based OS Built Purely in Go","description":"avyos is an experimental, Linux-based operating system with its entire system layer, including init, services, and core tools, written purely in Go. It distinguishes itself with an immutable system core, clear separation of state for apps and user data, and service-driven capabilities. This innovative approach aims to rethink traditional OS design using modern Go principles, without external packages, CGO, or POSIX compatibility.","github":"https://github.com/itsManjeet/rlxos","url":"https://osrepos.com/repo/itsmanjeet-rlxos","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/itsmanjeet-rlxos","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/itsmanjeet-rlxos.md","json":"https://osrepos.com/repo/itsmanjeet-rlxos.json","topics":["avyos","Go","Golang","Operating System","Linux","OSDev","Immutable","Open Source"],"keywords":["avyos","Go","Golang","Operating System","Linux","OSDev","Immutable","Open Source"],"stars":null,"summary":"avyos is an experimental, Linux-based operating system with its entire system layer, including init, services, and core tools, written purely in Go. It distinguishes itself with an immutable system core, clear separation of state for apps and user data, and service-driven capabilities. This innovative approach aims to rethink traditional OS design using modern Go principles, without external packages, CGO, or POSIX compatibility.","content":"## Introduction\n\n**avyos** is an innovative operating system project that leverages the Linux kernel for hardware support and booting, while completely reimagining the “system layer” in pure Go. This includes components like init, services, core tools, and the UI stack. A key design principle is the absence of external packages, CGO, or POSIX compatibility in its core, offering a truly Go-native system.\n\nWhat makes avyos stand out?\n\n*   **Immutable System Core**: The OS core is mounted at `/avyos` and treated as read-only during runtime, enhancing security and stability.\n*   **Clear Separation of State**: Applications, configuration, user data, and runtime files reside in distinct, writable locations such as `/apps`, `/config`, `/users`, and `/cache`.\n*   **Service-Driven Capabilities**: Instead of direct low-level system resource access, privileged operations are exposed via services and accessed through authenticated IPC.\n*   **Optional Linux Compatibility Layer**: A standard Linux root filesystem can be provided at `/linux` and run in a restricted container, allowing for compatibility and reuse of existing Linux userland resources.\n\nFor a detailed system breakdown and code map, refer to the official [`ARCHITECTURE.md`](https://github.com/itsManjeet/avyos/blob/main/ARCHITECTURE.md) document.\n\n## Installation\n\nYou can easily try avyos in QEMU using prebuilt release images, without needing to compile from source.\n\n### Option A: One-command runner (recommended)\n\nThis convenient tool automatically downloads the correct release ZIP for your architecture and launches QEMU.\n\nbash\ngo run avyos.dev/tools/runimage@latest\n\n\n**Requirements**: Go and QEMU must be installed on your machine.\n\n### Option B: Download a release ZIP and run QEMU manually\n\nRelease assets are published on the GitHub [Releases page](https://github.com/itsManjeet/avyos/releases). Each release provides architecture-specific ZIP files, for example, `avyos-<release>-amd64.zip` or `avyos-<release>-arm64.zip`.\n\nEach ZIP contains `disk.img`, `firmware`, and `variables`. Unzip the file, then navigate to that directory and run QEMU manually.\n\n#### amd64\n\nbash\nqemu-system-x86_64    \\\n  -smp 2 -m 2G        \\\n  -serial mon:stdio   \\\n  -nic user,model=virtio-net-pci,hostfwd=tcp:127.0.0.1:5037-:5037   \\\n  -vga none           \\\n  -device virtio-gpu-pci \\\n  -device virtio-keyboard-pci \\\n  -device virtio-mouse-pci   \\\n  -drive if=pflash,file=firmware,readonly=on,format=raw \\\n  -drive if=pflash,file=variables,format=raw \\\n  -drive file=disk.img,format=raw\n\n\n#### arm64\n\nbash\nqemu-system-aarch64   \\\n  -M virt -cpu cortex-a57   \\\n  -smp 2 -m 2G        \\\n  -serial mon:stdio   \\\n  -nic user,model=virtio-net-pci,hostfwd=tcp:127.0.0.1:5037-:5037   \\\n  -vga none           \\\n  -device virtio-gpu-pci \\\n  -device virtio-keyboard-pci \\\n  -device virtio-mouse-pci   \\\n  -drive if=pflash,file=firmware,readonly=on,format=raw \\\n  -drive if=pflash,file=variables,format=raw \\\n  -drive file=disk.img,format=raw\n\n\n## Examples\n\nThe `go run avyos.dev/tools/runimage@latest` command supports several flags for customization:\n\n*   `--arch <arch>`: Target architecture (default: your host `GOARCH`, e.g., `amd64`, `arm64`)\n*   `--branch <name>`: Release tag/branch to download (default: `main`)\n*   `--cpu <n>`: CPU cores for QEMU (default: `2`)\n*   `--memory <size>`: RAM for QEMU (default: `2G`)\n*   `--vnc <display>`: Start VNC server (example `:0`)\n*   `--dbg-port <port>`: Forward `host:port` to `guest:5037` (default: `5037`, `0` disables)\n\nAny additional arguments after the flags are passed directly to QEMU.\n\nHere are some examples:\n\nbash\n# Run with VNC on :0\ngo run avyos.dev/tools/runimage@latest --vnc :0\n\n# Use 4 cores and 4G RAM\ngo run avyos.dev/tools/runimage@latest --cpu 4 --memory 4G\n\n# Disable dbgd port forwarding\ngo run avyos.dev/tools/runimage@latest --dbg-port 0\n\n\n## Why Use avyos?\n\navyos offers a fresh perspective on operating system design, providing several compelling reasons to explore it:\n\n*   **Modern Language Foundation**: By building the system core purely in Go, avyos benefits from Go's performance, concurrency features, and strong type safety, potentially leading to a more robust and maintainable system.\n*   **Enhanced Security and Stability**: The immutable system core and clear separation of concerns reduce the attack surface and prevent unintended modifications to critical system components.\n*   **Simplified Development**: For Go developers, avyos provides a familiar environment for system-level programming, potentially lowering the barrier to entry for OS development.\n*   **Innovative Architecture**: Its service-driven approach and optional Linux compatibility layer offer flexibility and a forward-thinking design for future operating systems.\n*   **Experimental and Educational**: As an experimental project, avyos serves as an excellent platform for learning about modern OS design principles and the practical application of Go in system programming.\n\n## Links\n\n*   **GitHub Repository**: [https://github.com/itsManjeet/avyos](https://github.com/itsManjeet/avyos){:target=\"_blank\"}\n*   **Building and running from source**: [`BUILDING.md`](https://github.com/itsManjeet/avyos/blob/main/docs/BUILDING.md){:target=\"_blank\"}\n*   **Architecture**: [`ARCHITECTURE.md`](https://github.com/itsManjeet/avyos/blob/main/ARCHITECTURE.md){:target=\"_blank\"}\n*   **Developer workflows**: [`DEVELOPERS.md`](https://github.com/itsManjeet/avyos/blob/main/docs/DEVELOPERS.md){:target=\"_blank\"}\n*   **Contributing**: [`CONTRIBUTING.md`](https://github.com/itsManjeet/avyos/blob/main/docs/CONTRIBUTING.md){:target=\"_blank\"}","metrics":{"detailViews":2,"githubClicks":1},"dates":{"published":null,"modified":"2026-05-09T15:06:27.000Z"}}