问题标签 [unikernel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - HaLVM 和线程
我不太明白 HaLVM 或类似技术在(OS)线程方面的作用。
我知道,当使用 -thread 选项编译代码时,Haskell 多线程 RTS 将使用 OS 线程重新分配现有的 Haskell 线程,从而避免外部调用的阻塞行为。现在,当您使用 HaLVM 时,您可能不必进行任何外部调用。但是,我想知道这一切是如何混合的,以及 HaLVM 运行了多少工作线程。是否没有其他情况下缺少操作系统工作线程可能导致阻塞或其他不良行为?
virtualization - 为什么很多“裸内核+应用”解决方案都针对 xen?
有许多项目可以从您的应用程序中生成完整的图像,可在 xen 上作为机器启动。例如Xen 上的 Erlang、OpenMirage、HaLVM等。
为什么 Xen 是他们的默认管理程序?它是否提供了一些使这些项目更容易的接口(相对于 KVM、VmWare 等),还是只是项目开发人员的选择?
docker - Docker 与 Mirage OS 等外核方法有何关联?
Docker 与 MirageOS 等外核方法有何关联?
有关 MirageOS 的一些信息,请参阅:
xen - 如何构建 Mirage OS 的 Xen unikernel
我阅读了这份文档(http://openmirage.org/wiki/hello-world)并尝试构建一个 xen unikernel,如下所示:
但编译失败:
到 PKG_CONFIG_PATH 环境变量 No package 'mirage-xen' found make: *** [build] Error 1
我成功安装了 mirage-xen opam install mirage-xen
。但是在我的 .opam 目录中,没有mirage-xen.pc
.
docker - Docker Container 与 Unikernel 对比
我最近使用 docker 部署了一个小型 Haskell 应用程序,使用“scratch-haskell”作为基础映像。
然后我读到了 Unikernels 和 HALVM。我有点困惑。
我的 docker 容器大约 6MB 大。我猜一个 Unikernel(具有相同的 haskell 应用程序)的大小大致相同。
Unikernel 直接在 Xen 管理程序上运行,而 docker Image(或通用 LXC)在普通 Linux 发行版上运行,该发行版在裸机上运行。
现在我可以“选择”运行带有多个最小容器的 Linux 或带有多个小型 Unikernel 的 Xen 机器。
但这两种解决方案的优缺点是什么?一个比另一个更安全吗?它们之间是否存在显着的性能差异?
ocaml - 执行 make depend 时未绑定的值 Mirage.load
我正在尝试使用最新版本的 OCaml、OPAM 和相关软件包在 Ubuntu 14.04 下编译和构建这个简单的 Unikernel 项目https://github.com/MagnusS/mirage-stats-demo,但是当我执行命令时,请依赖出现以下错误:
ocaml - MirageOS - 无法为 XEN 构建 unikernel
我编写了一个简单的基于 MirageOS 的 Unikernel 来执行基本的 HTTP GET 调用。虽然当我将它作为 Unix 二进制文件运行时它没有任何问题,但当我为 XEN ( mirage configure --xen
) 配置它并启动make
命令时,我收到以下错误:
我刚开始使用 MirageOS 和 OCaml,所以这可能是一个愚蠢的问题,但现在我真的不知道该怎么做。
ocaml - MirageOS - Http 获取示例
我正在尝试修改可以在 mirage-skeleton 中找到的 MirageOS http-fetch 示例(https://github.com/mirage/mirage-skeleton),但我在理解为什么我不能将 config.ml 文件中执行的一些函数移动到我的 unikernel.ml 文件中。原始的 config.ml 文件如下(我将只复制有趣的部分):
我想要做的是移动这两行:
进入我的 unikernel.ml 启动方法。基本上我只想将堆栈传递给我的模块,并让它创建一个 dns 解析器和一个管道。我的启动功能如下:
现在我在提交 http_fetch 参数时收到此错误:
我在这里问的主要是一个概念性问题,因为我显然遗漏了一些东西。我不是 OCaml/MirageOS 方面的专家,但考虑到我只是从不同的文件调用相同的函数,这种类型不匹配的有争议的行为很难理解。
xen - Mirage OS 和 Xen - 在数据库中存储数据
如果我希望 MirageOS unikernel 将一些信息存储在外部数据库上(与类型无关),哪些是可用的最佳选项?我查看了不同的解决方案,但似乎没有提供 DB 绑定的库与 XEN 兼容。我尝试的最后一个是 Redis,但显然无法为 XEN 编译 ocaml 库。
nginx - Rump unikernel nginx 日志
我只是运行rump 教程来为 nginx 创建一个unikernel来传递静态内容。
本教程完美运行,但我对日志记录有疑问。unikernel 将所有错误日志发送到stderr
(因此被qemu
输出终端捕获),但访问日志被发送到 /dev/null。
在这种情况下,如何捕获 nginx access_log ?