• Microsoft tar Unix-kommandon till Windows

    Microsoft tar ännu ett steg mot att göra Windows mer utvecklarvänligt. Med Coreutils for Windows får användare tillgång till flera välkända Unix- och Linux-kommandon direkt i Windows, utan att behöva starta WSL. Det gör det enklare för utvecklare och tekniskt intresserade att arbeta över flera plattformar – men paketet har också tydliga begränsningar.

    Microsoft har lanserat Coreutils for Windows, ett nytt paket med Unix-liknande kommandoradsverktyg som kan köras direkt i Windows. Det innebär att utvecklare och avancerade användare kan använda välkända kommandon från Linux- och Unix-världen utan att först behöva starta WSL, alltså Windows Subsystem for Linux.

    Det här är ett tydligt steg mot att göra Windows mer användbart i moderna utvecklingsmiljöer, där många redan arbetar över flera plattformar: Windows på skrivbordet, Linux på servrar, macOS i vissa utvecklarmiljöer och containrar i molnet.

    Vad är Coreutils?

    I Linux och andra Unix-liknande system finns en samling grundläggande kommandon som används hela tiden. Det handlar om verktyg för att lista filer, kopiera, flytta, ta bort, visa text, söka i filer och mycket annat.

    Exempel på sådana kommandon är:

    För många Linux-användare sitter dessa kommandon nästan i ryggmärgen. Problemet är att Windows traditionellt har haft andra kommandon, andra beteenden och andra sätt att arbeta i terminalen. Det har ofta skapat friktion för den som växlar mellan Windows och Linux.

    Med Coreutils for Windows försöker Microsoft minska den skillnaden.

    Bygger på öppen källkod i Rust

    Microsofts paket bygger på projektet uutils, som är en modern omimplementation av GNU Coreutils skriven i programmeringsspråket Rust.

    GNU Coreutils är den klassiska samlingen av grundläggande kommandon som används i många Linux-distributioner. Uutils försöker återskapa mycket av den funktionaliteten på ett mer plattformsoberoende sätt.

    Att Microsoft bygger vidare på uutils är intressant av flera skäl. Dels visar det hur viktig öppen källkod har blivit även för stora företag. Dels visar det att Rust fortsätter att vinna mark i systemnära programvara, där säkerhet, prestanda och minneshantering är viktiga frågor.

    Installera med WinGet

    Installationen sker via Windows pakethanterare WinGet. Kommandot är:

    Efter installationen får användaren tillgång till en uppsättning Unix-liknande verktyg direkt i Windows.

    Microsoft beskriver paketet som en Microsoft-underhållen samling av Unix-liknande kärnverktyg för Windows. Paketet levereras som en så kallad multi-call binary, vilket betyder att flera kommandon hanteras genom en gemensam körbar fil.

    Inte samma sak som WSL

    Det är viktigt att förstå vad detta är – och vad det inte är.

    Coreutils for Windows gör inte Windows till Linux. Det ersätter inte heller WSL för den som behöver en riktig Linux-miljö med pakethanterare, Linux-filsystem, shellskript, utvecklingsverktyg och serverprogram.

    Däremot gör det vardagligt terminalarbete smidigare. Den som bara vill använda vanliga kommandon som ls, cat, cp eller grep kan göra det direkt i Windows, utan att starta en separat Linux-miljö.

    Det kan vara särskilt användbart för utvecklare som arbetar med dokumentation, skript, källkod och filhantering över flera operativsystem.

    Begränsningar finns

    Coreutils for Windows är inte en komplett portning av GNU Coreutils. Det finns flera funktionella begränsningar att känna till.

    Paketet kräver PowerShell 7.4 eller senare. Dessutom kan vissa kommandon krocka med befintliga kommandon i CMD eller med inbyggda kommandon och alias i PowerShell.

    Exempel på kommandon där det kan uppstå konflikter är cat, cp, ls, mv, pwd, rm, sleep, tee och uptime. Det beror på att flera av dessa namn redan används av PowerShell som alias eller inbyggda kommandon. När användaren skriver ett sådant kommando kan PowerShell därför köra sin egen variant i stället för Coreutils-versionen.

    Det beror på att flera av dessa kommandonamn redan används i PowerShell eller CMD. När användaren skriver till exempel ls kan systemet därför köra PowerShells egen variant i stället för Coreutils-versionen.

    Här är några exempel på vad kommandona gör:

    Microsoft har också valt bort flera verktyg som finns i traditionella GNU Coreutils- eller Unix-liknande miljöer. Bland de kommandon som inte ingår finns exempelvis:

    Det betyder att Coreutils for Windows inte är avsett att ge full POSIX-kompatibilitet. Det är snarare en praktisk samling Unix-liknande verktyg som fungerar direkt i Windows.

    Varför gör Microsoft detta?

    För tio eller femton år sedan hade detta varit svårt att tänka sig. Windows och Linux sågs länge som två helt olika världar. I dag ser verkligheten annorlunda ut.

    Utvecklare arbetar ofta i blandade miljöer. En person kan skriva kod i Windows, köra tester i Linux-containrar, publicera till molnet och hantera projekt via GitHub. I sådana arbetsflöden blir terminalen ett viktigt verktyg.

    Microsoft har därför under flera år gjort Windows mer utvecklarvänligt. WSL, Windows Terminal, PowerShell 7, WinGet och bättre stöd för öppen källkod är alla delar av samma utveckling.

    Coreutils for Windows passar in i den bilden. Det handlar inte om att ersätta Windows, utan om att göra Windows mindre isolerat från resten av utvecklarvärlden.

    WSL-containrar på väg

    Samtidigt som Coreutils for Windows presenterades berättade Microsoft också om WSL containers. Det är en kommande funktion som ska göra det möjligt att skapa, köra och hantera Linux-containrar direkt via WSL.

    Till skillnad från Coreutils for Windows är WSL containers ännu inte allmänt tillgängligt. Microsoft planerar att släppa det som publik förhandsversion i en framtida WSL-uppdatering.

    Tanken är att utvecklare ska kunna bygga och köra Linux-containrar på Windows utan extra krångel. För företag ska det även finnas möjlighet att styra användningen med policyer, exempelvis vilka containeravbilder som får användas och hur containrar får kommunicera med värdsystemet.

    Ett steg mot en mer blandad datorvärld

    Coreutils for Windows är kanske inte en revolution för vanliga hemanvändare. De flesta som bara surfar, skriver dokument och läser e-post kommer sannolikt aldrig att märka av det.

    Men för utvecklare, systemadministratörer och tekniskt intresserade är det en viktig signal. Microsoft fortsätter att bygga broar mellan Windows och Unix-världen.

    Det gör det enklare att använda samma kommandon, samma arbetsflöden och samma tankesätt oavsett om man sitter i Windows, Linux, macOS eller en molnmiljö.

    Slutsats

    Coreutils for Windows är inte ett komplett Linux-lager och det ersätter inte WSL. Men det är ett praktiskt verktyg för den som vill ha tillgång till välbekanta Unix-kommandon direkt i Windows.

    Det visar också hur mycket datorvärlden har förändrats. Där operativsystem tidigare var slutna öar, går utvecklingen nu mot mer öppna och blandade miljöer.

    För många utvecklare kan detta bli en liten men välkommen förbättring i vardagen: färre specialfall, färre miljöbyten och fler kommandon som fungerar där man redan befinner sig.

    Fakta: Coreutils for Windows

    Vad är det?
    Coreutils for Windows är ett Microsoft-underhållet paket med Unix-liknande kommandon som kan köras direkt i Windows.

    Bygger på:
    Paketet bygger på uutils, en modern implementation av GNU Coreutils skriven i Rust.

    Installation:
    Installeras via Windows pakethanterare WinGet.

    winget install Microsoft.CoreUtils

    Exempel på kommandon:
    ls, cat, cp, mv, rm, pwd, sleep, tee, uptime

    Kommandon som kan krocka:
    Vissa kommandonamn finns redan som inbyggda kommandon eller alias i PowerShell och CMD. Det gäller bland annat:

    cat, cp, ls, mv, pwd, rm, sleep, tee, uptime

    Krav:
    PowerShell 7.4 eller senare krävs.

    Viktigt att veta:
    Coreutils for Windows är inte samma sak som WSL och ger inte en komplett Linux-miljö. Det är främst ett praktiskt verktygspaket för utvecklare och tekniskt intresserade som vill använda vanliga Unix-kommandon direkt i Windows.

    Passar bäst för:
    Utvecklare, systemadministratörer och avancerade användare som ofta arbetar mellan Windows, Linux, macOS och molnmiljöer.

Microsoft tar Unix-kommandon till Windows

Microsoft tar ännu ett steg mot att göra Windows mer utvecklarvänligt. Med Coreutils for Windows får användare tillgång till flera välkända Unix- och Linux-kommandon direkt i Windows, utan att behöva starta WSL. Det gör det enklare för utvecklare och tekniskt intresserade att arbeta över flera plattformar – men paketet har också tydliga begränsningar.

Microsoft har lanserat Coreutils for Windows, ett nytt paket med Unix-liknande kommandoradsverktyg som kan köras direkt i Windows. Det innebär att utvecklare och avancerade användare kan använda välkända kommandon från Linux- och Unix-världen utan att först behöva starta WSL, alltså Windows Subsystem for Linux.

Det här är ett tydligt steg mot att göra Windows mer användbart i moderna utvecklingsmiljöer, där många redan arbetar över flera plattformar: Windows på skrivbordet, Linux på servrar, macOS i vissa utvecklarmiljöer och containrar i molnet.

Vad är Coreutils?

I Linux och andra Unix-liknande system finns en samling grundläggande kommandon som används hela tiden. Det handlar om verktyg för att lista filer, kopiera, flytta, ta bort, visa text, söka i filer och mycket annat.

Exempel på sådana kommandon är:

För många Linux-användare sitter dessa kommandon nästan i ryggmärgen. Problemet är att Windows traditionellt har haft andra kommandon, andra beteenden och andra sätt att arbeta i terminalen. Det har ofta skapat friktion för den som växlar mellan Windows och Linux.

Med Coreutils for Windows försöker Microsoft minska den skillnaden.

Bygger på öppen källkod i Rust

Microsofts paket bygger på projektet uutils, som är en modern omimplementation av GNU Coreutils skriven i programmeringsspråket Rust.

GNU Coreutils är den klassiska samlingen av grundläggande kommandon som används i många Linux-distributioner. Uutils försöker återskapa mycket av den funktionaliteten på ett mer plattformsoberoende sätt.

Att Microsoft bygger vidare på uutils är intressant av flera skäl. Dels visar det hur viktig öppen källkod har blivit även för stora företag. Dels visar det att Rust fortsätter att vinna mark i systemnära programvara, där säkerhet, prestanda och minneshantering är viktiga frågor.

Installera med WinGet

Installationen sker via Windows pakethanterare WinGet. Kommandot är:

Efter installationen får användaren tillgång till en uppsättning Unix-liknande verktyg direkt i Windows.

Microsoft beskriver paketet som en Microsoft-underhållen samling av Unix-liknande kärnverktyg för Windows. Paketet levereras som en så kallad multi-call binary, vilket betyder att flera kommandon hanteras genom en gemensam körbar fil.

Inte samma sak som WSL

Det är viktigt att förstå vad detta är – och vad det inte är.

Coreutils for Windows gör inte Windows till Linux. Det ersätter inte heller WSL för den som behöver en riktig Linux-miljö med pakethanterare, Linux-filsystem, shellskript, utvecklingsverktyg och serverprogram.

Däremot gör det vardagligt terminalarbete smidigare. Den som bara vill använda vanliga kommandon som ls, cat, cp eller grep kan göra det direkt i Windows, utan att starta en separat Linux-miljö.

Det kan vara särskilt användbart för utvecklare som arbetar med dokumentation, skript, källkod och filhantering över flera operativsystem.

Begränsningar finns

Coreutils for Windows är inte en komplett portning av GNU Coreutils. Det finns flera funktionella begränsningar att känna till.

Paketet kräver PowerShell 7.4 eller senare. Dessutom kan vissa kommandon krocka med befintliga kommandon i CMD eller med inbyggda kommandon och alias i PowerShell.

Exempel på kommandon där det kan uppstå konflikter är cat, cp, ls, mv, pwd, rm, sleep, tee och uptime. Det beror på att flera av dessa namn redan används av PowerShell som alias eller inbyggda kommandon. När användaren skriver ett sådant kommando kan PowerShell därför köra sin egen variant i stället för Coreutils-versionen.

Det beror på att flera av dessa kommandonamn redan används i PowerShell eller CMD. När användaren skriver till exempel ls kan systemet därför köra PowerShells egen variant i stället för Coreutils-versionen.

Här är några exempel på vad kommandona gör:

Microsoft har också valt bort flera verktyg som finns i traditionella GNU Coreutils- eller Unix-liknande miljöer. Bland de kommandon som inte ingår finns exempelvis:

Det betyder att Coreutils for Windows inte är avsett att ge full POSIX-kompatibilitet. Det är snarare en praktisk samling Unix-liknande verktyg som fungerar direkt i Windows.

Varför gör Microsoft detta?

För tio eller femton år sedan hade detta varit svårt att tänka sig. Windows och Linux sågs länge som två helt olika världar. I dag ser verkligheten annorlunda ut.

Utvecklare arbetar ofta i blandade miljöer. En person kan skriva kod i Windows, köra tester i Linux-containrar, publicera till molnet och hantera projekt via GitHub. I sådana arbetsflöden blir terminalen ett viktigt verktyg.

Microsoft har därför under flera år gjort Windows mer utvecklarvänligt. WSL, Windows Terminal, PowerShell 7, WinGet och bättre stöd för öppen källkod är alla delar av samma utveckling.

Coreutils for Windows passar in i den bilden. Det handlar inte om att ersätta Windows, utan om att göra Windows mindre isolerat från resten av utvecklarvärlden.

WSL-containrar på väg

Samtidigt som Coreutils for Windows presenterades berättade Microsoft också om WSL containers. Det är en kommande funktion som ska göra det möjligt att skapa, köra och hantera Linux-containrar direkt via WSL.

Till skillnad från Coreutils for Windows är WSL containers ännu inte allmänt tillgängligt. Microsoft planerar att släppa det som publik förhandsversion i en framtida WSL-uppdatering.

Tanken är att utvecklare ska kunna bygga och köra Linux-containrar på Windows utan extra krångel. För företag ska det även finnas möjlighet att styra användningen med policyer, exempelvis vilka containeravbilder som får användas och hur containrar får kommunicera med värdsystemet.

Ett steg mot en mer blandad datorvärld

Coreutils for Windows är kanske inte en revolution för vanliga hemanvändare. De flesta som bara surfar, skriver dokument och läser e-post kommer sannolikt aldrig att märka av det.

Men för utvecklare, systemadministratörer och tekniskt intresserade är det en viktig signal. Microsoft fortsätter att bygga broar mellan Windows och Unix-världen.

Det gör det enklare att använda samma kommandon, samma arbetsflöden och samma tankesätt oavsett om man sitter i Windows, Linux, macOS eller en molnmiljö.

Slutsats

Coreutils for Windows är inte ett komplett Linux-lager och det ersätter inte WSL. Men det är ett praktiskt verktyg för den som vill ha tillgång till välbekanta Unix-kommandon direkt i Windows.

Det visar också hur mycket datorvärlden har förändrats. Där operativsystem tidigare var slutna öar, går utvecklingen nu mot mer öppna och blandade miljöer.

För många utvecklare kan detta bli en liten men välkommen förbättring i vardagen: färre specialfall, färre miljöbyten och fler kommandon som fungerar där man redan befinner sig.

Fakta: Coreutils for Windows

Vad är det?
Coreutils for Windows är ett Microsoft-underhållet paket med Unix-liknande kommandon som kan köras direkt i Windows.

Bygger på:
Paketet bygger på uutils, en modern implementation av GNU Coreutils skriven i Rust.

Installation:
Installeras via Windows pakethanterare WinGet.

winget install Microsoft.CoreUtils

Exempel på kommandon:
ls, cat, cp, mv, rm, pwd, sleep, tee, uptime

Kommandon som kan krocka:
Vissa kommandonamn finns redan som inbyggda kommandon eller alias i PowerShell och CMD. Det gäller bland annat:

cat, cp, ls, mv, pwd, rm, sleep, tee, uptime

Krav:
PowerShell 7.4 eller senare krävs.

Viktigt att veta:
Coreutils for Windows är inte samma sak som WSL och ger inte en komplett Linux-miljö. Det är främst ett praktiskt verktygspaket för utvecklare och tekniskt intresserade som vill använda vanliga Unix-kommandon direkt i Windows.

Passar bäst för:
Utvecklare, systemadministratörer och avancerade användare som ofta arbetar mellan Windows, Linux, macOS och molnmiljöer.