Ubuntu Windowson?
Linux Journal – 2016. április 4. – Írta: James Darvell
(Fordítás)
A Microsoft és a Canonical együtt dolgozik számos projekten, és az Internet hangos a különféle találgatásoktól, pletykáktól. Sokan attól félnek, hogy a Microsoft a Canonical felvásárlását tervezi és bezárja az Ubuntut. Mások azon merengenek, talán felkarolja a FOSS-t és nyílt forráskódúvá teszi a Windowst – de ezt senki sem várja.
A Microsoft és a Canonical sok hónapon keresztül dolgozott titokban azon, hogy az Ubuntut behozza a Windowsba – és nem virtualizációval, vagy beágyazott környezetben. Nem, a cél az volt, hogy a Linux-alkalmazások natívan fussanak a Windowsban.
Mielőtt belemennék, hogy ez egyáltalán miképp lehetséges, vessünk egy gyors pillantást, miért készít ilyet. Először is, fontos megjegyezni, nem a felhasználókat, hanem a fejlesztőket támogatja. Ilyen módon nincs támogatás a teljes Linux GUI alkalmazás-palettára (pl. a X Window rendszer, asztali környezetek és a sok Linux asztali alkalmazás, játék). Ehelyett, a parancssori felület (CLI) van a fókuszban, nevezetesen a Bash-héj.
Bármely gyakorlott Linux-fejlesztő, vagy rendszergazda elmondhatja, milyen példátlan erő a CLI. Még azok is, akik megszerették a modern integrált fejlesztési környezetek csicsáit, maguk is még erősen támaszkodnak a terminálra, a napi munkájuk során.
Noha a Windows rendelkezik CLI-vel (powerShell), az nem hasonlítható a Bash erejéhez és a CLI-eszközök teljes tárházához, ami minden átlagos GNU/Linux disztribúcióban megvan. Ez nagyban köszönhető annak, hogy a Linux CLI-eszközeit a UNIX kezdete óta fejlesztik.
A Bash Windowsba beépítésével a tapasztalt fejlesztők nagy teljesítményű új eszközök tárházához férnek hozzá. A Microsoft hogyan profitál ebből?
Régen a Microsoft zárt platformra építkezve működött. Stratégiája volt a felhasználók és a fejlesztők lekötése egy olyan platformhoz, ami nem kompatibilis más operációs rendszerekkel. A Microsoft növekedése nagyrészt, e stratégia sikerének köszönhető.
Ám a Web megjelenése hatalmas csapást mért erre az elvre. A Windows uralhatta az asztali felületet, de a szerverek területén ádáz küzdelem folyt. A por elültével, a Linux nyerte a Web-szerverek világa feletti ellenőrzéséért vívott csatát. Egyszerűen, erre a munkára az volt a leghatékonyabb platform
A web-fejlesztők szempontjából azt jelentette, hogy még Windowsos laptopon dolgozva is tudtak Linux-felületen futtatható kódokat írni. Mivel a két operációs rendszer belsőleg teljesen eltérő, ez néha elég nehéz volt. És ez az egyik oka annak, amiért a fejlesztők elég nagy számban váltottak Windowsról Linuxra, vagy OSX-re
Napjainkban, a keresztplatformos fejlesztés sokkal fontosabb, mint valaha volt. A fejlesztői csapatok gyakran törekszenek a több eszköz és operációs rendszer támogatására. A képesség, hogy egyetlen operációs rendszeren írják azokat a kódokat, hatalmas előnyt jelent.
A fejlesztők és felhasználók váltása rossz hír a Microsoft számára. Ezért, a meghatározó fejlesztők kedvére való megoldás kínálata prioritást jelent.
Számos, harmadik féltől származó megoldás született abból a célból, hogy egyszerűsítse a Linux-fejlesztést Windowson. Egyrészről, voltak a virtuális gépek, amik képesek voltak bármilyen operációs rendszert futtatni elkülönítve, ám a VM-ek használata erősen korlátozott teljesítménnyel járt.
Vannak Cygwin-hez hasonló eszközök, ami a Windows parancssornak a Linuxéhoz hasonló környezetet kreál. Ám, ha a környezet ismerős is, a szokásos Linux-környezetben működő parancsok készletének és tulajdonságainak teljes támogatására nem képes.
A „Bash for Windows” csapatának tagjai teljesen más megközelítést alkalmaznak. A céljuk, hogy egy teljes Linux CLI környezetet adjanak, GNU/Linux disztró (esetünkben Ubuntu) futtatásával a Windows felett. Nos, teljes ugyan, de egy lényeges kivétellel – ez a Linux-kernel.
A Linux-kernel bármely GNU/Linux operációs rendszer szíve. Futtatja a szoftvert, ami tartalmazza a teljes operációs rendszert, benne az összes szolgáltatást, démont, eszközöket és alkalmazásokat.
A Windows is rendelkezik kernellel (a Windows NT kernel). Ugyanazt a szerepet tölti be a Windows-rendszerben, és mindkét kernel az operációs rendszer többi elemével interfészen tart kapcsolatot. Ám a két kernel teljesen eltérő interfésszel rendelkezik.
Ha újragyártod a kernel interfészét, akkor képesnek kell lenned az adott kernel számára lefordított szoftver futtatására. Így működik a népszerű Wine-csomag.
A Wine eszköz, ami lehetővé teszi a Linuxban Windows-alkalmazások futtatását. Úgy működik, hogy a Windows rendszerhívásait lefordítja linuxosokra. A Windows-alkalmazások úgy látják, mintha Windowsban futnának. A kernel számára az alkalmazás pedig normál Linux-folyamatnak látszik.
A „Windows Subsystem for Linux” (Linux-alrendszer Windowshoz) ugyanezen az elven működik, csak visszafelé. Amit a Microsoft tett, hogy csinált egy „fordított Wine”-t, ami lefordítja a Linux rendszerhívásait Windowsra.
Természetesen, ez több mint egyszerűen leképezni egy rendszerhívás-készletet egy másikra – a kernelek felépítésében rejlő különbségek a feladatot elég összetetté teszik. És emiatt léteznek olyan Linux-alkalmazások, amiket az új rendszer nem támogat teljes mértékben.
Például, a Ruby futtatható Rails-en, de vannak olyan népszerű GEM-ek (Ruby-csomagok), amik nem települnek - egyelőre.
A teljesítmény lenyűgöző, amit a Microsoft és a Canonical együttműködése tett lehetővé, és sok egyéni fejlesztő és felhasználó örül a hírnek. De, sokan vannak a FOSS világában, akik a hírt gyanakvással fogadják. A projektet épp csak bejelentették és még nem érhető el széles körben (néhány héten belül jut el a Béta-kiadás állapotába).
Érdekes lesz megnézni, hová vezet ez. Mit gondolsz, jó ez a Linux-közösség számára? Véleményedet a megjegyzéseknél írd meg!