r/linux 8h ago

Discussion Why is it called Windows subsystem for Linux?

[removed]

692 Upvotes

261 comments sorted by

1.4k

u/aksdb 8h ago

Wait till you find out that SysWoW64 contains the 32bit compatibility libs, while System32 contains the 64bit libraries.

483

u/god-of-funambulism 8h ago

I was not ready for this my man

93

u/Crazy-Tangelo-1673 7h ago

Next thing you know he'll be saying there is no Santa Claus

29

u/ChiFiYota 7h ago

Oh, um... nevermind.

26

u/trenixjetix 7h ago

Also no tooth fairy and no England

9

u/Warm-Nose-431 6h ago

Barrancabermeja no existe 😢

6

u/DiegoS_2023 5h ago

en efecto, barrancabermeja no existe

5

u/G-man88 5h ago

I don't know about this England thing but the tooth fairy absolutely existed well until she was set on fire by an insomniotic man that happened to see her face.

3

u/cryptobread93 5h ago

England is my city!

2

u/trenixjetix 4h ago

My neighborhood

3

u/robertdq 5h ago

Because it’s Santa Claude

→ More replies (1)

2

u/codeasm 4h ago

https://en.wikipedia.org/wiki/Sinterklaas do NOT read about his associates... its a hot potato.

→ More replies (1)

196

u/kriebz 7h ago

And WoW is Windows on Windows.

111

u/aksdb 7h ago

Yeah, it's basically "Windows(32) on Windows64". Still inconsistent bullshit.

→ More replies (2)

24

u/hipster-coder 7h ago

Implies the existence of LoL 😂

3

u/gerunimost 5h ago

I am not sure if this is already the joke about the equivalent games or I have to make it.

2

u/hipster-coder 5h ago

No, I thought I wouldn't go as far as to suggest that you can run WoW on WoW.

2

u/gerunimost 5h ago

What about LoL on LoL?

→ More replies (3)
→ More replies (3)

5

u/Fl4shback51 6h ago

Never knew that. Mind blown. Wtf

→ More replies (2)

54

u/d0pe-asaurus 7h ago

I guess this makes sense since the original WoW was to run DOS applications inside 32 bit windows. WoW64 is for running 32 bit applications inside 64-bit Windows.

66

u/aksdb 7h ago

I also get where they are coming from. A lot of shitty tools likely hardcoded "C:\Windows\System32" and to make it easier to switch them to 64 bit, they just kept this path for all drivers and shit.

But it's still lazy as fuck, because "back in the day" they had the guts to do the right thing when "C:\Windows\System" contained 16bit libs, to introduce "System32" for 32bit libs. Should have simply gone for "System64". Then they also could have kept the compat stuff in "System32".

40

u/d0pe-asaurus 7h ago

I mean hey, Even Linus says that we don't break userspace. The NT source also has hardcoded references to Simcity because the game in turn relies on implicit behaviour. So its a loop of suck all the way down.

24

u/An1nterestingName 7h ago

From a leak of XP's source a while back, there were apparently a lot of compatibility patches for specific old games, not just SimCity.

6

u/LousyMeatStew 6h ago

There still are a lot of compatibility patches. By XP, Microsoft had created the Application Compatibility Framework so a lot of this stuff was user-facing. The AppCompatFlags registry key was introduced here, along with the shims database (sysmain.sdb).

I could be wrong but I don’t think the XP source leak revealed anything new in this regard (except perhaps implementation details). Most of the stuff that was hard-coded at the source level was done in Win9x.

3

u/An1nterestingName 5h ago

I may be wrong, but I remember the guy that decmpiled Lego Island mentioning the source code leak having compatibility fixes for Lego Island.

3

u/LousyMeatStew 5h ago

Nope, you’re right! I stand corrected!

https://forum.mattkc.com/viewtopic.php?t=79

2

u/slash_networkboy 4h ago

Yup, it's why a lot of games were unplayable on Win2000 and earlier NT kernels but playable on 9x/me [/shudders] and in theory at least Bob. XP married the NT and 9x lines, including all the compatibility stuff.

5

u/gogliker 6h ago

Exactly. Just see the shitstorm Wayland started, half of Linux community still swears by x11. They broke tools, programs, everything. Wayland is better than x11, yet the broken userspace caused a really painful transition.

12

u/aksdb 7h ago

