Jump to content

Лонгене

Единое ядро ​​Linux
Лонгене 0.2.1
Разработчик Технология Инсигма
Написано в С
Семейство ОС Linux с Windows дополнениями, подобными
Рабочее состояние Неактивно, последнее обновление в 2014 г.
Исходная модель Открытый исходный код
Последний предварительный просмотр 1.0-rc2 / 16 января 2014 г .; 10 лет назад ( 16.01.2014 )
Репозиторий
Маркетинговая цель Персональные компьютеры
Доступно в Многоязычный
Платформы ИА-32 , x86-64
ядра Тип Монолитный (производный от Linux )
Лицензия GNU GPL v2
Официальный сайт

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 несколько частей:

  • Платформа, которая соответствует свойствам и требованиям драйверов устройств Windows (т. е. инфраструктуре драйверов устройств Windows), так что в ядро ​​можно загружать несколько модулей драйверов устройств Windows, сохраняя при этом их взаимосвязь и условия работы, как в Windows.
  • Набор функций экспорта, определенный интерфейсом функции экспорта ядра Windows (WDK). Для программ драйверов устройств эти функции подобны библиотечным функциям, предоставляемым ядром.
  • Собственный API Windows. Microsoft не раскрыла свой собственный API, но эта информация была раскрыта в «Справочнике по собственному API Windows NT/2000» и других материалах. Реализация системного 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 в собственном пользовательском пространстве (винный сервер) не требуется.

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

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

[ редактировать ]

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

цвет значение
красный Релиз больше не поддерживается
желтый Релиз, поддерживается
зеленый Текущая версия
синий Будущий выпуск
Версия Дата выпуска Информация о выпуске
0.1.0 30 апреля 2006 г.
  • ядро-win32 портировано
  • Механизм системных вызовов Windows на основе «int 2e»
0.2.0 1 декабря 2006 г.
  • Реализовано создание процессов/потоков Windows
  • частичная реализация механизма Windows APC
0.2.1 4 февраля 2008 г.
  • Управление процессами/потоками Windows
  • управление виртуальной памятью
  • синхронизация
  • управление объектами
  • встроенная функция загрузки EXE
0.2.2 31 октября 2008 г.
  • Механизм токена
  • Программа установки с графическим интерфейсом
0.2.2-1 17 декабря 2008 г.
  • исправления ошибок
0.2.3 12 февраля 2009 г.
  • Механизм реестра Windows, перенесенный из Wine
0.2.4 22 мая 2009 г.
  • управление файловой системой, портированное из Wine
  • частичная реализация API управления реестром
  • предоставляются бинарные пакеты для популярных дистрибутивов
0.2.4.1 31 августа 2009 г.
  • на основе ядра Linux 2.6.30
  • поддержка новых файловых систем (ext4 и других)
0.3 31 мая 2010 г.
  • переместите все функции Wineserver в пространство ядра и избавьтесь от Wineserver
0.3.1 26 февраля 2011 г.
  • поддержка пользователя без полномочий root
  • поддержка приложений китайский путь
0.3.2 8 июня 2011 г.
  • поддержка Wineconsole, консольные приложения Windows, такие как cmd.exe, могут запускаться следующим образом: Wineconsole cmd.exe
  • Улучшите способ создания процесса, чтобы нативное приложение Windows и приложение Wine buitin могли создаваться друг другом.
1.0-rc1 31 декабря 2013 г.
  • полная модификация фреймворка, патч ядра Longene больше не нужен
  • Longene поддержала SMP
  • более удобная установка, лучшая совместимость, лучшая стабильность
1.0-rc2 16 января 2014 г.
  • обновить вино до версии 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 — это клон 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]

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

[ редактировать ]

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

  • процессор ИА-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» . Архивировано из оригинала 3 марта 2014 г. Проверено 9 апреля 2014 г.
  5. ^ Magic Linux 2.5 rc2. Архивировано 20 апреля 2014 г. на Wayback Machine.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a618c91ab968194921c31c6c91c388f9__1713704460
URL1:https://arc.ask3.ru/arc/aa/a6/f9/a618c91ab968194921c31c6c91c388f9.html
Заголовок, (Title) документа по адресу, URL1:
Longene - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)