Windows Subsystem for Linux er et verktøy utviklet av Microsoft for å gjøre det mulig. Måten det fungerer på ligner på måten vin fungerer på Linux. WSL gjør det mulig for Linux -binærfiler å kjøre på Windows ved hjelp av et kompatibilitetslag som oversetter Linux -systemet til Windows -systemanrop.
Arkitektur
Uten tvil fungerer WSL bedre på Windows, enn vin gjør på Linux, og grunnen bak er fordi Linux er særegen når det gjelder arkitekturen. Mens de fleste operativsystemer består av en kjerne og en hel pakke med biblioteker og funksjoner bygd rundt den kjernen, er Linux bare en kjerne. De fleste GNU/Linux -distros tar denne kjernen og bygger en operativsystemstabel på toppen av den. Avhengig av hvordan du valgte å bygge denne stabelen, får du forskjellige distribusjoner som Debian, Redhat, etc.
For å kjøre Linux -miljø på Windows, må du aktivere WSL -funksjonen (vi vil dekke dette om kort tid) og deretter gå til Microsoft Store for å få en kopi av favorittfordelingen din (Ubuntu, Debian, OpenSuse, osv.).
Det første trinnet gjør det mulig. Å gjøre det motsatte, det vil si å kjøre Windows -applikasjoner på Linux er mye vanskeligere fordi Windows er mye mer enn bare NT -kjernen.
På grunn av denne grunn er det ingen virtuell maskin involvert i implementering av WSL, noe som gjør det til et attraktivt alternativ. Du vil ikke ha noe tap i ytelsen fordi ingen VM-er er involvert, bare et innfødt lett-vekt syscall-oversettelseslag.
Installasjon og oppsett
På Windows 10 PC -en din, søk etter “Slå Windows -funksjoner av eller på” ved å klikke på Windows -tasten og skrive det samme inn i startmenyen. Når Windows Features -menyen er åpnet, bla til bunnen der du finner "Windows Subsystem for Linux" -funksjonen. Merk av i boksen og klikk OK.
Windows vil ta seg av oppsettet herfra og når alt er gjort, vil det kreve at du starter systemet ditt for å fullføre endringene. Etter omstarten kan du gå til Microsoft Store og se etter din favorittfordeling der inne.
Du kan søke i butikken etter din favorittfordeling. Nedenfor er et skjermbilde av noen av de mest brukte distribusjonene. Du kan se to varianter av OpenSuse, en Debian -app og Kali Linux.
Selvfølgelig er den mest populære distribusjonen fremdeles Ubuntu med begge 16.04 og 18.04 LTS tilgjengelig i butikken.
Nå må du bare velge distribusjonen du ønsker og installere den tilsvarende appen. Vi installerer Ubuntu 18.04 LTS for vårt WSL -miljø. Det er omtrent 215 MB i størrelse, mye mindre enn en hel Ubuntu -installasjon.
En gang er appen installert, du kan starte den direkte fra Microsoft Store -appen eller ved å søke etter den i startmenyen. Når du blir lansert for første gang, vil det ta litt tid å sette opp ting for deg.
Det kan ta opptil 5 minutter, men når det er gjort, blir du bedt om å oppgi ditt nye UNIX -brukernavn og passord, og du er god til å gå!
Terminalen som er lansert vil tilby deg nesten alle funksjonalitetene til et Ubuntu -system, bortsett fra GUI. Siden de fleste av UNIX/Linux -funksjonene kommer for terminalens kraft, kan dette få deg en lang vei.
For eksempel kan vi begynne å bruke dette miljøet ved å oppdatere alle pakkene som er installert i det.
$ sudo apt oppdatering && sudo apt oppgradering -y
Ting du kan og ikke kan gjøre i WSL -miljøet
Nå er spørsmålet som oppstår i alles sinn - hva er fangsten?
La oss vurdere det motsatte saken. Med teknologier som vin vet vi at ikke alt som kan gjøres i vinduer kan gjøres på Linux. Systembiblioteker på lavt nivå som DirectX vil ikke være tilgjengelige på Linux, og mange applikasjoner på Windows er avhengige av slike biblioteker.
Operativsystemer som Windows 10, FreeBSD eller Illumos er fullverdige operativsystemer, ikke bare kjernen. Med vinduer siden de fleste av bibliotekene er proprietære og det gjør saken vanskeligere. Dette gjør jobben til et prosjekt som vin, mye vanskeligere.
Med å prøve å etterligne Linux på Windows, er det motsatte sant. Linux sitt stramme sett med ABI -samtaler (eller syscalls) er alt du trenger for å oversette til Windows for å kjøre alt på toppen av det. Hvis vi prøver å spørre Ubuntu om WSL hvilken kjerne den kjører, vil det gi deg et Linux -kjerneversjonsnummer, med Microsoft nevnt sammen med versjonsnummeret for å indikere at dette ikke er hovedgrenen til Linux Kernel Project.
$ uname -a
Hvis vi graver dypere, vil vi oppdage at selv om funksjonaliteter på høyt nivå som filsystemoppsett, og nettverkskonfigurasjoner vises, vil ikke aktiviteter på lavere nivå som blokkeringsoppsett fungerer.
For eksempel vil følgende kommandoer fungere som forventet:
$ df -h
$ ifconfig
Begge kommandoene forteller deg informasjon om det opprinnelige systemet ditt som faktisk kjører Windows. Det er ikke noe som å kjøre en VM der det er forskjellige nettverksgrensesnitt og forskjellige filsystemer helt.
Imidlertid som kommandoer som LSBLK vil ikke fungere, fordi lagring av lavere nivå ikke er det Linux forventer at det skal være. Tilsvarende er det nyttig å installere OpenZFs fordi OpenZF -er installerer noen få lastbare kjernemoduler og vi har ikke en Linux -kjerne bare en illusjon av det.
Det samme er tilfelle hvis du prøver å kjøre Docker. Når du installerer Docker, vil Ubuntu ikke klage, men Docker -tjenesten vil ikke starte, da det avhenger av SystemD som er fraværende i dette delsystemet.
Du kan imidlertid kjøre en mengde tjenester og bashverktøy for å gjøre livet ditt enklere. Hvis du administrerer Linux -servere for å leve, trenger du ikke å ha Linux på skrivebordet ditt også. Du kan kjøre SSH -klienter, Docker -klient, bash, verktøy som GREP og AWK, samt ditt favorittprogrammeringsspråk fra Python til rust i dette miljøet uten å forurense Windows -systemet ditt.
Du kan også kjøre din CD/CI -automatisering ved hjelp av Ansible, Puppet eller hvilken som helst annen teknologi som du foretrekker. Det vil si at alt en Devop, en nett- eller applikasjonsutvikler eller tester vil kreve fra et Linux -system kan oppnås med WSL bortsett fra personene som jobber med systemprogramvare og/eller kjerneutvikling.
Fikk dine egne tanker eller erfaring med Windows Subsystem på Linux? Eller kanskje du fremdeles har spørsmål du trenger svar på. Kontakt oss med spørsmålene dine, så dekker vi det emnet for deg.