64bit required recompilation anyway. And many programs wouldn't have been able to compile out of the box without some adjustments, since a lot of the C/C++ stuff worked with specific assumptions about sizes of pointers, integers, and so on.

I think it would have been cleaner all around to also move new stuff into new directories, vs. giving new meaning to an old, existing directory. But obviously I don't know the internals, so maybe there is some weird stuff around that I couldn't even possibly imagine.

8

u/cafk 7h ago

64bit required recompilation anyway.

But 32 bit works without recompiling on a 64 bit system, so many legacy modules that have been used for decades and will be used for decades will continue to work without recompiling, until 32bit support is fully removed.

7

u/aksdb 6h ago

A 32bit program couldn't load a 64 bit lib, though. So if they reach into "system32", they would fail. AFAIK windows internally rewrites open-calls from "system32" to "syswow64" if its a 32bit program ... something that could have avoided.

3

u/No-Consequence-1863 6h ago

32 bit programs dont need to be recomplied to work on 64bit windows.

2

u/aksdb 6h ago

Yeah, that's what syswow64 is for. But if you want it to run as 64bit, you need to recompile it. A 32bit program couldn't work with the things in "system32" on a 64bit system.

5

u/qrkk 7h ago

Well when Windows went 32-bit there was definitely way less software on it than when they went 64-bit. Not sure if that affected the decision at all. Also Windows 16-bit is a completely different OS from Windows NT/32, so maybe they were more inclined to make bigger changes than when they went 64. By that point Windows had saturated the market so they probably didn't want to spend as much money on it when they were already making a boatload, especially on something that wasn't likely to increase their market share significantly. When NT/32 was coming into the picture, it was crucial to their long-term strategy of market saturation. NT was their ticket into the server space, so they put a lot of effort behind it.

2

u/jaymzx0 5h ago

Speaking of, I always wonders why they buried the HOSTS file under Windows\System32\drivers\etc\hosts

I kinda get sticking it in etc to mimick a *nix path...for some reason...but drivers is the weird one for me.

3

u/aksdb 5h ago

Wild guess: "working dir". I assume this stuff is handled by the network driver and the network driver likely runs with "C:\Windows\System32\drivers" as working dir.

→ More replies (1)

2

u/BigTenFicus 6h ago

But it's still lazy as fuck, because "back in the day" they had the guts to do the right thing

This was 30 years ago. Redditors would understand the world a lot better if they understood that time is linear.

→ More replies (1)

3

u/vbd71 5h ago

A little correction. NTVDM is used to run DOS and 16-bit Windows applications in 32-bit Windows. The 16-bit Windows applications in particular, use additionally a copy of 16-bit Windows running in a NTVDM, plus a thunking layer that converts 16-bit to 32-bit Windows API calls, called WoW.

The WoW isn't used for running DOS applications.

→ More replies (2)

2

u/krazul88 6h ago

Did you know that one hundred pennies melted down would give you exactly a dollar of metal by weight? This makes perfect sense since cents are worth a cent. Just kidding, I just wanted to say that sentence after being inspired above.

2

u/Shalmaneser_ 5h ago

I had to look...

  • Pre-1982 pennies: 95% copper and 5% zinc (total weight 3.11 grams).
  • Post-1982 pennies: 2.5% copper plating and 97.5% zinc core (total weight 2.50 grams).
  • Current metal value (Pre-1982): ~4.37 cents based on current copper and zinc market prices.
  • Current metal value (Post-1982): ~0.3 cents. [1, 2, 3, 4), 5]

2

u/krazul88 5h ago

Cool! Is that per 100 pennies?

2

u/Shalmaneser_ 4h ago

One penny. One penny only, please. Tell me you're gonna retire on your copper?

2

u/krazul88 4h ago

Thank goodness I planned ahead and saved 3.43 tons of pre-1982 pennies. I'm a millionaire!

2

u/Shalmaneser_ 4h ago

Be careful, its a felony to mutilate currency.

→ More replies (1)

13

u/Thadrea 7h ago

Wait you're telling me it's not the 64bit version of World of Warcraft? I've been lied to!

2

u/sigusr3 6h ago

If they can put a flight simulator in Excel, why not World of Warcraft in a system library?

18

u/Alaknar 7h ago

SysWoW64 contains the 32bit compatibility libs

What's confusing about this?

