O Vinix é um esforço para escrever um sistema operacional moderno, rápido e útil na linguagem de programação V.
Junte -se ao bate -papo de discórdia.
Nota: Vinix ainda é um software pré-alfa não destinado ao uso diário ou de produção!


Você pode pegar uma imagem noturna vinix pré-construída em https://github.com/vlang/vinix/releases
Certifique -se de inicializar o ISO com memória suficiente (8+gib), pois, por enquanto, o Vinix carrega todo o sistema de arquivos raiz em um RamDisk para poder inicializar mais facilmente em hardware real.
A seguir, é apresentada uma lista distro-agnóstica de pacotes necessários para construir o Vinix.
Pule para um parágrafo para sua distração do host, se houver.
GNU make , findutils , curl , git , xz , rsync , xorriso , qemu para testá -lo e um compilador C Working ( cc ) precisa 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 a distro, que inclui a cadeia de ferramentas cruzada necessária para construir kernel e portos, bem como o próprio kernel, executar:
make all # Build the base distro and make filesystem and ISO.Nota: Em certas distritos, como o Ubuntu 24.04, pode -se receber um erro como:
.../.jinx-cache/rbrt: failed to open or write to /proc/self/setgroups at line 186: Permission denied
Nesse caso, provavelmente significa que o Appmor está impedindo o uso de espaços para nome de usuário, fazendo com que jinx não funcione. Pode -se ativar namespaces de usuário em execução:
sudo sysctl kernel.apparmor_restrict_unprivileged_userns=0Isso não é permanente nas reinicializações. Para fazer isso, pode -se fazer:
sudo sh -c ' echo "kernel.apparmor_restrict_unprivileged_userns = 0" >/etc/sysctl.d/99-userns.conf ' Isso criará uma imagem de distro mínima. A configuração da variável PKGS_TO_INSTALL ENV permitirá especificar um conjunto personalizado de pacotes para criar/instalar. Por exemplo:
PKGS_TO_INSTALL= ' * ' make allIsso criará todos os pacotes (pode levar algum tempo). Ou:
PKGS_TO_INSTALL= ' python sqlite ' make all Isso criará o sistema base (como make all ) mais os pacotes python e sqlite .
No Linux, se o KVM estiver disponível, execute com
make run-kvm
No macOS, se hvf estiver disponível, execute com
make run-hvf
Para correr sem nenhuma aceleração, corra com
make run