Vinix es un esfuerzo por escribir un sistema operativo moderno, rápido y útil en el lenguaje de programación V.
Únete al chat de discordia.
Nota: ¡Vinix todavía es un software prealpha no destinado al uso diario o de producción!


Puedes tomar una imagen de Vinix nocturna pre-construida en https://github.com/vlang/vinix/releases
Asegúrese de iniciar el ISO con suficiente memoria (8+GIB) ya que, por ahora, Vinix carga todo su sistema de archivos raíz en un ramdisk para poder iniciar más fácilmente en hardware real.
La siguiente es una lista de distribución de paquetes necesarios para construir Vinix.
Pase a un párrafo para su distribución de anfitrión si hay alguna.
GNU make , findutils , curl , git , xz , rsync , xorriso , qemu para probarlo, y un compilador C de trabajo ( cc ) debe estar presente.
sudo apt install -y build-essential make findutils curl git xz-utils rsync xorriso qemu-system-x86sudo pacman -S --needed gcc make findutils curl git xz rsync xorriso qemusudo yum install -y gcc make findutils curl git xz rsync xorriso qemusudo xbps-install -Suv gcc make findutils curl git xz rsync xorriso qemuPara construir la distribución, que incluye la cadena de herramientas cruzadas necesaria para construir núcleo y puertos, así como el núcleo mismo, ejecute:
make all # Build the base distro and make filesystem and ISO.Nota: En ciertas distribuciones, como Ubuntu 24.04, uno puede recibir un error como:
.../.jinx-cache/rbrt: failed to open or write to /proc/self/setgroups at line 186: Permission denied
En ese caso, probablemente significa que APARMOR está evitando el uso de espacios de nombres de usuarios, lo que hace que jinx no funcione. Se pueden habilitar espacios de nombres de usuarios ejecutando:
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0Esto no es permanente en los reinicios. Para hacerlo así, uno puede hacer:
sudo sh -c ' echo "kernel.apparmor_restrict_unprivileged_userns = 0" >/etc/sysctl.d/99-userns.conf ' Esto construirá una imagen de distribución mínima. Configuración de la variable PKGS_TO_INSTALL Env le permitirá especificar un conjunto personalizado de paquetes para construir/instalar. Por ejemplo:
PKGS_TO_INSTALL= ' * ' make allEsto construirá todos los paquetes (puede llevar algún tiempo). O:
PKGS_TO_INSTALL= ' python sqlite ' make all Esto construirá el sistema base (como make all ) más los paquetes python y sqlite .
En Linux, si KVM está disponible, ejecute con
make run-kvm
En macOS, si HVF está disponible, ejecute con
make run-hvf
Para ejecutar sin aceleración, ejecute con
make run