Longene - Longene
Longene 0.2.1 | |
Vývojář | Technologie Insigma |
---|---|
Napsáno | C |
Rodina OS | Linux s Okna - jako dodatky |
Pracovní stav | Neaktivní, poslední aktualizace v roce 2014 |
Zdrojový model | Otevřený zdroj |
Poslední náhled | 1.0-rc2 / 16. ledna 2014 |
Úložiště | |
Marketingový cíl | Osobní výpočet |
K dispozici v | Vícejazyčné |
Platformy | IA-32, x86-64 |
Jádro typ | Hybridní (Linuxové jádro a navržen tak, aby byl kompatibilní s Windows NT ) |
Licence | GNU GPL v2 |
Oficiální webové stránky |
Longene (čínština : 龙井) je Linux -na základě operační systém jádro zamýšlel být binárně kompatibilní s aplikační software a ovladače zařízení vyrobený pro Microsoft Windows a Linux. Od verze 1.0-rc2 se skládá z Linuxu modul jádra implementace aspektů jádra Windows a upravený Víno distribuce navržená tak, aby využívala výhod nativnějšího rozhraní. Longene je napsána v Programovací jazyk C. a je bezplatný open source software. to je licencováno podle podmínek GNU General Public License verze 2 (GPLv2).
Ačkoli je projekt v alfa fáze od roku 2015 již mnoho programů Windows funguje dobře.[Citace je zapotřebí ]
Jeho oficiální web byl v srpnu pryč, ale v roce 2019 byl obnoven. Mezitím zůstává zdrojový kód k dispozici na GitHub.[1]
Funkce
Longene si klade za cíl přidat všechny mechanismy jádra Windows, včetně systémových volání, Registr Windows, Model ovladače Windows, Odložené volání procedury a další do linuxového jádra za účelem vytvoření nového jádra. Nové jádro umožní aplikacím a ovladačům zařízení Linux i Windows pracovat bez virtualizace nebo emulace. Aby se zabránilo nadýmání, je-li funkce k dispozici v jádru ReactOS i Linux, použije se implementace Linuxu. Funkce jsou implementovány pomocí načtitelných modulů jádra Linuxu, takže je lze snadno načíst a uvolnit.
Longene má dvě sady systémových volání a jejich odpovídající tabulky: sadu Windows Syscall a Linux Syscall. Aplikace Windows volají tabulku syscall prostřednictvím softwarového přerušení „int 0x2e“. Aplikace pro Linux volají tabulku syscall pomocí „int 0x80“.
Projekt Longene nevyvíjí Windows a Linux uživatelská země knihovny. Tyto knihovny nabízejí jiné projekty, jako např Víno, ReactOS, GNU a NDISwrapper.[2]
Rozvoj
V září 2005 získal projekt Longene sponzorství z čínské IT poradenské společnosti Insigma Technology (浙大 网 新). Vedoucí projektu Decao Mao (毛 德 操) navrhl myšlenku a cestu Longene. Napsal řadu článků o trhu, právech duševního vlastnictví a technikách vysvětlujících, proč lidé projekt potřebují a jak implementovat Longene. Články, které Mao napsal, byly poté sestaveny, aby vytvořily bílou knihu projektu.
Podle bílé knihy je třeba k implementaci Longene přidat do jádra Linuxu několik částí:
- Rámec, který odpovídá vlastnostem a požadavkům ovladačů zařízení Windows (tj. Rámec ovladačů zařízení Windows), takže do jádra lze načíst více modulů ovladačů zařízení Windows, při zachování jejich vztahu a provozních podmínek jako v systému Windows.
- Sada exportních funkcí definovaných rozhraním exportních funkcí jádra Windows (WDK). Pro programy ovladačů zařízení jsou tyto funkce jako funkce knihovny poskytované jádrem.
- Windows nativní API. Společnost Microsoft neotevřela své nativní API, ale tyto informace odhalila „Nativní reference API Windows NT / 2000“ a další materiály. Implementaci systémového API systému Windows v linuxovém jádře lze porovnat s implementací jazyka na vysoké úrovni v assembleru, protože uvnitř jádra již nejsou použitelné funkce implementovány externím linuxovým jádrovým API, ale interními linuxovými jádrovými funkcemi.
- Projekt Longene vytváří patche pro linuxové jádro, aby dosáhl svého cíle. Vývojáři projektu očekávají, že se tyto opravy nakonec sloučí do hlavního stromu linuxového jádra.[Citace je zapotřebí ] Ti, kteří programují na platformě Windows, by pak mohli s nízkými náklady vyvinout aplikace a ovladače zařízení pro platformu Linux nebo přenést své produkty na platformu Linux.
Strategie rozvoje
Longene používá Wine jako základ pro implementaci Windows API. Projekt znovu implementuje moduly Wine pro použití jako součást společného jádra. Longene se vzdává používání modulů Wine, které nebyly pro projekt dostatečně implementovány. Verze Longene jsou vydány, když bylo do jádra úspěšně implementováno několik modulů Wine. Nová stabilní verze bude poté použita jako základ pro implementaci budoucích modulů. Windows API, které nebyly implementovány Wine, jsou od základu vyvinuty do modulů. Protože jádro Longene dělá práci jádra Windows NT, není potřeba vlastní emulace jádra uživatelského prostoru Wine (Wineerver).
U ovladačů zařízení importuje Longene NDISwrapper do jádra. Změny byly provedeny NDISwrapper pro chybějící funkčnost modelu ovladače Windows pomocí ReactOS kód jako reference. The Sada ovladačů Windows implementace je založena na ReactOS kód. Využívá kombinaci přesměrování ovladačů na prostředky jádra Linuxu a dalších knihoven, které implementují funkce, které nelze v Linuxu implementovat.
Historie verzí
Starší verze, unifiedkernel-2.6.13,[3] vydáno 15. února 2006. Tato verze aktualizovala mechanismus volání systému Windows.
barva | význam |
---|---|
Červené | Vydání již není podporováno |
žlutá | Uvolnění, podporováno |
zelená | Aktuální vydání |
modrý | Budoucí vydání |
Verze | Datum vydání | Informace o vydání |
---|---|---|
0.1.0 | 30.dubna 2006 |
|
0.2.0 | 1. prosince 2006 |
|
0.2.1 | 4. února 2008 |
|
0.2.2 | 31. října 2008 |
|
0.2.2-1 | 17. prosince 2008 |
|
0.2.3 | 12. února 2009 |
|
0.2.4 | 22. května 2009 |
|
0.2.4.1 | 31. srpna 2009 |
|
0.3 | 31. května 2010 |
|
0.3.1 | 26. února 2011 |
|
0.3.2 | 8. června 2011 |
|
1,0-rc1 | 31. prosince 2013 |
|
1,0-rc2 | 16. ledna 2014 |
|
2.0[4] | 2015 |
Současný a budoucí vývoj
Vývojáři v současné době pracují na Longene 2.0, který bude podporovat aplikace Windows spuštěné na hardwaru architektury jiné než x86, například PAŽE a Loongson. Kromě toho vývojáři pracují na AMD64 podpora a přenos kódu NDISWrapper do projektu.
Dosud neimplementováno (ale plánováno):
- QEMU integrace kódu
- The WDM rámec ovladače zařízení
- Okna DPC mechanismus
- Exportované funkce jádra definované ve Windows DDK
Dostupné zdroje Open Source
- Linuxové jádro
- Longene je založen na linuxovém jádře. Implementuje své funkce do linuxových zaváděcích modulů jádra (LKM). Na rozdíl od nuly implementujících funkcí ReactOS využívá Longene k vytváření svých funkcí bohatý kód a dokumentaci linuxového jádra. Toto jsou hlavní přístupy k implementaci mechanismů Windows v Longene:
- Rozhraní systémových volání - Některé z nich lze převzít z příslušných systémových volání systému Linux nebo částečně znovu použít kód z odpovídajících systémových volání systému Linux. Zbytek, který v Linuxu nemá obdobu, musí při své implementaci používat funkce linuxového jádra na nízké úrovni.
- Rámec ovladače zařízení - Registr služby přerušení ovladače zařízení používá mechanismus přerušení Linuxu, ovladače zařízení vnímají spuštěné jádro Windows, které je mapováno na jádro Linuxu běžící pod ním. Požadavky DPC ovladače zařízení jsou přeloženy do funkcí Linux-bh.
- Soubory nativního systému Microsoft Windows, které jsou chráněny autorskými právy společnosti Microsoft - Kategorie modulů .sys používaných pro běžná externí zařízení, jako je disk, USB, grafická zařízení, síťová zařízení atd., Pro které v jádře Linuxu existují odpovídající funkce. K řízení těchto zařízení je nutné pouze sestavit most a není třeba vytvářet .sys moduly. U ostatních modulů .sys, které nemají v jádře Linuxu žádné odpovídající objekty, je vyžadována emulace.
- Windows DDK - Většina funkcí rozhraní ovladače zařízení a datových struktur má protějšky v linuxovém jádře. Některé funkce nemají v linuxovém jádře přesný ekvivalent a je třeba vytvořit obal pomocí linuxových jader. V praxi lze některá volání zdrojů a odkazy přesměrovat nebo přizpůsobit protějškům jádra Linuxu a zbytek je třeba implementovat úplně od začátku.
- ReactOS
- ReactOS je klon MS Windows psaný od nuly. Longene používá kód ReactOS jako referenci k implementaci některých základních mechanismů operačního systému Microsoft Windows. To zahrnuje implementaci rámce ovladačů zařízení Windows, NDIS, rozhraní systémových volání, správu procesů a správu zdrojů, rozhraní ovladače zařízení atd.
- Víno
- Wine implementuje vrstvu kompatibility, poskytuje alternativní implementace knihoven DLL, které programy Windows volají, a zpracovává tak, aby nahradily jádro Windows NT. Na rozdíl od Longene, který používá funkce mikrokernelů k implementaci Windows API v prostoru jádra, používá Wine k implementaci Windows API v uživatelském prostoru rozhraní API hostitelského makra OS. Longene nabízí v jádře správu procesů Windows, správu vláken, správu objektů atd.; Víno je nabízí vinařský server běžící v uživatelském prostoru. Longene závisí na Wine pro uživatelské knihovny (soubory DLL). Většinu DLL od Wine může Longene používat přímo. K implementaci některých funkcí lze použít vinný kód (například tabulku registru Windows). V přechodném stavu používá Longene k nabízení těch funkcí, které ještě nebyly dokončeny, Wine.
- Kernel-Win32
- Kernel-Win32 je projekt, jehož cílem je přesunout některé funkce z Wineserveru do linuxového jádra za účelem zrychlení Wine. Projekt Longene přenesl (a částečně znovu implementoval) Kernel-Win32 do Longene za účelem implementace mechanismu volání systému Windows.
- NDISwrapper
- NDISWrapper znovu vytvořil část jádra Windows NT v modulu jádra Linuxu, což umožnilo spouštět moderní ovladače Windows uvnitř boxu jádra Linuxu. NDISWrapper se skládá z rozhraní API NTOSKRNL, základního řadiče WDM a sady obalů volání systému Windows, jako jsou rozhraní Wireless / NDIS / USB / PnP to Linux API. NDISWrapper se neomezuje pouze na spouštění pouze ovladačů NDIS; lze použít i další ovladače WDM, pokud ovladač nevyvolává neimplementované funkce Windows API. Prvním krokem implementace WDM v Longene bude import NDISWrapper do Longene. Pak projektový tým Longene implementuje svůj WDM prostřednictvím úpravy NDISwrapper a přidání funkcí do NDISWrapper s ReactOS kódem jako referencí.
- QEMU
- Chcete-li spouštět binární aplikace Windows x86 přímo na architektuře ARM, je samozřejmě potřeba emulace. QEMU je emulátor open source v Linuxu, který dokáže spouštět Wine, ale výsledek je nepřijatelně pomalý. QEMU interpretuje všechny instrukce x86 v uživatelském prostoru (včetně kódu Wine); pouze v případě volání systému Linux běží aplikace plnou rychlostí. Výsledek je pomalý, protože aplikace tráví většinu času v emulovaném uživatelském prostoru a méně času v jádře. Pokud by však knihovny DLL rozhraní Win API poskytované společností Wine mohly být použity mimo QEMU, běžely by plnou rychlostí, protože by mohly být nativně kompilovány, a celková rychlost běhu by se měla výrazně zlepšit. Tento způsob kombinace Wine a QEMU a uvedení funkcí Wineserveru do jádra je myšlenkou Longene 2.0.
Uživatelé
Magic Linux - Magic Linux je čínská linuxová distribuce založená na Red Hat Linux. Verze 2.1 Magic Linux, vydaná 15. prosince 2008, obsahuje hlavní verzi (DVD s jádrem Linux 2.6.25.20), kompaktní verzi (CD s jádrem Linux 2.6.25.20) a verzi Longene (CD s Longene 0.2.2).[5]
Hardwarové požadavky
Minimální hardwarové požadavky ke spuštění jsou:
- Procesor IA-32
- 128 MB RAM
- IDE nebo SATA pevný disk
- VGA kompatibilní grafická karta
- Standardní klávesnice (PS / 2 nebo USB)
- Myš kompatibilní s PS / 2 nebo sériová myš kompatibilní s Microsoft Mouse
Podpora architektury
- IA-32 (pracovní)
- x86-64 (nefunguje, probíhá)
- Loongson 3 (nefunguje, probíhá)
- PAŽE (nefunguje, probíhá)
- Longene lze také spustit na softwaru, který emuluje nebo virtualizuje výše uvedený hardware, například VMware a VirtualBox.
Viz také
- Kooperativní Linux
- Cygwin
- NDISwrapper
- ReactOS
- Služby Windows pro UNIX
- Subsystém Windows pro Linux
- Víno (software)
Reference
- ^ „tsuibin / longene“. GitHub. Citováno 2018-08-21.
- ^ Unifikované jádro Linuxu 0.2.4.1 „Projekt LUK nevyvíjí knihovny uživatelských systémů Windows a Linux. Tyto knihovny nabízí projekt Wine (nebo Microsoft Windows / ReactOS) a projekt Linux.“
- ^ unifiedkernel-2.6.13
- ^ „Longene 2.0 bude podporovat aplikace Windows spuštěné na architektuře jiné než x86“. Archivovány od originál dne 03.03.2014. Citováno 2014-04-09.
- ^ Magic Linux 2.5 rc2 发布 Archivováno 2014-04-20 na Wayback Machine