Windows-kompatibilitet

Linux-kärna i Windows 10

Linux-kärna i Windows 10
Hur fungerar det nya Windows Subsystem for Linux (v2)?

Microsoft meddelade nyligen att de snart kommer att leverera en Linux-kärna som är integrerad direkt i Windows 10. Detta gör det möjligt för utvecklare att utnyttja Windows 10-plattformen när de utvecklar applikationer för Linux. I själva verket är detta nästa steg i utvecklingen av Windows Subsystem for Linux (WSL). Låt oss granska WSL-version 1 innan vi går in i den knitty-gritty av Linux-kärnintergationen och vad det betyder.

Om du vill komma igång med WSL (v1) här är en guide för det.

1.  WSL-version1

Windows-delsystemet för Linux borde verkligen kallas ett Linux-delsystem för Windows. Det erbjuder en drivrutin (ett delsystem) för Windows OS, som översätter Linux-systemanrop till inbyggda Windows 10-systemanrop som NT-kärnan förstår.

Detta skapar en något trovärdig illusion för Linux-binärer att de faktiskt körs ovanpå en Linux-kärna! Detta fungerar tillräckligt bra för att du inte bara kan köra enkla 64-bitars binärer kompilerade för Linux utan du kan köra ett helt Userland (en.k.en Linux-distribution som Debian eller Ubuntu) ovanpå WSL v1. Så när du installerar Ubuntu från Microsoft Store, hämtar det bara Ubuntu-användarlandsbinarierna som Canonical skickar för Microsofts WSL v1-miljö.

Men WSL v1 är fortfarande långt ifrån perfekt. Viss semantik som ett Linux-system kan förvänta sig är helt oacceptabelt i Windows. Du kan till exempel inte ändra filnamnet på en öppen fil i Windows, men du kan göra det på Linux.

Andra uppenbara exempel inkluderar WSL v1s dåliga filsystemprestanda och dess oförmåga att köra Docker.

2.  WSL v2 Linux-kärnan

Den här nya versionen av WSL löser alla dessa problem genom att inkludera Linux-kärnan som körs i Hyper-V hypervisor. Under hela sitt tillkännagivande och demos betonade Craig Loewen och hans kollega från Microsoft på den punkten att Microsoft kommer att investera enormt i virtualiseringsteknik framöver.

Användning av en Linux-kärna löser alla semantiska problem som inte kan lösas med bara ett systemanropsöversättningsskikt. Denna Linux-kärna kommer att vara väldigt lätt och kommer att upprätthållas av Microsoft med alla ändringar i Linux Kernel som är öppen källkod. I sin demo visade de hur du bara kan migrera de befintliga WSL v1-apparna för att köra omodifierade till en WSL v2-miljö. Filsystemets prestanda har förbättrats med 3-4 gånger och hela systemet känns mycket mer lyhört.

3.  Hur fungerar det?

Så i grund och botten har vi en Linux-virtuell dator med många användarlandsappar, t.ex.g, OpenSUSE eller användarland för Debian eller Ubuntu. Du får mer än en distro på din Windows-maskin, med en enda Linux-virtuell dator, så det är snyggt. Men det innebär också att du startar en komplett virtuell dator varje gång du öppnar din WSL Ubuntu-terminal! Det kommer att ta ett tag, eller hur?

Faktiskt nej. Linux-kärnan är faktiskt tillräckligt liten och tillräckligt lätt för att Microsoft kunde få galna starttider med den (~ 1 sekund). De uppnådde detta genom att ta bort all bootloaderkod och eftersom det är en virtuell dator laddar de Linux-kärnan direkt i sitt adressutrymme i minnet och ställer in några tillstånd för den virtuella datorn som kärnan förväntar sig. Detta är samma mekanism som driver en annan ny Windows 10-funktion som är Windows Sandbox.

Den har ett mycket litet minnesavtryck, det laddas upp på en sekund och det inbyggda ext4-filsystemformatet gör det möjligt att leverera en mycket smidig användarupplevelse. Den virtuella datorn körs bara när du behöver den.

Dessutom är den inte helt isolerad som en traditionell virtuell dator. Du kan mycket enkelt interagera med resten av Windows-systemet, inklusive filer i dina Windows-enheter med WSL v2. Det är inte en isolerad virtuell dator utan en integrerad del av Windows 10. Hur uppnår man det?

4.  Länge leve Plan 9

Med WSL v1 var åtkomst till filer och kataloger på dina Windows-gäster trivialt. Ditt Linux-användarland är bara en app i Windows, så det kan läsa och skriva filer som ursprungligen tillhör det ursprungliga operativsystemet ganska enkelt.

Med WSL v2 har du en virtuell dator som körs med sin virtuella hårddisk (formaterad med ext4, naturligtvis) och om vi vill ha en liknande upplevelse som den för WSL v1 behöver vi några extra mekanismer. Ange plan 9.

Plan 9, även skriven som, 9P är ett operativsystem som ursprungligen utvecklades på Bell Labs. Även om det är osannolikt att du någonsin kommer att hitta det i produktion, lever det fortfarande eftersom olika andra operativsystem antar intressanta idéer som inkuberas i det, inklusive 9P-protokollet för en filserver.

5.  Filsystem

WSL v2 kommer att ha en 9P-protokollserver som körs på din Windows 10-värd och en 9P-klient som körs i dina WSL-appar. Detta låter dig komma åt Windows 10-filer inbyggt i din WSL-miljö. C: -enheten kommer att monteras på / mnt / c, precis som WSL v1, och alla filer i Windows 10-värden kan nås via WSL-miljön.

Det motsatta kommer också att vara sant. Det kommer att finnas en 9P-protokollserver som körs i din Linux-miljö med motsvarande klient på Windows 10-värd. Detta gör det möjligt för användare att komma åt sitt Linux (ext4) filsystem från Windows 10-miljön. Låter dig redigera din källkod eller konfigurera filer med din favorit IDE installerad på Windows, lista alla kataloger med Windows 10 filutforskare och mycket mer. I huvudsak kommer du att köra dina favorit Linux-distroer med Windows 10 UI.

6.  Hamnarbetare

I sitt tillkännagivande antydde Microsoft också att den nya miljön också kommer att användas av Docker för att leverera sina framtida Docker för Windows-appar. Eftersom det finns en Linux-kärna kommer det att bli ganska enkelt att köra Docker ovanpå den. I demo körde de Docker ovanpå Ubuntu som kör WSL v2 och det fungerade som om det körs på en inbyggd Ubuntu-installation.

För att ge ett mycket ytligt exempel, om du har arbetat med Dockerfiles på ett Windows-system, måste du ha märkt de säkerhetsproblem som orsakas på grund av bristen på Unix-liknande filbehörigheter. Det kommer inte längre att vara ett problem. Docker på Windows använder redan en anpassad virtuell dator för att tillhandahålla Linux-behållare, förmodligen kommer den nu att använda WSL v2 för att använda Linux-kärnan som Microsoft skickar.

Slutsats

Sammantaget är jag mycket imponerad av vad Microsoft gör för att ge en fristad för Linux-utvecklare som också vill använda Windows. Förhoppningsvis kommer det på lång sikt att uppmuntra till en hel del korsbestämning mellan de två olika ekosystemen.

Om du kör Windows 10 Home, Pro eller enterprise-utgåvan kan du få en smak av WSL v2 genom att välja Preview-versioner av Windows 10. Här är en guide om hur du gör det.

Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...
Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...