Longene - Longene
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 |
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 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 .
Zawartość
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 |
|
0.2.0 | 01 grudnia 2006 |
|
0.2.1 | 04 lutego 2008 |
|
0.2.2 | 31 października 2008 |
|
0.2.2-1 | 17 grudnia 2008 |
|
0.2.3 | 12 lutego 2009 |
|
0.2.4 | May 22, 2009 |
|
0.2.4.1 | 31 sierpnia 2009 |
|
0.3 | Maj 31, 2010 |
|
0.3.1 | 26 lutego 2011 |
|
0.3.2 | 08 czerwca 2011 |
|
1,0 RC1 | 31 grudnia 2013 |
|
1,0 RC2 | 16 stycznia 2014 |
|
2.0 | 2015 |
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:
- 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.
- 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.
- 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.
- 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ż
- Ubuntu na Windows
- ReactOS
- Wino (oprogramowanie)
- ndiswrapper
- Usług Microsoft Windows dla systemu UNIX
- Cooperative Linux
- Cygwin