stringtranslate.com

Лонгене

Longene ( китайский :龙井) — это ядро ​​операционной системы на базе Linux , предназначенное для двоичной совместимости с прикладным программным обеспечением и драйверами устройств, созданными для Microsoft Windows и Linux. Начиная с версии 1.0-rc2, он состоит из модуля ядра Linux , реализующего аспекты ядра Windows, и модифицированного дистрибутива Wine , разработанного для использования преимуществ более собственного интерфейса. Longene написан на языке программирования C и является бесплатным программным обеспечением с открытым исходным кодом . Он лицензируется на условиях GNU General Public License версии 2 (GPLv2).

Хотя по состоянию на 2015 год проект находится на стадии альфа- разработки, многие программы для Windows уже работают хорошо. [ нужна цитата ]

Его официальный сайт исчез в августе, но был восстановлен в 2019 году. При этом исходный код остается доступным на GitHub . [1]

Функции

Longene стремится добавить все механизмы ядра Windows, включая системные вызовы, реестр Windows , модель драйверов Windows , отложенный вызов процедур и другие, в ядро ​​Linux, чтобы сформировать новое ядро. Новое ядро ​​позволит приложениям и драйверам устройств Linux и Windows работать без виртуализации или эмуляции. Чтобы предотвратить раздувание, если функция доступна как в ReactOS, так и в ядре Linux, используется реализация Linux. Функции реализованы с использованием загружаемых модулей ядра Linux, поэтому их можно легко загружать и выгружать.

Longene имеет два набора системных вызовов и соответствующие им таблицы: набор системных вызовов Windows и набор системных вызовов Linux. Приложения Windows вызывают таблицу системных вызовов через программное прерывание «int 0x2e». Приложения Linux вызывают таблицу системных вызовов через «int 0x80».

Проект Longene не занимается разработкой пользовательских библиотек Windows и Linux . Эти библиотеки предлагаются другими проектами, такими как Wine , ReactOS , GNU и NDISwrapper . [2]

Разработка

В сентябре 2005 года проект Longene получил спонсорскую поддержку от Insigma Technology (浙大网新), китайской консалтинговой корпорации в области информационных технологий. Руководитель проекта Декао Мао (毛德操) предложил идею и маршрут Лонгэне. Он написал серию статей о рынке, правах интеллектуальной собственности и методах, объясняющих, почему людям нужен этот проект и как реализовать Longene. Статьи, написанные Мао, затем были объединены в официальный документ проекта.

Согласно официальному документу, для реализации Longene необходимо добавить в ядро ​​Linux несколько частей:

Стратегия развития

Longene использует Wine в качестве основы для реализации Windows API. Проект повторно реализует модули Wine для использования в составе общего ядра. Longene воздерживается от использования модулей Wine, которые недостаточно реализованы для проекта. Версии Longene выпускаются после успешной реализации нескольких модулей Wine в ядре. Новая стабильная версия затем будет использоваться в качестве основы для реализации будущих модулей. Windows API, которые не были реализованы в Wine, разрабатываются в виде модулей с нуля. Поскольку ядро ​​Longene выполняет работу ядра Windows NT, эмуляция ядра Wine в собственном пользовательском пространстве (винный сервер) не требуется.

Что касается драйверов устройств, Longene импортирует NDISwrapper в ядро. В NDISwrapper внесены изменения для устранения отсутствующих функций модели драйверов Windows с использованием кода ReactOS в качестве ссылки. Реализация комплекта драйверов Windows основана на коде ReactOS . Он использует комбинацию перенаправления драйверов на ресурсы ядра Linux и дополнительные библиотеки, реализующие функции, которые невозможно реализовать в Linux.

История версий

Более ранняя версия unifiedkernel-2.6.13, [3] была выпущена 15 февраля 2006 г. В этой версии реализован механизм системных вызовов Windows.

Текущее и будущее развитие

В настоящее время разработчики работают над Longene 2.0, который будет поддерживать приложения Windows, работающие на оборудовании с архитектурой, отличной от x86, например ARM и Loongson . Кроме того, разработчики работают над поддержкой AMD64 и портируют в проект код NDISWrapper.

Еще не реализовано (но планируется):

Доступные ресурсы с открытым исходным кодом

Ядро Linux
Longene основан на ядре Linux. Он реализует свои функции в загружаемых модулях ядра Linux (LKM). В отличие от реализации функций ReactOS с нуля, Longene использует обширный код и документацию ядра Linux для создания своих функций. Вот основные подходы к реализации механизмов Windows в Longene:
  1. Интерфейс системных вызовов. Некоторые из них можно взять из соответствующих системных вызовов Linux или частично повторно использовать код из соответствующих системных вызовов Linux. Остальным, не имеющим аналогов в Linux, необходимо в своей реализации использовать низкоуровневые функции ядра Linux.
  2. Структура драйвера устройства. Регистр службы прерываний драйвера устройства использует механизм прерываний Linux, драйверы устройств воспринимают работающее ядро ​​Windows, которое сопоставлено с ядром Linux, работающим под ним. Запросы DPC драйвера устройства преобразуются в функции Linux-bh.
  3. Собственные системные файлы Microsoft Windows, авторские права на которые принадлежат Microsoft. Категория модулей .sys, используемая для обычных внешних устройств, таких как диск, USB, графические устройства, сетевое оборудование и т. д., для которых в ядре Linux имеются соответствующие функции. Для управления этими устройствами требуется только построить мост и нет необходимости создавать модули .sys. Для остальных .sys-модулей, не имеющих соответствующих объектов в ядре Linux, требуется эмуляция.
  4. Windows DDK. Большинство функций интерфейса драйверов устройств и структур данных имеют аналоги в ядре Linux. Некоторые функции не имеют точного эквивалента в ядре Linux, и необходимо создать оболочку с использованием компонентов ядра Linux. На практике некоторые вызовы ресурсов и ссылки могут быть перенаправлены или адаптированы к аналогам ядра Linux, а остальные необходимо реализовать с нуля.
