作为库的虚拟机监控程序

主要观点:介绍新的 Go 程序catsay,重点是在 Starina 操作系统上运行 Linux 轻量级虚拟机,分享“hypervisor as a library”的设计模式,探讨在 Linux 中运行应用及提供 Linux 兼容性的方式等。
关键信息

  • catsay可吃 stdin 并像猫一样说话,文中提到的截图是在 Starina 上运行的 Linux 虚拟机。
  • 提供 Linux 兼容性有多种方式,Starina 采用在轻量级虚拟机中运行真实 Linux 内核的方法。
  • std::process::Command模式可用于在不同系统中运行程序,在 Starina 中也可用于运行catsay
  • starina_linux::Command通过创建轻量级 VM 来运行 Linux 内核,利用HvSpacevCPUAPI 等。
  • 超管理器(hypervisor)通常作为独立进程,而 Starina 的starina_linux::Command超管理器作为库提供,可传递 Rust 对象给 guest OS 等。
  • 目前 Starina 的 Linux 镜像较小,启动时间可优化,未来希望有更像容器的体验,如支持容器镜像等。
    重要细节
  • 文中提到 Windows Subsystem for Linux (WSL 1)和 FreeBSD Linuxulator 等通过 hook 系统调用实现 Linux 兼容性。
  • virtio_fs是提供与 Starina 无缝集成的虚拟文件系统,用于连接catsay的 stdin。
  • 展示了在 Starina 中使用starina_linux::Command运行node应用并进行相关配置的示例代码。
  • 提及 Linux 兼容性还可解锁 Starina 上的 Linux 设备驱动程序,未详细探讨。
阅读 25
0 条评论