Эльбрус/rtc: различия между версиями
м (→Применение: arch чуточку короче uname -m и легче скатывается с пальцев) |
м (→Создание окружений: добавил раздел) |
||
Строка 8: | Строка 8: | ||
== Применение == | == Применение == | ||
При наличии в {{path|/opt/x86/}} развёрнутого окружения для x86_64 можно | Требуется установленный пакет {{pkg|rtc}}. | ||
При наличии в {{path|/opt/x86/}} развёрнутого окружения для x86_64<ref>например, распакованного командой {{cmd|rm -rf /opt/x86; mkdir /opt/x86; tar -C /opt/x86 -xf имя-архива.tar}}</ref> можно запустить командную оболочку такой командой: | |||
/usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86 -- /bin/bash | /usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86 -- /bin/bash | ||
Строка 20: | Строка 22: | ||
Для доступа к <tt>$DISPLAY</tt> может потребоваться либо предварительно отключить авторизацию командой {{cmd|xhost localhost}} или {{cmd|xhost +}}, либо обеспечить наличие у пользователя в домашнем каталоге под <tt>path_prefix</tt> такого же {{path|~/.Xauthority}}, как на основной системе. | Для доступа к <tt>$DISPLAY</tt> может потребоваться либо предварительно отключить авторизацию командой {{cmd|xhost localhost}} или {{cmd|xhost +}}, либо обеспечить наличие у пользователя в домашнем каталоге под <tt>path_prefix</tt> такого же {{path|~/.Xauthority}}, как на основной системе. | ||
Для работы с OpenGL может потребоваться rtc | Для работы с OpenGL может потребоваться {{pkg|rtc 3.3}} или более новая версия. | ||
= Ссылки = | = Ссылки = | ||
Строка 26: | Строка 28: | ||
* [http://www.mcst.ru/files/5a9eb8/a30cd8/50681b/000000/rodzevich_s._a._apparatnaya_podderzhka_dvoichnoy_translyatsii_x86_veshchestvennoy_arifmetiki.pdf Аппаратная поддержка двоичной трансляции x86 вещественной арифметики в процессорах "Эльбрус"] (PDF) | * [http://www.mcst.ru/files/5a9eb8/a30cd8/50681b/000000/rodzevich_s._a._apparatnaya_podderzhka_dvoichnoy_translyatsii_x86_veshchestvennoy_arifmetiki.pdf Аппаратная поддержка двоичной трансляции x86 вещественной арифметики в процессорах "Эльбрус"] (PDF) | ||
* [http://elbrus2k.wikidot.com/dynamic-binary-translation Dynamic binary translation] | * [http://elbrus2k.wikidot.com/dynamic-binary-translation Dynamic binary translation] | ||
== Создание окружений == | |||
Можно установить любой линукс в нужный вид в любой виртуальной машине и сделать архив файловой системы (изнутри VM или экспортировав образ диска, подключив и сделав архив снаружи). | |||
На альте можно задействовать предварительно настроенный [[hasher]]: | |||
hsh --init | |||
hsh-install ''нужное'' ''возможно-также-нужное'' | |||
где в ''возможно-также-нужное'' в случае графических приложений обычно попадают {{pkg|xauth}} и шрифты (например, {{pkg|fonts-otf-mozilla-fira}}); проверить функционирование приложения "не отходя от кассы" на той же машине, где собран чрут, можно так: | |||
hsh-run -Y ''команда'' | |||
Заархивировать полученное содержимое можно так: | |||
hsh-run --rooter -- tar --numeric-owner --exclude .in --exclude .out --exclude .host --exclude /dev/log -cf - / > ''имя-архива''.tar | |||
= Примечания = | = Примечания = |
Версия от 13:44, 11 ноября 2019
Бинарный транслятор
Для решения проблемы совместимости с унаследованным ПО для платформы x86 в МЦСТ разработали бинарный транслятор, работающий в двух режимах, чем-то напоминающих гипервизор (когда можно установить и запустить целую ОС) и wine (когда требуется запустить отдельное приложение)[1].
Первый режим реализован в lintel и требует для работы установленную CF-карточку в машинах 401/801-РС[2]; второй -- в rtc и работает под управлением уже запущенной операционной системы.
Применение
Требуется установленный пакет rtc.
При наличии в /opt/x86/ развёрнутого окружения для x86_64[3] можно запустить командную оболочку такой командой:
/usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86 -- /bin/bash
При успешном запуске под бинарной трансляцией отданная в полученном приглашении команда arch сообщит не "e2k", а "x86_64".
На ОС Эльбрус под "Эльбрус 401-РС" для эмуляции IA32 следует запускать /opt/mcst/rtc/rtc_opt_rel_e2s_ob[4].
Запуск графических приложений
Для доступа к $DISPLAY может потребоваться либо предварительно отключить авторизацию командой xhost localhost или xhost +, либо обеспечить наличие у пользователя в домашнем каталоге под path_prefix такого же ~/.Xauthority, как на основной системе.
Для работы с OpenGL может потребоваться rtc 3.3 или более новая версия.
Ссылки
- МЦСТ > Тэги > Двоичный транслятор
- Аппаратная поддержка двоичной трансляции x86 вещественной арифметики в процессорах "Эльбрус" (PDF)
- Dynamic binary translation
Создание окружений
Можно установить любой линукс в нужный вид в любой виртуальной машине и сделать архив файловой системы (изнутри VM или экспортировав образ диска, подключив и сделав архив снаружи).
На альте можно задействовать предварительно настроенный hasher:
hsh --init hsh-install нужное возможно-также-нужное
где в возможно-также-нужное в случае графических приложений обычно попадают xauth и шрифты (например, fonts-otf-mozilla-fira); проверить функционирование приложения "не отходя от кассы" на той же машине, где собран чрут, можно так:
hsh-run -Y команда
Заархивировать полученное содержимое можно так:
hsh-run --rooter -- tar --numeric-owner --exclude .in --exclude .out --exclude .host --exclude /dev/log -cf - / > имя-архива.tar
Примечания
- ↑ кстати, сам wine под rtc тоже работает
- ↑ в пятой ревизии материнской платы MBE8C-PC CF-слот отсутствует
- ↑ например, распакованного командой rm -rf /opt/x86; mkdir /opt/x86; tar -C /opt/x86 -xf имя-архива.tar
- ↑ здесь "e2s" -- обозначение процессора "Эльбрус-4С";
"p1" -- менее известный синоним названия процессора "Эльбрус-8С";
"x64" -- синоним x86_64/amd64 (бишь 64-битная x86-совместимая архитектура)