Объединённое ядро Linux

Перейти к навигацииПерейти к поиску
Объединённое ядро Linux
Скриншот программы Объединённое ядро Linux
Запущенный Kingsoft Office через объединённое ядро Linux версии 0.2.1
ТипЯдро
РазработчикInsigma Technology
Написана наC
Операционная система Unix-like
Аппаратные платформы IA-32 и x86-64
Последняя версия0.3.2 (8 июня 2011 года)
Кандидат в релизы1.0 RC2 (14 января 2014 года)
Бета-версия0.4.0 (2 июня 2012 года)
Репозиторийgithub.com/longene-archi…
ЛицензияGNU General Public License версии 2
Сайтlongene.org/en/index.php

Объединённое ядро Linux (англ. Linux Unified Kernel, Longene[1] или неформ. LUK) — это ядро операционной системы, рассчитанное на бинарную совместимость приложений и драйверов устройств, используемых в Microsoft Windows и Linux, без использования виртуализации или эмуляции[2].

Проект написан на языке C, является свободным программным обеспечением с открытым исходным кодом и использует лицензию GPL версии 2[3]. Первый выпуск состоялся в 2006 году.

Возможности

Целью проекта Longene является добавление механизмов ядра Windows, включая системные вызовы, реестр Windows, модель драйверов Windows (WDM), отложенный вызов процедуры (DPC) и другие в ядро Linux для создания нового ядра. Новое ядро позволит запускать как Linux-, так и Windows-приложения, а также использовать драйверы устройств.

Для предотвращения раздувания объёма кода, если функция доступна и в ReactOS, и в ядре Linux, то используется вариант ядра Linux. Функции реализуются, используя загружаемые модули ядра Linux для быстрой загрузки и выгрузки.

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

Проект объединённого ядра Linux не разрабатывает библиотеки пользовательского уровня для Windows и Linux. Этим занимаются соответствующие проекты, такие как Wine, ReactOS и GNU.

Разработка

В сентябре 2005 года проект Linux Unified Kernel получил спонсорскую поддержку от китайской корпорации в сфере ИТ-консалтинга Insigma Technology[4]. Лидером Декао Мао были обозначены цели и пути развития проекта[5]. Он написал множество статей о рынке, авторском интеллектуальном праве[6][7], а также обозначил необходимые условия для достижения цели. Статьи Мао собраны на страницах проекта.

Для создания единого ядра Linux необходимо добавить следующие элементы:

  • Среду, которая сравнивает свойства и требования Windows-драйвера устройства таким образом, чтобы имелась возможность загрузки множества драйверов Windows в ядро, сохраняя при этом связи и условия выполнения, как это происходит в Windows.
  • Набор экспортируемых функций, определенных интерфейсом экспортируемых функций ядра Windows (WDK). Для программ эти функции будут выглядеть как обычные библиотеки, предоставляемые ядром.
  • Программный интерфейс Windows. Microsoft никогда не открывает код Windows API, но полный справочник по функциям интерфейс программирования приложений «Windows NT/2000 Native API Reference» и другие материалы помогают понимать структуру системы и взаимодействие её составляющих компонентов.

Чтобы достичь цели, объединённое ядро выпускается в виде патчей linux. Разработчики ожидают слияния этих патчей с основной ветвью ядра. Это облегчит переносимость программ с платформы Windows и удешевит производство драйверов для Linux. Помимо этого, существуют готовые бинарные пакеты для таких систем, как Ubuntu, Fedora и Red Flag Linux.

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

Longene постепенно реализует API-модули Win32, которые станут частью совместного ядра вместо wineserver-модулей, которые осуществляют перевод системных вызовов Windows в вызовы системы Linux. Longene также модифицирует системные файлы wine, kernel32.dll, user32.dll, gdi32.dll и ntdll.dll, которые вызывают модули wineserver для того, чтобы получить реализацию Win32 API в пространстве ядра. В переходном состоянии Longene использует модули wineserver для работы с теми функциями, которые ещё не перенесены в ядро, поэтому даже незаконченные выпуски выполняют приложения Win32.

Начиная с версии 0.3, разработчики полностью отказались от wineserver, но для Longene всё ещё требуются изменённые системные файлы kernel32.dll, user32.dll, gdi32.dll и ntdll.dll, а также некоторые библиотеки wine. Для драйверов устройств Longene использует NDISwrapper. Отсутствующую функциональность драйверной модели Windows был дополнен описаниями из ReactOS. Механизм Windows Driver Kit основан на коде ReactOS. Он использует комбинацию пересылки ресурсов на драйверы ядра Linux и дополнительные библиотеки, которые реализуют функции, отсутствующие в Linux.

