Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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。

  1. 启动一个 x86-64 Ubuntu容器:

    docker run -it --privileged --network=host ubuntu:latest bash
    
  2. 在容器中安装 QEMU:

    apt update
    apt install -y qemu-system-x86 qemu-utils
    
  3. GitHub Releases下载最新的 Asterinas NixOS 安装程序 ISO。

  4. 创建一个文件,该文件将用作安装 Asterinas NixOS 的目标磁盘:

    # 磁盘容量为10GB;根据您的需要进行调整
    dd if=/dev/zero of=aster_nixos_disk.img bs=1G count=10
    
  5. 使用两个驱动器启动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
    

    虚拟机启动后,您现在可以访问安装环境。

  6. 编辑用户主目录中的 configuration.nix 文件以自定义要安装的 NixOS 系统:

    vim configuration.nix
    

    configuration.nix文件的完整语法和使用指南请参阅 NixOS 手册 。 如果你不熟悉NixOS,可以跳过这一步。

    Asterinas NixOS 目前尚未支持 configuration.nix 中的所有设置组合。已测试过的设置组合记录在后续章节中。

  7. 开始安装:

    install_aster_nixos.sh --config configuration.nix --disk /dev/vda --force-format-disk
    

    安装过程涉及下载包,可能需要大约30分钟才能完成,这取决于您的网络速度。

  8. 安装完成后,即可关闭虚拟机:

    poweroff
    

    现在 Asterinas NixOS 已安装在aster_nixos_disk.img中。

  9. 启动虚拟机引导新安装的 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 客户端查看图形界面。

内核开发者

  1. Follow Steps 1 and 2 in the “Getting Started” section of the Asterinas Kernel to set up the development environment.

  2. 在 Docker 容器内,使用以下命令生成已安装 Asterinas NixOS 的磁盘镜像:

    make nixos
    

    或者使用以下命令:

    make iso && make run_iso
    

    这两种方法的区别在于,第一种是将 NixOS 完全安装到容器内部的磁盘镜像中,而第二种是通过运行虚拟机来模拟手动 ISO 安装步骤(见上一节)。两种方法最终都会生成一个包含 Asterinas NixOS 安装的磁盘镜像。

  3. 启动虚拟机运行已安装的 Asterinas NixOS:

    make run_nixos