Ich verwende SmartOS auf meinen Servern und bin wirklich begeistert davon, insbesondere seit sie ihre „LX-gebrandeten Zonen“ eingeführt haben. Diese ermöglichen es uns, Linux-Anwendungen in einer SmartOS-„Zone“ mit Bare-Metal-Leistung ohne Hypervisor auszuführen.
Wenn ich eine Zone mit LX-Branding erstelle, muss ich eine Manifestdatei schreiben, die eine kernel_version
Eigenschaft enthält. Im Beispiel, das Joyent auf seiner Website bereitstellt, ist kernel_version auf 3.13.0 eingestellt, siehehttps://wiki.smartos.org/display/DOC/LX+Branded+Zones.
Das „echte“ Ubuntu wird jedoch mit einem 3.16-Kernel ausgeliefert.
Meine Fragen:
- Wenn ich unterschiedliche Werte für angibt
kernel_version
, werden dadurch tatsächlich die von SmartOS emulierten Linux-Kernel-Funktionen geändert? Oder handelt es sich nur um einen „informativen“ Wert, der an in der LX-Zone ausgeführte Userland-Apps zurückgegeben wird, wenn diese die Kernel-Version abfragen? - Welche Werte
kernel_version
werden im aktuellen SmartOS unterstützt? „Aktuell“ ist zum Zeitpunkt des Schreibens joyent_20150612T210440Z.
Ich habe jede Menge Dokumentation von Joyent gründlich geprüft und umfangreiche Recherchen im Internet durchgeführt, konnte jedoch keine Antworten auf meine obigen Fragen finden.
Jede Hilfe wird sehr geschätzt.
Antwort1
Die Antwort auf beide Teile Ihrer Frage ist dieselbe. Die in der JSON-Nutzlast zum Erstellen einer LX-Markenzone aufgeführte Kernelversion ist lediglich eine Textzeichenfolge und spielt keine wirkliche Rolle. Es ist einfach der Wert der von release
zurückgegebenen Struktur uname(2)
. In Wirklichkeit ist es sowieso eine reine Erfindung. Die bereitgestellten Systemaufrufe ändern sich nicht basierend auf der gemeldeten Linux-Kernelversion. Das Verhalten des emulierten (Linux) oder echten (SmartOS) Kernels wird in keiner Weise geändert. Sie können dies also nach Bedarf einstellen.
In der Joyent Public Cloud habe ich Werte zwischen 3,1 und 3,18 gesehen, je nach emulierter Distribution (z. B. Debian 7, Ubuntu 14, CentOS 6 oder Docker).