РеактОС
ReactOS — это клон MS Windows, написанный с нуля. Longene использует код ReactOS в качестве образца для реализации некоторых основных механизмов операционной системы Microsoft Windows. Это включает в себя реализацию инфраструктуры драйверов устройств Windows, NDIS, интерфейса системных вызовов, управления процессами и ресурсами, интерфейса драйверов устройств и т. д.
Вино
Wine реализует уровень совместимости, предоставляя альтернативные реализации DLL, которые вызывают программы Windows, и процессы, заменяющие ядро ​​Windows NT. В отличие от Longene, использующего функции микроядра для реализации Windows API в пространстве ядра, Wine использует API-интерфейс макро-хоста для реализации Windows API в пользовательском пространстве. Longene предлагает управление процессами Windows, управление потоками, управление объектами и т. д. в ядре; Wine предлагает возможности WineServer, работающие в пользовательском пространстве. Longene зависит от Wine для пользовательских библиотек (файлов .dll). Большинство библиотек Wine могут использоваться Longene напрямую. Код Wine (например, таблица реестра Windows) может использоваться для реализации некоторых функций. В переходном состоянии Longene использует Wine, чтобы предлагать те функции, которые еще не реализованы.
Ядро-Win32
Kernel-Win32 — это проект, призванный перенести некоторые функции Wineserver в ядро ​​Linux для ускорения Wine. Проект Longene портировал (и частично повторно реализовал) Kernel-Win32 в Longene для реализации механизма системных вызовов Windows.
NDISобертка
NDISWrapper воссоздал часть ядра Windows NT в модуле ядра Linux, что позволило запускать современные драйверы Windows внутри ядра Linux. NDISWrapper состоит из API NTOSKRNL, базового контроллера WDM и набора оболочек вызовов Windows, таких как API Wireless/NDIS/USB/PnP для Linux. NDISWrapper не ограничивается выполнением только драйверов NDIS; другие драйверы WDM можно использовать, если драйвер не вызывает нереализованные функции Windows API. Первым шагом реализации WDM в Longene будет импорт NDISWrapper в Longene. Затем команда проекта Longene реализует WDM, модифицируя NDISwrapper и добавляя функции в NDISWrapper, используя код ReactOS в качестве образца.
КЕМУ
Для запуска бинарных приложений Windows x86 непосредственно на архитектуре ARM, конечно, необходима эмуляция. QEMU — это эмулятор с открытым исходным кодом для Linux, который может запускать Wine, но результат получается неприемлемо медленным. QEMU интерпретирует все инструкции x86 в пользовательском пространстве (включая код Wine); только в случае системных вызовов Linux приложение работает на полной скорости. Результат медленный, поскольку приложения проводят большую часть времени в эмулируемом пользовательском пространстве и меньше времени в ядре. Но если бы библиотеки Win API, предоставляемые Wine, можно было использовать вне QEMU, они бы работали на полной скорости, поскольку их можно скомпилировать собственными средствами, и общая скорость работы должна значительно улучшиться. Такой способ объединения Wine и QEMU и помещения функций Wineserver в ядро ​​и является идеей Longene 2.0.

Пользователи

Magic Linux — Magic Linux — китайский дистрибутив Linux, основанный на Red Hat Linux. Версия 2.1 Magic Linux, выпущенная 15 декабря 2008 г., включает в себя основную версию (DVD с ядром Linux 2.6.25.20), компактную версию (компакт-диск с ядром Linux 2.6.25.20) и версию Longene (компакт-диск с ядром Longene). 0.2.2). [5]

Требования к оборудованию

Минимальные аппаратные требования для запуска:

Поддержка архитектуры

Смотрите также

Рекомендации

  1. ^ "longene-archive/longene-1.0-rc2" . Гитхаб . Проверено 21 августа 2018 г.
  2. ^ Унифицированное ядро ​​Linux 0.2.4.1 «Проект LUK не разрабатывает пользовательские библиотеки Windows и Linux. Эти библиотеки предлагаются проектом Wine (или Microsoft Windows/ReactOS) и проектом Linux».
  3. ^ унифицированное ядро-2.6.13
  4. ^ «Longene 2.0 будет поддерживать приложения Windows, запускаемые на компьютерах с архитектурой, отличной от x86» . Архивировано из оригинала 3 марта 2014 г. Проверено 9 апреля 2014 г.
  5. ^ Magic Linux 2.5 rc2 发布. Архивировано 20 апреля 2014 г. на Wayback Machine.