Ports/loongarch64/New wold, old world, libLoL

Материал из ALT Linux Wiki
< Ports‎ | loongarch64
Версия от 15:43, 4 сентября 2024; IvanMelnikov (обсуждение | вклад) (Новая страница: «{{Stub}} == Старый и новый мир == На данный момент (осень 2024 года) у LoongArch есть две несовместимые программные системы, которые принято называть new world (nw, "новый мир") и old world (ow, "старый мир"). Появление двух миров связано с тем, что компания Loongson использовала бизн...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Старый и новый мир

На данный момент (осень 2024 года) у LoongArch есть две несовместимые программные системы, которые принято называть new world (nw, "новый мир") и old world (ow, "старый мир").

Появление двух миров связано с тем, что компания Loongson использовала бизнес-стратегию тайной разработки и внезапного запуска LoongArch: они анонсировали новую архитектуру уже с готовой экосистемой коммерческих дистрибутивов Linux и стороннего, в том числе пропиретарного, ПО. Однако в процессе работы с сообществом оказалось, что нужно сделать некоторые несовместимые изменения. Так появились две несовместимых экосистемы ПО под loongarch64:

  • old world -- китайские коммерческие дистрибутивы (Kirin, Loongnix, UOS), и совместимое с ними ПО, включая:
    • Tencent's QQ for Linux
    • Kingsoft's WPS Office for Linux
    • Loongson Browser (основан на Chromium)
  • new world -- всё свободное ПО и развиваемые на его основе дистрибутивы, включая, естественно, порт Сизифа.

New world и old world не совместимы друг с другом по

  • ABI загрузчика (EFI)
  • набору системных вызовов ядра Линукс
  • версиям символов системных библиотек (в основном частей GLIBC)
  • ...

В результате, ПО, собранное для одного мира, нельзя запустить в другом.

libLoL

На данный момент (осень 2024 года) libLoL (LoongArch on LoongArch) -- самое развитое решение, предоставляющее слой совместимости для запуска приложений old world на системах из new world. Оно состоит из двух частей:

  • модуля ядра la_ow_syscall, реализующего дополнительные системные вызовы
  • специальной патченной glibc, предоставляющий версии символов и дополнительные интерфейсы, нужные приложениям из old world.

Для установки в ALT нужно поставить userspace-часть и модуль, собранный под используемое Вами ядро. Например, для ядра по умолчанию:

# apt-get install liblol kernel-modules-la_ow_syscall-loongarch

С нашим liblol проверены и работают:

  • wps-office 11.1.0.11719 (распакованый .deb)
  • Loongson Browser (lbrowser) 3.3.1876.3-1.stable
  • com.tencent.wechat 1.0.0.241
  • некоторые пакеты old-world дистрибутивов.