Skip to content
forked from vlang/vinix

Vinix is an effort to write a modern, fast, and useful operating system in the V programming language

License

Notifications You must be signed in to change notification settings

carlziess/vinix

 
 

Repository files navigation

Vinix

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).

Download the nightly image!

You can get a nightly continuously updated ISO of Vinix here.

Goals

  • 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.

Why?

  • 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.

Reference screenshot

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, meson, ninja, m4, texinfo, gcc/clang, python3, pip3, wget, xorriso, and qemu to test it.

Build prerequisites for Ubuntu, Debian, and derivatives

sudo apt install build-essential git meson m4 texinfo python3 python3-pip wget xorriso qemu-system-x86

Build prerequisites for Arch Linux and derivatives

sudo pacman -S base-devel git meson python python-pip wget xorriso qemu-arch-extra

Building 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:

sudo pip3 install xbstrap

Building the distro

To build the distro which includes the cross toolchain necessary to build kernel and ports, run:

make distro

This step will take a while.

Building the kernel and image

Simply run

make

To test

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

About

Vinix is an effort to write a modern, fast, and useful operating system in the V programming language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • V 71.2%
  • C 21.5%
  • Makefile 3.1%
  • Verilog 2.6%
  • Shell 1.5%
  • AMPL 0.1%