LmCast :: Stay tuned in

Vinix – A modern operating system written in V

Recorded: Sept. 17, 2026, 5 p.m.

Original Summarized

Vinix — A modern operating system written in V

A modern operating system in V

Features
About
FAQ
Roadmap
Sponsor development
Contact the maintainer

Dark mode

100 MB RAMusage on boot
≈1 GB of disk space after install
Official support of Apple Silicon Macs
Compatible withAlpine Linux binaries

Install on your M1 Mac

Download nightly

Explore the source

M3, M4, M5 support coming soon.

Alpha software. Vinix is under active development and is not
intended for daily or production use yet.

Run Vinix in QEMU
Install the build prerequisites, then let the launcher build and start the desktop.

Apple Silicon Macs
QEMU uses macOS hardware virtualization for the ARM64 desktop.
brew install qemu
git clone https://github.com/vlang/vinix
cd vinix
./run-desktop-aarch64.sh

Other computers
Use the x86_64 launcher. It uses KVM when available, otherwise QEMU emulation.
git clone https://github.com/vlang/vinix
cd vinix
./run-desktop-amd64.sh

Runs on Vinix

Languages & toolchains

Clang / LLVM
GCC / G++
Go
Rust
Java
Node.js / npm
Python 3
Ruby 3
V

Developer & infrastructure

Codex CLI
Claude
Git
OpenSSH
curl
nginx
GNU Make
CMake
Meson
GDB
radare2
strace
SQLite
Bash
BusyBox

pkg / APK / XBPS

Desktop & applications

Firefox ESR
Chromium
Blender
GIMP
Wine
Minecraft / Minetest
Gnumeric
GTK 3
X.org
Wayland
Hyprland
Mesa / OpenGL
Nano
Vim
Terminal
tmux
Sublime Text
File Browser

Vinix in action

Vinix desktop on an M1 MacBook Air.

Chromium

Wine apps: Calculator and Notepad.

MS Office on Vinix: an x64 Windows app runs through Wine—an Alpine Linux binary—on ARM64 hardware.

Blender.

Minecraft.

Wayland / Hyprland on Vinix.

Gnumeric on Vinix.

Sublime Text on Vinix.

radare2

Vinix desktop written from scratch in V + V UI2.

Features

Vinix uses a small fraction of a modern machine's memory and disk

RAM ON BOOT — 100 MB

DISK AFTER INSTALL — 1 GB

BOOT TO DESKTOP — SECONDS

NO GC · NO SYSTEMD · NO TELEMETRY

Speed and performance

Vinix boots to a desktop in seconds and settles at about 100 MB of RAM and 1 GB of
disk. That is the whole system, not a stripped-down mode you switch into.

The kernel has no garbage collector. It is built with -gc none and manual
memory management, so no collection pass can stop a system call, an interrupt handler,
or the compositor at a moment of its own choosing. Memory use stays flat instead of
sawtoothing while the machine stays up.

Nothing runs that you did not start. There is no systemd, no background indexer, and
nothing phoning home. The desktop draws straight to the framebuffer and composites its
own windows, with no display server underneath it, and the machine feels the same on
day ninety as it did on day one.

A sandboxed application cannot reach the filesystem outside its own directory
SANDBOX (OPTIONAL)

REST OF THE SYSTEM

/home
~/.ssh
other apps

Optional per-app sandboxing

An application can be started in a sandbox, the way apps are confined on iOS. A
sandboxed program gets its own private directory and that is all of the filesystem it
can see. Your documents, your SSH keys, other applications' data, and the rest of the
system are simply not there for it, so a bug or a bad dependency inside that program
cannot read what it was never given.

This is optional and off by default. It is something you turn on for the programs you
choose, not a wall the system puts between you and your own computer. Run the same
binary without a sandbox and it behaves like any other Unix process, with the usual
file permissions and nothing else in the way.

It is meant for the cases where it actually helps: a browser, a downloaded binary you
have not read, a build script from someone else's repository. Your own tools keep
running exactly as they do now.

