Microsoft afslører, hvordan dets Windows 10 Linux-undersystem fungerer

Det Bash på Ubuntu på Windows gør det muligt for native Linux ELF64-binære filer at køre på Windows via Windows Subsystem til Linux (WSL). Selvom mange mennesker blev chokeret over Bash på Ubuntu-meddelelsen, er det værd at nævne, at det åbner nye døre for kompatibiliteten mellem forskellige operativsystemer. Microsoft tager endnu et skridt fremad og afslører, hvordan dets WSL fungerer, så vi bedre kan forstå, hvordan de to systemer kommunikerer med hinanden.

WSL blev oprettet af Microsoft Windows Kernel-teamet og indeholder både brugertilstand og kernetilstandskomponenter. Mere specifikt er systemet sammensat af:

  • en brugertilstands session manager service, der håndterer livscyklussen for Linux-instanser
  • Pico-udbyderdrivere (lxss.sys, lxcore.sys), hvis rolle er at efterligne en Linux-kerne ved at oversætte Linux-syscalls
  • Pico behandler hosting af den ikke-ændrede brugertilstand Linux (f.eks. / Bin / bash).

Forbindelsen mellem de tre komponenter er beskrevet som følger:

Det er mellemrummet mellem Linux-binærfiler og Windows-kernekomponenter, hvor magien sker. Ved at placere umodificerede Linux-binære filer i Pico-processer muliggør vi, at Linux-systemopkald dirigeres til Windows-kernen. Drivere til lxss.sys og lxcore.sys oversætter Linux-systemopkald til NT API'er og efterligner Linux-kernen.

Hovedudfordringen i processen er at få de to systemer til at arbejde sammen:

WSL udfører umodificerede Linux ELF64-binære filer ved at virtualisere en Linux-kerneinterface oven på Windows NT-kernen. En af kernegrænsefladerne, som den udsætter, er systemopkald (syscalls). Et syscall er en tjeneste, der leveres af kernen, der kan kaldes fra brugertilstand. Både Linux-kernen og Windows NT-kernen udsætter flere hundrede syscalls for brugertilstand, men de har forskellige semantik og er generelt ikke direkte kompatible. For eksempel inkluderer Linux-kernen ting som fork, open og kill, mens Windows NT-kernen har den sammenlignelige NtCreateProcess, NtOpenFile og NtTerminateProcess.

Windows-undersystemet til Linux inkluderer kerne-tilstandsdrivere (lxss.sys og lxcore.sys), der er ansvarlige for håndtering af anmodninger om Linux-systemopkald i koordination med Windows NT-kernen. Driverne indeholder ikke kode fra Linux-kernen, men er i stedet en renrumsimplementering af Linux-kompatible kernel-grænseflader. På native Linux, når et syscall er lavet af en eksekverbar brugertilstand, håndteres det af Linux-kernen. På WSL, når et syscall er lavet af den samme eksekverbare, videresender Windows NT-kernen anmodningen til lxcore.sys. Hvor det er muligt, oversætter lxcore.sys Linux-syscall til det tilsvarende Windows NT-opkald, som igen gør det tunge løft.

I betragtning af Microsofts interesse for open source-platforme spekulerede mange på, om teknologigiganten skulle erhverve større Linux-fokuserede virksomheder som Canonical, firmaet bag Ubuntu-operativsystemet. Selvom Microsoft og Canonical samarbejdede om open source-software, udsendte ingen af ​​dem nogen kommentarer til denne mulighed.

Hvis du er interessant i hvordan Linux - Windows-interaktionen udvikler sig, gå til Microsofts blog. Holdet lovede, at flere blogindlæg om dette emne ville følge.

RELATEREDE HISTORIER, DU SKAL KONTROLLERE:

  • Linux-brugere rapporterer "Problemer med hovedtelefoner stoppede med at fungere i Windows 8.1"
  • Microsoft og Canonical bringer Bash til Windows 10 på Build 2016
  • München begynder at distribuere gratis Ubuntu-cd'er til Windows XP-brugere
Microsoft bringer en masse forbedringer til Bash på Ubuntu i Windows 10

Microsoft bringer en masse forbedringer til Bash på Ubuntu i Windows 10Windows 10Windows Linux Undersystem

Microsoft introducerede en masse forbedringer af Windows 10 Preview med den seneste version 14361. En funktion, der sandsynligvis har modtaget det højeste antal ændringer er Bash på Ubuntu på Windo...

Læs mere
Du kan nu finde Linux Oracle i Microsoft Store

Du kan nu finde Linux Oracle i Microsoft StoreLinuxOracleWindows Linux Undersystem

Var du interesseret i at downloade den seneste version af Oracle Linux?Led ikke længere end til Microsoft Store, da det er her, du finder det.Appen vil downloade og installere Oracle Linux 8 Update...

Læs mere
Sådan monteres, læses eller formateres EXT4 på Windows 11

Sådan monteres, læses eller formateres EXT4 på Windows 11LinuxWindows Linux Undersystem

Først skal du sikre dig, at WSL2 er installeret og opdateretWSL2 giver dig mulighed for at montere og læse EXT4 på Windows 11 med blot et par kommandolinjer i PowerShell.Før du starter noget, skal ...

Læs mere