Longene

редактировать
Унифицированное ядро ​​Linux
UnifiedKernel 0.2.1-KingSoft WPS.jpg Longene 0.2.1
Разработчик Insigma Technology
Написано в C
Семейство ОС Linux с Windows- подобными дополнениями
Рабочее состояние Неактивно, последнее обновление в 2014 г.
Исходная модель Открытый источник
Последний предварительный просмотр 1.0-rc2 / 16 января 2014 г. ; 6 лет назад ( 2014-01-16)
Репозиторий Отредактируйте это в Викиданных
Маркетинговая цель Персональные вычисления
Доступно в Многоязычный
Платформы IA-32, x86-64
Тип ядра Гибридный ( ядро Linux и предназначен для совместимы с Windows NT )
Лицензия GNU GPL v2
Официальный сайт

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

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

Его официальный веб-сайт исчез в августе, но был восстановлен в 2019 году. Между тем исходный код остается доступным на GitHub.

Содержание
  • 1 Особенности
  • 2 Развитие
    • 2.1 Стратегия развития
    • 2.2 История версий
    • 2.3 Текущее и будущее развитие
    • 2.4 Доступные ресурсы с открытым исходным кодом
  • 3 пользователя
    • 3.1 Требования к оборудованию
    • 3.2 Поддержка архитектуры
  • 4 См. Также
  • 5 ссылки
Характеристики

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

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

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

Развитие

В сентябре 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 Driver Kit основана на коде ReactOS. Он использует комбинацию перенаправления драйверов на ресурсы ядра Linux и дополнительных библиотек, реализующих функции, которые не могут быть реализованы в Linux.

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

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

цвет смысл
красный Выпуск больше не поддерживается
желтый Выпуск, поддерживаемый
зеленый Текущий выпуск
синий Будущий выпуск
Версия Дата выхода Информация о выпуске
0.1.0 30 апреля 2006 г.
  • kernel-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 2015 г.
  • Интеграция кода QEMU
  • поддержка приложений Windows, работающих на машине ARM

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

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

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

  • Интеграция кода QEMU
  • Платформа драйверов устройств WDM
  • Окна 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, использующего функции микроядра для реализации Windows API в пространстве ядра, Wine использует макро хост OS API для реализации Windows API в пространстве пользователя. Longene предлагает в ядре управление процессами Windows, управление потоками, управление объектами и т.д. Wine предлагает те, которые используются винным сервером в пользовательском пространстве. Longene зависит от Wine для пользовательских библиотек (файлов.dll). Большинство библиотек DLL Wine могут использоваться Longene напрямую. Код Wine (например, таблица реестра Windows) может использоваться для реализации некоторых функций. В переходном состоянии Longene использует Wine, чтобы предлагать те функции, которые еще не завершены.
Ядро-Win32
Kernel-Win32 - это проект, предназначенный для переноса некоторых функций из Wineserver в ядро ​​Linux для ускорения Wine. Проект Longene перенес (и частично повторно реализовал) Kernel-Win32 в Longene для реализации механизма системных вызовов Windows.
NDISwrapper
NDISWrapper воссоздала часть ядра Windows NT в модуле ядра Linux, что позволило запускать современные драйверы Windows внутри ядра Linux. NDISWrapper состоит из NTOSKRNL API, базового контроллера WDM и набора оболочек вызовов Windows, таких как API-интерфейсы Wireless / NDIS / USB / PnP для Linux. 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, предоставляемые 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 (компакт-диск с ядром Linux). 0.2.2).

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

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

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

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

  • ИА-32 (рабочий)
  • x86-64 (не работает, в процессе)
  • Loongson 3 (не работает, в процессе)
  • ARM (не работает, в процессе)
  • Longene также можно запускать в программном обеспечении, которое имитирует или виртуализирует указанное выше оборудование, например, VMware и VirtualBox.
Смотрите также
Ссылки
Последняя правка сделана 2023-03-27 02:39:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте