RTC
Двоичный транслятор уровня приложений или просто транслятор приложений, он же двоичный компилятор (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
Содержание
Установка
Во всех операционных системах рекомендуется использовать штатную версию пакета 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 rtc
В операционных системах на базе пакетов 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, и она будет автоматически выбрана для установки.
Универсальный пакет помечен как архитектурно-независимый („all“), потому что содержит в себе исполняемые файлы для всех моделей процессоров Эльбрус. Выбор исполняемых файлов по умолчанию производится при настройке пакета, и может быть повторён при переносе установленного пакета (накопителя с установленной ОС) на компьютер с другой моделью процессора:
dpkg --reconfigure rtc5
Также реконфигурацию пакета необходимо проводить при переносе на другую ОС с другой системой управления службами (systemd или sysvinit).
Фирменные пакеты МЦСТ
Рядом с универсальным пакетом выложены для скачивания deb-пакеты из состава Эльбрус Линукс. Их отличие от универсального пакета в том, что они:
- содержат исполняемые файлы только для одной модели процессора Эльбрус;
- поддерживают только систему управления службами sysvinit (в systemd-системах возможна ограниченная поддержка в режиме обратной совместимости);
- поддерживают только систему управления альтернативами
update-alternatives
(не совместимо с ОС Альт, где своя системаalternatives-update
);
Они предназначены в первую очередь для предоставления новых версий RTC для старых выпусков ОС Эльбрус Линукс, а также для обновления RTC в текущем выпуске без подключения к онлайн-репозиторию обновлений. Использование этих пакетов в других ОС не рекомендуется.
Документация
Копия руководства по эксплуатации в формате PDF выложена для скачивания вместе с каждой версией пакетов, а также доступна после установки пакета в директории вместе с другими файлами пакета — обычно по одному из следующих путей:
- /opt/mcst/rtc/doc
- /opt/mcst/rtc5.0/doc
- /opt/mcst/rtc5/doc
- /usr/share/rtc5/doc
Гостевое окружение
Транслятор приложений позволяет запускать два вида программ:
- скомпонованных статически — не зависящих от внешних библиотечных модулей;
- скомпонованных динамически — подгружающих внешние библиотечные модули (.so) на этапе запуска или во время работы.
Программы запускаются транслятором в гостевом окружении — изолированном от хозяйской системы пространстве имён и со своим деревом файловой системы (как при использовании chroot
, только ещё с трансляцией машинных кодов). Динамически скомпонованные программы требуют наличия всех нужных им для работы библиотек, поэтому их запуск обычно осуществляется внутри файловой системы ОС, взятой с x86-компьютера, — для лучшей совместимости рекомендуется использовать ОС одной и той же разновидности и версии, например «Альт 10.4 Рабочая станция для архитектуры Эльбрус» в качестве хозяйской системы и «Альт 10.4 Рабочая станция для архитектуры x86-64» в качестве гостевого окружения. Статически скомпонованные программы могут работать напрямую из файловой системы нативной ОС; дополнять их полноценным x86-окружением можно, например, при необходимости запуска внешних программ.