Nyt værktøj lader dig køre din specialdesignede Linux på Windows

Hvis du savner den der lille, fikse detalje fra din egen modificerede Ubuntu-version, når du skal arbejde på en Windows, er der nu håb forude.

Et nyt open-source værktøj fra Windows lader dig tage din specialdesignede yndlings-Linux med over på det udbredte styresystems enheder, skriver Ars Technica.

Læs også: Torvalds om nye AMD-bugs: Sikkerhedsfolk vil gøre alt for opmærksomhed

Windows har med Windows Subsystem for Linux (WSL) i et stykke tid tilladt sine brugere at køre et begrænset udvalg af Linux-distributioner, herunder Ubuntu, i sit Linux runtime environment. På den måde har man kunnet køre diverse prædesignede distributioner som Ubuntu, SUSE, Debian og Kali, der hver især tilbyder brugeren en række forskellige muligheder og alternativer til Windows.

Læs også: Ubuntu vil auto-indsamle data, inklusive din lokation

Men hvis ens favoritdistribution ikke er blandt de nævnte, eller man har tilpasset sin egen pakke til egne behov, så er der nu hjælp at hente med det nye værktøj - WSL DistroLauncher.

Læs også: Gigantisk svaghed i Skype - kaldes 'umulig' at fikse

Værktøjet henvender sig primært til to grupper. Udviklergrupper, der i forvejen ejer distributioner, og som gerne vil teste deres distributioner til Windows, inden de ryger i Windows Store, men også mindre, individuelle udviklere, der bare generelt vil tilpasse deres distributioner og bruge dem til Windows.

Læs også: Den næste udgave af Office vil kun virke på Windows 10

Microsoft vil ifølge Ars Technica blive ved med at tilføje nye funktioner til WSL, og den næste version vil indeholde begrænset understøttelse af baggrundsopgaver samt Unix domain sockets. Det vil også tilbyde et bedre samvirke mellem filsystemerne i henholdsvis Windows-delen og Linux-delen, skriver det amerikanske techmedie.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (36)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Benjamin Bach

Vil M$ gerne ind og være en slags Docker?

Eller mener de, at moderne hardware har så mange ressourcer, at man skal nedbryde forskellen på operativsystemer gennem virtualisering integreret i bruger-desktoppen for at man kan køre programmer, der er udbudt og compilet til Linux?

  • 2
  • 4
Peter Makholm

Vil M$ gerne ind og være en slags Docker?

Jeg er ikke helt sikker på hvad du forstår ved "en slags Docker".

Mit bud er at jeg er midt i målgruppen for WSL: Jeg er udvikler med hang til Unix-ligende systemer.

På arbejde bruger jeg Linux (og tidligere OSX) og ser med stor skepsis på de Microsoft-systemer som min arbejdsgiver forsøger at få mig til at bruge. Hvis det står til mig, så fravælger vi C#, Edge og SharePoint fordi det ikke passer ind i mit workflow.

Derhjemme bruger jeg OSX og er helt Microsoft-fri. Sidder jeg med et hobby-projekt er Windows-understøttelse det sidste jeg tænker på. Hvis jeg havde den vildfarelse at jeg kunne tjene lidt håndøre på mine projekter ville jeg udvikle til Apples App Store og ikke Windows Store.

Grundlæggende set: Jeg er beslutningespåvirker og indholdsleverandør som Microsoft hidtil ikke har kunne få i tale — og muligvis lige netop den type som forhindrede Windows Phone i at blive en success.

  • 8
  • 0
Lars Bjerregaard

Formålet med WSL er, at de udviklere som ellers udelukkende ville bruge Linux/Unix/Mac, pga. de glimrende kommandolinie værktøjer, som er blevet fremelsket igennem de sidste 40 år, nu også kan gøre (en pæn del af) deres arbejde på Windows. Det har man kunne i mange år, med f.eks. Cygwin, MSYS og MinGW, men WSL er bare så meget bedre (prøv det!). Med andre ord - hvor du før blev nødt til at bruge et VM til visse/mange opgaver, kan du nu ret nemt gøre det i WSL under Windows, som kører væsentligt hurtigere og bruger væsentligt færre resourcer.

Det er en del af "det nye Microsoft's" strategi om, at hvis de ikke kan få hele verden til at komme til Microsoft, så må Microsoft komme til hele verden. Det har de faktisk eksekveret temmeligt imponerende på i nogen år nu.

Prøv WSL, hvis du overhovedet (skal/bliver nødt til) kører Windows. Det fungerer fremragende og er fuldstændigt som at sidde på en Linux box, der starter på 1 sekund.

  • 9
  • 0
Pauli Østerø

nedbryde forskellen på operativsystemer gennem virtualisering integreret i bruger-desktoppen

WLS er IKKE virtualisering. Linux binaries eksekveres direkte på dit jern så du får tæt på samme ydelse som kørte dine programmer i en Linux som var bootet op helt selv.

