Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Co to jest Linux for Windows? (WSL)

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Co to jest Linux for Windows? (WSL)
From: Robert Winkler <noone@nowhere.org>
Date: Sat, 10 Nov 2018 21:49:08 +0100
W dniu 10.11.2018 o 14:11, Borneq pisze:
Czym to się rożni z jednej strony od Cygwin a z drugiej Linuxem pod Virtualboxem?
https://docs.microsoft.com/en-us/windows/wsl/install-win10

Z dużym przymrużeniem oka można powiedzieć,
że WSL jest dla Windows tym czym WINE jest dla Linux'a
Jest to mechanizm działający powyżej warstwy jądra NT
zastępujący Win32 API
i udający przed programem, że ten pracuje w systemie linux.
Program linuxowy próbujący wywołać funkcje jądra linuxowego
trafia na WSL, który tłumaczy jego wywołanie ma odpowiadające mu wywołanie jądra NT.

Inżynierowie z Microsoftu przygotowali tą nakładkę dla jądra Window
a ludzie z Canonical stworzyli specjalną dystrybucje Ubuntu
korzystającą z tego mechanizmu.
Później pojawiły się inne dystrybucja linux'a
ale trzeba przyznać inżynierom z Canonical że ich Ubuntu było pierwsze.

Podstawową różnicą z Cygwin-em jest, że nie trzeba przekompilowywać programów linuxowych, żeby uruchomić je pod Windows.
Wystarczy doinstalować WSL w funkcjach systemu
i poprzez Microsoft Store pobrać i zainstalować którąś z dystrybucji linux'a.
Uruchamiając bash'a aktywuje się WSL,
a wszystkie programy uruchomione w tym bashu uważają,
że pracują pod linuxem.
Jeśli użytkownik uzna że brakuje mu jakiegoś programu,
to nie musi szukać jego źródeł i męczyć się z kompilacją,
wystarczy że wywoła
sudo apt-get install nazwa_programu
żeby go doinstalować.

WSL nie jest jednak tak uniwersalny jak uruchomienie Linux'a
pod VirtualBoxem, VMWare Playerem lub chociaż systemowym Hyper-V
Kiedy ostatni raz spradzałem, WSL nie pozwalał na uruchamianie
aplikacji z graficznym interfejsem użytkownika,
nie pozwalał też na uruchamianie demonów,
czy też programów które działają jako dynamicznie ładowane moduły jądra.

WSL jest wiec raczej dodatkiem pozwalającym na uruchamianie
programów konsolowych używanych przez deweloperów w trakcie pracy
niż pełnym odpowiednikiem linux'a.
Jest czymś więcej niż Cygwin, ale mniej niż osobna maszyna wirtualna z normalnym Linuxem.

--
Robert

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>