История выпусков

Ранняя версия была известна как unifiedkernel-2.6.13 и была выпущена 15 февраля 2006 года. Этот выпуск содержал начальные реализации механизма системных вызовов Windows с прототипом функций системных вызовов. Существующие версии:

Цвет Значение
КрасныйВыпуск больше не поддерживается
ЗелёныйВыпуск ещё поддерживается
ГолубойБудущие выпуски
Версия Дата выпуска Информация о выпуске
0.1.030 апреля 2006
  • Портирован код из kernel-win32
  • Механизм системных вызовов Windows основан на «int 2e»
0.2.031 декабря 2006
  • Реализован механизм создания процессов/потоков Windows
  • Частично реализован механизм Windows APC
0.2.14 февраля 2008
  • Управление процессами/потоками Windows
  • Управление виртуальной памятью
  • Синхронизация
  • Управление объектами
  • Встроенная функция загрузки .exe
0.2.231 октября 2008
  • Механизм Token
  • Графическая программа установки
0.2.2-117 декабря 2008
  • Исправление ошибок
0.2.312 февраля 2009
0.2.422 мая 2009
  • Управление файловыми системами, портированное из wine
  • Частичная реализация API-функций управления реестром
  • Двоичные пакеты для популярных дистрибутивов
0.2.4.131 август 2009
  • Переход на ядро Linux 2.6.30
  • Поддержка новых файловых систем (ext4 и других)
0.331 мая 2010
  • Перенос всех функций wineserver в пространство ядра и полный отказ от wineserver
0.3.128 февраля 2011
  • Поддержка не-root пользователей
0.3.28 июня 2011
  • Поддержка wineconsole. Консольные приложения Windows, например, cmd.exe могут быть запущены с помощью команды wineconsole cmd.exe
  • Созданные процессы поддерживают темы оформления рабочей среды

Текущее состояние и будущее развитие

Разработчики работают над стабильностью работы SMP[8] и переносом NDISwrapper'а.

При разработке изменения в коде ядра минимальны, так как используются загружаемые модули.

В будущих выпусках рассчитывают добавить следующую функциональность:

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

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

  • IA-32 (работает)
  • x86-64 (не работает, в процессе)
  • Loongson 3 (не работает, в процессе)

Порт для Loongson 3, как ожидается, будет использовать новые инструкции для эмуляции аппаратного обеспечения x86.

Longene также может быть запущен в программах эмуляции или виртуализации оборудования, в таких как VMware и VirtualBox.

Применение

  • MagicLinux — это китайская сборка Linux, основанная на Red Hat Linux. Версия 2.1, выпущенная 15 декабря 2008 года, была представлена в основной (DVD-диск, с ядром Linux версии 2.6.25.20), компактной (CD-диск, с ядром Linux версии 2.6.25.20) и в версии с объединённым ядром Linux (CD-диск, с LUK версии 0.2.2)[9]. MagicLinux версии 2.5 rc2 включает в себя объединённое ядро версии 0.2.4.1[10].

Аппаратные требования

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

См. также

Примечания

  1. UnifiedKernel Website (англ.). Linux Unified Kernel Project Group (2010). Архивировано из оригинала 20 июня 2009 года.
  2. Linux Unified Kernel Project (англ.). Linux Unified Kernel Project Group (2008). Архивировано из оригинала 28 апреля 2012 года.
  3. Q: Whether the Linux Unified Kernel code will open or not? (англ.). Linux Unified Kernel Project Group.. Архивировано из оригинала 28 апреля 2012 года.
  4. China Open Source Software community officially released on September 1 (англ.). www.21tx.com (2 сентября 2005). — (Машинный перевод). Архивировано 15 марта 2012 года.
  5. Pulse volume and the inner core came (англ.). ccidnet.com. — (Машинный перевод).
  6. About the intellectual property rights (1) (англ.). — (Машинный перевод). (недоступная ссылка)
  7. About the intellectual property rights (2) (англ.). — (Машинный перевод). (недоступная ссылка)
  8. sean. Compatible with the SMP kernel problem (англ.). Linux Unified Kernel Project Group (26 августа 2009). — (Машинный перевод).
  9. Magic Linux 2.1 released. (Машинный перевод). Архивировано 4 марта 2016 года.
  10. Magic Linux 2.5 rc2 released. (Машинный перевод). Архивировано 4 марта 2016 года.

Ссылки