Dette dog med undtagelse af mere I/O tunge operationer da NTFS og Linux aldrig har været gode venner. Der sker dog hele tiden forbedringer så den del vil nok også en dag komme op på samme niveau som "native Linux".

  • 4
  • 0
Hans Nielsen

Prøv WSL, hvis du overhovedet (skal/bliver nødt til) kører Windows. Det fungerer fremragende og er fuldstændigt som at sidde på en Linux box, der starter på 1 sekund.

Har selv skrottet Windows til andet end Gaming.
Hvorfor (skal) microsoft bare altid fylde på og lave om, i stedet for at forbedre og perfektionere. Win10 var da det kom ud, et fornuftigt let hurtigt OS. Men det har med vanligt stil fået vokseværk. Og især manglende/svært muligheden for at købe et OS uden reklame og tvungen service, genstart, opgradering irritere mig, og ligger til grund for mit nu første valg af Linux Mint i stedet.

Men har et par hurtige spørgsmål. Er det blevet mulighed for GUI, og virker det (godt), og hvordan med software pakker som Apache. Eller skal man stadig tænke på en virtualisering i stedet, hvis man har brug for mere end nogle hurtigt kraftige kommandoer i et text windu ?

  • 0
  • 0
Cristian Ambæk

@Lars Bjerrgaaard
Jeg forstår godt hvad du siger, men jeg ser stadig ikke formålet.
Hvorfor ville nogle vælge at gøre dette? Hvad vil formålet være i at køre Linux kommandoer på en Windows boks.

Er det fordi at MS gerne vil være mere som Linux terminal miljø?

  • 0
  • 0
Pauli Østerø

Er det blevet mulighed for GUI, og virker det (godt)

Ja, men nej. GUI er ikke det primære formål med WSL.

og hvordan med software pakker som Apache.

Apache og lign. server programmer fungerer perfekt og er netop sådan noget som WSL er lavet til. Det og få erstattet f.eks. Cygwin med de rene native binære filer og så kunne bruge en Linux shell med alle dets herligheder på Windows.

  • 1
  • 0
Jacob Smedegård

Jeg kan give et par eksempler fra mit daglige arbejde.

Jeg sidder på nuværende tidspunkt og arbejder på en frontend stack der er bygget oven på IntelliJIDEA, Node.JS, SASS, webpack og diverse hot-reloading teknologier. Alle disse er "cross platform" hvilket betyder at vores udviklere også er det. Der er bare ikke rigtigt noget der virker på windows.
Ingen af udviklerne bag NPM sidder på en windows boks, så selvom de er cross platform "in spirit" er der utroligt mange show stoppers og funktionalitet der pludseligt ikke virker, fordi det ikke er blevet testet på windows men kun Linux og mac inden det er blevet releaset. Vores SASS compiler kræver platform afhængige binaries hvilket betyder at vores Windows NPM og mac NPM begynder at træde hinanden over tærerne og absolut ingen af de nævnte teknologier har nogen sinde overvejet at fillåse virker forskelligt på windows og mac/linux.

Ved at flytte vores byggepipeline til WSL (Ubuntu bash) kan vi ligepludselig få noget som er meget mere stabilt, da vi så kører det samme som udviklerne bag de teknologier som vi bruger.

  • 2
  • 0
Michael Rasmussen
  • 4
  • 0
Magnus Jørgensen

Jeg kan heller ikke rigtigt se meningen med det.
I øvrigt har det kun funktionalitet til fældes med Linux. Der er ingen Linux kode involveret. De burde kalde det Linux Kernel emulation for Windows.
Hvis jeg skulle finde på at arbejde på en Windows platform for at udvikle noget til Linux (hvilket jeg ikke kan se grunden til) så kunne det muligvis godt være at jeg ville bruge denne løsning. Men også kun derfor. Jeg skulle alligevel bruge et testing, staging og produktions miljø på en rigtig Linux kerne. Så ville jeg da bare bruge Putty.

Med den nuværende løsning får jeg et Linux miljø med langsom IO og flere mangler.

Man kan f.eks. ikke mounte et NFS drev.
Det er ikke meningen at man skal bruge X11 apps, selvom XMing dog virker.
Jeg kan ikke portforwarde mine porte igennem ssh...

Indtil videre kan jeg ikke se meningen med det.

  • 4
  • 1
Esben Nielsen

Man kan frygte at mange udviklere af IT afdelinger bliver nægtet en rigtig Linux - selv i en VM - i fremtiden, da de vil blive mødt af argumentet, at de blot kan bruge WSL. Vi andre resikerer f.eks. at netbanksløsninger bliver helt utestet på Linux.

