RTC: различия между версиями

Материал из Базы знаний сообщества разработчиков Эльбрус
Перейти к навигации Перейти к поиску
(Добавлено описание процедуры установки)
(→‎Фирменные пакеты МЦСТ: Добавление информации про Эльбрус-1С+)
 
(не показаны 4 промежуточные версии этого же участника)
Строка 4: Строка 4:
  
 
Подробнее на сайте МЦСТ: {{mcstlink|RTC}}
 
Подробнее на сайте МЦСТ: {{mcstlink|RTC}}
 +
 +
 +
 +
== Системные требования ==
 +
 +
Транслятор приложений (и все его сопутствующие утилиты) является статически скомпонованной программой, то есть не зависит от внешних библиотек, и потому может функционировать в любой ОС на базе ядра Linux — он взаимодействует только с ядром Linux. Поэтому RTC до версии 4.4 включительно может устанавливаться практически в любую Linux-систему, в том числе выпущенную задолго до появления такой версии транслятора и вообще не рассчитанной на использование транслятора.
 +
 +
Начиная с версии 5.0, транслятор полагается на особые механизмы ядра Linux для архитектуры Эльбрус, специально добавленные в ядро для расширения функциональных возможностей транслятора и для возможности запуска x86-программ, использующих функции отладки и трассировки работы программного кода. Эти механизмы впервые появились в ядре Linux 5.10. Если в хозяйской ОС используется более старая версия ядра, то применять RTC версии 5.0 или более новой не получится.
 +
  
  
 
== Установка ==
 
== Установка ==
  
Во всех операционных системах рекомендуется использовать штатную версию пакета '''rtc'''. При отсутствии такого пакета в штатной поставе ОС, или при необходимости установить более свежую версию, ещё не доступную штатно для имеющегося дистрибутива ОС, можно воспользоваться универсальным пакетом, предоставляемым на сайте МЦСТ, однако в таком случае следует иметь в виду, что уровень совместимости и степень интеграции с конкретной ОС может быть не таким высоким, как у штатного пакета в составе ОС.
+
Во всех операционных системах рекомендуется использовать штатную версию пакета '''rtc'''. При отсутствии такого пакета в штатной поставке ОС, или при необходимости установить более свежую версию, ещё не доступную штатно для имеющегося дистрибутива ОС, можно воспользоваться универсальным пакетом, предоставляемым на сайте МЦСТ, однако в таком случае следует иметь в виду, что уровень совместимости и степень интеграции с конкретной ОС могут быть не такими высокими, как у штатного пакета в составе ОС.
  
  
Строка 32: Строка 41:
 
=== Универсальный пакет ===
 
=== Универсальный пакет ===
  
Пакет находится по ссылке в описании {{mcstlink|RTC}} на сайте МЦСТ — во вкладке «Поддержка»: https://storage.mcst.ru/index.php/s/ekZcC2IxjkNEOoB — перейдя по ссылке и войдя в директорию с нужной версией транслятора, например ''RTC_5.1'', следует скачать deb-файл с пометкой '''anyos'''в имени, например ''rtc5_5.1-anyos0u9_all.deb''.
+
Пакет находится по ссылке в описании {{mcstlink|RTC}} на сайте МЦСТ — во вкладке «Поддержка»: https://storage.mcst.ru/index.php/s/ekZcC2IxjkNEOoB — перейдя по ссылке и войдя в директорию с нужной версией транслятора, например «''RTC_5.1''», следует скачать deb-файл с пометкой «'''anyos'''» в имени, например ''rtc5_5.1-anyos0u9_all.deb''.
  
 
В операционных системах на базе пакетов ''deb'' и пакетного менеджера <code>apt</code> (Астра, Эльбрус, Эльбрус-Д) установка производятся как обычно, но не по имени пакета, а с указанием пути к deb-файлу, в том числе даже если он находится в текущей директории; а вот удаление — как обычно, по имени пакета:
 
В операционных системах на базе пакетов ''deb'' и пакетного менеджера <code>apt</code> (Астра, Эльбрус, Эльбрус-Д) установка производятся как обычно, но не по имени пакета, а с указанием пути к deb-файлу, в том числе даже если он находится в текущей директории; а вот удаление — как обычно, по имени пакета:
Строка 38: Строка 47:
 
<pre>
 
<pre>
 
apt-get install ./rtc5_5.1-anyos0u9_all.deb
 