Alpine Linux binaries call the Vinix kernel directly through Linux system calls
ALPINE AARCH64 BINARY

ELF
musl
chromium
blender
VINIX KERNEL

VFS
SCHEDULER
MEMORY
DRIVERS

openat
mmap
futex
ioctl
NO VM · NO CONTAINER · NO EMULATION

Full compatibility with Linux syscalls and Alpine Linux binaries

Vinix is not a Linux distribution. The kernel is written from scratch in V. But a
Linux program does not really talk to Linux, it talks to a fixed, numbered interface:
openat, mmap, clone, futex, and a
few hundred more system calls. Vinix implements that interface, plus the ELF layout
and the musl behaviour those programs expect on entry.

So an unmodified aarch64 Alpine Linux package runs here natively. There is no Linux
virtual machine, no compatibility container, and no CPU emulation in that path: the
binary executes on the bare CPU, and its system calls land in the Vinix kernel.
pkg install chromium pulls the same package Alpine ships, and it starts.

That is why Chromium, GIMP, Blender, Sublime Text, Gnumeric, and Wine already run on
Vinix: thousands of existing packages instead of a handful ported by hand.
Applications that need Linux kernel features Vinix has not implemented yet can still
fall short, and those gaps are closed as they are found.

The Apple M1 AGX GPU driver, currently in development

APPLE M1 — AGX GPU

M1–M5 GPU drivers

Apple publishes no documentation and no driver for its GPUs outside macOS, so any
other operating system that wants hardware acceleration on a Mac has to write one.
Vinix is writing its own, starting with the M1.

On M1 that means two drivers: AGX, the GPU itself, and DCP, the display controller
that owns the screen. Both are coprocessors reached over Apple's mailbox and RTKit
interfaces, with the DART IOMMU keeping the GPU's view of memory separate from the
kernel's. Above them sits a minimal DRM subsystem with GEM buffer objects,
implementing only what those two drivers need to allocate, share, and present frames,
with Mesa and OpenGL on top so applications get real acceleration instead of software
rendering.

This is the work in progress right now, and much of the rest depends on it: a
hardware-accelerated desktop, smooth video, and eventually games through Wine. M2
through M5 come after M1 is finished. Their GPUs are close enough relatives that the
same driver grows to cover them rather than starting over.

What Vinix is about

Use the screen well
No extra padding or rounded corners. More room for your work.

One way to do things
One distro, UI, package manager, init system, and binary format. No need to make constant choices. And it all just works.

Change what you need
Customize the system to work the way you want.

Themes you can choose
Pick from many themes. You can make it look like macOS Catalina or even Windows XP.

Uses few resources
Uses about 100 MB of RAM at startup and 1 GB of disk space.

Stays small
Vinix stays small and minimal. It will not get more bloated with each release.

Officially supported hardware
Vinix initially is going to support every Apple Silicon Mac (only M1 Macs for now as of Sep 10 2026).

Support for Intel Macs, back to the 2010 Mac mini, is next. So you can give an older Mac a fast, modern, fully supported OS.

The entire stack is built and tested together. No hunting for drivers or workarounds for sleep, wake, lid closing, hibernation, Wi-Fi, graphics, audio, or the other hardware basics that too often turn a Linux install into a project.

You can also already install Vinix on an amd64 machine, but the driver support won't be great. Better to run it in a VM.

Frequently asked questions

Why Vinix over macOS?

This is the main reason Vinix exists: to offer a fast, open source, minimal operating
system for MacBooks. Apple builds excellent hardware, and there was no lightweight
system built specifically for it.

macOS gets slower and more bloated with every release. The same Mac that felt instant
when you bought it feels sluggish a few updates later, and the system now takes tens of
gigabytes of disk and gigabytes of RAM before you open a single app. Releases have also
become less stable, with questionable design choices, settings that get rearranged or
removed, features nobody asked for, and more of the system tied to online accounts and
services.

Vinix goes the other way. It starts in about 100 MB of RAM and 1 GB of disk, boots in
seconds, and stays that way. The entire system is open source, so you can read any part
of it, change it, and rebuild it yourself. Nothing phones home.

There is also gaming. Vinix is going to turn your powerful Mac into a gaming machine.
Apple Silicon has the GPU for it, but the games are not there: most publishers skip
macOS entirely, and the ports that do exist get dropped. For example, Valve ended macOS support
for Counter-Strike 2. Vinix is going to support popular titles that
have no macOS version, including The Witcher 3, Counter-Strike 2, Elden Ring, Grand
Theft Auto V, Red Dead Redemption 2, Skyrim, Doom Eternal, and Hogwarts Legacy.

That is planned work rather than something you can play today. It builds on two pieces
that already run here: Wine, which runs Windows applications on Vinix, and a user-mode
x86 translation layer, which runs x86-64 binaries on ARM64 hardware. The remaining
piece is the Apple GPU driver work now in progress.

Why Vinix over Linux?

Fewer reasons here. Linux is a good system, and if it works for you there is no need to
switch.

What Vinix offers is minimalism and a system without systemd. There is one way to do
things: one distribution, one desktop, one package manager, one init system, one binary
format. Nothing to choose or configure before you can start working.

And there's the appeal of a new kernel. Vinix is not another distribution on top of
Linux, it's a kernel written from scratch and small enough that one person can
understand all of it.

Why is Vinix written in V?

Compilation is very fast. The entire kernel rebuilds in seconds, so changing something,
rebuilding, and booting it is one quick step instead of a coffee break. That keeps the
whole system enjoyable to work on.

V is also simple and readable. The language
is small enough to learn in an afternoon, the code stays easy to follow months later,
and it allows development to move quickly. That matters for an operating system built
from scratch.

Is Vinix a Linux distribution?

No. Vinix is an independently developed, Unix-like operating system with its own kernel,
drivers, process model, filesystem layer, and system calls. It targets x86-64 and ARM64;
Linux is not running underneath it. But you can run Alpine Linux binaries on Vinix.

It deliberately follows familiar Unix and Linux conventions where that makes software easier
to port. Compatibility is a practical goal, not the operating system’s foundation.

What is the technology stack?

Vinix boots with Limine, a
bootloader that loads the Vinix kernel and supplies the early memory, framebuffer, and
boot-module information. Above it is a freestanding kernel written mostly in V, with C
and a small amount of architecture-specific assembly where hardware requires it.

The original kernel core (including its physical and virtual memory managers and scheduler) was written by mintsuki, the creator of Limine. After a roughly two-year pause in development, Alexander Medvednikov became its new maintainer. Since then, Vinix got storage, networking, input, graphics,
Unix-style userspace support, and compatibility with Alpine Linux binaries.

The system image pairs that kernel with an initramfs and a
familiar command-line and development userland; native Vinix applications and its desktop
are written in V with V UI2.

What kernel architecture is it? Monolithic or a microkernel?

Monolithic. The scheduler, the physical and virtual memory managers, the virtual
filesystem, the device drivers, and the network stack all live in one kernel image and
run privileged in a single address space, calling each other directly instead of passing
messages. That is the pragmatic choice: no IPC round trip on every disk read or network
packet, and Linux-compatible behaviour stays straightforward to implement.

Monolithic does not mean big. The kernel is written mostly in V and is small enough for
one person to read through. It is a higher-half kernel loaded by Limine, preemptive and
SMP-aware, with per-CPU state, fine-grained locking, and awareness of NUMA and
multi-socket memory topology. Every process gets its own address space, and user code
runs unprivileged and enters the kernel through Linux-compatible system calls.

There are no loadable kernel modules. Drivers are compiled into the kernel image, and
because a full kernel rebuild takes seconds in V, rebuilding and rebooting is the fast
path anyway.

How do drivers work?

A driver is an ordinary V module inside the kernel tree with an initialise()
function that kernel startup calls in order. Hardware is discovered per platform: a PCI
bus scan plus ACPI on x86-64, and a device tree handed over by firmware on Apple Silicon.

