Wraz z wydaniem Aktualizacji rocznicowej dla Windows 10, Microsoft ogłosił Podsystem Windows dla Linuksa (WSL) - sposób na uruchomienie prawdziwego, natywnego Bash na Windows 10, który obsługuje natywne binaria Linux. Czyni to, uruchamiając obraz systemu Ubuntu Linux w trybie użytkownika na systemie Windows.
Oznacza to, że możesz uruchomić narzędzia wiersza poleceń Linuksa, takie jak ls
, grep
, top
i chmod
. Ponieważ masz pod lsb-release -a
oryginalny Ubuntu, uruchomienie lsb-release -a
daje następujące wyniki:
Możesz użyć apt-get
i znajomych, aby zainstalować narzędzia takie jak vim
, git
, screen
, tmux
, a nawet zagrać w nethack:
Należy jednak pamiętać, że ten system jest w wersji beta i nie jest przeznaczony do obciążania serwerów. Jest to tylko narzędzie dla programistów (i entuzjastów) do testowania swoich aplikacji opartych na systemie Linux w systemie Windows bez modyfikacji. Nie jest to również narzędzie przeznaczone do uruchamiania aplikacji lub środowisk Linux GUI, takich jak Gnome lub KDE, chociaż jest to możliwe również w przypadku niektórych hacków. Po wyjaśnieniu tego, spójrzmy, jak działa powłoka Linuksa w systemie Windows 10.
Podsystem Windows dla systemu Linux (WSL)
Zgodnie z oficjalną dokumentacją "WSL to zbiór komponentów umożliwiających uruchamianie natywnych binariów Linux ELF64 w systemie Windows". Czyni to poprzez implementację zwirtualizowanego interfejsu jądra Linuksa na jądrze Windows NT. Oznacza to, że nie korzysta on z żadnego kodu z rzeczywistego jądra systemu Linux - gdy aplikacja wykonuje systemowe wywołanie systemowe (syscall), WSL tłumaczy ją na odpowiednik systemu Windows, który następnie wykonuje wszystkie operacje podnoszenia ciężarów.
Różnice między maszynami wirtualnymi i Cygwin
Teraz spójrzmy, jak Linux Bash Shell na Windows 10 jest inny w porównaniu do maszyn wirtualnych i Cygwin.
Wirtualne maszyny
Być może myślisz: "No cóż, po co to robić? Dlaczego nie po prostu użyć maszyny wirtualnej Linux w Windows? "
W porównaniu z maszyną wirtualną WSL zużywa mniej zasobów . Umożliwia także pracę z plikami w systemie Linux, zapewniając pełny dostęp do bazowego systemu plików Windows bez konieczności korzystania z udostępnionych folderów lub udziałów sieciowych.
Cygwin
Inną popularną metodą uruchamiania popularnych na Linuksie narzędzi typu Linux / Unix jest Cygwin. Największą różnicą między tymi dwoma podejściami jest to, że Cygwin nie jest sposobem na uruchamianie natywnych binarek Linuxa w systemie Windows. Zapewnia jedynie zestaw narzędzi GNU i Open Source, które zapewniają funkcjonalność podobną do dystrybucji Linuksa w systemie Windows.
Z drugiej strony, narzędzia WSL są natywnymi binariami skompilowanymi do systemu Linux ELF-64 działającymi w systemie Windows. Na przykład uruchomienie polecenia apt-get install emacs
w WSL spowoduje pobranie i zainstalowanie tych samych plików, co na instalacji Ubuntu 14.04, z oficjalnych repozytoriów Ubuntu.
Użytkownicy, uprawnienia i systemy plików w WSL
Hierarchia systemu plików
WSL jest instalowany pod katalogiem %LocalAppData%\lxss\rootfs
bieżącego użytkownika. Jest to znane jako środowisko WSL i działa jako katalog Linux " /
" (root). Na przykład, jeśli Twoja nazwa użytkownika w systemie Windows to beebom
, katalog główny systemu Linux będzie znajdować się w katalogu C:\Users\beebom\AppData\Local\lxss\rootfs.
Oznacza to, że każdy użytkownik systemu Windows może mieć własne środowisko WSL i może wprowadzać zmiany, takie jak pakiety oprogramowania apt-get install
, bez wpływu na innych użytkowników systemu Windows.
Możliwe jest uzyskanie dostępu do podstawowego systemu plików Windows w WSL. Wszystkie napędy są zamontowane pod /mnt.
Na przykład C:\
jest zamontowany w /mnt/c
, D:\
jest zamontowany pod /mnt/d
, itp.
Użytkownicy i uprawnienia
Podczas pierwszej instalacji WSL zostanie wyświetlony monit o utworzenie nowego domyślnego użytkownika systemu Linux. Ten użytkownik nie musi mieć tej samej nazwy co bieżący użytkownik systemu Windows i jest traktowany jako oddzielna jednostka w ogóle. Można nawet utworzyć wielu użytkowników systemu Linux, kontrolowanych przez jednego użytkownika systemu Windows.
Możliwe jest uzyskanie uprawnień root
za pomocą polecenia sudo
. Należy pamiętać, że bycie root
w WSL ma wpływ tylko na prawa użytkownika w środowisku Linux i systemie plików - nie mają one wpływu na przyznane uprawnienia systemu Windows. Na przykład sesja WSL z uprawnieniami administratora systemu Windows może mieć wartość cd /mnt/c/Users/Administrator
natomiast sesja Bash bez uprawnień administratora spowoduje odmowę uprawnień. Wpisywanie sudo cd /mnt/c/Users/Administrator
nie przyzna dostępu do katalogu administratora, ponieważ uprawnienia są ograniczone przez system Windows.
Cechy systemu plików specyficzne dla systemu Linux
Linux to system rozróżniający wielkość liter . Oznacza to, że photo.png
i Photo.png
są traktowane jako dwa różne pliki. W systemie Windows nie jest rozróżniana wielkość liter domyślnie, ale nadal ma to znaczenie. Co oznacza, że podczas gdy photo.png
i Photo.png
nie są traktowane jako dwa odrębne pliki, to na pewno jest świadomy różnicy w przypadku.
WSL radzi sobie z rozróżnianiem wielkości liter tak samo, jak w Linuksie. Możliwe jest nawet utworzenie dwóch plików, których nazwa różni się tylko przypadkiem poza środowiskiem WSL. Należy jednak pamiętać, że wiele aplikacji systemu Windows nie może obsłużyć takich sytuacji i może nie być w stanie otworzyć jednego lub obu plików.
Podobnie, obsługiwane są dowiązania symboliczne, pod warunkiem, że korzystasz z systemu plików NTFS. Jednak dowiązania symboliczne będą działały tylko wewnątrz WSL i nie mogą być rozwiązane przez inne aplikacje systemu Windows.
Linux obsługuje również prawie wszystkie znaki specjalne wewnątrz nazw plików, podczas gdy system Windows jest bardziej restrykcyjny. WSL pozwala jednak na używanie takich znaków specjalnych, pod warunkiem, że są one ograniczone do środowiska systemu Linux.
Gotowy do uruchomienia Linuksa wiersza poleceń w systemie Windows?
Tak, tak Ubuntu Bash lub Linux Bash Shell, znany również jako Podsystem Windows dla Linux działa na Windows 10 (z aktualizacją Rocznica). Wraz z jego pracą dowiedzieliśmy się, że jest inny i lepszy niż tradycyjne metody uruchamiania poleceń specyficznych dla systemu Linux w systemie Windows. Tak więc, jeśli zawsze chciałeś używać poleceń Linuksa, zacznij, a jeśli masz pytania, komentarze lub wskazówki, daj nam znać w sekcji komentarzy.