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

Pingwin w klatce: sprawdzamy możliwości Ubuntu wbudowanego w Windows 10

Strona główna AktualnościOPROGRAMOWANIE

Ubuntu wszyte w Windows 10 – ta ekscytująca dla wielu nowość z konferencji Build zawitała już do wydanej kilka dni temu wersji systemu dla uczestników programu Windows Insider. Zaktualizowaliśmy więc naszą wersję testową „dziesiątki” do kompilacji 14316, która jako pierwsza przynosi Windows Subsystem for Linux (beta), by przekonać się, co warte jest to rozwiązanie, czego możemy się spodziewać, i czy wreszcie będzie można wygnać te wszystkie Linuksy na serwery, oddając pecetowy desktop pod wyłączne władanie Microsoftu.

Pierwsze kroki: gdzie tu kliknąć?

Szybko się przekonamy, że z tym „Linuksem” w Windowsie nie ma lekko. Obiecywano, że po uruchomieniu konsoli CMD.EXE wpiszemy jako komendę nazwę powłoki z Ubuntu (bash) i znajdziemy się w linuksowym świecie, mogąc uruchamiać linuksowe programy i korzystać z zaawansowanych konsolowych narzędzi. W rzeczywistości jest troszkę inaczej.

Po pierwsze, należy włączyć wspomniany Windows Subsystem for Linux (beta). Znaleźć to w ustawieniach systemowych niełatwo. Właściwa droga to Settings > System > Apps & features > Related settings > Programs and Features > Turn Windows features on or off. Przy okazji przekonamy się, że wciąż Microsoft nie jest w stanie ujednolicić wyglądu narzędzi do systemowej konfiguracji – jedno oko na Maroko, drugie na Kaukaz, przebijając się przez kolejne ekrany Modern UI w końcu trafimy na normalne okienko aplikacji win32.

r   e   k   l   a   m   a

Gdy już do tego okienka dotrzemy, należy zaznaczyć ptaszkiem linuksowy podsystem, a następnie zrestartować komputer.

Kolejny krok to przełączenie Windowsa w tryb Developer. Dotrzemy do tego poprzez Settings > Update & security > For Developers > User developer features > Developer mode. Tu przynajmniej zachowano jakąś spójność. Ponownie restartujemy komputer.

Finalnie pozostaje uruchomić konsolę CMD.EXE i wydać komendę bash. W tym momencie zostaniemy poproszeni o zaakceptowanie warunków licencji Canonicala, a następnie ze sklepu Windows Store zostanie pobrana paczka z Ubuntu for Windows. Wcześniej czy później, w zależności od szybkości łącza, zobaczycie w końcu znajomy znak zachęty powłoki bash z Ubuntu.

Oczywiście pierwsze, co chce się zrobić na linuksowych systemach, to sprawdzić, czy system jest aktualny. Polecenie apt-get update zakończyło się jednak niepowodzeniem – zamknięte w swoim kontenerze Ubuntu po prostu nie widziało sieci. Co robić? Należy przyznać, że rozwiązanie problemu zajęło sporo czasu. Pół godziny dłubaniny zeszło na odkrycie, że pobrane z Windows Store Ubuntu ma nieskonfigurowane ustawienia serwera nazw. Wydanie polecenia echo nameserver 8.8.8.8 > /etc/resolv.conf pomogło. Wyjście z basha (exit) i ponowne jego uruchomienie pozwoliło cieszyć się widzącym sieć Ubuntu (apt-get update && apt-get upgrade zadziałały bez problemów).

Ciasna klatka bez wygód

Ubuntu 14.04 w jakiś tajemniczy sposób widzi sieć, ale jak to robi, trudno powiedzieć. Nie jesteśmy w stanie dotrzeć do żadnego urządzenia sieciowego, nawet polecenie ifconfig powie tylko, że nie można otworzyć /proc/net/dev – i co za tym idzie zebrać informacji o sprzęcie. Podobnie jest ze wszystkimi próbami dotarcia do innych sprzętowych magistrali – nic nie dowiemy się z lspci czy lsusb, a próba odczytania informacji o systemie plików (df) zwróci informację o niemożliwości otworzenia tablicy partycji.

Nie ma tu oczywiście żadnych linuksowych systemów plików. Pracujemy na NTFS, a to oznacza, że może być dziwnie. Normalne uniksowe uprawnienia dostępu są tu nie do użycia, zalogowani domyślnie jako root możemy zrobić wszystko ze wszystkim (777) w obrębie windowsowego podkatalogu, jaki oddano Ubuntu. Spróbowaliśmy oczywiście przyspieszyć pracę komputera za pomocą słynnego rm -rf /, ale skończyło się to tylko usunięciem Ubuntu – Windows niestety został na miejscu.