Et svagt håb kunne til gengæld være at Linux binaries, f.eks. i form Snap, bliver en de facto standard frem for rene Windows binaries. Det kunne også bringes til at virke på BSD - og noget nemmere en Wine, da det “kun” drejer sig om at oversætte fra Linux kernes API til eget API.

  • 1
  • 0
Simon Mikkelsen

Jeg se rabsolut ingen grund til at skifte over til Windows pga. dette. Men det sted jeg arbejder, kører 100% Windows, så vi har brugt Cygwin og virtualisering i mange år. Noget som er mere native og som giver de fulde muligheder i en distro er da at foretrække.

Men det er stadig kun et plaster på det sår der hedder, at Windows ikke er Linux.

  • 6
  • 0
Hans Nielsen

Selv om vi alle har elsket at skælde ud på det. Og Microsoft har lavet nogle tåbelige og nogle gange "sjove" valg. Heraf også nogle ikke helt etisk og ulovlige.

Så har det betydet at det har været en samlende platform som udvikler har kunne bruge de sidste 20 år. Det har haft betydning for udvikling af software og nok især spil, som nok er den eneste grund til at platformen overlever på sigt.

Valg af OS for "menigmand" har idag ingen betydningen, da software ligger på Internettet og i skyen, dette gælder også mange firmaer. Et Mint/(X/K/Ubuntu OS er for mange et langt bedre valg.

Så idag, er der ud over gaming ikke mange grund til at vælge Windows, hvis man har sine programmer i skyen. Hvis vi snakker server siden, så har Windows vel være bag af dansen i mange år. Det er kun, hvad jeg vil kalde meget gammeldags, administratorer der holder fast i en Exchange server lokalt.

Så det er godt set, også af microsoft, som har turde skifte ledelse. At fremtiden ikke ligger i OS, som bliver mindre og mindre relevant. Og de fleste professionelle har adgang til begge OS via virtualisering. Microsoft håber så bare at, at det ikke er dem som bliver visualiseret, og dette er et forsøg på at komme dette i møde.

Et svar til
"Hvis det i arbejder med, og tjener jeres penge på, ikke fungerer på Windows, hvorfor så ikke skippe Windows?"

Nu består service i skyen jo mest af maskiner som køre en eller anden version af Unix. Så derfor er det naturligt at man også bruge samme OS når man udvikler software til dette.
Men når ens bruger stadig for største delen bruger Windows, så er det jo lidt uansvarlig ikke at test de løsninger man laver på et sådan.

Jeg vil tro at mange udvikler i skyen vil blive meget glade, hvis alle mennesker i verden gik væk for Windows, men det sker så bare ikke.

  • 2
  • 1
Benjamin Bach

Hej @Peter Makholm - helt enig i betragtningerne om, at de prøver at få lokket vigtige brugere over på deres platform; men jeg gider ikke licensjungler, antivirusprogrammer, tvungne genstarter, fastsiddende systemopdateringer og 500 MB printerdrivere; men mest af alt, så gider jeg ikke en proprietær platform.

Så det er en anelse optimistisk (af Microsoft, ikke dig).. der er simpelthen for mange andre fundamentale årsager til at undgå Windows. Jeg tror ikke, at tilfredse Linux-brugere hopper platform. Til gengæld vil en masse MS-folk sige "ih åh nu kan vi det, som I andre har kunnet i de sidste 20 år"... så alt er, som det plejer :)

På mit dagjob bygger vi også software til Windows; men vi har gjort det så fikst, at alt hvad der bygges, kan bygges gennem WINE, og så behøver udviklerne ikke tvinges mod deres vilje, og alle builds kan automatiseres i skyen, i Docker osv.

Jeg er ikke helt sikker på hvad du forstår ved "en slags Docker".

Min teori for deres forretningsincitament var, at Docker-billeder er begyndt at være en faktor for at gøre udviklingsmiljøer og CI nemt tilgængeligt. Det lignede med eksemplerne, f.eks. MyDistro.appxmanifest, at man var gået over til noget, der skulle være som en Dockerfile.

Det går i midlertid op for mig, at man godt kan gøre Docker på Windows :)

  • 0
  • 0
Lars Bjerregaard

Hvorfor ville nogle vælge at gøre dette? Hvad vil formålet være i at køre Linux kommandoer på en Windows boks.


Det har samme berettigelse som Virtuelle Maskiner, emulatorer, OS personalities, Wine, Cygwin, etc. etc. altid har haft. Hvis man lever i en 100% homogen verden, hvor alting kun er ét OS, så er det ikke relevant. Hvis man lever i en mere eller mindre heterogen verden, hvilket langt de fleste af os gør, så har det en relevans. Det har altid været en styrke, at kunne vælge at bruge de stærkeste værktøjer fra et givet system. Der er mange som skal bruge ét værktøj som kun kører på System A, og et andet som kun findes på System B. Det eneste som så står tilbage er, at vælge det optimale værktøj, fra ovennævnte liste. I det scenarie der hedder: Jeg sidder på en Windows box som primær maskine, men har brug for/vil gerne køre en masse stærke Linux (non-gui) programmer, så er WSL pt. det bedste bud.

