我在服务器上使用 SmartOS,我对此非常热衷,尤其是他们推出了“LX 品牌区域”之后。这使我们能够在 SmartOS“区域”中以裸机性能运行 Linux 应用程序,而无需虚拟机管理程序。
当我创建 LX 品牌区域时,我必须编写一个清单文件,其中包含一个kernel_version
属性。在 Joyent 在其网站上提供的示例中,kernel_version 设置为 3.13.0,请参阅https://wiki.smartos.org/display/DOC/LX+Branded+Zones。
然而,“真正的” Ubuntu 带有 3.16 内核。
我的问题:
- 当为 提供不同的值时
kernel_version
,这实际上会改变 SmartOS 模拟的 Linux 内核功能吗?或者它只是一个“信息性”值,当它们查询内核版本时,将返回给在 LX 区域中运行的用户空间应用程序? - 当前 SmartOS 支持哪些值
kernel_version
?撰写本文时的“当前”是 joyent_20150612T210440Z。
我彻底检查了 Joyent 的大量文档并进行了广泛的网络研究,但没有找到上述问题的任何答案。
任何帮助是极大的赞赏。
答案1
对你的问题的两个部分的答案是相同的。创建 LX 品牌区域的 JSON 有效负载中列出的内核版本仅仅是一个文本字符串,并不重要。它只是release
由 返回的结构的值uname(2)
。事实是,它无论如何都是完全捏造的。提供的系统调用不会根据报告的 Linux 内核版本而改变。它不会以任何方式改变模拟(Linux)或真实(SmartOS)内核的行为。因此,您可以将其设置为满足您需求的任何值。
在 Joyent 公共云中,我看到的值范围从 3.1 到 3.18,具体取决于所模拟的发行版(例如,debian-7、ubuntu-14、centos-6 或 docker)。