Vinix - это попытка написать современную, быструю и полезную операционную систему на языке программирования V.
Присоединяйтесь к чату Discord.
Примечание: Vinix по-прежнему является предварительным программным обеспечением, не предназначенным для ежедневного или использования производства!


Вы можете взять предварительно построенное ночное изображение Vinix по адресу https://github.com/vlang/vinix/releases
Обязательно загрузите ISO с достаточной памятью (8+GIB), так как сейчас Vinix загружает всю корневую файловую систему в Ramdisk, чтобы иметь возможность более легко загружаться на реальное оборудование.
Ниже приведен дистрибутивный список пакетов, необходимых для построения Vinix.
Пропустите абзац для вашего хоста -дистрибутива, если есть.
GNU make , findutils , curl , git , xz , rsync , xorriso , qemu для его проверки, и должен присутствовать рабочий компилятор C ( cc ).
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 qemuЧтобы построить дистрибутив, который включает в себя перекрестный инструмент, необходимый для построения ядра и портов, а также самого ядра, запустите:
make all # Build the base distro and make filesystem and ISO.Примечание. На определенных дистрибуциях, таких как Ubuntu 24.04, можно получить ошибку, подобную:
.../.jinx-cache/rbrt: failed to open or write to /proc/self/setgroups at line 186: Permission denied
В этом случае это, вероятно, означает, что Apparmor предотвращает использование пространств имен пользователей, заставляя jinx не работать. Можно включить пространства имен пользователей, работая:
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0Это не постоянно во всех перезагрузках. Чтобы сделать это, можно сделать:
sudo sh -c ' echo "kernel.apparmor_restrict_unprivileged_userns = 0" >/etc/sysctl.d/99-userns.conf ' Это построит минимальное изображение дистрибуции. Установка переменной env PKGS_TO_INSTALL позволит указать пользовательский набор пакетов для сборки/установки. Например:
PKGS_TO_INSTALL= ' * ' make allЭто построит все пакеты (может занять некоторое время). Или:
PKGS_TO_INSTALL= ' python sqlite ' make all Это построит базовую систему (например, make all ) плюс пакеты python и sqlite .
В Linux, если KVM доступен, запустите с
make run-kvm
В macOS, если HVF доступен, запустите с
make run-hvf
Бежать без какого -либо ускорения, бегите с
make run