{"id":8656,"date":"2026-10-07T06:48:32","date_gmt":"2026-10-07T13:48:32","guid":{"rendered":"https:\/\/catbradley.io\/?p=8656"},"modified":"2026-10-07T06:48:32","modified_gmt":"2026-10-07T13:48:32","slug":"vinix-is-not-a-linux-distro-but-it-can-run-games-docker-and-qemu","status":"publish","type":"post","link":"https:\/\/catbradley.io\/?p=8656","title":{"rendered":"Vinix is Not a Linux Distro, But it Can Run Games, Docker, and QEMU"},"content":{"rendered":"<figure><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/10\/vinix-banner.png\" alt=\"vinix 3-picture banner\" loading=\"lazy\" \/><\/figure>\n<p>How does an operating system that isn&#8217;t proprietary or powered by the Linux kernel manage to run Docker, you ask? Well, it would need features like namespaces and cgroups.<\/p>\n<p>That&#8217;s exactly what <a href=\"https:\/\/vinix-os.org\/\">Vinix<\/a> did, adding its own implementations of those plus <em>overlayfs<\/em> and <em>seccomp<\/em>, allowing the stock Alpine Linux Docker engine to run on ARM64.<\/p>\n<p>It also runs QEMU 9.1.2, which can boot a second Vinix inside a window of the first, and for gaming, it can run DOOM, a <a href=\"https:\/\/github.com\/vlang\/vinix\/blob\/master\/tests\/dhewm3\/README.md\">DOOM 3 demo<\/a>, Gothic II&#8217;s demo via OpenGothic, and <a href=\"https:\/\/github.com\/vlang\/vinix\/blob\/master\/README.md#minecraft-java-edition-on-aarch64\">Minecraft Java Edition<\/a>.<\/p>\n<p><strong>There are still some limitations<\/strong>.<\/p>\n<p>For instance, the Docker support lacks <em>bridge networking<\/em> and <em>iptables<\/em> rules, and QEMU runs on software emulation for now. Minecraft runs in interpreter mode on one CPU core, and DOOM 3 manages about 13 FPS under software rendering.<\/p>\n<div class=\"kg-card kg-callout-card kg-callout-card-red\">\n<div class=\"kg-callout-emoji\">\ud83d\udea7<\/div>\n<div class=\"kg-callout-text\">This is early-stage software that is not meant to be used daily or in production environments.<\/div>\n<\/div>\n<h2>Yet another OS?<\/h2>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/10\/vinix-desktop-view.png\" class=\"kg-image\" alt=\"vinix desktop view\" loading=\"lazy\" width=\"1347\" height=\"1030\" \/><\/figure>\n<p>Vinix exists to give MacBooks <strong>a fast, minimal, open source OS<\/strong>, with the project&#8217;s motivation being tied to macOS getting slower and bloated with every passing release. They are initially targeting Apple Silicon devices to eventually cover the whole M-series lineup, though only the M1 is supported right now.<\/p>\n<p>While Linux users have little reason to switch to it, Vinix aims for <strong>a setup without systemd<\/strong> and a kernel small enough for one person to read through.<\/p>\n<p>Beyond that, nothing runs in the background unless you start it, and the system sticks to a single init system, desktop, package manager, and binary format. The kernel handles memory manually instead of using a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Garbage_collection_(computer_science)\">garbage collector<\/a>, so a cleanup pass can&#8217;t interrupt a system call or the compositor.<\/p>\n<p>All of it runs on <a href=\"https:\/\/vlang.io\/\">a V programming language foundation<\/a>, which was picked for its fast compiles and small, readable design. The project doubles as a testbed for bare metal programming in V too!<\/p>\n<p>The security model of the OS is modeled after <a href=\"https:\/\/www.openbsd.org\/\">OpenBSD<\/a>, with <a href=\"https:\/\/www.openbsd.org\/papers\/BeckPledgeUnveilBSDCan2018.pdf\">pledge and unveil<\/a> available, though apps must opt in, and user memory can&#8217;t be both writable and executable by default. Verifying the bootloader, kernel, and root filesystem isn&#8217;t supported yet.<\/p>\n<h2>It runs Linux apps<\/h2>\n<figure class=\"kg-card kg-gallery-card kg-width-wide\">\n<div class=\"kg-gallery-container\">\n<div class=\"kg-gallery-row\">\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/10\/vinix-pre-installed-apps.png\" width=\"1818\" height=\"1459\" loading=\"lazy\" alt=\"\" \/><\/div>\n<div class=\"kg-gallery-image\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/10\/vinix-v-compiling.png\" width=\"1818\" height=\"1459\" loading=\"lazy\" alt=\"\" \/><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<p>At its core, Vinix is a monolithic kernel booted through <a href=\"https:\/\/github.com\/Limine-Bootloader\/Limine\">Limine<\/a>, with its drivers built into the image. Most of it is V, alongside some C and assembly.<\/p>\n<p>It features a native desktop built with <a href=\"https:\/\/github.com\/vlang\/ui2\">V UI2<\/a> that renders through the framebuffer, with <em>X.org<\/em> and <em>Hyprland<\/em> sessions as options on ARM64. The developers claim that the OS takes up <strong>50 MB of RAM<\/strong> after boot and roughly <strong>1 GB of disk<\/strong> once installed.<\/p>\n<p>Alpine Linux, the distro behind that Docker engine from earlier, is lightweight and security-focused, and it&#8217;s built around <em>musl<\/em> and <em>BusyBox<\/em>. Vinix targets its<a href=\"https:\/\/pkgs.alpinelinux.org\/packages?name=&amp;branch=v3.21&amp;repo=&amp;arch=aarch64\" rel=\"noreferrer\"> aarch64 packages<\/a>.<\/p>\n<p>Thanks to that, Vinix is able to run Linux apps because it answers the system calls they make, plus the <em>ELF<\/em> format and <em>musl<\/em> behavior they rely on, and those binaries run natively, without a VM or an emulator.<\/p>\n<p>New applications can be installed with <code>pkg<\/code>, a command-line tool that pulls packages from Alpine&#8217;s aarch64 repositories. Apps like <strong>Chromium<\/strong>, <strong>GIMP<\/strong>, <strong>Sublime Text<\/strong>, and <strong>Gnumeric<\/strong> are known to work, as is <strong>Wine<\/strong>, the widely adopted compatibility layer.<\/p>\n<p>The catch is that <strong>this is limited to ARM64 and selected packages<\/strong>. Software that relies on a Linux kernel feature Vinix doesn&#8217;t have yet may not run properly.<\/p>\n<p>Additionally, support for the M3, M4, and M5 is coming soon, while GPU drivers are still a work in progress.<\/p>\n<h2>Who&#8217;s behind it?<\/h2>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" src=\"https:\/\/itsfoss.com\/content\/images\/2026\/10\/vinix-hyprland-demo.png\" class=\"kg-image\" alt=\"hyprland demo of vinix\" loading=\"lazy\" width=\"1638\" height=\"1229\" \/><figcaption><i><em class=\"italic\">The <\/em><\/i><a href=\"https:\/\/itsfoss.com\/hyprland\/\"><i><em class=\"italic\">Hyprland<\/em><\/i><\/a><i><em class=\"italic\"> demo for Vinix.<\/em><\/i><\/figcaption><\/figure>\n<p>Vinix&#8217;s history spans many years, with the first commits on GitHub dating back to <a href=\"https:\/\/github.com\/vlang\/vinix\/graphs\/contributors?all=1\">March 2021<\/a> and the original kernel core being the work of <a href=\"https:\/\/github.com\/Mintsuki\">Mintsuki<\/a>, the creator of Limine.<\/p>\n<p>Development then paused for around two years before <a href=\"https:\/\/github.com\/medvednikov\">Alexander Medvednikov<\/a>, the author of V, took over as maintainer.<\/p>\n<p>Mintsuki&#8217;s core covered the physical and virtual memory managers and the scheduler, but since the handover, Vinix has gained storage, networking, input, and graphics support, along with a Unix-style userspace and the Alpine compatibility we saw earlier.<\/p>\n<h2>Get Vinix<\/h2>\n<p>You will find that the <a href=\"https:\/\/vinix-os.org\/\">official website<\/a> offers a <code>.dmg<\/code> installer file for M1 Macs, whereas the <a href=\"https:\/\/github.com\/vlang\/vinix\/releases\">project repository<\/a> hosts two distinct ISOs, one for ARM64 (<em>targeted at QEMU and VirtualBox on Apple Silicon Macs<\/em>) and the other for x86_64 (<em>targeted at Intel and AMD systems<\/em>).<\/p>\n<p>If you want to test it on a virtual machine, the requirements are quite modest. Vinix needs at least 4 GB of memory and 4 GB or more storage space. Building from source is also an option.<\/p>\n<div class=\"kg-card kg-button-card kg-align-center\"><a href=\"https:\/\/github.com\/vlang\/vinix\/releases\" class=\"kg-btn kg-btn-accent\">Vinix<\/a><\/div>\n<p><!--kg-card-begin: html--><\/p>\n<div class=\"repo-stats\" data-repo=\"https:\/\/github.com\/vlang\/vinix\"><\/div>\n<p><!--kg-card-end: html--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/feed.itsfoss.com\/link\/24361\/17491352.gif\" height=\"1\" width=\"1\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>How does an operating system that isn&#8217;t proprietary or powered by the Linux kernel manage to run Docker, you ask? Well, it would need features like namespaces and cgroups. That&#8217;s&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":[],"rop_publish_now_history":[],"rop_publish_now_status":"pending","footnotes":""},"categories":[1],"tags":[],"class_list":["post-8656","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rss"],"_links":{"self":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts\/8656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8656"}],"version-history":[{"count":0,"href":"https:\/\/catbradley.io\/index.php?rest_route=\/wp\/v2\/posts\/8656\/revisions"}],"wp:attachment":[{"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/catbradley.io\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}