r   e   k   l   a   m   a
r   e   k   l   a   m   a

Linux w Windowsie? A skądże. „Okienkowe” Ubuntu to coś zupełnie innego #Build

Strona główna AktualnościOPROGRAMOWANIE

Ubuntu wszyte w Windowsa 10 – wielu plotki na ten temat potraktowało jako przedwczesny Prima Aprilis. Podczas sesji otwierającej rozpoczętą wczoraj konferencję Build 2016 wszystko stało się jasne. Supertajny (sic!) projekt Microsoftu i Canonicala zaowocować miał wprowadzeniem na platformę Windows powłoki bash, a wraz z nią… no właśnie, czego? Niektóre serwisy internetowe z ekscytacją piszą o umieszczeniu w Windowsie całego Ubuntu, czy też nawet, o zgrozo, całego Linuksa. A jak jest w rzeczywistości? Rzeczywistość wygląda na dość skomplikowaną.

Mike Harsh z Microsoftu oficjalnie mówi o nowym komponencie okienek, tzw. Windows Subsystem for Linux (WSL). Nazwa ta jest myląca, gdyż na podsystemie tym nie działa żaden Linux, lecz oryginalny tryb użytkownika Ubuntu, dostarczony przez naszych znakomitych partnerów z Canonicala – możemy przeczytać na oficjalnym blogu BuildingApps Microsoftu.

Różnica nie jest tylko akademicka. Czym jest Ubuntu? Ubuntu to desktopowy i serwerowy system operacyjny, zbudowany na bazie:

r   e   k   l   a   m   a

- jądra Linuksa,
- standardowej biblioteki C (glibc)
- demona inicjalizacji i usług systemowych (w 14.04 i 14.10 jeszcze upstart)
- przestrzeni użytkownika składającej się w większości z narzędzi GNU,
- serwera grafiki X.org (w przyszłości zastąpi go Mir),
- środowiska desktopowego GNOME,
- graficznej powłoki Unity.

Warto zauważyć, że niewiele z tego pochodzi faktycznie od Canonicala; firma Marka Shuttlewortha to wciąż bardziej integrator istniejących rozwiązań, nż producent autorskiego systemu.

Czym jest zaś Linux? Linux to monolityczne, modularne jądro systemu operacyjnego, wspierające pełną wielozadaniowość, pamięć wirtualną, współdzielone biblioteki, wielowątkowość, komunikację międzyprocesową, stos sieciowy i kilka innych podstawowych dla systemu operacyjnego zadań, na czele z obsługą sterowników sprzętowych, które niemal zawsze działają w przestrzeni kernela.

Nie znajdziemy tu jednak np. systemu graficznego (jak w jądrze Windowsa), nie ma tu systemowych demonów ani bibliotek interfejsu.

Czy zatem w Windowsie znalazł się Linux? A jakże, przynajmniej według Microsoftu. Rozwiązaniem problemu braku narzędzi opensource'owych na Windowsie ma być, według tego, co przeczytać możemy na oficjalnym blogu, zintegrowanie trybu użytkownika Linuksa i jego narzędzi z Windowsem, a następnie – uruchomienie Linuksa na Windowsie. Nie maszyny wirtualnej (sic!) – lecz prawdziwego Linuksa, obok Windowsa (co prawda nie wiemy, w jakim sensie Linux w maszynie wirtualnej może być „nieprawdziwy”), ale niech będzie.

Podczas prezentacji Microsoftu mogliśmy więc zobaczyć, jak w powłoce CMD.exe Windowsa uruchamiana jest powłoka bash – sama w sobie z Linuksem nic wspólnego nie mająca, wykorzystywana też przecież jako powłoka w systemie OS X. Co to jednak znaczy „uruchamiana”, szczególnie w zupełnie obcym środowisku? Gdy Kevin Gallo wpisał komendę bash, wywołał w ten sposób binarkę prosto z Ubuntu 14.04 LTS, po czym otrzymał normalny znak zachęty basha. Jeśli nie Linux, to co to jest?

Zagadka tkwi we wspomnianym Windows Subsystem for Linux. Na początku lutego pisaliśmy o odkryciu hakera WalkingCata, który w kompilacji 14251 Windowsa 10 znalazł pliki lxcore.sys i lxss.sys – nazwy przypominające to, co próbowano rozwijać w mobilnym Windowsie jako warstwę emulacji Androida (lxcore.sys i adss.sys). Podejrzewaliśmy wtedy, że może chodzić o możliwość uruchamiania na Windows Serverze kontenerów Dockera, w zdecydowanej większości wymagających linuksowego jądra. Lxcore.sys wyglądało właśnie na takie linuksowe jądro w Windowsie. I choć wielu naszych Czytelników pisało wówczas, że to jakieś bzdury, że uprawiamy tani marketing… właśnie ten linuksowy podsystem oficjalnie został wykorzystany.

Dustin Kirkland z Canonicala, który pracował nad tym projektem, na swoim blogu przedstawia swoje doświadczenia z Windows Subsystem for Linux. Warto zwrócić uwagę na lokalizację jego przestrzeni użytkownika Ubuntu w systemie plików Windowsa: C:\Users\Kirkland\AppData\Local\Lxss\rootfs\. Nazwa katalogu – Lxss – chyba nie jest przypadkowa. Tam właśnie zawarte są binarne pliki części przestrzeni użytkownika z Ubuntu.

A co z lxcore.sys? Nie, to nie jest Linux – przynajmniej z tego, co ujawnił Kirkland. To raczej coś, co można by było nazwać „LINE” – Linux Is Not an Emulator. To własnościowy, zamknięty moduł Windowsa, którego zadaniem jest translacja w czasie rzeczywistym wywołań linuksowego jądra na wywołania jądra NT. Można powiedzieć, że to odwrócenie projektu Wine, umożliwiającego uruchamianie na Linuksie i Maku binarnych plików dla Windowsa, ale tak jak Wine nie jest Windowsem, tak Windows Subsystem for Linux nie jest Linuksem, ani nie jest dla Linuksa.

Z perspektywy użytkownika, zainteresowanego wykorzystaniem przydatnych narzędzi GNU, różnica jest niewielka – swobodnie uruchomimy sobie emacsa czy vima, grepa, awka i seda, w znajomym i wygodnym środowisku. Niewiele jednak więcej. Z podekscytowaniem Kirkland zapewnia co prawda, że windowsowy podsystem pozwala na uruchomienie dziesiątek tysięcy binarnych pakietów z archiwów Ubuntu, ale wydaje się, że mocno tu przesadził, gdyż znaczna część tych dziesiątków tysięcy w tak okrojonym środowisku, pozbawionym serwera grafiki i powłoki graficznej, po prostu się nie uruchomi – i to nie uwzględniając problemów z kompatybilnością. Do tej pory nie działa nawet zwykły monitor zasobów top, nie mówiąc już o bazie mysql.

W tej sytuacji dla użytkowników Windowsa daleko bardziej dojrzałym i sensownym rozwiązaniem jest wykorzystanie Cygwina, dzięki któremu kolekcja narzędzi GNU działa natywnie w „okienkach”. Nie tylko zresztą GNU, jak ktoś chce, może uruchomić kompletny serwer X. Jasne, nie jest to Linux, ale rozwiązanie Microsoftu i Canonicala Linuksem też nie jest.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.