Лонгене

дистрибутив Linux
дистрибутив Linux
Унифицированное ядро ​​Linux
Лонгене 0.2.1
РазработчикТехнология Инсигма
Написано вС
Семейство ОСLinux с дополнениями, похожими на Windows
Рабочее состояниеНеактивен, последнее обновление в 2014 г.
Исходная модельС открытым исходным кодом
Последний просмотр1.0-rc2 / 16 января 2014 г. ; 10 лет назад ( 2014-01-16 )
Репозиторий
  • github.com/longene-archive/longene-1.0-rc2
Маркетинговая цельПерсональные вычисления
Доступно вМногоязычный
ПлатформыIA-32 , x86-64
Тип ядраМонолитный (производный от Linux )
ЛицензияGNU GPL v2
Официальный сайт
  • http://www.longene.org/en/index.php (архив)

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. Статьи, написанные Мао, затем были объединены в белую книгу проекта.

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

  • Фреймворк, который соответствует свойствам и требованиям драйверов устройств Windows (т. е. фреймворк драйверов устройств Windows), так что в ядро ​​можно загрузить несколько модулей драйверов устройств Windows, сохраняя при этом их взаимосвязь и условия работы, как в Windows.
  • Набор экспортных функций, определяемых интерфейсом экспортных функций ядра Windows (WDK). Для программ драйверов устройств эти функции подобны библиотечным функциям, предоставляемым ядром.
  • Windows native API. Microsoft не раскрывала свой собственный API, но "Windows NT/2000 Native API Reference" и другие материалы раскрыли эту информацию. Реализацию системного API Windows в ядре Linux можно сравнить с реализацией языка высокого уровня на ассемблере, поскольку внутри ядра используемые функции больше не реализуются внешним API ядра Linux, а реализуются внутренними функциями ядра Linux.
  • Проект Longene выпускает патчи для ядра Linux для достижения своей цели. Разработчики проекта ожидают, что эти патчи в конечном итоге сольются с основным деревом ядра Linux. [ необходима цитата ] Те, кто программирует на платформе Windows, затем смогут разрабатывать приложения и драйверы устройств для платформы Linux или переносить свои продукты на платформу Linux с низкой стоимостью.

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

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

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

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

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

цветзначение
красныйРелиз больше не поддерживается
желтыйВыпуск, поддерживается
зеленыйТекущий выпуск
синийБудущий релиз
ВерсияДата выпускаИнформация о выпуске
0.1.030 апреля 2006 г.
  • kernel-win32 портировано
  • Механизм системных вызовов Windows, основанный на «int 2e»
0.2.01 декабря 2006 г.
  • Реализовано создание процессов/потоков Windows
  • частичная реализация механизма Windows APC
0.2.14 февраля 2008 г.
  • Управление процессами/потоками Windows
  • управление виртуальной памятью
  • синхронизация
  • управление объектами
  • встроенная функция загрузки EXE
0.2.231 октября 2008 г.
  • Механизм токенов
  • Программа установки графического интерфейса
0.2.2-117 декабря 2008 г.
  • исправления ошибок
0.2.312 февраля 2009 г.
  • Механизм реестра Windows, перенесенный из Wine
0.2.422 мая 2009 г.
  • Управление файловой системой перенесено из Wine
  • частичная реализация API управления реестром
  • предоставлены бинарные пакеты для популярных дистрибутивов
0.2.4.131 августа 2009 г.
  • на основе ядра Linux 2.6.30
  • поддержка новых файловых систем (ext4 и другие)
0.331 мая 2010 г.
  • переместить все функции wineserver в пространство ядра и избавиться от wineserver
0.3.126 февраля 2011 г.
  • поддержка пользователей без прав root
  • поддержка приложений китайский путь
0.3.28 июня 2011 г.
  • поддержка wineconsole, консольные приложения Windows, такие как cmd.exe, могут работать следующим образом: wineconsole cmd.exe
  • Улучшить способ создания процесса, чтобы собственные приложения Windows и встроенные приложения Wine могли создаваться друг другом.
