Вы здесь

Двоичный транслятор системы «Lintel» (ТВГИ.00509-01)

Средство запуска операционных систем в машинных кодах x86 на компьютерах архитектуры Эльбрус.

Информация
Возможности
Ограничения
Поддержка

Компонент системы двоичной трансляции, известный как Lintel, позволяет запустить на компьютере архитектуры Эльбрус операционную систему в машинных кодах x86 или x86-64 — например, Microsoft Windows или Red Hat Enterprise Linux — без перекомпиляции из исходных текстов.

Трансляция проходит в режиме реального времени, «на лету», с адаптивной многопроходной оптимизацией, что в сочетании с аппаратными средствами поддержки трансляции, заложенными в архитектуру Эльбрус и обеспечивающими низкие накладные расходы, даёт высокую скорость работы гостевых систем. В отличие от транслятора приложений, транслятор уровня системы создаёт наиболее полное подобие имитируемого x86-компьютера.

Особенности и ограничения

Категория Особенность / возможность Примечания
процессор Реализована поддержка базового набора инструкций x86 и x86-64, а также некоторых расширений, например SSE. Конкретный набор поддерживаемых инструкций определяется возможностями аппаратуры того или иного процессора.
периферийные устройства Гостевой системе доступны устройства на шине PCI и PCI Express, в том числе интегрированные. Гостевая система может использовать собственные драйверы для доступа к оборудованию.
Специфические интегрированные устройства представляются гостевой системе под видом распространнённых моделей оборудования. Достаточно штатных драйверов гостевой ОС для поддержки специфических интегрированных контроллеров аппаратуры Эльбрус.
Интегрированный контроллер SATA может представляться гостевой системе в режиме эмуляции IDE (PATA). Драйверы IDE есть практически в любой операционной системе, что позволяет обеспечить функционирование даже при отсутствии драйверов SATA.
Предусмотрено раздельное управление доступом гостевой ОС к каждому из портов SATA интегрированного контроллера. Можно скрывать от гостевой системы те или иные накопители, не отключая их физически. Например, можно скрыть от ОС Windows все диски с ОС Linux, чтобы избежать проблем при установке и обновлении.
Возможно размещение транслятора на отдельном накопителе или на том же, где и гостевая ОС. В однодисковом режиме транслятор занимает последние 4 Гбайт дискового пространства и скрывает эту часть от гостевой ОС (требуется использование режима эмуляции IDE).
гостевые системы Типовыми гостевыми ОС являются Windows и различные дистрибутивы GNU/Linux. Возможен запуск и других типов операционных систем.
Категория Особенность / ограничение Варианты обхода
процессор Не реализована поддержка инструкций AVX, AVX2, AVX-512 и др. Реализация AVX и AVX2 возможна в будущих версиях транслятора. Реализация AVX-512 требует большого объёма регистровой памяти, которого даже в Эльбрус-8СВ в обрез хватит на 2 набора (первый нужен для контрольных точек, второй для текущих преобразований).
Для процессоров Эльбрус-4С не реализована поддержка CMPXCHG16B, что препятствует работе Windows 8 и более новых версий. Аппаратура процессора Эльбрус-4С не позволяет реализовать поддержку данной инструкции.
Не реализована поддержка виртуализации Intel VT-x / AMD-V. Транслятор не эмулирует функции, которые не заложены в аппаратуру процессора. Поддержка виртуализации появится в Эльбрус-16С, 12С, 2С3.
Гостевой системе видно на 1–2 процессорных ядра меньше, чем есть физически. Использование транслятора на 1-ядерных процессорах не предусмотрено. Под нужды транслятора системы отводится 1–2 процессорных ядра. Совместное использование ядер под нужды трансляции и исполнения в настоящий момент не предусмотрено.
оперативная память 32-разрядным операционным системам доступно менее 4 Гбайт физической памяти, несмотря на то, что в микропроцессоре имеется аппаратная поддержка, необходимая для использования операционными системами режима PAE (Physical Address Extension). Данное ограничение связано с особенностями работы маршрутизаторов в контроллере памяти.
Гостевым системам видна не вся физически присутствующая оперативная память: до 8 Гбайт в случае процессора Эльбрус-4С, до 20 Гбайт в случае Эльбрус-8С. Данное ограничение связано с количеством ресурсов, заложенных в аппаратуру процессоров для нужд двоичной трансляции.
На многопроцессорных серверах доступна физическая память только от первичного процессора. Для процессоров Эльбрус-8С и Эльбрус-8СВ это ограничение может быть устранено в будущих версиях транслятора, для более старых процессоров — нет, ввиду аппаратных особенностей.
периферийные устройства На многопроцессорных серверах с несколькими контроллерами периферийных интерфейсов (КПИ) используется только первичный КПИ. Устройства, подключенные через порты и слоты расширения, относящиеся ко вторичному КПИ, не используются. Данное ограничение может быть устранено в будущих версиях транслятора.
Не поддерживается работа встроенных COM-портов (RS-232, UART). Предлагается использовать дискретные карты портов. В будущих версиях транслятора может появиться другой вариант эмуляции COM-порта, позволяющий использовать его из гостевой системы.
Интегрированный Ethernet-контроллер при настройках Lintel по умолчанию представляется гостевым системам как сетевой адаптер с чипом AMD Am79C972 — как наиболее похожий. Однако в современных версиях Windows отсутствуют драйверы для таких сетевых контроллеров. Предлагается использовать подходящую сетевую карту (PCI, PCIe или USB), либо экспериментальный режим работы сетевых карт Intel PRO, появившийся в Lintel 4.0.
Для интегрированного звукового контроллера с чипом CS4281 в современных версиях Windows отсутствуют драйверы. Предлагается использовать подходящую звуковую карту (PCI, PCIe или USB).
особенности Windows При установке Windows рекомендуется скрывать в настройках Lintel все прочие накопители, в особенности те, на которых расположены Linux-системы, такие как ОС «Эльбрус». Данная рекомендация не является специфичной для платформы Эльбрус, и связана исключительно с особенностями работы программы установки Windows. Она также может быть актуальна во время установки крупных пакетов обновления Windows, затрагивающих её программу запуска (bootloader).
При установке Windows рекомендуется перепроверить, что в настройках Lintel правильно отображается не только текущая дата и время, но также год — а точнее столетие. Другим операционным системам этот параметр зачастую не важен, тогда как Windows может застопориться на старте: не зависнуть, продолжая анимацию логотипа, но и не запускаться.
При установке 64-разрядных версий Windows на компьютеры с процессорами Эльбрус-4С и контроллерами КПИ возникает ошибка, если накопители представляются гостевой системе как SATA (AHCI). В таком случае необходимо использовать режим эмуляции IDE.

Дистрибутивы

Транслятор поставляется в составе операционных систем для компьютеров архитектуры Эльбрус. Если в имеющейся ОС такой компонент отсутствует, либо сама ОС отсутствует, то получить транслятор отдельно можно на сервере поддержки — в формате установочного пакета формата Deb (для выбора нужного варианта пакета под имеющийся процессор см. графу «deb-arch» в статье базы знаний «Идентификаторы процессоров»); документация опубликована там же в формате PDF.

Для установки пакета используйте команду:

dpkg -i имя_файла_пакета.deb

После установки, копия документации будет доступна в каталоге /opt/mcst/lintel/doc.

Хотя транслятор уровня системы работает полностью самостоятельно, независимо от какой-либо операционной системы, — как гипервизор первого уровня, — для установки транслятора на накопитель требуется использование утилит из состава «Эльбрус Линукс» или аналогичных средств прямой записи на дисковые устройства.