主要观点:介绍新的 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 内核,利用HvSpace
和vCPU
API 等。- 超管理器(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 设备驱动程序,未详细探讨。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。