Asterinas NixOS
Asterinas NixOS 是 Asterinas 的首个发行版。我们选择 NixOS 作为基础操作系统,因其具有无与伦比的可定制性和丰富的软件包生态系统。Asterinas NixOS 旨在保持与原生 NixOS 相同的外观和使用体验,区别在于它用 Asterinas 内核取代了 Linux。有关选择 NixOS 的更多理由,请参阅 RFC。
免责声明:Asterinas 是一个独立的、由社区主导的项目。Asterinas NixOS 并非官方 NixOS 项目,也与 NixOS 基金会无任何关联。不暗示任何赞助或认可。
Asterinas NixOS 尚未准备好用于生产环境。我们提供 Asterinas NixOS 是为了让 Asterinas 内核更易于使用,让早期采用者和爱好者能够试用并提供反馈。此外,Asterinas 开发者将此发行版作为关键的开发工具,以促进在 Asterinas 内核上启用和测试更多实际应用。
开始使用
终端用户
以下说明描述了如何使用 Asterinas NixOS 安装程序 ISO 在虚拟机中安装 Asterinas NixOS。
-
启动一个 x86-64 Ubuntu容器:
docker run -it --privileged --network=host ubuntu:latest bash -
在容器中安装 QEMU:
apt update apt install -y qemu-system-x86 qemu-utils -
从 GitHub Releases下载最新的 Asterinas NixOS 安装程序 ISO。
-
创建一个文件,该文件将用作安装 Asterinas NixOS 的目标磁盘:
# 磁盘容量为10GB;根据您的需要进行调整 dd if=/dev/zero of=aster_nixos_disk.img bs=1G count=10 -
使用两个驱动器启动x86-64 虚拟机:一个是安装程序 CD-ROM,另一个是目标光盘:
export INSTALLER_ISO=/path/to/your/downloaded/installer.iso qemu-system-x86_64 \ -cpu host -m 8G -enable-kvm \ -drive file="$INSTALLER_ISO",media=cdrom -boot d \ -drive if=virtio,format=raw,file=aster_nixos_disk.img \ -chardev stdio,id=mux,mux=on,logfile=qemu.log \ -device virtio-serial-pci -device virtconsole,chardev=mux \ -serial chardev:mux -monitor chardev:mux \ -nographic虚拟机启动后,您现在可以访问安装环境。
-
编辑用户主目录中的
configuration.nix文件以自定义要安装的 NixOS 系统:vim configuration.nixconfiguration.nix文件的完整语法和使用指南请参阅 NixOS 手册 。 如果你不熟悉NixOS,可以跳过这一步。Asterinas NixOS 目前尚未支持
configuration.nix中的所有设置组合。已测试过的设置组合记录在后续章节中。 -
开始安装:
install_aster_nixos.sh --config configuration.nix --disk /dev/vda --force-format-disk安装过程涉及下载包,可能需要大约30分钟才能完成,这取决于您的网络速度。
-
安装完成后,即可关闭虚拟机:
poweroff现在 Asterinas NixOS 已安装在
aster_nixos_disk.img中。 -
启动虚拟机引导新安装的 Asterinas NixOS:
qemu-system-x86_64 \ -cpu host -m 8G -enable-kvm \ -bios /usr/share/qemu/OVMF.fd \ -drive if=none,format=raw,id=x0,file=aster_nixos_disk.img \ -device virtio-blk-pci,drive=x0,disable-legacy=on,disable-modern=off \ -chardev stdio,id=mux,mux=on,logfile=qemu.log \ -device virtio-serial-pci -device virtconsole,chardev=mux \ -serial chardev:mux -monitor chardev:mux \ -device virtio-net-pci,netdev=net0,disable-legacy=on,disable-modern=off \ -netdev user,id=net0 \ -device isa-debug-exit,iobase=0xf4,iosize=0x04 \ -nographic -display vnc=127.0.0.1:21如果在
configuration.nix文件中启用了桌面环境,您可以使用 VNC 客户端查看图形界面。
内核开发者
-
Follow Steps 1 and 2 in the “Getting Started” section of the Asterinas Kernel to set up the development environment.
-
在 Docker 容器内,使用以下命令生成已安装 Asterinas NixOS 的磁盘镜像:
make nixos或者使用以下命令:
make iso && make run_iso这两种方法的区别在于,第一种是将 NixOS 完全安装到容器内部的磁盘镜像中,而第二种是通过运行虚拟机来模拟手动 ISO 安装步骤(见上一节)。两种方法最终都会生成一个包含 Asterinas NixOS 安装的磁盘镜像。
-
启动虚拟机运行已安装的 Asterinas NixOS:
make run_nixos