apt-get install ./rtc5_5.1-anyos0u9_all.deb
apt-get remove rtc
+
apt-get remove rtc5
 
</pre>
 
</pre>
  
Строка 54: Строка 63:
 
В последнем случае следует иметь в виду на будущее, что пакетные базы штатного менеджера <code>rpm</code> (<code>apt</code>, <code>dnf</code>) и нештатного менеджера <code>dpkg</code> в таких системах не пересекаются, и необходимо самостоятельно следить за предотвращением конфликтов между пакетами: например, если уже установлен штатный пакет версии 5.0, а вы хотите установить универсальный пакет версии 5.1; или если вы установили универсальный пакет версии 5.1 вместо штатного пакета версии 4.4 или в дополнение к нему, а в будущем разработчик ОС выпустит обновление штатного пакета версии 5.0, 5.1 или 6.0, и она будет автоматически выбрана для установки.
 
В последнем случае следует иметь в виду на будущее, что пакетные базы штатного менеджера <code>rpm</code> (<code>apt</code>, <code>dnf</code>) и нештатного менеджера <code>dpkg</code> в таких системах не пересекаются, и необходимо самостоятельно следить за предотвращением конфликтов между пакетами: например, если уже установлен штатный пакет версии 5.0, а вы хотите установить универсальный пакет версии 5.1; или если вы установили универсальный пакет версии 5.1 вместо штатного пакета версии 4.4 или в дополнение к нему, а в будущем разработчик ОС выпустит обновление штатного пакета версии 5.0, 5.1 или 6.0, и она будет автоматически выбрана для установки.
  
Универсальный пакет помечен как архитектурно-независимый („all“), потому что содержит в себе исполняемые файлы для всех моделей процессоров Эльбрус. Выбор исполняемых файлов по умолчанию производится при настройке пакета, и может быть повторён при переносе установленного пакета (накопителя с установленной ОС) на компьютер с другой моделью процессора:
+
В качестве крайней альтернативы, при невозможности использования <code>dpkg</code>, распаковать содержимое пакета и запустить процедуру его настройки можно самостоятельно:
 +
 
 +
<pre>
 +
mkdir rtc5_5.1-anyos0u9_all
 +
cd $_
 +
ar -v -x ../rtc5_5.1-anyos0u9_all.deb
 +
tar --verbose --extract --file data.tar.* --directory /
 +
tar --verbose --extract --file control.tar.*
 +
./postinst
 +
</pre>
 +
 
 +
В этом случае вообще никакого контроля со стороны пакетных менеджеров не будет — все операции обновления или удаления придётся осуществлять так же самостоятельно.
 +
 
 +
Универсальный пакет помечен как архитектурно-независимый («all»), потому что содержит в себе исполняемые файлы для всех моделей процессоров Эльбрус. Выбор исполняемых файлов по умолчанию производится при настройке пакета в момент его установки, и может быть повторён при переносе установленного пакета (накопителя с установленной ОС) на компьютер с другой моделью процессора:
  
 
<pre>
 
<pre>
Строка 61: Строка 83:
  
 
Также реконфигурацию пакета необходимо проводить при переносе на другую ОС с другой системой управления службами (''systemd'' или ''sysvinit'').
 
Также реконфигурацию пакета необходимо проводить при переносе на другую ОС с другой системой управления службами (''systemd'' или ''sysvinit'').
 
  
 
=== Фирменные пакеты МЦСТ ===
 
=== Фирменные пакеты МЦСТ ===
Строка 69: Строка 90:
 
* содержат исполняемые файлы только для одной модели процессора Эльбрус;
 
* содержат исполняемые файлы только для одной модели процессора Эльбрус;
 
* поддерживают только систему управления службами ''sysvinit'' (в ''systemd''-системах возможна ограниченная поддержка в режиме обратной совместимости);
 
* поддерживают только систему управления службами ''sysvinit'' (в ''systemd''-системах возможна ограниченная поддержка в режиме обратной совместимости);
* поддерживают только систему управления альтернативами <code>update-alternatives</code> (не совместимо с ОС Альт, где своя система <code>alternatives-update</code>);
+
* поддерживают только систему управления альтернативами <code>update-alternatives</code> (не совместимо с ОС Альт, где своя система <code>alternatives-update</code>).
 +
 
 +
