当前位置: 首页 > 工具软件 > xhyve > 使用案例 >

xhyve —— Mac 的虚拟技术

慕弘深
2023-12-01

FreeBSD 下的虚拟技术 bhyve (The BSD Hypervisor) 包含在了 FreeBSD 10.0 发行版中。而这个 xhyve 是基于 bhyve 的 Mac OS X 移植版本,也就是说我们想在 Mac 上运行 Linux 的话除了 VirtualBox, VMware Fusion 外,现在有了第三种选择。

xhyve 超级小,只有 230 KB,不依赖其他软件或库。下面的步骤基本按照 xhyve 作者的文档 xhyve – Lightweight Virtualization on OS X Based on bhyve 实现,不过跟着别人的文档并不总会一帆风顺,虽然文档已经很详细,总有碰到自己的问题的时候,有人报告说在自己的 Macbook (OS X 10.10.3) 上运行不成功。我在测试的过程中遇到的一个问题是硬盘分区问题,稍后会提到。我的编译和测试环境是 OS X Yosemite 10.10.4 + Xcode 6.3.2.

xhyve 发布的是源代码,需要编译后运行,所以 Mac 上没有安装 Xcode 的话需要先到 App Store 安装。

使用 git 下载源码后编译,运行 xhyverun.sh 后会启动一个简单的 Tiny Core Linux 虚拟机:

$ git clone https://github.com/mist64/xhyve.git
$ cd xhyve
$ make
$ ./xhyverun.sh

架构:

+----------------------------------------------------------+
   | xhyve                                                    |
   |                                                          |
   |                            I/O                           |
   |                                                          |
   |                                                          |
   |                                                          |
   |+--------------------------------------------------------+|
   ||  vmm                   VMX guest                       ||
   ||                          Timers                        ||
   ||                        Interrupts                      ||
   |+--------------------------------------------------------+|
   +----------------------------------------------------------+
   +----------------------------------------------------------+
   |                   Hypervisor.framework                   |
   +----------------------------------------------------------+
                                 A
                                 |                         user
   ------------------------------┼------------------------------
                                 |syscall            xnu kernel
                                 V

                              VMX host
                          VMX nested paging

文章转载自 开源中国社区 [http://www.oschina.net]

 类似资料: