Skip to the content.

BMBT 常见问题解答

  1. 为什么不使用 unikernel + QEMU 的方法?
    • 现在 unikernel 的解决方案都是试图将 unikernel 放到虚拟机的 guest 态中运行,无法避免 host 的软件栈
      • 那为什么不采用的 A Linux in unikernel clothing 1 的方式 ?
        • 这种方法无法实现设备直通, 而且这种方案依赖于 KLM2 的支持
  2. 为什么不基于 captive 开发?
    • captive 自身的代码量非常大, 大约在 10 万行左右
    • captive 需要对于 x86 写对应的 asl 硬件描述语言从而生成自动翻译
    • captive 是通过构建一个 unikernel 在 kvm 中运行,其 unikernel 实现和硬件打交道的方法都是 virtio 。这和我们希望直接在虚拟上运行需求不符合。
  3. 为什么不使用 Rust 开发?
    • 虽然在底层开发中间出现了类似 Theseus3 以及 Bento4 之类使用 Rust 开发趋势,Rust 可以带来内存安全以及其他的更多安全检查
    • 虽然存在 c2rust 5 等工具实现源码装换,目前来说,重写代码的难度不可预估,使用 Rust 来构建是将来的工作
    • 使用 Rust 写还有一个好处在于可以拜托 QEMU 的证书限制。

一些参考的 hypervisor

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。

  1. A Linux in unikernel clothing 

  2. Kernel Mode Linux 

  3. Theseus 

  4. High Velocity Kernel File Systems with Bento 

  5. c2rust