Er det fordi at MS gerne vil være mere som Linux terminal miljø?


Nej, ikke specielt. Det er for at kunne sige til en masse udviklere, superbrugere og administratorer: Du behøver ikke skrotte Windows for en Mac eller Linux maskine, nu kan du gøre (mange af) de ting du har behov for, på Windows+WSL. Glem heller ikke, at i rigtigt mange organisationer, er valget af primær-OS ikke en mulighed, men er dikteret (læs: ofte Windows).

  • 3
  • 0
Lars Bjerregaard

I øvrigt har det kun funktionalitet til fældes med Linux. Der er ingen Linux kode involveret. De burde kalde det Linux Kernel emulation for Windows.


Kunne ikke være mere forkert. Det som kører inden i WSL er en native Linux distribution minus Linux kernen - ELF binaries, opdatering med apt-get, hele gøjemøget. Det er Linux! Alle stumperne inden i en (f.eks.) Ubuntu WSL kommer direkte fra Ubuntu's almindelige distribution, ingen mellemænd eller modificeringer. Det er fuldstændigt som hvis du kørte på et Linux VM, uden GUI.

Rent teknisk fungerer det ved, at Windows kernen alle dage har været "multiple-subsystems", dvs. forskellige "personligheder" på den samme kerne, f.eks. har der gennem tiden været et OS/2 subsystem, et DOS subsystem, et POSIX subsystem, etc. WSL er et "Linux-subsystem" som kører på Windows kernen. Det fungerer (som du ville forvente) ved hjælp af "translators", som oversætter visse systemkald fra subsystemet til native Windows systemkald. Der er masser af super-teknisk/nørdet materiale om dette online. Microsoft har været meget åbne om arkitekturen, processen og implemenationen.

Hvis jeg skulle finde på at arbejde på en Windows platform for at udvikle noget til Linux (hvilket jeg ikke kan se grunden til) så kunne det muligvis godt være at jeg ville bruge denne løsning. Men også kun derfor. Jeg skulle alligevel bruge et testing, staging og produktions miljø på en rigtig Linux kerne. Så ville jeg da bare bruge Putty.


Godt for dig. Men rigtigt mange bruger en Windows box som primær maskine. Hvis du laver ikke-kerne og non-GUI Linux applikationer, så kan du i mange tilfælde bruge WSL til testing og staging. Og glem ikke alle de administratorer, som sidder på en Windows maskine som primær OS, men som skal administrere et heterogent miljø. For dem er det et suverænt værktøj. SSH, sed, awk, perl, python, etc.. som du kender det fra Linux/Unix.

Med den nuværende løsning får jeg et Linux miljø med langsom IO og flere mangler.


Hvis du sidder primært på en Windows box, får du et Linux miljø som er hurtigere, mere smidigt og mere "native" end alle andre løsninger.

Man kan f.eks. ikke mounte et NFS drev.


Windows native har faktisk en NFSv3 klient der kan bruges. Men der er (endnu) ikke NFS client support i WSL, da det på Linux er implementeret i kernen, som du ikke har på WSL.

Jeg kan ikke portforwarde mine porte igennem ssh..


Så vidt jeg læser https://superuser.com/questions/1119946/windows-subsystem-for-linux-ssh-... så jo, hvis du bruger IPv4. Lur mig om ikke IPv6 kommer til WSL snart.

  • 2
  • 1
Lars Bjerregaard

Det som nærværende artikel handler om er følgende:

Da WSL blev født var der kun én mulighed for at vælge Linux distribution: Ubuntu 16.04 LTS. Efter et stykke tid kom Fedora og Debian til. Og nu, som artiklen beskriver, er ballet helt åbent - alle kan smide deres distribution på WSL via standard-template infrasturktur, og du kan såmænd brygge din egen custom distribution sammen, og smide den på WSL også.

Værsgo: https://www.microsoft.com/da-dk/store/search/apps?q=linux

  • 1
  • 0
Magnus Jørgensen

Det fungerer (som du ville forvente) ved hjælp af "translators", som oversætter visse systemkald fra subsystemet til native Windows systemkald. Der er masser af super-teknisk/nørdet materiale om dette online. Microsoft har været meget åbne om arkitekturen, processen og implemenationen.

Forkert. WSL oversætter ALLE Linux kerne kaldene til NT Kerne kald. Det er det jeg mener med at det er en Linux Kerne emulator. Det skal selvfølgelig ikke forveksles med en CPU emulator eller andet hardware emulering. Jeg har på intet tidspunkt skrevet at der ikke er tale om Native kode og alt det andet du skriver om.

Hvis du sidder primært på en Windows box, får du et Linux miljø som er hurtigere, mere smidigt og mere "native" end alle andre løsninger.

