Vinix
Vinix is an effort to write a modern, fast, and useful operating system in the V programming language.
Join the Discord chat.
Download the ISO
You can get a continuously updated ISO of Vinix here.
What is Vinix all about?
- Keeping the code as simple and easy to understand as possible, while not sacrificing performance and prioritising code correctness.
- Making a usable OS which can run on real hardware, not just on emulators or virtual machines.
- Targetting modern 64-bit architectures, CPU features, and multi-core computing.
- Maintaining good source-level compatibility with Linux to allow to easily port programs over.
- Exploring V capabilities in bare metal programming and improving the compiler in response to the uncommon needs of bare metal programming.
- Having fun.
Roadmap
- mlibc
- bash
- builds.vinix-os.org
- gcc
- g++
- V
- nano
- storage drivers
- ext2
- Wayland compositor
- V-UI
- network
- Intel HD graphics driver (linux port)
Build instructions
OS-agnostic build prerequisites
The following is an OS-agnostic list of packages needed to build Vinix. Skip to a paragraph for your host OS if there is any.
GNU make, GNU patch, GNU tar, GNU gzip, GNU coreutils, git, subversion, mtools, meson, ninja, m4, texinfo, pkg-config, groff, gettext, autopoint, bison, flex, help2man, openssl, gperf, rsync, xsltproc, gcc, nasm, python3, pip3, python3-mako, wget, xorriso, and qemu to test it.
Build prerequisites for Ubuntu, Debian, and derivatives
sudo apt install build-essential nasm git subversion mtools meson m4 texinfo pkg-config groff gettext autopoint bison flex help2man libssl-dev gperf rsync xsltproc python3 python3-pip python3-mako wget xorriso qemu-system-x86Build prerequisites for Arch Linux and derivatives
sudo pacman -S base-devel nasm git subversion mtools meson m4 texinfo pkgconf groff gettext bison flex help2man gperf rsync libxslt python python-pip python-mako wget xorriso qemu-arch-extraBuilding Vinix on macOS
This build system does not officially support macOS. Run this in an x86_64 Linux VM or real hardware.
Installing xbstrap
It is necessary to fetch xbstrap from pip3:
pip3 install --user xbstrapBuilding the distro
To build the distro which includes the cross toolchain necessary to build kernel and ports, run:
make distroThis step will take a while.
Building the kernel and image
Simply run
makeTo test
In Linux, if KVM is available, run with
make run-kvmIn macOS, if hvf is available, run with
make run-hvfTo run without any acceleration, run with
make run