Once initialised, a driver publishes its node under /dev through devtmpfs and
implements the kernel’s Resource interface: read, write, ioctl, mmap, and the
rest. Regular files implement that same interface, so the VFS, the read and write system
calls, polling, and memory mapping all work over devices without a separate path.
Interrupts arrive through the platform’s controller, AIC on Apple Silicon, GIC on generic
ARM64, APIC on x86-64, and the handler wakes whichever threads were waiting on that event.

What exists today: NVMe, AHCI, and ATA storage with GPT partitions and ext2; console, pty,
serial, keyboard, mouse, HD Audio, and framebuffer devices; the virtio family (block,
network, GPU, input) for virtual machines; and, on Apple Silicon, ANS storage, the DART
IOMMU, mailbox and RTKit for the coprocessors, SMC, the SPI keyboard and touchpad, Type-C,
and Wi-Fi. Graphics goes through a minimal DRM subsystem with GEM buffer objects that
implements only what the AGX GPU and DCP display controller drivers actually need.

Is Vinix deterministic?

Not in the real-time sense. Vinix is not a real-time operating system and makes no
latency guarantee. The scheduler is preemptive and has exactly one policy: a thread gets
a timeslice weighted by its nice value, and the kernel arms a one-shot timer for it.
Asking for SCHED_FIFO or SCHED_RR fails with
EINVAL instead of being accepted and then quietly scheduled like everything
else, because answering yes there would be a lie. Hard real-time work needs a different
system.

Where it is predictable, deliberately so: the kernel has no garbage collector. It is
built with -gc none and manual memory management, so no collection pass can
stop a system call, an interrupt handler, or the compositor at a moment of its own
choosing. Memory use stays flat and bounded rather than sawtoothed, which is a large part
of why the system still feels the same after it has been running for a while.

The same applies to what runs at all. One distribution, one desktop, one init system, one
package manager, and a fixed boot sequence mean two machines booting the same image bring
up the same services in the same order. There is no accumulated local configuration
deciding how your computer behaves today.

Kernel subsystems are tested the same way, with seeded pseudo-random sequences rather
than live randomness: the page cache runs hundreds of deterministic randomized
operations, and drivers such as Apple’s ANS storage and SPI keyboard are fed thousands of
deterministic mutated packets, so a failure reproduces exactly instead of once in a
while. Build output is a separate question: images come from a single release build
script, but byte-for-byte reproducible images are not something Vinix claims yet.

How can Vinix run Alpine Linux binaries?

On ARM64, Vinix can use selected Alpine Linux aarch64/musl packages. They run natively on
the same CPU architecture: there is no Linux virtual machine and no CPU emulation in that
path. Vinix supplies the supported Linux-facing ELF, musl, and system-call behaviour the
programs expect.

The pkg tool resolves a package and its runtime dependencies from Alpine’s
repositories, stages them in the Vinix image, and skips Alpine maintainer scripts that
assume Alpine’s own init system. This is targeted compatibility, so supported and tested
applications work directly while unimplemented Linux kernel features can still limit others.

Does Vinix have a package manager or an app store?

Yes. Vinix ships with pkg, a command-line package manager that installs
software from Alpine Linux’s aarch64 repositories, so there are thousands of existing
packages to draw on instead of a small handful ported by hand.

pkg update refreshes the indexes, pkg search finds a package,
and pkg install pulls it in along with its dependencies. There is also
pkg remove, pkg upgrade, pkg list, and
pkg info. Package names are Alpine’s own, and Vinix currently tracks Alpine
3.21 for aarch64. Chromium, GIMP, Blender, Gnumeric, Sublime Text, GTK, and the usual
command-line tools all install this way, though applications that need Linux kernel
features Vinix has not implemented yet can still fall short.

There is no graphical app store yet. pkg is a terminal tool for now.

What desktop environment and window manager does Vinix use?

The default is Vinix’s own native desktop: a V + V UI2 desktop environment and window
manager in one. It reads input and draws directly to the framebuffer, compositing its own
windows without a display server beneath it.