Jeg sidder ofte med et Windows miljø som min primære platform. Det fungerer fint. Hvis jeg skal udvikle noget til linux gør jeg det endda nogle gange fra mit Windows miljø. Hvis de fuldender deres WSL abstraktions lag kan det endda være at Windows kan aggere som et fuldendt Linux miljø. Men de er der ikke helt endnu. Jeg er selv meget imponeret over hvad WSL kan og jeg har det da selv installeret på min Windows box.

Men indtil de har fjernet de mangler der endnu er i løsningen kan jeg ikke helt se meningen.

Så vidt jeg læser https://superuser.com/questions/1119946/windows-subsystem-for-linux-ssh-... så jo, hvis du bruger IPv4. Lur mig om ikke IPv6 kommer til WSL snart.

Jeg formulerede mig måske ikke helt godt nok der. Jeg kan ikke port forwarde en port fra min windows host maskine med WSL. Det ville have været en super nyttig ting at kunne.

  • 1
  • 1
Uffe Seerup

Forkert. WSL oversætter ALLE Linux kerne kaldene til NT Kerne kald. Det er det jeg mener med at det er en Linux Kerne emulator.

Det er lidt mere komplekst. De processer som WSL bygger på er fx såkaldte pico processes, som igen bygger på minimal processes. Ethvert operativsystem opbygger en process/thread med kendte kontrolstrukturer, som fx Windows Process Environment Block, hvor operativsystemet kan læse/skrive processpecifik information.

Windows arkitekturen har altid været opbygget med et meget generelt "operativsystem" i bunden. I starten således, at der kunne lægges bade Windows og OS/2 ovenpå. I langt tid har vi så kun benyttet Windows delen da OS/2 delen blev forladt. Arkitekturen var der dog og har siden i en periode også været brugt til WSU (Subsystem for Unix).

Fx har kernen altid understøttet fork() - selvom denne funktion (gudskelov) aldrig har været brugt i Windows.

WSL bygger på denne arkitektur og kører "pico processer" direkte i kernen. Linux systemkald opererer direkte på disse Linux specifikke pico processer. Andre steder har MS ganske rigtigt "oversat" Linux systemkald til NT kald - fx filsystem kald. Men fx semaforer, tråde og proces systemkald er ikke oversatte (eller "emulerede") - de virker direkte på processer og tråde som under native Linux.

Så nogle systemkald er hvad vi ville kalde for emulerede, mens mange andre er implementering af Linux kernel API direkte på den underliggende generelle kerne.

Se fx denne artikel:
https://blogs.msdn.microsoft.com/wsl/2016/05/23/pico-process-overview/

  • 3
  • 2
Magnus Jørgensen

WSL bygger på denne arkitektur og kører "pico processer" direkte i kernen. Linux systemkald opererer direkte på disse Linux specifikke pico processer. Andre steder har MS ganske rigtigt "oversat" Linux systemkald til NT kald - fx filsystem kald. Men fx semaforer, tråde og proces systemkald er ikke oversatte (eller "emulerede") - de virker direkte på processer og tråde som under native Linux.

Det er jo helt lige gyldigt hvad det bliver kaldt hos Microsoft.
Linux kernen bliver emuleret. Der er ingen Linux kerne kode involveret.
Det er jo ligegyligt om koden i NT kernen kan køre kaldene fra et GNU/Linux program uden oversættelse. Det er stadig emulering af Linux kernen.

  • 3
  • 2
Sune Marcher

Det er stadig emulering af Linux kernen.


I IT-sammenhænge associerer jeg primært ordet "emulering" med virtuelt hardware - om det så er komplette systemer for fx at kunne køre C=64/SNES/Amiga software på moderne hardware, eller om det er begrænsede sandbox environments til reverse engineering eller automatisk malware-analyse. Der er typisk ret højt performance-overhead, når vi snakker emulering.

WSL er ikke emulering i mine øjne (ligesom FreeBSDs Linux ABI layer heller ikke er det). Linux kernen har et (ret stabilt) ABI, og WSL er (bland andet) en implementering af dette ABI. At kalde dette "emulering" er omtrent lige så fjollet som at kalde en klasse, der implementerer et interface, for en emulering af det interface.

  • 0
  • 0
Magnus Jørgensen

At kalde dette "emulering" er omtrent lige så fjollet som at kalde en klasse, der implementerer et interface, for en emulering af det interface.

Nu er et interface i de fleste sprog ikke en implementering, så det ville jo af den grund også være flollet. Du kan ikke emulere et interface da der ikke er en implementering at emulere. Du kan implementere et interface.
Min pointe er bare at WSL lyder som noget i windows der understøtter Linux. Men det understøtter jo kun programmer der er kompileret til linux. I det større perspektiv kan WSL underminere Linux, da behovet for drivere og udvikling på Linux kernen generelt, gøres mindre, da Windows i princippet på lang sigt kan levere en fuldendt Linux kerne emulering. Hvis du alligevel har fået en Windows licens med din computer og der i Windows er support for alle programmer der er kompileret til Linux, hvorfor ville du så installere Linux på din nye maskine?

  • 1
  • 0
