我很高兴代表Mirage团队宣布MirageOS 4.0的测试版!
MirageOS是一个库操作系统,它为跨各种虚拟机监控程序和嵌入式平台的安全、高性能网络应用程序构建unikernels。例如,可以在标准操作系统(如Linux或macOS)上开发OCaml代码,然后将其编译成在Xen或KVM虚拟机监控程序下运行的完全独立、专门的unikernel。MirageOS项目还提供了几种用纯OCaml编写的协议和存储实现,从TCP/IP到TLS,再到完整的类似Git的存储堆栈。
注意:您需要明确添加4.0>=0版本,否则opam将选择最新版本。*稳定释放。要获得良好的体验,请检查是否至少安装了版本4.0.0~beta3。
MirageOS的新版本为所有受支持的单内核目标增加了交叉编译的系统支持。这意味着使用C存根的库(比如Base)现在可以无缝地将这些存根交叉编译到所需的目标。MirageOS的早期版本需要特定的支持,通过将存根添加到中心包来实现这一点。
MirageOS使用Dune工作区实现交叉编译,它可以获取整个OCaml代码集合(包括所有可传递的依赖项),并使用给定的一组C和OCaml编译器标志对其进行编译。在ocaml中开发unikernels时,该工作流还解除了对熟悉的IDE工具(如ocaml lsp server和Merlin)的支持。由于构建与配置和包更新分离,因此它使日常编码速度大大加快。这意味着,生活建设,如沙丘#39;s的观察模式,现在工作良好,即使是异国情调的建设目标!
此版本在基于Dune工作区编译MirageOS项目的方式上引入了一个重大变化。这需要为Opam用户实现一种新的开发体验,以简化大型OCaml项目的交叉编译。
这个名为opam monorepo(née duniverse)的新工具将包管理与生成的源代码分离开来。这是一个Opam插件:
opam monorepo已在opam中提供,可用于许多使用dune作为构建系统的项目。然而,正如我们不知道的那样';我们不希望完整的OCaml依赖项使用dune,我们MirageOS的维护人员致力于维护补丁,以构建dune最常见的依赖项。为此,使用了两个存储库:
非常感谢您对本测试版的反馈。您可以按照这里的教程进行操作。欢迎在我们的bug追踪器上发布问题,或者在MirageOS频道的Matrix上找到我们:#MirageOS:Matrix。组织或讨论。
最终版本将在大约一个月后发布。此版本将包含您的早期反馈。它还将确保现有的MirageOS生态系统与MirageOS 4兼容,将覆盖包减少到最低限度。我们还计划写更多关于opam monorepo和MirageOS 4.0将带来的所有新事物的文章。