Они предназначены в первую очередь для предоставления новых версий RTC для старых выпусков ОС Эльбрус Линукс, а также для обновления RTC в текущем выпуске ОС Эльбрус Линукс без подключения к онлайн-репозиторию обновлений. Использование этих пакетов в других ОС не рекомендуется.
 +
 
 +
Чтобы выбрать пакет для скачивания, необходимый вашей системе, сверьтесь с таблицей [[Идентификаторы процессоров]] (графа «deb-arch») для определения суффикса имени пакетов, соответствующего модели процессора, либо запросите пакетный менеджер:
 +
 
 +
<pre>
 +
dpkg-architecture --query DEB_TARGET_ARCH
 +
# Эльбрус-1С+ = e2k-1c
 +
# Эльбрус-2С3 = e2k-2c3
 +
# Эльбрус-4С  = e2k-4c
 +
# Эльбрус-8С  = e2k-8c
 +
# Эльбрус-8СВ = e2k-8c2
 +
# Эльбрус-16С = e2k-16c
 +
</pre>
 +
 
 +
Установите новый пакет из скачанного файла:
 +
 
 +
<pre>
 +
apt install ./rtc5_5.1-vd9u2_e2k-8c2.deb
 +
</pre>
 +
 
 +
В старых версиях ОС, где <code>apt</code> ещё не поддерживал установку из файла, можно использовать <code>dpkg</code>:
  
Они предназначены в первую очередь для предоставления новых версий RTC для старых выпусков ОС Эльбрус Линукс, а также для обновления RTC в текущем выпуске без подключения к онлайн-репозиторию обновлений. Использование этих пакетов в других ОС не рекомендуется.
+
<pre>
 +
dpkg --install ./rtc5_5.1-vd9u2_e2k-8c2.deb
 +
</pre>
  
 +