Hans Nielsen

"hvorfor ville du så installere Linux på din nye maskine?"

Eller

Undgå licens problemer.
Som at geninstallere eller lave alle de virtuelle maskiner og OS du gider,
og bare installere software med automatisk opdateringer. Ved at trykke på en knap og ikke tænke på licenser og kr/øre.

Og antal af CPU, Kerner, Tråde og hvor RAM du sætter i.

Have understøttelse i kerne for det meste hardware.

Et stabil OS, som ikke bare genstarter eller opdatere vilkårligt.

Et flot og valgfrit GUI med næsten frit valg på alle hylder.

Brug af også ældre hardware

Et OS, der ikke bare bliver langsommere og langsommere, mens det fylder mere og mere, og til sidst kræver en total geninstallation.

Muligt for selv at vælge, eller lade det være op til andre.

Ikke lade i stikken, men hyppigt skift af hele platformen. Især på mobil og CE side.

Kender ikke mange der har skiftet til MAC, som har set sig tilbage.

På serversiden ingen alternativ i Windows
Man kan vel godt sige, at Windows server ude på Internet er noget af en joke. Hvem bruger det, ud over MS selv.
Men det har jo også betydning, at alle de store service og programmer køre under Linux/Unix.

Og sikkert mange andre ting, som har betydet at man har set sig sur på MS gennem årene, andre ?

  • 1
  • 1
Sune Marcher

Nu er et interface i de fleste sprog ikke en implementering, så det ville jo af den grund også være flollet. Du kan ikke emulere et interface da der ikke er en implementering at emulere. Du kan implementere et interface.


Præcis - hvilket er min argumentation for at WSL ikke er en emularing, men en implementering af Linux kernens API (eller, rettere, ABI - der er specificeret calling convention og den slags low-level detaljer).

I det større perspektiv kan WSL underminere Linux, da behovet for drivere og udvikling på Linux kernen generelt, gøres mindre, da Windows i princippet på lang sigt kan levere en fuldendt Linux kerne emulering.


Muligvis, men det har ikke ret meget med implementering vs emulering distinktionen at gøre.

Jeg ser det dog ikke som et plausibelt scenarie, da der typisk er en del forskellige grunde til man vælger Linux og Windows, men kan godt forstå tanken, qua Microsofts (tidligere?) Embrace/Extend/Extinguish stragei.

Hvis du alligevel har fået en Windows licens med din computer og der i Windows er support for alle programmer der er kompileret til Linux, hvorfor ville du så installere Linux på din nye maskine?


Jeg ser stadig "Linux on the desktop" som sådan lidt irrelevant i det store billede. På serversiden kan jeg ikke se at WSL skulle få nogen (betydelig mængde af folk) til at vælge Windows over Linux.

  • 1
  • 0
Sune Marcher

Kender ikke mange der har skiftet til MAC, som har set sig tilbage.


Min nuværende arbejdsmaskine er en Macbook der kører macOS.

Min næste arbejdsmaskine bliver ikke en Macbook, med mindre Apple skifter kurs - de har skidt lidt rigeligt på power users med deres seneste maskiner (fx ting som at fjerne fysiske knapper til fordel for den latterlige touchbar, ingen mulighed for at skifte ram og storage) - og jeg har aldrig været synderligt imponeret over macOS. De programmer jeg bruger er en blanding af appstore, manuelle downloads og homebrew, så det er ikke en specielt meget mere homogen oplevelse end Windows - til gengæld har jeg haft flere crashes end på nogen Windows version siden Vista.

Så den næste arbejdshest kommer nok til at køre Linux - det er efterhånden ved at være på et stadie hvor det er anvendeligt til desktopbrug, jeg kan få næsten alting gennem en distros pakkemanager, og det er forholdsvist stabilt (så længe man passer på med grafikkort firmware blob updates). Mangler bare at finde noget fornuftigt (laptop) hardware.

Alternativt kunne jeg køre Windows med WSL, men jeg kan egentligt godt lide at have daglig erfaring med mere end ét operativsystem, så jeg ikke gror fast.

  • 1
  • 0
Joe Sørensen

De brude vel egentlig kalde det GNU Subsystem for Windows. De genimplementerer Linux' API, sådan at programmer kompileret til Linux kan køres uændret under WSL. Dette kræver dog at man først installerer Linux userspace på Windows maskinen. Dette kan så leveres af Ubuntu.

Og snart får vi at vide om det overhovedet er lovligt det de gør:
http://money.cnn.com/2018/03/27/news/companies/google-oracle-case/index....