NTFS-owe ograniczenia mogą sprawić kłopoty z niektórymi skryptami powłoki bash; widać to choćby już przy zakładaniu plików o nazwach, które byłyby legalne w uniksach, a na Windowsie są zakazane – ich założenie jest niemożliwe. Bywają też problemy z zarządzaniem plikami po ich inode. Co prawda ls -il zwróci nam numery inode poszczególnych plików (dziwne trochę, dłuższe niż na Linuksie), ale z jakiegoś powodu dobranie się do nich po inode nie przynosi oczekiwanych rezultatów, raz to działa, a raz nie.

O ile większość poleceń bash zachowuje się w zgodzie z oczekiwaniami (sed, awk, grep, touch – to wszystko działa bez zarzutu), to z aplikacjami aplikacji korzystającymi z ncurses jest kiepsko. Owszem, zainstalujemy np. słynnego Midnight Commandera (mc), ale korzystanie z niego to katorga, co chwilę przestaje działać obsługa klawiatury, a panele są źle odświeżane.

Wiele innych aplikacji ncurses, np. monitor iptraf, w ogóle nie potrafi narysować dobrze swojego interfejsu (nie mówiąc już o tym, że nie działa, bo nie widzi urządzeń sieciowych).

Co ciekawe, działają za to animacje ASCII w konsoli, na czele z aafire. Windows nigdy dotąd nie był taki gorący. To jednak jedynie zabawny gadżet. Konsolowych gier nie udało się uruchomić. bastet, czyli konsolowy Tetris, po zainstalowaniu odpowiadał, że nie może zostać uruchomiony, ponieważ /usr/games nie znajduje się w ścieżce PATH... mimo że katalog ten w PATH się znajdował.

Granie w bashu na Windowsie 10 to oczywiście ostatnia chyba rzecz, jaką by chciało się robić. Zastosowania mają być czysto deweloperskie. Z tymi deweloperskimi zastosowaniami to póki co należy uważać. Owszem, można zainstalować zestaw kompilatora (apt-get build-essential), ale już kompilowanie za pomocą gcc pomniejszych programików z GitHuba, które na zwykłym Ubuntu kompilowały się bez problemu, tu kończy się przeróżnymi błędami. A co z webdeweloperką? Zapewne wielu programujących w Rubym czy innym modnym języku Czytelników parsknie teraz śmiechem, ale cóż, w polskich warunkach webdeweloperska to jednak zwykle LAMP. Instalacja LAMP-a (apt-get install lamp-server^) zakończyła się jednak porażką, całkowicie odmówiło pracy MySQL (aborted, core dumped), Apache zgłosiło również sporo zastrzeżeń, uznając, że konfiguracja jest połamana.

Na koniec należy wspomnieć o wydajności. Cały ten linuksowy podsystem, będący w praktyce translacją wywołań linuksowego API na API kernela NT jest mniej wydajny od oryginału, potrafi się też w wielu miejscach przyciąć. Pomiary przeprowadzone za pomocą polecenia time pokazały, że te same polecenia powłoki w linuksowym bashu na Windows działają kilkukrotnie wolniej, niż uruchomione w bashu na 64-bitowym Cygwinie (natywnym środowisku uniksowym dla Windowsa).

Linuksa jeszcze nie kasujcie

Być może rozwiązanie będące wciąż w fazie beta z czasem nabierze wydajności, kompatybilności i tego końcowego szlifu, póki co jednak Ubuntu w Windowsie jest jedynie zabawką, która nie nadaje się do poważnej pracy.

Na razie nasza opinia jest taka – jeśli Microsoft chciał przez wbudowanie basha do Windowsa 10 rywalizować z Apple (w OS-ie X/ Darwinie bash jest domyślną powłoką systemową), to wziął się za to w najgorszy możliwy sposób. Bash na Makach jest w pełni natywnym rozwiązaniem, dającym pełen dostęp do całego systemu plików, tam po prostu wszystko działa. Ubuntu z Windows Store jest jedynie zamkniętym kontenerem, nie korzystającym z możliwości Windowsa, a pozbawionym możliwości Linuksa.

Jeśli ktoś potrzebuje uniksowych narzędzi w swoich „okienkach”, to powinien sięgnąć po Cygwina (któremu niebawem poświęcimy dłuższy artykuł). Jeśli ktoś potrzebuje linuksowej maszyny do prac deweloperskich czy administracyjnych, a nie chce rezygnować z Windowsa na swoim pececie, to powinien zainstalować sobie jakiegoś Debiana czy CentOS-a w maszynie wirtualnej. Dzisiaj, w erze superszybkich laptopów z 8 i 16 GB RAM uruchamianie jednocześnie nawet kilku zwirtualizowanych systemów to przecież nic dziwnego.

Oczywiście jest też opcja trzecia, wiążąca się z kupieniem MacBooka. Sądząc po tym, co widać na konferencjach deweloperskich w USA, gdzie czasem nie widać na sali innych komputerów niż te z „jabłuszkiem”, opcja ta jest chętnie wybierana przez zainteresowanych programistycznymi zastosowaniami.

© 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.