Несмотря на то, что в имени файла пакета упоминается конкретная версия Эльбрус Линукс — например, «vd9» означает версию 9.x — в случае пакета RTC это всего лишь обозначение номера версии дистрибутива, для которой этот пакет был штатно собран. Использовать его можно и в других версиях ОС Эльбрус Линукс — как более новых, так и старых — вопрос лишь в поддержке операционной системой необходимой функциональности, на которую полагаются новые версии транслятора; подробнее см. в разделе [[#Системные требования]].
  
 
=== Документация ===
 
=== Документация ===
Строка 93: Строка 139:
  
 
Программы запускаются транслятором в ''гостевом'' окружении — изолированном от хозяйской системы пространстве имён и со своим деревом файловой системы (как при использовании <code>chroot</code>, только ещё с трансляцией машинных кодов). Динамически скомпонованные программы требуют наличия всех нужных им для работы библиотек, поэтому их запуск обычно осуществляется внутри файловой системы ОС, взятой с x86-компьютера, — для лучшей совместимости рекомендуется использовать ОС одной и той же разновидности и версии, например «Альт 10.4 Рабочая станция для архитектуры Эльбрус» в качестве хозяйской системы и «Альт 10.4 Рабочая станция для архитектуры x86-64» в качестве гостевого окружения. Статически скомпонованные программы могут работать напрямую из файловой системы нативной ОС; дополнять их полноценным x86-окружением можно, например, при необходимости запуска внешних программ.
 
Программы запускаются транслятором в ''гостевом'' окружении — изолированном от хозяйской системы пространстве имён и со своим деревом файловой системы (как при использовании <code>chroot</code>, только ещё с трансляцией машинных кодов). Динамически скомпонованные программы требуют наличия всех нужных им для работы библиотек, поэтому их запуск обычно осуществляется внутри файловой системы ОС, взятой с x86-компьютера, — для лучшей совместимости рекомендуется использовать ОС одной и той же разновидности и версии, например «Альт 10.4 Рабочая станция для архитектуры Эльбрус» в качестве хозяйской системы и «Альт 10.4 Рабочая станция для архитектуры x86-64» в качестве гостевого окружения. Статически скомпонованные программы могут работать напрямую из файловой системы нативной ОС; дополнять их полноценным x86-окружением можно, например, при необходимости запуска внешних программ.
 +
 +
Поскольку транслятор приложений занимается не только транслированием машинного кода из системы команд x86 в систему команд e2k, но также транслированием системных вызовов (<code>syscall</code>), а точнее параметров этих вызовов, из формата x86 Linux в формат e2k Linux, то необходимым условием успешной работы транслятора является совместимость системных вызовов гостевой системы, на которую рассчитана запускаемая x86-программа, и хозяйской системы, в которой работает транслятор. Это требование, впрочем, не является специфическим для двоичной трансляции, и справедливо также при запуске x86-программы на x86-компьютере под управлением другой Linux-системы, нежели изначально использовалась для компиляции программы.
 +
 +
{| class="wikitable"
 +
|+ Примеры хорошо совместимых комбинаций
 +
|-
 +
! scope="col" | Хозяйская система
 +
! scope="col" | Гостевое окружение
 +
|-
 +
| Альт 10.4 Рабочая станция для архитектуры Эльбрус v5
 +
| Альт 10.4 Рабочая станция для архитектуры x86-64
 +
|-
 +
| AstraLinux Special Edition Ленинград 8.1.5
 +
| AstraLinux Special Edition Смоленск 1.8.2
 +
|-
 +
| Эльбрус Линукс 9.2.6 для процессора Эльбрус-8СВ
 +
| Эльбрус Линукс 9.2.6 для архитектуры x86-64
 +
|}
 +
 +
Это не значит, что невозможно использовать другие комбинации — например, Эльбрус Линукс для процессора Эльбрус в качестве хозяйской системы + Debian GNU/Linux для архитектуры x86-64 в качестве гостевого окружения. Просто шансы на хорошую совместимость тем выше, чем сильнее хозяйская система и гостевое окружение похожи друг на друга — используют максимально похожую конфигурацию ядра Linux, одну и ту же систему управления службами, один и тот же набор работающих служб, одну и ту же графическую среду и параметры работы с графическими эффектами; этому способствует и максимальная близость номеров версий ОС, тогда как родственные ОС разных мажорных версий могут быть хуже совместимы друг с другом.

Текущая версия на 08:54, 25 сентября 2025

Двоичный транслятор уровня приложений или просто транслятор приложений, он же двоичный компилятор (bincomp — binary compiler), он же компилятор в реальном времени (RTC — real-time compiler), он же рекомпилятор — программное обеспечение для платформы Эльбрус, позволяющее запускать прикладные программы для Linux в машинных кодах x86 или x86-64 под управлением нативной операционной системы семейства Linux. При запуске таким образом программы Wine — эмулятора Windows API для Linux (x86 / x86-64) — можно запускать программы для Windows из-под нативной ОС Linux.

Двоичная трансляция проходит в режиме реального времени, «на лету», с адаптивной многопроходной оптимизацией, что в сочетании с аппаратными средствами поддержки трансляции, заложенными в архитектуру Эльбрус и обеспечивающими низкие накладные расходы, даёт высокую скорость работы гостевых приложений. При этом системные вызовы ядра Linux обрабатываются ядром хозяйской (нативной) системы, что также снижает накладные расходы по сравнению с запуском целой системы x86 Linux через транслятор уровня системы (Lintel).

Подробнее на сайте МЦСТ: RTC


Системные требования

Транслятор приложений (и все его сопутствующие утилиты) является статически скомпонованной программой, то есть не зависит от внешних библиотек, и потому может функционировать в любой ОС на базе ядра Linux — он взаимодействует только с ядром Linux. Поэтому RTC до версии 4.4 включительно может устанавливаться практически в любую Linux-систему, в том числе выпущенную задолго до появления такой версии транслятора и вообще не рассчитанной на использование транслятора.

Начиная с версии 5.0, транслятор полагается на особые механизмы ядра Linux для архитектуры Эльбрус, специально добавленные в ядро для расширения функциональных возможностей транслятора и для возможности запуска x86-программ, использующих функции отладки и трассировки работы программного кода. Эти механизмы впервые появились в ядре Linux 5.10. Если в хозяйской ОС используется более старая версия ядра, то применять RTC версии 5.0 или более новой не получится.


Установка

Во всех операционных системах рекомендуется использовать штатную версию пакета rtc. При отсутствии такого пакета в штатной поставке ОС, или при необходимости установить более свежую версию, ещё не доступную штатно для имеющегося дистрибутива ОС, можно воспользоваться универсальным пакетом, предоставляемым на сайте МЦСТ, однако в таком случае следует иметь в виду, что уровень совместимости и степень интеграции с конкретной ОС могут быть не такими высокими, как у штатного пакета в составе ОС.


Штатный пакет

В операционных системах на базе пакетного менеджера apt (Альт, Астра, Эльбрус, Эльбрус-Д) установка и удаление пакета производятся следующим образом:

apt-get install rtc
apt-get remove rtc

В операционных системах на базе пакетного менеджера dnf (Ред ОС, РОСА) установка и удаление пакета производятся аналогично:

dnf install rtc
dnf remove rtc

В зависимости от конкретной ОС и версии пакета RTC, имя пакета может быть другим — например, rtc5, rtc6 и т. д.


Универсальный пакет

Пакет находится по ссылке в описании RTC на сайте МЦСТ — во вкладке «Поддержка»: https://storage.mcst.ru/index.php/s/ekZcC2IxjkNEOoB — перейдя по ссылке и войдя в директорию с нужной версией транслятора, например «RTC_5.1», следует скачать deb-файл с пометкой «anyos» в имени, например rtc5_5.1-anyos0u9_all.deb.

В операционных системах на базе пакетов deb и пакетного менеджера apt (Астра, Эльбрус, Эльбрус-Д) установка производятся как обычно, но не по имени пакета, а с указанием пути к deb-файлу, в том числе даже если он находится в текущей директории; а вот удаление — как обычно, по имени пакета:

apt-get install ./rtc5_5.1-anyos0u9_all.deb
apt-get remove rtc5

В операционных системах на базе пакетов rpm (Альт, Ред ОС, РОСА) необходимо сначала установить низкоуровневый пакетный менеджер dpkg и инициализировать его пакетную базу, после чего работать с deb-пакетами через него:

#  Ред ОС, РОСА  || Альт
dnf install dpkg || apt-get install dpkg
touch /var/lib/dpkg/status

dpkg --install ./rtc5_5.1-anyos0u9_all.deb
dpkg --remove rtc5

В последнем случае следует иметь в виду на будущее, что пакетные базы штатного менеджера rpm (apt, dnf) и нештатного менеджера dpkg в таких системах не пересекаются, и необходимо самостоятельно следить за предотвращением конфликтов между пакетами: например, если уже установлен штатный пакет версии 5.0, а вы хотите установить универсальный пакет версии 5.1; или если вы установили универсальный пакет версии 5.1 вместо штатного пакета версии 4.4 или в дополнение к нему, а в будущем разработчик ОС выпустит обновление штатного пакета версии 5.0, 5.1 или 6.0, и она будет автоматически выбрана для установки.

В качестве крайней альтернативы, при невозможности использования dpkg, распаковать содержимое пакета и запустить процедуру его настройки можно самостоятельно:

mkdir rtc5_5.1-anyos0u9_all
cd $_
ar -v -x ../rtc5_5.1-anyos0u9_all.deb
tar --verbose --extract --file data.tar.* --directory /
tar --verbose --extract --file control.tar.*
./postinst

В этом случае вообще никакого контроля со стороны пакетных менеджеров не будет — все операции обновления или удаления придётся осуществлять так же самостоятельно.

Универсальный пакет помечен как архитектурно-независимый («all»), потому что содержит в себе исполняемые файлы для всех моделей процессоров Эльбрус. Выбор исполняемых файлов по умолчанию производится при настройке пакета в момент его установки, и может быть повторён при переносе установленного пакета (накопителя с установленной ОС) на компьютер с другой моделью процессора:

dpkg --reconfigure rtc5

Также реконфигурацию пакета необходимо проводить при переносе на другую ОС с другой системой управления службами (systemd или sysvinit).

Фирменные пакеты МЦСТ

Рядом с универсальным пакетом выложены для скачивания deb-пакеты из состава Эльбрус Линукс. Их отличие от универсального пакета в том, что они:

  • содержат исполняемые файлы только для одной модели процессора Эльбрус;
  • поддерживают только систему управления службами sysvinit (в systemd-системах возможна ограниченная поддержка в режиме обратной совместимости);
  • поддерживают только систему управления альтернативами update-alternatives (не совместимо с ОС Альт, где своя система alternatives-update).

Они предназначены в первую очередь для предоставления новых версий RTC для старых выпусков ОС Эльбрус Линукс, а также для обновления RTC в текущем выпуске ОС Эльбрус Линукс без подключения к онлайн-репозиторию обновлений. Использование этих пакетов в других ОС не рекомендуется.

Чтобы выбрать пакет для скачивания, необходимый вашей системе, сверьтесь с таблицей Идентификаторы процессоров (графа «deb-arch») для определения суффикса имени пакетов, соответствующего модели процессора, либо запросите пакетный менеджер:

dpkg-architecture --query DEB_TARGET_ARCH
# Эльбрус-1С+ = e2k-1c
# Эльбрус-2С3 = e2k-2c3
# Эльбрус-4С  = e2k-4c
# Эльбрус-8С  = e2k-8c
# Эльбрус-8СВ = e2k-8c2
# Эльбрус-16С = e2k-16c

Установите новый пакет из скачанного файла:

apt install ./rtc5_5.1-vd9u2_e2k-8c2.deb

В старых версиях ОС, где apt ещё не поддерживал установку из файла, можно использовать dpkg:

dpkg --install ./rtc5_5.1-vd9u2_e2k-8c2.deb

Несмотря на то, что в имени файла пакета упоминается конкретная версия Эльбрус Линукс — например, «vd9» означает версию 9.x — в случае пакета RTC это всего лишь обозначение номера версии дистрибутива, для которой этот пакет был штатно собран. Использовать его можно и в других версиях ОС Эльбрус Линукс — как более новых, так и старых — вопрос лишь в поддержке операционной системой необходимой функциональности, на которую полагаются новые версии транслятора; подробнее см. в разделе #Системные требования.

Документация

Копия руководства по эксплуатации в формате PDF выложена для скачивания вместе с каждой версией пакетов, а также доступна после установки пакета в директории вместе с другими файлами пакета — обычно по одному из следующих путей:

  • /opt/mcst/rtc/doc
  • /opt/mcst/rtc5.0/doc
  • /opt/mcst/rtc5/doc
  • /usr/share/rtc5/doc


Гостевое окружение

Транслятор приложений позволяет запускать два вида программ:

  1. скомпонованных статически — не зависящих от внешних библиотечных модулей;
  2. скомпонованных динамически — подгружающих внешние библиотечные модули (.so) на этапе запуска или во время работы.

Программы запускаются транслятором в гостевом окружении — изолированном от хозяйской системы пространстве имён и со своим деревом файловой системы (как при использовании chroot, только ещё с трансляцией машинных кодов). Динамически скомпонованные программы требуют наличия всех нужных им для работы библиотек, поэтому их запуск обычно осуществляется внутри файловой системы ОС, взятой с x86-компьютера, — для лучшей совместимости рекомендуется использовать ОС одной и той же разновидности и версии, например «Альт 10.4 Рабочая станция для архитектуры Эльбрус» в качестве хозяйской системы и «Альт 10.4 Рабочая станция для архитектуры x86-64» в качестве гостевого окружения. Статически скомпонованные программы могут работать напрямую из файловой системы нативной ОС; дополнять их полноценным x86-окружением можно, например, при необходимости запуска внешних программ.

Поскольку транслятор приложений занимается не только транслированием машинного кода из системы команд x86 в систему команд e2k, но также транслированием системных вызовов (syscall), а точнее параметров этих вызовов, из формата x86 Linux в формат e2k Linux, то необходимым условием успешной работы транслятора является совместимость системных вызовов гостевой системы, на которую рассчитана запускаемая x86-программа, и хозяйской системы, в которой работает транслятор. Это требование, впрочем, не является специфическим для двоичной трансляции, и справедливо также при запуске x86-программы на x86-компьютере под управлением другой Linux-системы, нежели изначально использовалась для компиляции программы.

Примеры хорошо совместимых комбинаций
Хозяйская система Гостевое окружение
Альт 10.4 Рабочая станция для архитектуры Эльбрус v5 Альт 10.4 Рабочая станция для архитектуры x86-64
AstraLinux Special Edition Ленинград 8.1.5 AstraLinux Special Edition Смоленск 1.8.2
Эльбрус Линукс 9.2.6 для процессора Эльбрус-8СВ Эльбрус Линукс 9.2.6 для архитектуры x86-64

Это не значит, что невозможно использовать другие комбинации — например, Эльбрус Линукс для процессора Эльбрус в качестве хозяйской системы + Debian GNU/Linux для архитектуры x86-64 в качестве гостевого окружения. Просто шансы на хорошую совместимость тем выше, чем сильнее хозяйская система и гостевое окружение похожи друг на друга — используют максимально похожую конфигурацию ядра Linux, одну и ту же систему управления службами, один и тот же набор работающих служб, одну и ту же графическую среду и параметры работы с графическими эффектами; этому способствует и максимальная близость номеров версий ОС, тогда как родственные ОС разных мажорных версий могут быть хуже совместимы друг с другом.