Sarrera
1 Sarrera
WSL (Windows Subsystem for Linux ingelesez) Microsoft-ek garatutako bateragarritasun-geruza bat da, Linux sistemetarako sortutako exekutagarriak Windows-en modu naturalean exekutatzeko.
2019. urtetik aurrera bertsio lehenetsia 2.a da, eta horrek aldaketa asko ekarri zituen sisteman, bertsio horrek Hyper-V virtualizatzailearen azpimultzo baten bidez sortutako birtualizazio-geruza batean exekutatzen baitu. Horrek esan nahi du exekutatzen ari den kernel-a askoz bateragarriagoa dela Linux-eko binarioekin 1. bertsioan baino. Birtualizazioa erabiltzen duen arren, aurreko bertsioarekin alderatuta errendimendua ere hobetzen du.
Lehenespenez, WSL ez dator instalatuta Windows 10ean, beraz, instalazioa egin behar da nahi ditugun aplikazioak (Docker, adibidez) exekutatu ahal izateko. Windows 11 bertsioetan, ordea, bai dator instalatuta.
2 Instalazioa
Instalazioa egiteko, Windows-en bertsio bateragarria beharko dugu (10 build 19041 edo berriagoa). Gaur egun ez luke arazoa izan behar sistema eguneratuta badugu.
Instalazioa egiteko administratzaile baimenak beharko ditugu, eta erosoago egiteko PowerShell kontsolatik edo Windows terminal berritik egingo dugu. Horretarako, administratzaile baimenekin kontsola ireki eta exekutatu:
WSL instalazioa Windows 10n
PS C:\Users\ruben> wsl --install
Instalazioa egin ondoren, sistema berrabiarazi behar da aldaketak aplikatzeko eta beharrezko zerbitzuak abiarazteko. Behin berrabiarazita, leiho bat agertuko da eta bertan erabiltzailea eta pasahitza sartzeko eskatuko digu, berriki instalatutako Linux sistemarako.
Lehenespenez, instalatzen den banaketa Ubuntu da.
3 Konfigurazioak
Instalazioa egin ondoren ikusiko dugu Windows-ek zenbait konfigurazio egin dituela zerbitzu berriaren instalazioa egokitzeko.
Instantziak abiarazita daudenean, Hyper-V sare-interfaze berri bat sortzen da, 172.25.240.0/20 sarearekin.
Aurretik esan bezala, WSL-2-n instantziak benetan Hyper-V makina birtualak dira. Instantzien konfigurazioa erabiltzaileak sortzen duen AppData direktorioan dago. Adibidez, Debian-en kasuan, disko gogorra ./AppData/Local/Packages/TheDebianProject…/LocalState/ext4.vhdx barruan dago.
AppData direktorioa lehenespenez ezkutatuta dago Windows fitxategi-arakatzailean.
Instantzien barruan, Windows-en disko gogorra atzitu daiteke /mnt/c-tik edo dagokion unitatetik.
Windows-etik, fitxategi-arakatzailearen bidez, instantzien fitxategi-sistemara sar daiteke, sortuta ditugun instantziak bertan agertzen baitira.
WSL ekosistema osoaren konfigurazio orokorra egiteko, aplikazio baten bidez egin daiteke (2024ko udazkenetik aurrera erabilgarri):

Aplikazio honetan alderdi interesgarri hauek aldatu daitezke:
- WSL barruko prozesadore logikoak
- Memoriaren gehieneko tamaina
- Sare modua (NAT, mirrored edo proxy)
3.1 Konfigurazio aurreratua
Konfigurazio aurreratu bat egiteko, dokumentazio hau erabil daiteke, bi ikuspegitatik:
wsl.conf: konfigurazio-fitxategia, distribuzioetako /etc direktorioan kokatzen dena. Konfigurazio honek soilik eragina du dagokion distribuzioan. Aurrerago Docker erabiltzeko adibide bat ikusiko dugu.
.wslconfig: Windows erabiltzailearen direktorioan dagoen fitxategia. Fitxategi honek WSL 2-rekin instalatutako distribuzio guztiei eragingo dien konfigurazioa izango du.
4 WSL pribilegio gabeko erabiltzaileekin
WSL-k administratzaile-baimenak behar dituzten zenbait ezaugarri erabiltzen ditu. Administratzaile-baimenik ez badago, lehenespenez WSL 1 bertsioa erabiliko da soilik, eta horren ondorioz azpisistemen errendimendua okerragoa da.
Beraz, WSL2 erabili ahal izateko administratzailearen kredentzialetara sarbidea izatea beharrezkoa da eta ondorengo komandoak exekutatu behar dira:
Pribilegio gabeko erabiltzaileetan WSL2 erabiltzea]{.title}
PS C:\Users\usuario> wsl --update
PS C:\Users\usuario> wsl --set-default-version 2
5 Komando erabilgarriak
Instalazioa egin ondoren, komando batzuk erabilgarriak izan daitezke WSL erabiltzerakoan. Ez dira guztiak zehaztuko, izan ere, wsl –help komandoarekin laguntza eta aukera gehiago lortuko ditugu.
Erakutsi instala daitezkeen banaketa guztiak
PS C:\Users\ruben> wsl -l -o
Debian banaketa bat instalatu
PS C:\Users\ruben> wsl --install -d Debian
Erakutsi instalatutako banaketak
PS C:\Users\ruben> wsl -l -v
Exekutatu instalatutako banaketa bat eta sartu bertan
PS C:\Users\ruben> wsl -d Debian
ruben@DESKTOP-1RVJ3UP:/mnt/c/Users/ruben$
Amaitu/Itzali banaketa bat
PS C:\Users\ruben> wsl -t Debian
Itzali instantzia guztiak
PS C:\Users\ruben> wsl --shutdown
Ezabatu instalatutako banaketa bat
PS C:\Users\ruben> wsl --unregister Debian
Klonatu instalatutako banaketa baten instantzia
PS C:\Users\ruben> wsl --export Ubuntu ubuntu.tar
PS C:\Users\ruben> wsl --import Ubuntu2 ubuntu2_files ./ubuntu.tar
6 Azpisistemen fitxategi-sistemara sartzea
Microsoft-ek WSL-rekin abiarazten ditugun Linux-eko fitxategi-sistemetara Windows fitxategi-esploratzailearen bidez sartzeko aukera sortu du. Honek aukera ematen du fitxategiak kopiatzeko/itsasteko sortu ditugun banaketen eta oinarri-sistema beraren artean. Hurrengo irudian hiru Linux azpisistema sortuta dauden esploratzailea ikus daiteke:

Bestela, azpisistema Linux-etik bertatik Windows aplikazioak exekuta ditzakegu, beraz edozein karpetan gaudela, explorer.exe . komandoa deitu dezakegu, eta horrek Windows esploratzailea irekiko du bide horretan bertan:

6.1 Fitxategi-sistemen errendimendua WSL-n
WSL nola funtzionatzen duen eta fitxategi-sistemen kudeaketa Windows sistema ostalariaren eta Linux azpisistemaren artean nola egiten den ikusita, argi izan behar dugu bi fitxategi-sistema independente daudela, baina elkarreragingarriak direla:
- Windows fitxategi-sistema: Gure Windows ordenagailuaren fitxategi-sistema da. Kontuan izan behar da, Linux azpisistemara sartzean, lehenespenez fitxategi-sistema horretan gaudela:
Linux azpisistemara sartzean, Windows fitxategi-sisteman gaude.
PS C:\Users\ruben\Desktop> wsl -d Ubuntu
ruben@DESKTOP-1RVJ3UP:/mnt/c/Users/ruben/Desktop$
Ikus daitekeen bezala, Ubuntun sartzean, gauden bidea hau da: /mnt/c/Users/ruben/Desktop, hau da, Windows fitxategi-sistema (C:
) Linux-eko bidean muntatuta dagoena /mnt/c
. Horregatik, Linux-etik Windows fitxategi-sistema osoa izango dugu eskuragarri bide horretatik.
- Linux azpisistemaren fitxategi-sistema: Sortu dugun Linux makina birtualak bere fitxategi-sistema propioa dauka, edozein Linux-en bezala,
/
direktorioan.
Linux fitxategi-sistema errealera pasatzen gara
ruben@DESKTOP-1RVJ3UP:/mnt/c/Users/ruben/Desktop$ cd
ruben@DESKTOP-1RVJ3UP:~$ pwd
/home/ruben
Ikus daitekeen bezala, pwd komandoarekin, orain Linux errealeko fitxategi-sisteman gaude.
Linux azpisisteman aplikazioak erabiltzerakoan, gomendagarria da beti Linux-eko fitxategi-sistemaren barruan egitea, eta ez muntatutako sisteman, errendimendua askoz txikiagoa baita muntatutako sisteman. Beraz, ziurtatu behar dugu aplikazioa bide egokian dagoela.
Windows fitxategi-sistema muntatua erabiltzeak Linux azpisisteman errendimendua kaltetzen du.
7 Docker WSL barruan
Linux azpisistema batean Docker eduki nahi badugu, bi aukera bereiztu ditzakegu:
- Docker Desktop Windows-en erabiltzea. Docker Desktop-ek WSL erabiliko du azpian, eta aukera dugu azpisistemek Docker Desktop-en instalatutako Docker engine-a erabiltzeko. Hau da Microsoft-en dokumentazioak gomendatutako modua.
- Docker Engine Linux azpisistema baten barruan instalatzea.
Azken metodo hau behean azaltzen dugu.
7.1 Docker Engine WSLn instalatzea
Batzuetan interesgarria izan daiteke ez erabiltzea Docker Desktop, Docker-en kontrol osoa izan nahi dugulako, Linux makina birtual oso baten instalazioan bezala. Horregatik, dagokion Linux azpisistemaren funtzionamenduan aldaketa txiki bat egin behar dugu.
Docker Desktop erabiltzea errazagoa da sistema honen ordez.
Adibidez, Ubuntu banaketako Linux azpisistema sortu badugu, bertan sartu beharko gara, eta /etc/wsl.conf fitxategi bat sortu beharko dugu hurrengo edukiarekin.
wsl.conf fitxategiaren konfigurazioa
[boot]
systemd=true
Banaketatik irteten gara eta bere berrabiaraztea behartu behar dugu. Behin urrats hauek eginda, berriro instantzian sartzen bagara, systemd martxan egongo da eta, beraz, Docker Engine instalatu eta erabili ahal izango dugu ohiko moduan sortutako makina birtual baten moduan.