I'm using SmartOS on my servers and I'm really enthusiastic about it, especially since they launched their "LX-branded zones". These enable us to run Linux applications in a SmartOS "zone" at bare metal performance without a hypervisor.
When I create an LX-branded zone, I have to write a manifest file, which includes a kernel_version
property. In the example that Joyent provides on their website, kernel_version is set to 3.13.0, see https://wiki.smartos.org/display/DOC/LX+Branded+Zones.
The "real" Ubuntu comes with a 3.16 kernel, though.
My questions:
- When providing different values for
kernel_version
, will that actually change the Linux kernel features that SmartOS emulates? Or is it just an "informative" value that will be returned to user land apps running in the LX zone when they inquire the kernel version? - What values for
kernel_version
are supported in current SmartOS? "Current" at the time of writing is joyent_20150612T210440Z.
I thoroughly checked loads of documentation from Joyent and did extensive web research, but I haven't found any answers to my questions above.
Any help is greatly appreciated.
The answer to both parts of your question is the same. The kernel version listed in the JSON payload for creating an LX-brand zone is merely a text string and doesn't really matter. It's simply the value of
release
of the struct returned byuname(2)
. The reality is, it's a total fabrication anyway. The system calls provided don't change based on the reported linux kernel version. It doesn't change the behavior of the emulated (linux) or real (SmartOS) kernel in any way. So you can set this to whatever meets your needs.In the Joyent Public Cloud, I've seen values ranging from 3.1 to 3.18, depending on the distro being emulated (e.g., debian-7, ubuntu-14, centos-6 or docker).