Hvis Google ikke om reimplementerer Oracles API i et andet system, så må Microsoft vel heller ikke reimplementerer Linux' API uden at overholde Linux' Licens betingelser. Glæder mig til GPL versionen af Windows. Som Balmer rigtig nok bemærkede: Linux' licens er en canser som smitter alt den røre.

  • 0
  • 0
Sune Marcher

De brude vel egentlig kalde det GNU Subsystem for Windows.


Nej - WLS implementerer Linux' system ABI, en ELF loader og noget glue, det er der ikke ret meget GNU over.

Du kan vælge at køre en GNU/Linux distribution på det, men i princippet er GNU ikke nødvendigvis en del af den ligning. Fx benytter programmer skrevet i Go ikke libc, og en ting som Caddy webserveren kræver ret beset kun en Linux kerne, og kan køre uden at have en fuld distribution.

Hvis Google ikke om reimplementerer Oracles API i et andet system, så må Microsoft vel heller ikke reimplementerer Linux' API uden at overholde Linux' Licens betingelser.


Personligt synes jeg at Google vs Oracle sagen er helt ude i hampen, men det er lidt mudret - der er mere i den end "bare" reimplementering af API'et.

Der er WSL nok noget mere clean-cut. Hvis der ikke er brugt Linux kernel headers er der nok ikke det store at komme efter, licens-mæssigt... spørgsmålet er så om der realistisk set er andre sources til syscall numre og datastrukturer. IANAL, og der var vist også lidt fnidder over lignende med det libc Google lavede til Android.

  • 1
  • 0
Magnus Jørgensen

De brude vel egentlig kalde det GNU Subsystem for Windows. De genimplementerer Linux' API, sådan at programmer kompileret til Linux kan køres uændret under WSL. Dette kræver dog at man først installerer Linux userspace på Windows maskinen. Dette kan så leveres af Ubuntu.

Det er netop det der er min pointe.
WSL lyder som noget der har Linux i sig og supporter Linux. Men det er ikke sagen. tvært imod. Selvom det er rigtigt fra et logisk standpunkt at kalde WSL for Linux kerne emulering, kan jeg godt se en smule af Sune's pointe i at man i IT verdenen idag forbinder emulering med hardware emulering i software. Så selvom sune tager fejl, så vil jeg gerne gå med til at det navn kan give det forkerte indtryk.

Nuvel, så vil jeg fremover kalde det Windows Subsystem for Programs Compiled for Linux (WSPCL). For det er hvad det er og selvom der er imponerende hvad de har formået, så kan jeg endnu ikke se ideen med at bruge det.

  • 0
  • 0
Sune Marcher

WSL lyder som noget der har Linux i sig og supporter Linux. Men det er ikke sagen. tvært imod.


IMHO ville LSW (Linux Subsystem for Windows) klinge bedre - men WSL og LSW kan vel betyde det samme i Engelsk grammatik?

Jeg kan ikke rigtigt se hvordan det kan lyde som "noget der har Linux i sig" - men det supporter da helt klart Linux? I hvert fald på den måde jeg opfatter operativ-system support for alternative OS'er... DOS subsystemet i Win9x, OS/2 og POSIX subsystemerne i tidligere NT versioner, og så videre. Win32 er også bare et subsystem under NT kernen. Et jævnt priviligeret og special-håndteret subsystem, men et subsystem nonetheless :-)

WINE kunne man i princippet også kalde et Windows subsystem for Linux - eller rettere, en delmængde af WINE ville være det, eftersom en ret stor del af WINE er reimplementering af usermode libraries. Det er måske definitionsmæssigt et spørgsmål om "hvor man skærer kagen", og jeg ved ikke om der er decideret forkert og korrekt her - men når man snakker om subsystemer i OS-regi, så tænker jeg primært på de kernel-mode ting der skal til for at supportere det.

Og det er nok også derfor jeg holder på at der ikke er tale om emulering, men om implementering af et interface/ABI. Man kunne forestille sig en alternativ løsning der loadede enkelte ELF binaries, scannede import tables igennem og resolvede til stubs med en masse usermode translation layers, og måske et forsøg på exception handling af INT 80 (og hård fejl på SYSCALL) - det ville nok være mere villig til at kalde emulering, selvom det stadig ikke helt passer ind, IMHO.

Jeg ville fx heller ikke kalde at køre 32bit binaries på et 64bit OS for emulering, selvom der er et (meget tyndt) translation layer.

Så selvom sune tager fejl, så vil jeg gerne gå med til at det navn kan give det forkerte indtryk.


Jeg kunne jeg godt tænke mig at høre lidt argumentation for hvorfor jeg tager fejl. Eller, nok ikke så meget en "du tager fejl, fordi" som en uddybning af hvad du forstår ved emulering, og måske også hvad du forstår ved Linux i den her sammenhæng.

