Windows-kompatibilitet

Linux-kerne i Windows 10

Linux-kerne i Windows 10
Hvordan fungerer det nye Windows Subsystem til Linux (v2)?

Microsoft meddelte for nylig, at de snart vil sende en Linux-kerne, der er integreret lige i Windows 10. Dette giver udviklere mulighed for at udnytte Windows 10-platformen, når de udvikler applikationer til Linux. Faktisk er dette det næste trin i udviklingen af ​​Windows Subsystem til Linux (WSL). Lad os gennemgå WSL-version 1, inden vi går ind i det strikkede af Linux-kerneintergation, og hvad det betyder.

Hvis du vil komme i gang med WSL (v1), er der en guide til det.

1.  WSL version1

Windows-undersystemet til Linux burde virkelig kaldes et Linux-undersystem til Windows. Det tilbyder en driver (et undersystem) til Windows OS, der oversætter Linux-systemopkald til native Windows 10-systemopkald, som NT-kernen forstår.

Dette skaber en noget troværdig illusion for Linux-binære filer, at de faktisk kører oven på en Linux-kerne! Dette fungerer godt nok til, at du ikke kun kan køre enkle 64-bit binære filer, der er kompileret til Linux, men du kan køre et helt Userland (en.k.a en Linux-distribution som Debian eller Ubuntu) oven på WSL v1. Så når du installerer Ubuntu fra Microsoft Store, henter det bare Ubuntu-brugerland-binære filer, som Canonical sender til Microsofts WSL v1-miljø.

WSL v1 er dog stadig langt fra perfekt. Visse semantik, som et Linux-system ville forvente, er helt uacceptabelt på Windows. For eksempel kan du ikke ændre filnavnet på en åben fil på Windows, men du kan gøre det på Linux.

Andre åbenlyse eksempler inkluderer WSL v1's dårlige filsystemydelse og dens manglende evne til at køre Docker.

2.  WSL v2 Linux-kernen

Denne nye version af WSL løser alle disse problemer ved at inkludere Linux-kernen, der kører i Hyper-V hypervisor. Under hele deres annoncering og demoer understregede Craig Loewen og hans kollega fra Microsoft det punkt, at Microsoft fremadrettet vil investere enormt i virtualiseringsteknologi.

Brug af en Linux-kerne løser alle de semantiske problemer, der ikke kan løses ved hjælp af kun et systemopkaldsoversættelseslag. Denne Linux-kerne vil være meget let og vedligeholdes af Microsoft med alle ændringer til Linux Kernel lavet open source. I deres demo viste de, hvordan du bare kan migrere de eksisterende WSL v1-apps for at køre umodificeret til et WSL v2-miljø. Filsystemets ydeevne er forbedret med 3-4 gange, og hele systemet føles meget mere lydhørt.

3.  Hvordan virker det?

Så dybest set har vi en Linux VM med mange brugerland-apps, f.eks.g, OpenSUSE eller Debian eller Ubuntu brugerland. Du får mere end en distro på din Windows-maskine med en enkelt Linux VM, så det er pænt. Men det indebærer også, at hver gang du åbner din WSL Ubuntu-terminal, starter du en komplet VM! Det vil tage et stykke tid, ikke?

Faktisk nej. Linux-kernen er faktisk lille nok og let nok til, at Microsoft var i stand til at få sindssyge opstartstider med den (~ 1 sekund). De opnåede dette ved at fjerne al bootloader-koden, og da det er en VM, indlæser de Linux-kernen direkte i dens adresseområde i hukommelsen og opretter et par tilstande af den virtuelle computer, som kernen forventer. Dette er den samme mekanisme, der driver en anden ny Windows 10-funktion, der er Windows Sandbox.

Det har et meget lille hukommelsesaftryk, det indlæses på et sekund, og det indbyggede ext4-filsystemformat giver det mulighed for at levere en meget jævn brugeroplevelse. VM kører kun, når du har brug for det.

Desuden er det ikke helt isoleret som en traditionel VM. Du kan meget let interagere med resten af ​​Windows-systemet, inklusive filer på dine Windows-drev ved hjælp af WSL v2. Det er ikke en isoleret VM, men en integreret del af Windows 10. Hvordan opnår det det?

4.  Længe leve Plan 9

Med WSL v1 var adgang til filer og mapper på dine Windows-gæster trivielt. Dit Linux-brugerland er bare en app på Windows, så det kan læse og skrive filer, der oprindeligt tilhører det oprindelige operativsystem, ret let.

Med WSL v2 har du en VM, der kører med sin virtuelle harddisk (formateret med ext4, selvfølgelig), og hvis vi ønsker en lignende oplevelse som den for WSL v1, har vi brug for nogle ekstra mekanismer. Indtast plan 9.

Plan 9, også skrevet som, 9P er et operativsystem, der oprindeligt blev udviklet hos Bell Labs. Selvom det er usandsynligt, at du nogensinde finder det kører i produktion, lever det stadig videre, da forskellige andre operativsystemer vedtager interessante ideer, der inkuberes i det, herunder 9P-protokollen til en filserver.

5.  Filsystemer

WSL v2 vil have en 9P-protokolserver, der kører på din Windows 10-vært, og en 9P-klient, der kører inde i dine WSL-apps. Dette giver dig adgang til Windows 10-filer indbygget i dit WSL-miljø. C: -drevet monteres på / mnt / c, ligesom WSL v1, og hver fil inde i Windows 10-værten kan nås via WSL-miljøet.

Det omvendte vil også være sandt. Der vil være en 9P-protokolserver, der kører i dit Linux-miljø med sin tilsvarende klient på Windows 10-værten. Dette giver brugerne adgang til deres Linux (ext4) filsystem fra Windows 10-miljøet. Giver dig mulighed for at redigere din kildekode eller konfigurere filer ved hjælp af din foretrukne IDE installeret på Windows, med en liste over alle mapper ved hjælp af Windows 10-filudforsker og meget mere. I det væsentlige kører du dine foretrukne Linux-distroer med Windows 10 UI.

6.  Docker

I deres meddelelse antydede Microsoft også, at dette nye miljø også vil blive brugt af Docker til at sende deres fremtidige Docker til Windows-apps. Da der er en Linux-kerne, vil det være ret nemt at køre Docker oven på den. I demoen kørte de Docker oven på Ubuntu, der kørte WSL v2, og det fungerede som om det kørte på en native Ubuntu-installation.

For at give et meget overfladisk eksempel, hvis du har arbejdet med Dockerfiles på et Windows-system, skal du have lagt mærke til de sikkerhedsproblemer, der er forårsaget på grund af manglen på Unix-lignende filtilladelser. Det vil ikke længere være et problem. Docker på Windows bruger allerede en brugerdefineret VM til at levere Linux-containere, formodentlig vil den nu bruge WSL v2 til at bruge Linux-kernen, som Microsoft sender.

Konklusion

Samlet set er jeg meget imponeret over, hvad Microsoft gør for at give et tilflugtssted for Linux-udviklere, der også vil bruge Windows. Forhåbentlig vil det i det lange løb tilskynde til en masse krydsbestøvning mellem de to forskellige økosystemer.

Hvis du kører Windows 10 Home, Pro eller enterprise-udgave, kan du få en smag af WSL v2 ved at vælge Preview-builds af Windows 10. Her er en guide til, hvordan du gør det.

Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...