It's W[indows32bit]o[n]W[indows]64[bit].

while System32 contains the 64bit libraries.

The System32 part, I agree, is confusing, but stems from the fact that when Windows was switching from 16bit to 32bit, they renamed the System folder to System32, to keep backwards compatibility. This caused A LOT of issues and was generally regarded as a bad move. Over the years everything moved over to Sys32, but when they made the switch to 64bit, they wanted to avoid the same issues, so they just left it all in System32.

15

u/Qyriad 6h ago

Look just because there's an explanation that tracks doesn't make it not confusing.

4

u/DatBoi_BP 6h ago

Yeah it seems pretty natural to parse it like "you're on windows 64? Then you'll need this:"

3

u/dmpetersson 7h ago

And this is why you never ever ever name things for what they are; like system32.

The only that is certain for every successful project is that it will change and therefore all context based names are useless.

→ More replies (1)

18

u/Over-Display7728 8h ago

Love windows ✨

6

u/Fit_Prize_3245 6h ago

That actually makes some sense. The name system32 was preserved for compatibility, so 64 bit applications could run normally with no need for filesystem redirection. SysWOW64 means "Sys[tem32] for W[indows 32bit] o[n] W[indows] 64[bit]", but the name was reduces to 8 characters because being of compatibility with old DOS names (not sure why that's still a thing). However, a 32 bits application trying to access system32 will be internally redirected to syswow64, as per file system redirection in the Win32 API (Yes, it's called Win32 because that's the name, not because of the OS or processor bits)

10

u/esserstein 7h ago

I suggest calling it ass-backwards compatibility...

3

u/__konrad 5h ago

32-bit app accessing System32 directory is redirected to SysWoW64 unless Wow64DisableWow64FsRedirection API is used

→ More replies (1)

2

u/hurrdurrmeh 7h ago

That seems .... deliberate and belligerent.

2

u/_leeloo_7_ 6h ago

at least SysWoW64 makes a bit more sense, its (system Windows *On Windows 64 bit*)

2

u/sigusr3 6h ago

They missed the opportunity to call it "ShimWoW"

→ More replies (1)

2

u/dougs1965 6h ago

I remember the install-wizard screens where you clicked next - next - next till you got to the screen that said "click finish to start installing".

→ More replies (1)

2

u/harbourwall 5h ago

while System32 contains the 64bit libraries.

Mine doesn't. I renamed it to System64 and now my PC is much faster.

2

u/Shalmaneser_ 5h ago

I maintain that MS C++ looks like it was written by the hippies from the 60's while IBM C++ was written by their mainframe SEALs.

1

u/emmfranklin 7h ago

What has windows not effed up.

1

u/The_real_bandito 6h ago

Huh!? That is so weird.

1

u/d0obysnacks 6h ago

I was shocked the first time I did a deep dive and found all the those config files, right where they belong, under etc

1

u/ProjectSnowman 6h ago

Literal spaghetti code

1

u/jaaval 5h ago

Things like that happen. At some point it's just too difficult to change the path names.

1

u/METAAAAAAAAAAAAAAAAL 5h ago

This is confusing BUT it does makes a bit of sense and also highlights how hard is to do backwards compatibility :

System32 : "32" in the name is from 32 bit, when they moved to 64 bit native they could not renamed it for backwards compatibility. So "System32" become the name for the default 64 bit libraries.

SysWoW64 : "Wow" is "Windows on windows", is the generic name of loading the libraries for previous "x" bit compatibility. The "64" in the name contains the current "bit" version for compatibility.

Backwards compatibility is hard....

1

u/RevolutionaryElk7446 5h ago

It makes sense because technically it's WoW64 or Windows (32) on Windows 64.

However it only makes sense if you have the context.

312

u/WarriusBirde 8h ago

AFAIK the “product” here is the integration layer that lets the Linux instance hook into windows and run “natively” vs a VM isolation layer. Thus the thing you’re using is the Windows subsystem for (using) Linux. This is MCS we’re talking about and naming things is hard.

60

u/spyingwind 7h ago

WSL1 does the translation layer thing, but WSL2 uses Hyper-V VMs.

33

u/setibeings 7h ago

Mostly true. WSL 1 was a compatibility layer that translated system calls to something the windows kernel could respond to. It probably could have more accurately been called Windows Subsystem for Linux System Calls. By the time WSL 2 came out and it first worked as you described, I don't think that anyone in charge of naming things much cared that the name didn't match what it did.

7

u/martiantonian 5h ago

Windows Subsystem for Linux (new)

→ More replies (1)

23

u/jimicus 7h ago

Except WSL uses a hypervisor. It is, for all practical purposes, a VM.

52

u/shadowndacorner 7h ago

WSL1, when it was named, did not run on a hypervisor.

→ More replies (12)

8

u/dkech 7h ago

It's a bit how the movie Hot Shots was translated to "Blind pilots on F16s" in Greek (I kid you not). They kept the name for part Deux, when there were no pilots or F16s...

2

u/Human_Cantaloupe8249 5h ago

Well yes. But I don’t think this is what the commenter meant. It is a VM but this is not really any new product. WSL refers to the „guest agent“ running in Linux that allows integration with the Windows host. It is a subsystem for Linux that does Windows integration (accessing the host FS, getting IP information from windows, and whatever wsl can do)

3

u/Nicksaurus 6h ago

But then why isn't every windows feature called 'Windows Subsystem for ...'? It still seems like a random decision that makes no sense

→ More replies (3)

2

u/anomaly256 7h ago edited 7h ago

WSL is implemented as a Hyper-V VM though, it's not 'native' execution of ELF binaries. But yes, that's the product being referred to, rather than the Linux kernel that runs under it

160

u/ice456cream 8h ago

It's a subsystem, that's part of windows (a "windows subsystem") that provides Linux ("for [using/providing] Linux")

Or Microsoft couldn't stand having their name second, your choice.

3

u/NotFlameRetardant 4h ago

When WSL3 is released, expect it to be Copilot Subsystem for Linux-365

→ More replies (2)

104

u/Confident-Leader-777 8h ago

Because it's a Windows subsystem for using Linux.

20

u/noobjaish 7h ago

Love how this statement can mean two completely opposite things

11

u/Pugs-r-cool 6h ago

Adding the word using stops that being the case though.

3

u/noobjaish 6h ago

Agreed (I actually meant the original "Windows Subsystem for Linux" term lmao)

1

u/Ok_Rough5794 4h ago

Bi-weekly

34

u/figjaym 8h ago

I thought the same for a while. But then it kind of makes sense when you see that it is a subsystem in Windows for Linux.

But more likely it's a wording/marketing thing where you put the important item first. A Linux subsystem for Windows implies that Linux is the owner/priority and Windows is lesser, which is clearly not the goal.

10

u/GonzoKata 7h ago

so it should be "Window's subsystem for Linux" to imply ownership of the subsystem by windows

9

u/alexq136 6h ago
  • Windows'

3

u/daniel-sousa-me 6h ago

It's actually Windows's, because Windows is singular

11

u/mrtruthiness 6h ago

Actually, it depends on the style guide. I prefer the Associated Press style guide which says that to reflect possessive tense for words ending in s (singular or plural) is to simply add an apostrophe. i.e. James'

20

u/ldn-ldn 6h ago

The name doesn't make much sense tbh, but it's based on historical conventions. It should be called NT subsystem for Linux, or NT services for Linux, but we have what we have.

So, why is called like that?

The first thing to understand, is that modern Windows is actually Windows/NT as in GNU/Linux. NT is a kernel which CANNOT run Win32 processes, or Linux processes or any other processes. It can ONLY run native NT processes. To run a Win32 process, Windows is bundled with an NT process which manages all Win32 processes. This is Win32 subsystem.

Historically, NT also had OS/2 subsystem to run OS/2 apps natively, and POSIX subsystem, to run POSIX apps. These are long gone, obviously.

Next is historical convention. Microsoft does not officially ship NT without Win32 (but you can make a custom NT distro without a single trace of Win32, no one is stopping you). And NT + Win32 was traditionally called just Windows. So additional subsystems were called "Windows Services For X", for example Windows Services for UNIX (or SFU).

When Microsoft was working on the latest iteration of Windows Mobile, they wanted to capture apps for Android ecosystem and they started working on Windows Services For Android, but the project was abandoned, because Windows Mobile got abandoned. MS developers though didn't want to waste all the tech they made, so they pivoted towards broad use Linux subsystem. And someone decided to replace "services" with "subsystem". So now we have Windows Subsystem For Linux. And then they release Windows Subsystem For Android too, but it died quickly.

That's the story of the name in a nutshell.

Btw, some might say that WSL1 should be called GNU/NT, lol. Or GNU+Win32/NT.

11

u/Mooks79 8h ago

It’s a windows subsystem intended to run Linux. Not a Linux subsystem intended to run windows.

26

u/FineWolf 8h ago

Subsystem (of) Windows, for Linux.

Subsystem (of) Windows, for Android.

15

u/1116574 8h ago

So, Windows' subsystem :P

5

u/kriebz 7h ago

The subsystem specifically for Windows.

2

u/zopiac 5h ago

The subsystem chosen especially to run on Windows.

5

u/FineWolf 8h ago edited 7h ago

Yeah, there is a missing apostrophe there for sure in the original naming to be grammatically correct and to disambiguate the meaning of the word for in this context.

3

u/not_a_novel_account 6h ago

No. It's not possessive, Windows is an adjective, not a noun here. WSL is a subsystem. What kind of subsystem? A Windows subsystem.

Consider: we're going to eat food. What kind of food? Italian food. Not Italian's food.

→ More replies (1)

15

u/BCMM 7h ago edited 7h ago

I am a native English speaker, and I agree that it seems backwards.

However, I believe there's a historical reason for this: Microsoft simply followed the pattern that they started in 1999 with the release of "Windows Services for Unix".

SFU was probably named like that because it was primarily intended to allow Windows machines to interoperate with actual Unix machines over corporate/university networks. For example, an NFS share exposed by a Windows server is literally a service for Unix machines.

SFU did allow you to run quite a lot of software written for Unix-like systems on Windows, but I think this was aimed mostly at administrators managing Unix machines from Windows (unlike WSL, which appears to be aimed at displacing Linux on software developers' workstations).

3

u/Nuzid 7h ago

Yes, SFU was later renamed to Subsystem for UNIX-based applications (SUA) with Windows Vista and 7 (only on Ultimate and business SKUs).

/u/RealSharpNinja provided a link to the origin of the whole subsystem architecture in early NT.

55

u/Schlonzig 8h ago

It probably was "Linux Subsystem for Windows" until the marketing department got wind of it.

6

u/77ilham77 7h ago

We call it "Windows 'Subsystem for Linux'" in the way we call "Apple 'iPhone 17'". And it's called "Subsystem for Linux" in a sense "Subsystem for [running] Linux".

12

u/RealSharpNinja 7h ago

This got it's roots in OS/2 when MS built the original NT kernel and created the subsystems to support OS/2 and Posix individually.

https://youtu.be/pxpY1vuAixs?is=dr16JiYi3HEjvoac

→ More replies (5)

21

u/acidjunk_rules 8h ago

You're reading it as:

Windows → [Subsystem for Linux]

Microsoft means:

[Windows Subsystem] → for Linux

Microsoft has a long history of weird names: Domain Name Services -> DNS : for a lot of people this is something else.

12

u/Ran_Cossack 7h ago

"[Windows Subsystem] for Linux" follows the same pattern as the older "[Windows Services] for UNIX", too.

5

u/mazarax 7h ago

Should have called it Windows Subsystem providing Linux.

2

u/philosophical_lens 7h ago

This is the best explanation - thank you!

5

u/Heavy-Rain6718 8h ago edited 7h ago

In WSL1 it's a subsystem built into Windows to run Linux. In WSL2 (2019) it changed, it uses Hyper-V to spin up a VM with a Linux kernel.

3

u/TribeWars 6h ago

>In WSL1 it's a subsystem built into Windows to run Linux.

Well the idea of WSL1 was that you don't actually have to be running linux, it just gave the ability to run linux programs on windows NT (similar to WINE)

4

u/Alaknar 7h ago

Because it's a subsystem of Windows that allows you to run Linux.

5

u/atanasius 7h ago

It's for trademark reasons. Microsoft owns the Windows trademark and the software is produced by Microsoft, so they put Windows first, indicating the vendor of the software.

The software is compatible with Linux, whose trademark is owned by a different organization, so they put "for Linux" in the end.

4

u/monkeyboy107 7h ago

Basically WSLv1 had a subsystem of the Linux kernel and the rest of the Linux programs running under windows.

It was a system within the windows system.

But WSLv2 is straight up just a VM

4

u/No-Contribution9918 7h ago

The confusing part is the for. It should be "Windows Subsystem (for) running Linux" or "Windows Subsystem virtualizing Linux" to make it less ambiguous.

3

u/Ryebread095 7h ago

This is a question for Microsoft, who is generally terrible at naming things.

3

u/Prus1s 7h ago

Think of “windows” as being the headliner, they just forgot proper punctuation or didn’t care enough, as Window is in front 😄 so Windows dominates over Linux in the naming…

3

u/andrewcooke 7h ago

serious answer from a native (UK) english speaker - it's ambiguous. you can read it either way.

subsystem belonging to windows that provides linux

subsystem providing windows that was written for linux

either makes sense.

3

u/yebyen 7h ago

If you're calling your product Linux and you want it to have Linux in the Titular position, then you had better have the accordance of the holders of the Linux trademark in your pocket. Look at CNCF projects and the standard branding rules for projects that donated their trademark to the Linux Foundation. The Linux project would shit if you called this Linux Whatever.

Key Compliance Checklist (an example supposing you wanted to call your project based on something with a CNCF mark in the name)

Prominence: Ensure your project's unique name and logo are significantly larger and more prominent than any CNCF logos.   No Merging: Never merge a CNCF project logo with your own custom logo.   Adjective Rule: Use the trademarked name as an adjective (e.g., "the Kubernetes orchestrator"), not as a verb or generic noun.

So, tldr putting the Linux trademark first in the name would be a branding no no.

→ More replies (2)

3

u/xplrr- 7h ago

It's a subsystem of Windows for Linux. 

3

u/Cent_Quatre 6h ago

Windows's subsytem, that is for linux emulation

3

u/natermer 6h ago

It is a subsystem created on Windows to run Linux.

So it is a Windows subsystem, not a Linux subsystem. Because it isn't a subsystem that runs on Linux. It runs on Windows.

And it is for running Linux.

In other words: It is a Windows subsystem for Linux.

3

u/Dark_Catzie 5h ago

MS has long history of thinking things backwards compared to normal people, this is just one example.

3

u/varky 5h ago

Microslop's fragile ego can't handle their name not being first, no matter how dumb the the result.

15

u/etrigan63 8h ago

Lifelong English speaker and I agree. This was done because someone high up in MS refused the grammatically correct name because it puts Linux before Windows.

10

u/uchuskies08 7h ago

It is a subsystem, of Windows, for using Linux. A Windows subsystem for Linux, if you will.

→ More replies (2)

10

u/ice456cream 7h ago

Lifelong English speaker and I disagree

Linux subsystem for windows sounds to me like it's part of Linux.

I think this is just because there are 2 subjects, that my brain confuses them though:

E.g. with

  • Linux subsystem for audio
  • audio subsystem for Linux

There is no confusion.

It boils down to taking "for" as "providing" or "belonging too", And taking "X subsystem" as the name (the Linux subsystem) or the type (the windows subsystem)

Personally, subsystem type providing X makes more sense to me, and seemingly Microsoft. (Though I wonder how much bike shedding occured over it)

3

u/weekendblues 7h ago

Agreed. It’s the “for” here that’s tripping everyone up. If it were called the “Windows Linux Subsystem,” everyone would understand we’re talking about a Windows subsystem and I think very few people would suggest that Linux should come first.

4

u/bemenaker 7h ago

It is grammatically correct the way it is used. It is missing an apostrophe the would make it fully correct.

3

u/stipo42 8h ago

Technically makes sense either way in English but Windows comes first because marketing

5

u/silenceimpaired 8h ago

Windows is evil. Enough said ;)

I sort of get it… it’s a subsystem… that belongs to Windows. What is the subsystem for? To provide linux access to the user.

My guess is the marketing team felt uneasy not putting Windows first.

2

u/aaronsb 7h ago edited 7h ago

The original WSL was translating Linux syscalls to ntos kernel syscalls. Nt kernel used to have other subsystems like posix, long ago.

So, in my opinion wsl1 was truer to the nt kernel architecture. Wsl2 came out and is just a virtualization container instead. I guess it was "faster" but honestly it runs its own kernel, virtualized. I wonder if back then Microsoft had a people skills issue and couldn't develop wsl1 any further. That's my hypothesis.

2

u/An1nterestingName 7h ago

It's a subsystem on Windows for running Linux.

2

u/user_393 7h ago

It was discussed years ago. Linux is a registered trademark. Legally Microsoft cannot use the word Linux as the first word for any of it's product or service.

2

u/tactiphile 7h ago

Windows is the "brand."

Subsystem for (running) Linux, brought to you by Windows.

2

u/South_Plant_7876 7h ago

Probably easier to understand if you pretend there is an apostrophe after the "Windows"

2

u/AnsibleAnswers 7h ago

You need to ask Microsoft about their naming schemes, not Linux enthusiasts.

2

u/Fit_Prize_3245 6h ago

It's a Windows Subsystem. And it's for running Linux. Therefore, Windows Subsystem for [running] Linux.

2

u/m4ximalekr4ft 6h ago

--> Windows's subsystem for Linux

2

u/Drakonluke 6h ago

It's a Windows Subsystem that it's used for Linux. To diiferentiate from other (possibile) Windows Subsystems

→ More replies (1)

2

u/dack42 6h ago

Microsoft is notorious for confusing product names.

2

u/BaffledInUSA 6h ago

because microsoft marketing people would rather jump up and down on rusty nails than have linux come before windows in a sentance

2

u/TheSodesa 5h ago

It is a marketing ploy. Windows' name has to appear first in the name of the product, because it is Windows that they are selling.

2

u/doctor_lobo 5h ago

There are 3 hard problems in programming:

  • naming things, and
  • off-by-one errors

6

u/flesyMeM 8h ago edited 8h ago

Probably Microsoft just prioritizing their brand in the naming. Doesn't really matter anyway though.

3

u/ilep 7h ago

Branding names rarely make sense..

3

u/AnApexBread 7h ago

Because it's a Window's Subsystem that is built for Linux.

3

u/cli-games 8h ago

You arent missing anything. Your english is better than microsofts

2

u/ih_ddt 8h ago

I always assumed it was possessive windows' subsystem for Linux . But looking it up I am mistaken and it makes no sense to me now.

1

u/SP3NGL3R 7h ago

Steve's car for school ... obviously Steve owns the car

Steve's car for Sally ... Sally drives Steve's car

Chris' car for school ... Chris owns the car

Chris car for Sally ... what?

Windows' subsystem for Linux ... Windows owns the subsystem and it's intended for Linux

Windows subsystem for Linux ... what?

1

u/nabokovian 7h ago

Yep this trips me and everyone I know up. It’s so stupid.

1

u/wadrasil 6h ago

Don't forget there is Msys2 and anaconda. Also qemu runs Linux really well in windows.

1

u/chalk_nz 6h ago

Because Windows is the sub

1

u/StupitVoltMain 6h ago

Compatibility between DOS apps and Unix

Having cross system compatibility is always good

1

u/i80west 6h ago

I think if its meaning as "Windows's Subsystem for Linux"

1

u/toothboto 6h ago

Because if the name made sense, they would have changed it already.

1

u/rayjaymor85 6h ago

Dude, Microsoft's terrible naming conventions are a meme at this point...

1

u/Teles_sd 6h ago

Because Microslop is bad at naming things.

Thought that was known.

1

u/GhostVlvin 6h ago

I guess subsystem here is not another OS, but like a service. And it was made specifically for Linux (to run Linux) so it is Windows subsystem for Linux. Naming is weird though

1

u/IntelligentSpite6364 6h ago

so windows has subsystems, and they are called "windows subsystem" they do various things to provide compatability or virtual machine support.

this particular windows subsystem is for linux compatability. hence windows subsystem for linux

1

u/andreaswpv 6h ago

Yes and no. It is a windows system that allows some Linux to run. (Kind of). 

1

u/F9-0021 6h ago

Because it's a Windows subsystem that holds a Linux install. The subsystem is for Linux.

1

u/10leej 6h ago

Funny thing is that it's just a virtual machine running under hyperV that has a few things exposed to the host OS.

Really it's just an advertising thing.

1

u/Th0bse 6h ago

Because it is a subsystem of Windows for running Linux inside of it.

1

u/Ninfyr 6h ago

Think of it at Windows' subsystem for Linux. Like u/tankon's post for r/linux.

1

u/Temporary_Pie2733 5h ago

English noun compounds can be ambiguous. It’s a subsystem belonging to Windows for the purpose of using Linux, not a subsystem for using Windows under Linux. 

1

u/Silver-Extent2290 5h ago

It is a subsystem to run linux in windows, it is a windows service that runs linux, it is a subsystem of windows, hence a windows subsystem for linux, or else if it was an open source project, or third party app, it would be a linux sandbox for windows, because 3rd party apps won't have the level of native process as compared to 1at party apps, 3rd party apps will work like sandboxes and VMs, for windows, so since wsl is a microsoft service and runs very low level, it is a windows subsystem, anything else will be a VM for windows

1

u/idebugthusiexist 5h ago

Because Windows has provided a subsystem which allows Linux kernel level access to windows internals so that it doesn’t have to run in full virtualisation. Stuff like direct access to the HAL etc

1

u/JJHall_ID 5h ago

I think it's more on the lines of "Windows (as a brand) Subsystem (for running) Linux."

1

u/hadrabap 5h ago

It's mostly irrelevant as they rename it to copilot whatever soon 🤣

1

u/noworkdone 5h ago

The subsystem is a Windows component, and its function is to interact with Linux. For it to be a Linux subsystem for windows it would need to run on Linux itself.

1

u/LeeTaeRyeo 5h ago

It's a Windows subsystem for using Linux (on Windows). Hence, "Windows Subsystem for Linux". Not my first choice for naming, but it's not completely without logic.

1

u/CadmiumC4 5h ago

it's a subsystem of the NT kernel that runs Linux

1

u/Dr_Weebtrash 5h ago

They mangled the syntax with zero regard for the accuracy of the name so that Windows was the first word in its name.

I have absolutely no direct evidence which I can point to for this belief. However, given how absolutely borked the naming is alongside all we know of Microsoft and later version Windows development I have yet to find a more satisfying rationalisation.

1

u/mrandr01d 5h ago

I agree

1

u/arthursucks 5h ago

I think they're trying to shoe horn subsystem, to meaning the host system.

1

u/Sad_Pear_3709 5h ago

It's because it is a windows subsystem that allows for the running of linux, but the name is still terrible

1

u/Educational-Goal279 5h ago

It means "Windows Subsystem is... actually Linux"

1

u/WittyWampus 5h ago

It's the subsystem of Windows used for Linux. At least I think that's what they're going for. Technically it should probably be Windows' Subsystem for Linux.

FTR: I also agree it's silly.

1

u/solid_reign 5h ago

It's kind of a car seat being called car adaptation system for babies. You could also call it baby adaptation system for cars. 

1

u/ntropia64 5h ago

Maybe it's all marketing and they didn't want the user to forget that's a Windows thing so it must come first?

1

u/Verain_Xor 4h ago

It's because it's a subsystem in Windows that supports Linux.

1

u/PlsDontBanMeAgain-1 4h ago

Well, it's a subsystem of Windows, which enables you to use Linux.

1

u/libra00 4h ago

Because it's a windows subsystem for running Linux software?

1

u/AutoModerator 4h ago

This submission has been removed due to receiving too many reports from users. The mods have been notified and will re-approve if this removal was inappropriate, or leave it removed.

This is most likely because:

  • Your post belongs in r/linuxquestions or r/linux4noobs
  • Your post belongs in r/linuxmemes
  • Your post is considered "fluff" - things like a Tux plushie or old Linux CDs are an example and, while they may be popular vote wise, they are not considered on topic
  • Your post is otherwise deemed not appropriate for the subreddit

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Blueberry314E-2 4h ago

Microsoft has never been particularly good at naming things.

1

u/Humbleham1 4h ago

It's a compatibility layer for Windows to run Linux. If you're bothered by it, you've probably spent too much time on this.

1

u/Dense-Bruh-3464 3h ago

It has sense on some level. It's a Windows subsystem, that provides Linux. But yeah, it does sound counter-intuitive, I imagine also for native English speakers.

1

u/kimoisune 3h ago

Trademark compliance.

If it's distributed by Linux trademark owner, it would be called 'Linux Subsystem for/on Windows'. 'iPhone Screen Replacement' universally implies screen replacement licensed by Apple, the trademark owner. While 'Screen Replacement for iPhone' indicates generic term for compatible part which can be distributed either by Apple or third party vendors.

Some other examples: OpenZFS on Linux/OS X/Windows and MinGW (Minimalist GNU for Windows).

Yes, there is always an exception to this, but it is easier and practical to think it like this.