Vinix also supports X.org with an X window manager, plus an optional ARM64 Wayland session
using Hyprland. Those are compatibility and experimentation paths; the native Vinix desktop
remains the normal session.

Project roadmap

The foundation reaches from a native toolchain and familiar userland to
desktops on both major architectures.

Available today

mlibc, bash, GCC/G++, V, and nano
Storage drivers and ext2
Networking
V-UI
X.org and an X window manager
Wayland with Hyprland on aarch64

Intel VT-x hypervisor

On the horizon

Intel HD graphics driver
M1–M5 GPU drivers

Support Vinix
Sponsor the development.

Help make Vinix a better operating system. Your sponsorship gives the project
more time and resources for development.

Sponsor on GitHub

Get in touch
Contact the maintainer.

For questions, feedback, or collaboration, email
[email protected].

Email the maintainer

Vinix is open source and built by its community.

Vinix is presented as a modern operating system developed from scratch in the V language, designed to offer an extremely minimal, fast, and highly controllable experience, particularly targeting Apple Silicon Macs. The core philosophy of Vinix centers on efficiency and direct system control, aiming to counteract the perceived bloat and sluggishness of existing systems, especially macOS.

The system is designed to be inherently lean, consuming only about 100 megabytes of RAM upon boot and 1 gigabyte of disk space after installation, leading to a desktop that boots to full functionality in seconds. A key technical feature is the absence of traditional operating system overhead, as Vinix features no garbage collector, no systemd, and no telemetry, ensuring memory usage remains flat and bounded rather than sawtoothing, which contributes to system consistency. The desktop environment draws directly to the framebuffer and composites its own windows without an underlying display server.

Vinix achieves broad compatibility by implementing a fixed, numbered interface of system calls (such as openat, mmap, and futex) and the ELF layout expected by Linux and Alpine Linux binaries. This allows unmodified packages from Alpine Linux, like Chromium, Blender, GIMP, and Wine applications, to run natively on the Vinix kernel without requiring emulation or virtual machines. Vinix is explicitly not a Linux distribution but adheres to Unix and Linux conventions to facilitate software portability rather than basing its entire structure on Linux compatibility.

The kernel architecture of Vinix is monolithic, where all critical components, including the scheduler, memory managers, device drivers, and the network stack, reside in a single address space. This design choice prioritizes efficiency by eliminating inter-process communication overhead associated with microkernels. Drivers are integrated directly into the kernel as modules, initializing through a strict sequence, and hardware discovery is handled via platform-specific methods, such as an ACPI device tree on Apple Silicon.

Regarding hardware acceleration, Vinix is developing its own drivers for Apple Silicon GPUs, starting with the M1, which involves handling the AGX GPU and the display controller (DCP). This work is focused on implementing the necessary subsystems for hardware-accelerated graphics and smooth video output, which are foundational for potential gaming capabilities.

To manage applications securely, Vinix offers optional per-application sandboxing, confining a program to its own private directory and restricting its access to the filesystem, mimicking security models found in systems like iOS. This optional feature is meant to be opted into by the user where it is beneficial, such as for inspecting downloaded binaries or browser operations.

The system employs a custom package management utility called pkg, which draws upon Alpine Linux aarch64 repositories to install software and its dependencies. This package manager handles dependency resolution and staging within the Vinix image, allowing the system to leverage thousands of existing packages instead of maintaining a limited set of ported ones.

In terms of user experience, Vinix defaults to its own native desktop environment and window manager based on V and V UI2. However, it maintains flexibility, offering compatibility paths through support for X.org and an optional Wayland session utilizing Hyprland for ARM64 architectures. The development roadmap aims to expand support across both Intel and Apple Silicon platforms, with future work focusing on further hardware driver development and expanded application support, including support for popular titles like those from Valve. The system is ultimately built on the principle of simplicity, where one unified distribution, desktop, package manager, and initialization system converge into a single, predictable operational environment.