En af grundene til visse folk har en semi-religiøs tendens til at råbe "DET HEDDER ALTSÅ GNU/LINUX!" er at Linux distroer har en masse GNU software med, men det er jo netop ikke tilfældet med WSL - det er en implementering af Linux kernel ABI'et + glue... and that's it.

Nuvel, så vil jeg fremover kalde det Windows Subsystem for Programs Compiled for Linux (WSPCL). For det er hvad det er


Er det ikke sådan lidt pedantisk? Det er en lidt lang måde at skrive "subsystem" på - eller, hvad forstår du ved et subsystem? :-)

og selvom der er imponerende hvad de har formået, så kan jeg endnu ikke se ideen med at bruge det.


Jacob Smedegård giver da ellers meget god begrundelse?

Hvis man aldrig bruger ux tools på sin Windows install giver det ikke mening. Hvis man kun benytter en lille håndfuld (md5sum, curl, grep, ...) er det overskueligt at finde win32-compilede versioner. Men der er et eller andet cut-off point hvor jeg sagtens kan se WSL være nemmere - du får tools og management som du er vant til fra den Linux distro du bruger on the side. Plus den dér med at der er ret meget software der ikke er portable (eller hvor portable betyder "POSIX... POSIX på Linux, that is.")

Og så kan man ellers sætte gang i en diskussion om performance og andre tradeoffs mellem WSL, Docker, Cygwin binaries og "properly ported" :-)

BTW, så anvender FreeBSD "emulation" om deres Linux ABI. Jeg er stadig ikke enig i definitionen, men mener heller ikke at emulering kun kan anvendes om hardware emuleret af software - og har ikke en fast skillelinje for hvornår det er det ene og det andet... så jeg vil gerne høre folks begrundede meninger :-)

  • 0
  • 0
Rune Jensen

Derhjemme bruger jeg OSX og er helt Microsoft-fri.

Det her er måske ikke møntet så meget igen på dig, men mere generelt omkring MS vs. the world. Jeg undrer, om der stadig er denne Linux vs. Windows division.

Er formålet med at undgå Microsoft, at undgå alt hvad der har med microsoft at gøre bare "fordi", eller er det at undgå visse ting, som for eksempel som du siger ikke falder ind i work flowet.

Fordi det første er definitionen på ideologi, det andet er et unbiased valg af værktøj.

Jeg har lært denne lektion over flere år. Det er ret lang tid siden, jeg skrev M$ i stedet for MS.

Men man kan ikke hade MS fordi det er MS. Man kan hade visse ting, som MS gør fordi det ikke falder ind i work flowet, eller fordi det (som jeg mente med Vista for eksempel), at det var for langsomt til overhovedet at bruge eller andre argumenter med hold i virkeligheden.

Men hvad der adskiller ideologi fra unbiased valg a værktøj, er om man ser på hvem der har lavet værktøjet og vælger ud fra det, eller man ser på værktøjet selv og bedømmer selve værktøjet udfra om det er brugbart for én. Så en ideolog vil altid have som argument at et værktøj sutter fordi det er X, som lavede værktøjet, mens når man er unbiased, så er der reelle argumenter for hvorfor man ikke vil bruge det værktøj.

Jeg er selv Linuxbruger. Men jeg er ikke så meget ideolog, at jeg ikke kan se, at MS har fået ganske mange ting rigtigt. For eksempel... Batteriforbrug. Windowsmaskiner holder længere på batteriet. Linuxmaskiner er de mindst optimale hvad dette angår. Og det er et kendt problem i Linuxverdenen. Alle ved det, men ingen mener at det er lige deres problem at løse.

  • 0
  • 0
Andrew Rump

For mig er det en kombinering af det bedste fra 2 verdener!
Jeg er tvunget til at arbejde i en Windows/Mac-verden, men WSL giver mig adgang til alle de kraftfulde værktøjer, jeg er vant til i Linux verdenen, uden de begrænsninger, jeg ofte støder på i Windows verdenen, f.eks. ved store filer, m.m.m. En enkelt apt-kommando installere alle de værktøjer jeg har behov for og holder hele systemet ajour (dog ikke helt så automagisk, som når jeg booter op i en ren Linux - kører dual-boot på mine maskiner), dvs. jeg skal ikke ud på de enkelte produkters hjemmeside og downloade programmer, som forhåbentlig er virus fri.
Integrationen mellem Linux og Windows, gør at jeg kan arbejde på mine Windows filer fra Linux (de ligger under /mnt/c/Users/...), så jeg kan bruge værktøjer fra begge verdener! Der er selvfølgelig nogle gange udfordringer med forskellen mellem Linux new-line og Windows carriage return og new-line - men der har jeg mit lille dumb(1) (Dos-Unix-Mac-backward-program til at konvertere, hvis det er helt galt!)

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize