Longene - Longene

Linux Unified Kernel
UnifiedKernel 0.2.1-Królowie WPS.jpg
Longene 0.2.1
Deweloper Insigma Technologia
Napisane w do
rodzina OS Hybrid: Linux -jak i systemu Windows -like
stan pracę Opuszczony, Ostatnia zmiana w 2014 roku
Model źródło Otwarte źródło
Najnowsze podgląd 1.0-RC2 / 16 stycznia 2014 ; 4 lata temu ( 16.01.2014 )
target marketing Komputery osobiste
Dostępne w wielojęzyczny
platformy IW-32 , x86-64
kernel typ Hybrydowy ( jądro Linux i zaprojektowane, aby być kompatybilny z systemem Windows NT )
Licencja GNU GPL v2
Oficjalna strona internetowa www .longene .org / pl / index .php

Longene jest system operacyjny jądro ma być binarnie kompatybilny z oprogramowaniem aplikacji i sterowników urządzeń wykonanych dla Microsoft Windows i Linux . W celu osiągnięcia tego, kluczowych cech jądra systemu Windows są przenoszone do jądra Linux .

Longene został napisany w języku programowania C i jest wolne i otwarte oprogramowanie . Jest licencjonowany na warunkach określonych w Powszechnej Licencji Publicznej GNU w wersji 2 (GPLv2).

Chociaż projekt jest w fazie alpha rozwoju począwszy od roku 2015, wiele programów Windows już działa dobrze.

W sierpniu 2018, na oficjalnej stronie nie ma, co oznacza koniec projektu. Jednak kod źródłowy jest nadal dostępny na GitHub .

funkcje

Longene ma na celu dodanie wszystkich mechanizmów jądra systemu Windows, w tym wywołań systemowych, rejestru systemu Windows , Windows Driver Model , odroczone Procedure Call i innych, do jądra Linux w celu utworzenia nowego jądra. Nowe jądro umożliwi zastosowanie zarówno Linux i Windows i sterowniki urządzeń do pracy bez wirtualizacji lub emulacji. W celu zapobiegania wzdęcia, jeśli funkcja jest dostępna zarówno w ReactOS i jądra Linux, używany jest realizacja Linux. Funkcje te realizowane są za pomocą modułów jądra Linux ładowalny, dzięki czemu mogą być ładowane i rozładowywane łatwo.

Longene ma dwa zestawy wywołań systemowych i ich odpowiednich tabelach: wywołania systemowego systemu Windows ustawiony i syscall zestaw Linux. Aplikacje Windows wywołać tabelę syscall za pomocą oprogramowania „przerwania int 0x2E”. linuksowe aplikacje wywołać tabelę syscall via „int 0x80”.

Projekt Longene nie rozwija się Windows i Linux przestrzeni użytkownika bibliotek. Biblioteki te są oferowane przez innych projektów, takich jak wino , ReactOS , GNU i ndiswrapper .

Rozwój

We wrześniu 2005 roku, projekt Longene zyskał sponsora z Insigma Technologii (浙大 网 新), Chiny opartej korporacji konsultingowej IT. Lider projektu, Decao Mao (毛 德 操), zaproponował ideę i trasy Longene. Napisał szereg artykułów na temat rynku, praw własności intelektualnej i techniki, aby wyjaśnić, dlaczego ludzie potrzebują projektu i sposobu realizacji Longene. Artykuły Mao napisał następnie zestawiane z wytworzeniem białego papieru projektu.

Zgodnie z białego papieru, do realizacji Longene, trzeba dodać kilka części do jądra Linux:

  • Ramy, który pasuje właściwości i wymagania kierowców urządzeń systemu Windows (czyli ramowych sterownik Windows), tak że wielu modułów sterowników urządzeń systemu Windows może być załadowany do jądra, zachowując ich związek i działa warunki jak w systemie Windows.
  • Zestaw funkcji eksportowych określonych funkcji interfejsu eksport jądra Windows (WDK). Programów sterownika urządzenia, funkcje te są jak funkcji bibliotecznych świadczonych przez jądro.
  • Okna natywne API. Microsoft nie otwierać ojczystego API, ale „Windows NT / 2000 Native API Reference” i inne materiały zaprezentował tę informację. Wdrażanie systemu Windows API w jądrze Linux można porównać do realizacji języku wysokiego poziomu w montażu, ponieważ wewnątrz jądra funkcje użytkowe nie są realizowane przez zewnętrznego jądra Linux API, ale już przez wewnętrzne funkcje jądra Linux.
  • Projekt Longene produkuje łatki dla jądra Linux osiągnąć swój cel. Twórcy projektu oczekiwać te poprawki, aby w końcu połączyć się z głównego drzewa jądra Linux. Ci, którzy programowania na platformie Windows będzie wówczas w stanie rozwijać aplikacji i sterowników urządzeń na platformie Linux lub portu swoje produkty na platformę Linux z niskim kosztem.

Strategia rozwojowa

Longene używa wina jako podstawa do wdrażania Windows API. Projekt ponownego wdraża moduły wina do wykorzystania jako części wspólnego jądra. Longene odracza z wykorzystaniem modułów wina, które nie zostały w wystarczającym stopniu wdrożone do realizacji projektu. Wersje Longene są uwalniane podczas kilku modułów wina zostały z powodzeniem wdrożone w jądro. Nowa stabilna wersja zostaną następnie wykorzystane jako podstawa do realizacji przyszłych modułów. Windows API, które nie zostały wdrożone przez Wine opracowywane są na moduły od zera.

Dla sterowników urządzeń, Longene importuje ndiswrapper do jądra. Modyfikacje są do ndiswrapper dla brakujących funkcjonalności Driver Model systemu Windows przy użyciu ReactOS kod jako odniesienie. Kit Sterowniki Windows realizacja opiera się na ReactOS kodu. Wykorzystuje połączenie przekierowanie do zasobów sterowników jądra systemu Linux oraz dodatkowych bibliotek, które realizują funkcje, które nie mogą być realizowane w systemie Linux.

Historia wersji

Wcześniejsza wersja, unifiedkernel-2.6.13, wydany w 15 lutego 2006. Ta wersja actualized mechanizm wywołania systemowego Windows.

kolor znaczenie
czerwony Release nie jest już obsługiwany
żółty Zwolnij, wspierany
Zielony Aktualne wydanie
niebieski Future uwolnienie
Wersja Data wydania Informacje o prawach
0.1.0 30 kwietnia 2006
  • kernel-win32 przeniesiony
  • Mechanizm wywołania systemowego okna oparte na „int” 2e
0.2.0 01 grudnia 2006
  • Okna proces / wątek wykreowanie realizowane
  • Częściowe wdrożenie mechanizmu Okna APC
0.2.1 04 lutego 2008
  • Proces Windows / zarządzanie wątek
  • zarządzanie pamięcią wirtualną
  • synchronizacja
  • zarządzanie obiektem
  • wbudowana funkcja ładowania EXE
0.2.2 31 października 2008
  • Reklamowe mechanizm
  • Program instalacyjny GUI
0.2.2-1 17 grudnia 2008
  • poprawek
0.2.3 12 lutego 2009
  • Mechanizm rejestr systemu Windows przeniesiony z wina
0.2.4 May 22, 2009
  • Zarządzanie systemem plików przeniesiony z wina
  • częściowa implementacja API zarządzania rejestru
  • Pakiety binarne dla popularnych dystrybucji świadczonych
0.2.4.1 31 sierpnia 2009
  • oparty na Linux Kernel 2.6.30
  • wspieranie nowych systemów plików (ext4 i inni)
0.3 Maj 31, 2010
  • przenieść wszystkie funkcje wineserver w przestrzeni jądra i pozbyć wineserver
0.3.1 26 lutego 2011
  • Wsparcie użytkownika innego niż root
  • aplikacje wspierające chiński ścieżka
0.3.2 08 czerwca 2011
  • Wsparcie wineconsole, aplikacje konsolowe Windows, takie jak cmd.exe może działać jak ten sposób: wineconsole cmd.exe
  • poprawy sposobu tworzenia procesu, więc okna natywnej aplikacji i wino buitin-aplikacja może stworzone przez siebie.
1,0 RC1 31 grudnia 2013
  • kompletna modyfikacja ramach, Longene nie jest już potrzebna poprawka jądra
  • Longene wspiera SMP
  • bardziej wygodny montaż, lepsza kompatybilność, stabilność lepiej
1,0 RC2 16 stycznia 2014
  • uaktualnić do wersji 1.7.10 wino
  • rozwiązać zwykłych użytkowników po problemie restartu
  • rozwiązać kilka uprawnienia do plików
  • zmodyfikować plik loading
2.0 2015
  • QEMU integracja kody
  • wsparcie uruchomionych aplikacji Windows na ARM maszynie

Obecny i przyszły rozwój

Programiści pracują obecnie nad Longene 2.0, który będzie wspierał aplikacje Windows uruchomione na innych niż x86 architektury sprzętowej, takich jak ARM i Loongson . Dodatkowo, twórcy pracują nad AMD64 wsparcia i przenoszenie kodu ndiswrapper do projektu.

jeszcze nie wdrożony (ale planowane):

  • QEMU integracja kod
  • WDM ramy sterownik
  • Windows DPC mechanizm
  • Eksportowane funkcje jądra zdefiniowane przez system Windows DDK

Dostępne zasoby Open Source

Longene bazuje na jądrze Linux. Realizuje swoje zadania w ładowalnych modułów jądra (Linux LKMs). W odróżnieniu od podstaw ReactOS funkcje wykonawcze, Longene wykorzystuje bogate kodu i dokumentacji jądra Linux, aby utworzyć swoje funkcje. Są to główne podejścia do wdrożenia mechanizmów systemu Windows w Longene:
  1. Interfejs wywołanie systemowe - Niektóre z nich mogą być pobierane z odpowiednich połączeń systemu Linux lub częściowo ponownie wykorzystać kod z odpowiednich połączeń systemu Linux. Reszta, które nie mają odpowiednika w systemie Linux należy użyć niskopoziomowych funkcji jądra Linux w ich realizacji.
  2. Urządzenie ramy kierowca - Rejestr obsługa przerwań sterownik wykorzystuje mechanizm przerwań Linux, sterowniki urządzeń postrzegają uruchomione jądro systemu Windows, który jest mapowany do jądra Linux działa pod spodem. Sterownik urządzenia DPC żądania są tłumaczone do funkcji Linux-BH.
  3. Pliki systemowe rodzimy Microsoft Windows, które są chronione prawem autorskim przez Microsoft - kategoria modułów .SYS wykorzystywane do wspólnych urządzeń zewnętrznych, takich jak dyski, USB, urządzeń graficznych, urządzeń sieciowych i tak dalej, dla których istnieją odpowiednie funkcje w jądrze Linux. Do napędu tych urządzeń, wymagane jest jedynie, aby zbudować most i nie ma potrzeby tworzenia .SYS modułów. Dla reszty sys modułów, które nie mają odpowiednich obiektów w jądrze Linux, wymagana jest emulacja.
  4. Okna DDK - Większość funkcji interfejsu sterownika i struktur danych mają odpowiedników w jądrze Linux. Niektóre funkcje nie mają dokładnego odpowiednika w jądrze Linuksa, i nie ma potrzeby budowania otoki używając Linux rzeczy jądra. W praktyce, niektóre połączenia zasobów i referencje mogą być przekierowane lub przystosowane do jądra Linux odpowiedników, a resztę muszą być realizowane od podstaw.
ReactOS jest klonem MS Windows napisany od podstaw. Longene używa kodu ReactOS jako punkt odniesienia w celu realizacji niektórych podstawowych mechanizmów systemu operacyjnego Microsoft Windows. Która obejmuje wdrażanie ram sterowników urządzeń systemu Windows, NDIS, interfejs wywołania systemowego, zarządzanie procesami i zarządzanie zasobami, interfejs sterownika urządzenia, itp
Wine implementuje warstwy zgodności, zapewniając alternatywne implementacje DLL że programy Windows wezwanie i procesów do zastąpienia jądrze Windows NT. W przeciwieństwie do Longene użyciem funkcji mikrojądro do wdrożenia systemu Windows API w przestrzeni jądra, Wino używa makro hosta OS API do wdrożenia systemu Windows API w przestrzeni użytkownika. Longene oferuje zarządzanie procesami systemu Windows, zarządzanie wątku, Object Management itd w jądrze; Wino oferuje ci przez wineserver działa w przestrzeni użytkownika. Longene zależy wino dla bibliotek użytkownika (plików .dll). Większość bibliotek DLL wino może być stosowany bezpośrednio przez Longene. Kod wino (takie jak w tabeli rejestru Windows) można odnieść do wdrożenia niektórych funkcji. W stanie przejściowym Longene wykorzystuje Wine zaoferować te funkcje, które nie zostały jeszcze zakończone.
  • Kernel-Win32
