Vinix is an effort to write a modern, fast, and useful operating system in the V programming language.
Join the Discord chat.
- 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.
- Targeting 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.
Note: Vinix is still pre-alpha software not meant for daily or production usage!
Photo by Hubblesite.org: https://hubblesite.org/files/live/sites/hubble/files/home/science/stars-and-nebulae/_images/STScI-H-stars-nebulae-0411a-2400x1200.jpg
You can grab a pre-built nightly Vinix image at https://github.com/vlang/vinix/releases
Make sure to boot the ISO with enough memory (8+GiB) as, for now, Vinix loads its entire root filesystem in a ramdisk in order to be able to more easily boot on real hardware.
- mlibc
- bash
- gcc/g++
- V
- nano
- storage drivers
- ext2
- X.org
- Networking
- Wayland
- Hypervisor
- X window manager
- V-UI
- Intel HD graphics driver (Linux port)
The following is a distro-agnostic list of packages needed to build Vinix.
Skip to a paragraph for your host distro if there is any.
GNU make
, curl
, git
, mercurial
, bsdtar
, xorriso
, and qemu
to test it.
sudo apt install -y make curl git mercurial libarchive-tools xorriso qemu-system-x86 libarchive-tools
sudo pacman -S --needed make curl git mercurial libarchive xorriso qemu libarchive
sudo yum install -y make curl git mercurial libarchive xorriso qemu bsdtar
To build the distro, which includes the cross toolchain necessary to build kernel and ports, as well as the kernel itself, run:
make distro-base # Build the base distribution.
make all # Make filesystem and ISO.
This will build a minimal distro image. The make distro-full
target
is also avaliable to build the full distro; this step will take a while.
In Linux, if KVM is available, run with
make run-kvm
In macOS, if hvf is available, run with
make run-hvf
To run without any acceleration, run with
make run