Jak naprawdę działa nowa „Bash na Windows 10”?

25

Czytam online, że Ubuntu i bash nadchodzą do Windows 10. Przeczytałem również, że nie jest to emulator ani maszyna wirtualna działająca na systemie Windows, ale coś innego. Jak dokładnie to wszystko się łączy? I czy naprawdę będzie tak stabilny i przyjazny dla użytkownika jak bash w Ubuntu?

Maaverik
źródło
Naprawdę nie zapewnia świetnego obrazu tego, co naprawdę dzieje się pod maską.
Maaverik,
@maaverik Od tego czasu stworzyliśmy serię postów na blogu i towarzyszących im filmów objaśniających elementy wewnętrzne WSL. Zobacz moją odpowiedź poniżej dla linków :)
Rich Turner

Odpowiedzi:

21

To nie jest emulator w taki sam sposób, jak WINE nie jest emulatorem. Innymi słowy, dodali interfejs jądra Linux do jądra systemu Windows. Gdy aplikacja próbuje użyć jądra systemu Linux, zostaje przetłumaczona na rodzime wywołanie systemowe Windows, a wszelkie odpowiedzi z jądra są tłumaczone na rodzimą odpowiedź systemu Linux. Więc aplikacja myśli, że działa na jądrze Linuksa i dlatego nie musi być modyfikowana.

Jest to jednak czysto technologia systemu Windows, więc jeśli chcesz uzyskać więcej szczegółów, powinieneś je uzyskać od grupy wsparcia systemu Windows lub czegoś takiego. Windows nadal jest zastrzeżonym systemem operacyjnym, więc spodziewałbym się ograniczonej ilości szczegółów.

I czy naprawdę będzie tak stabilny i przyjazny dla użytkownika jak bash w Ubuntu?

Z perspektywy Ubuntu po prostu działamy na prymitywnym jądrze Linuksa, porównywalnym z działaniem nowoczesnego pulpitu na prymitywnym serwerze X. Jeśli używasz tylko funkcji obsługiwanych przez fałszywe jądro, będzie ono stabilne i przyjazne dla użytkownika. Jeśli użyjesz nieobsługiwanych funkcji, będzie niestabilna.

W najbliższym czasie nie będzie blisko pełnej wersji Ubuntu.

Jo-Erlend Schinstad
źródło
2
„Not emulator” prawdopodobnie należy do znaków cudzysłowu; podobnie jak Wine, jest to emulator, ale nie na poziomie sprzętowym, ale na poziomie API. Oba powodują spadek wydajności w zależności od tego, co robisz (tj. Ile wywołań systemowych).
thomasrutter
2
@thomasrutter Niestety nie zgadzam się. Twoja definicja „emulatora” jest zbyt luźna. Przy takiej interpretacji musimy również nazywać emulatory proxy (ale nie są). Emulator z definicji emuluje rzeczy. WSL (i serwery proxy) nie emulują rzeczy, przekształcają i przekazują rzeczy oraz zwracają odpowiedź.
Segfault,
21

Dla osób ciekawiących, jak działa podsystem Windows dla systemu Linux (WSL) i jak działa natywne pliki binarne ELF-64 dla systemu Linux, opublikowaliśmy serię postów na blogu i towarzyszące im filmy wyjaśniające architekturę, procesy, połączenia systemowe i obsługę systemu plików WSL .

Scott Hanselman napisał również świetny film instruktażowy obejmujący proces instalacji i sposób konfiguracji Bash na Ubuntu w systemie Windows:

HTH

Rich Turner
źródło
3
Pierwszy link już nie działa, myślę, że został przeniesiony tutaj: blogs.msdn.microsoft.com/commandline/…
dpritch
Dobry chwyt - dzięki. Naprawiono link do punktu na naszym skróconym linku.
Rich Turner
2

Części bash działają bardzo dobrze w WSL.

Części jądra nie istnieją. Na przykład nie ma /sys/class/backlight/intel_backlight/brightnessdostępu, aby ustawić jasność ekranu. Istnieją polecenia Powershell, które możesz łatwo wywołać, aby to zrobić, jeśli nie przeszkadza Ci bardzo długie nazwy pól w stylu COBOL. MS Powershell można wywoływać bezpośrednio z bash. Możesz więc powiedzieć, że zaawansowane funkcje systemu Windows są teraz wbudowane w bash. Z tego samego powodu MS Powershell może nazywać bash. Więc jeśli prawdą PowerShell uzyskuje dostęp do funkcji takich jak grep, awk, head, tail, itd.

GUI dla Ubuntu Desktop ( gedit, nautilusitp.) Działa tylko po instalacji VcXsrvlub w podobny sposób.

Udostępnianie plików między Linux a Windows WSL jest skomplikowane w konfiguracji. Podczas przenoszenia plików między udostępnionym folderem NTFS WSL + Linux miałem pewne „dziwne” uprawnienia do plików z powodu mojej niewiedzy lub braków oprogramowania.

Szybkość jest znacznie wolniejsza w WSL niż w Ubuntu. Możesz uruchomić malowanie ekranu znak po znaku po uruchomieniu callub toilet: Jakie są różnice między Windows Bash a Cygwin?

Myślę, że WSL jest dobrym produktem i lubię majstrować przy nim przy podwójnym uruchamianiu w Windows-World. Nigdy nie stanie się świetnym produktem z powodu braku funduszy MS i tak naprawdę nie chcą mieć świetnej dystrybucji Linuksa Free-Ware. Jeśli masz wystarczającą ilość pamięci RAM, prawdopodobnie byłbyś szczęśliwszy z maszyną wirtualną. Ponieważ tylko 8 GB, a ceny pamięci RAM rosną do około połowy 2019 r., Chętnie pozostanę przy WSL i na razie zrezygnuję z aktualizacji pamięci RAM o 32 GB.

Odwiedziłem kilka forów MS i muszę powiedzieć, że Rich Turner i jego członkowie zespołu WSL są jednymi z najmilszych profesjonalistów, jakich widziałem.

WinEunuuchs2Unix
źródło