Kernel-Win32 to projekt przeznaczony do poruszania pewnych funkcji z wineserver do jądra Linux, aby przyspieszyć Wine. Projekt Longene przeniesiony (a częściowo ponownie wdrożony) Kernel-Win32 do Longene wdrożyć mechanizm wywołania systemowego systemu Windows.
Ndiswrapper odtworzona część jądra systemu Windows NT w moduł jądra Linux, dzięki czemu możliwe jest wykonanie nowoczesnych sterowników Windows wewnątrz pudełka jądra Linux. Ndiswrapper składa się z API NTOSKRNL, podstawowego kontrolera WDM oraz zestawu obwolut połączeń systemu Windows, takich jak bezprzewodowa / NDIS / USB / PnP Linux API. Ndiswrapper nie ogranicza się do wykonywania tylko sterowników NDIS; inne sterowniki WDM mogą być stosowane, o ile kierowca nie wymaga niewdrożonych funkcji API Windows. Pierwszy etap realizacji WDM w Longene będzie importować ndiswrapper do Longene. Następnie zespół projektowy Longene będzie realizować swoje WDM poprzez modyfikację ndiswrapper i dodawanie funkcji do ndiswrapper z kodu ReactOS jako odniesienie.
Do uruchamiania aplikacji systemu Windows x86 binarnych bezpośrednio na architekturze ARM, istnieje potrzeba emulacji, oczywiście. QEMU jest open source emulator w systemie Linux, które można uruchomić Wine, ale wynik jest zbyt powolny. QEMU interpretuje wszystkie instrukcje x86 w przestrzeni użytkownika (włącznie z kodem wino); tylko w przypadku systemu Linux wymaga aplikacja działa z pełną prędkością. Rezultatem jest powolny, ponieważ aplikacje spędzają większość czasu w emulowane przestrzeni użytkownika, a mniej czasu w jądrze. Ale jeśli DLL API wygrać, świadczone przez Wina mogą być wykorzystane poza QEMU, będą one działać na pełnych obrotach, ponieważ mogą one być zestawiane natywnie, a ogólna szybkość docierania powinno znacznie poprawić. Ten sposób łączenia wina i QEMU i wprowadzenie funkcji wineserver do jądra, to idea Longene 2.0.

użytkownicy

MagicLinux - MagicLinux to dystrybucja Linuksa oparta na chiński Red Hat Linux. Wersja 2.1 MagicLinux, wydany w dniu 15 grudnia 2008 roku, zawiera główną wersję (DVD, z jądrem Linux 2.6.25.20), kompaktową wersję (CD, jądro Linux 2.6.25.20) oraz wersji Longene (CD, z Longene 0,2 0,2).

Wymagania sprzętowe

Minimalne wymagania sprzętowe do uruchomienia to:

  • Procesor IA-32
  • 128 MB RAM
  • IDE lub SATA dysk twardy
  • kompatybilna karta graficzna VGA
  • Standard (PS / 2 lub USB) Klawiatura
  • PS / 2 lub mysz zgodna zgodna mysz Microsoft Mouse seryjny

wsparcie architektura

  • IW-32 (pracy)
  • x86-64 (nie działa, w toku)
  • Loongson 3 (nie działa, w toku)
  • ARM (nie działa, w toku)
  • Longene można również uruchomić na oprogramowanie, które emuluje lub wirtualizację powyższy sprzętowe, takie jak VMware i VirtualBox .

Zobacz też

Referencje