1.0-rc131 декабря 2013 г.
  • полная модификация фреймворка, Longene больше не нужен патч ядра
  • Longene поддержал SMP
  • более удобная установка, лучшая совместимость, лучшая стабильность
1.0-rc216 января 2014 г.
  • обновить Wine до версии 1.7.10
  • решить проблему обычных пользователей после перезагрузки
  • решить несколько проблем с разрешениями файлов
  • изменить тип загрузки файла
2.0 [4]2015
  • Интеграция кода QEMU
  • поддержка приложений Windows, работающих на машине ARM

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

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

Пока не реализовано (но запланировано):

  • Интеграция кода QEMU
  • Структура драйвера устройства WDM
  • Механизм Windows DPC
  • Экспортированные функции ядра, определенные Windows DDK

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

ядро 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
ReactOS — это клон MS Windows, написанный с нуля. Longene использует код ReactOS в качестве справочного материала для реализации некоторых базовых механизмов операционной системы Microsoft Windows. Это включает реализацию фреймворка драйверов устройств Windows, NDIS, интерфейса системных вызовов, управления процессами и ресурсами, интерфейса драйверов устройств и т. д.
Вино
Wine реализует уровень совместимости, предоставляя альтернативные реализации DLL, которые вызывают программы Windows, и процессы для замены ядра Windows NT. В отличие от Longene, использующего функции микроядра для реализации API Windows в пространстве ядра, Wine использует API макрохостовой ОС для реализации API Windows в пространстве пользователя. Longene предлагает управление процессами Windows, управление потоками, управление объектами и т. д. в ядре; Wine предлагает их с помощью wineserver, работающего в пространстве пользователя. Longene зависит от Wine для пользовательских библиотек (файлов .dll). Большинство 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, таких как Wireless/NDIS/USB/PnP to Linux API. NDISWrapper не ограничивается выполнением только драйверов NDIS; можно использовать и другие драйверы WDM, если только драйвер не вызывает нереализованные функции Windows API. Первым шагом реализации WDM в Longene будет импорт NDISWrapper в Longene. Затем команда проекта Longene реализует свой WDM путем изменения NDISwrapper и добавления функций в NDISWrapper с кодом ReactOS в качестве ссылки.
QEMU
Для запуска бинарных приложений Windows x86 непосредственно на архитектуре ARM, конечно, нужна эмуляция. QEMU — это эмулятор с открытым исходным кодом в Linux, который может запускать Wine, но результат неприемлемо медленный. QEMU интерпретирует все инструкции x86 в пользовательском пространстве (включая код Wine); только в случае системных вызовов Linux приложение работает на полной скорости. Результат медленный, потому что приложения проводят большую часть времени в эмулируемом пользовательском пространстве и меньше времени в ядре. Но если бы библиотеки Win API DLL, предоставляемые 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), компактную версию (CD, с ядром Linux 2.6.25.20) и версию Longene (CD, с Longene 0.2.2). [5]

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

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

  • Процессор IA-32
  • 128 МБ ОЗУ
  • Жесткий диск IDE или SATA
  • VGA-совместимая видеокарта
  • Стандартная (PS/2 или USB) клавиатура
  • Мышь, совместимая с PS/2, или мышь с последовательным портом, совместимая с Microsoft Mouse

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

  • ИА-32 (рабочий)
  • x86-64 (не работает, в процессе)
  • Loongson 3 (не работает, в процессе)
  • ARM (не работает, в процессе)
  • Longene также можно запустить на программном обеспечении, которое эмулирует или виртуализирует вышеуказанное оборудование, например, VMware и VirtualBox .

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

Ссылки

  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". Архивировано из оригинала 2014-03-03 . Получено 2014-04-09 .
  5. ^ Magic Linux 2.5 rc2 发布 Архивировано 20.04.2014 на Wayback Machine
Взято с "https://en.wikipedia.org/w/index.php?title=Longene&oldid=1220060440"