Я использую SmartOS на своих серверах и я действительно в восторге от этого, особенно с тех пор, как они запустили свои "зоны под брендом LX". Они позволяют нам запускать приложения Linux в "зоне" SmartOS на производительности bare metal без гипервизора.
Когда я создаю зону под брендом LX, мне нужно написать файл манифеста, который включает kernel_version
свойство. В примере, который Joyent предоставляет на своем сайте, kernel_version установлен на 3.13.0, см.https://wiki.smartos.org/display/DOC/LX+Branded+Zones.
Однако «настоящая» Ubuntu поставляется с ядром 3.16.
Мои вопросы:
- При предоставлении различных значений для
kernel_version
, это фактически изменит функции ядра Linux, которые эмулирует SmartOS? Или это просто «информативное» значение, которое будет возвращено пользовательским приложениям, работающим в зоне LX, когда они запрашивают версию ядра? - Какие значения
kernel_version
поддерживаются в текущей версии SmartOS? «Текущее» значение на момент написания — joyent_20150612T210440Z.
Я тщательно проверил множество документации от Joyent и провел обширное исследование в Интернете, но не нашел ответов на свои вопросы выше.
Любая помощь будет высоко оценена.
решение1
Ответ на обе части вашего вопроса один и тот же. Версия ядра, указанная в полезной нагрузке JSON для создания зоны бренда LX, — это просто текстовая строка, которая на самом деле не имеет значения. Это просто значение release
структуры, возвращаемой uname(2)
. Реальность такова, что это в любом случае полная фальсификация. Предоставляемые системные вызовы не изменяются в зависимости от сообщаемой версии ядра Linux. Это никак не меняет поведение эмулируемого (Linux) или реального (SmartOS) ядра. Поэтому вы можете установить ее на то, что соответствует вашим потребностям.
В Joyent Public Cloud я видел значения от 3,1 до 3,18 в зависимости от эмулируемого дистрибутива (например, Debian-7, Ubuntu-14, Centos-6 или Docker).