Vinix is an effort to write a modern, fast, and useful operating system in the V programming language.
Join the Discord chat (#vinix-os
channel).
You can get a nightly continuously updated ISO of Vinix here.
- Keep the code as simple and easy to understand as possible.
- Write in V as much as possible.
- Make a usable OS which can run on real hardware, not just on emulators.
- Target modern 64-bit architectures and CPU features.
- Maintain good source-level compatibility with Linux to allow to easily port programs over.
- Explore V capabilities in bare metal programming.
- Improve the compiler by providing feedback in response to the uncommon needs of bare metal programming.
- Having fun.
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
, meson
, ninja
, m4
, texinfo
, gcc/clang
, python3
, pip3
, wget
, xorriso
, and qemu
to test it.
sudo apt install build-essential git meson m4 texinfo python3 python3-pip wget xorriso qemu-system-x86
sudo pacman -S base-devel git meson python python-pip wget xorriso qemu-arch-extra
This build system does not officially support macOS. Run this in an x86_64 Linux VM or real hardware.
It is necessary to fetch xbstrap
from pip3
:
sudo pip3 install xbstrap
To build the distro which includes the cross toolchain necessary to build kernel and ports, run:
make distro
This step will take a while.
Simply run
make
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