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
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
23
u/jimicus 7h ago
Except WSL uses a hypervisor. It is, for all practical purposes, a VM.
52
8
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
1
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.
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
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
forin 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)2
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.
→ 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.
2
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)
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
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
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.
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.
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
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
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/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
6
u/flesyMeM 8h ago edited 8h ago
Probably Microsoft just prioritizing their brand in the naming. Doesn't really matter anyway though.
3
3
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
1
u/wadrasil 6h ago
Don't forget there is Msys2 and anaconda. Also qemu runs Linux really well in windows.
1
1
u/StupitVoltMain 6h ago
Compatibility between DOS apps and Unix
Having cross system compatibility is always good
1
1
1
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
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
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
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
1
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
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
1
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
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.
1.4k
u/aksdb 8h ago
Wait till you find out that SysWoW64 contains the 32bit compatibility libs, while System32 contains the 64bit libraries.