It's because Windows uses the concept of subsystems for lots of pieces of its architecture. If you look at a process listing, you'll see lots of processes named "*ss.exe", where the "ss" stands for subsystem, like lsass, csrss, smss, etc.
Also back in the day Windows supported POSIX as a subsystem and some others as well. Each one was considered a Windows subsystem for that specific architecture. And now that there's one for Linux, we get WSL.
Absolutely is. I think I remember reading the theory it was to do with MS naming it such that Windows came first, and Linux last, regardless how confusing.
With “Linux Subsystem for Windows”, the owner of the Linux trademark could hypothetically sue Microsoft arguing that consumers could misinterpret the name as meaning a part of Linux, or an official Linux product.
“Windows Subsystem for Linux” unambiguously implies only that the software is compatible with Linux, not that it’s affiliated with it. (It still uses the trademark, but in a way that would be considered descriptive fair use.)
It’s not like there’s any real chance the trademark owner in question, the Linux Foundation, would actually sue Microsoft over this, but lawyers tend to prefer safe over sorry.
Same as "PHP for Windows", it's not a problem if the trademark owner agrees. And they typically would if the thing is the actual Rust / PHP running on Windows.
The problem with "Linux subsystem for Windows" is that the Linux people were not involved and the thing isn't a normal Linux. So there is much more risk of a trademark dispute in that case.
If I'm not mistaken, the "rust people" were not involved in "Rust for windows". It's just a normal rust crate which wraps the windows API, developed by Microsoft.
That's part of what makes this kind of naming so confusing. "Rust for Windows" sounds like some kind of development in the rust language in the direction of supporting windows, but it's just a library.
I can imagine a trademark holder taking issue with something like this. For instance, imagine the Ford auto compnay marketed their USB port, which you can plug an iPhone into, as "iPhone for Ford Trucks".
What does that even mean? "Rust implementation of the Windows SDK API", or "Rust Wrapper for the Windows SDK" would make sense, but this phrasing is completely foreign to anyone doing software.
All of these still sound awkward. "Windows Audio Subsystem", or "Audio Subsystem for Windows" both sound better. The fact that it's an audio subsystem is more descriptive than the fact that it's a windows subsystem, so it sounds strange to group it the other way.
> The fact that it's an audio subsystem is more descriptive than the fact that it's a windows subsystem, so it sounds strange to group it the other way.
We say that English is "right-headed" for this reason - an audio subsystem is a kind of subsystem, not a kind of audio.
Interestingly, there are a few established words, derived from verbs, like kiss-ass or pickpocket which have things the wrong way around; the prediction from right-headedness would be pocket-picker.
Almost certainly not. For pickpocket we could say that it's an old word, and maybe English had a weaker preference for right-headedness when it arose. But that's more difficult for kiss-ass.
I wonder if they left out a few words. The Windows subsystem for using audio. The Windows subsystem for using graphics. The Windows subsystem for using modems. (I made those up…I think)
Apple iPhone vs iPhone for Apple. Microsoft Office vs Office for Microsoft. Google Chrome vs Chrome for Google. Corporations are reluctant to put "products" without their brand name first. And they intetpret "products" as literally anything anybody with a wallet can identify. WSL makes the list.
Windows subsystem for Linux is a product. Just like Apple iPhone is a product. Just like Apple iCloud is a product. Nobody names their products with their company name at the end.
The dumb part is that they insist on including "Windows" in the name. What other subsytems would you have in Windows than Windows subsystems? The Windows part is implied. Otherwise it would not be a _sub_system, right? The only reason it is there is because some marketing idiot wanted more branding.
So the Linux subsystem should be called... Linux subsystem. Searching on Google would lead to type "linux subsystem for windows" and it would not be hard for Google to direct you to the right Microsoft website.
>The dumb part is that they insist on including "Windows" in the name. What other subsytems would you have in Windows than Windows subsystems? The Windows part is implied. Otherwise it would not be a _sub_system, right? The only reason it is there is because some marketing idiot wanted more branding.
It's not dumb to them. Microsoft is not a tech company.
Microsoft is a marketing/sales company that happens to market and sell the software, services and hardware that the company makes.
It could be a subsystem for any one of the programs that run on Windows. For example, if it were virtualized in the browser, it could be called "Edge Subsystem for Linux". With the name WSL, the fact that it's baked directly into the OS is clear.
I don't understand the confusion. I thought it was called WSL because WSL1 was just that - a Windows subsystem that acted as a sort of compatibility later for Linux. And then when they released WSL2 (which replaced the old model with a Hyper-V accelerated VM running Linux), there was no real reason to rename it and create confusion.
For is the most confusing word here. In most CS and product sense, 'for' means, well, intended for. Books for nerds. Language for newbies. The predicate is the audience. There's an entire 'for Dummies' line. Windows for Dummies is not...some dummy system of Windows.
Windows xSystem for Linux is not for Linux. It's for Windows.
Clickbait has made it's way into MS naming. I remember being filled with joy when reading the title of the Windows Subsystem for Linux announcement. You can imagine my disappointment and I was probably not alone.
English's spec doesn't really define precedence for operators vs. function arguments. Adding parentheses makes it clear: Windows (Subsystem for Linux) vs. (Windows Subsystem) for Linux.
Playing devil's advocate, one could argue, especially in the case of WSL2, that it's a Windows subsystem that allows Linux to run particularly well by providing virtual devices etc which can be accessed from the Linux VM. It's a bit of a stretch, and Microsoft's true motivation for the naming is almost certainly different, but hey, an argument can be made ;)
I assumed this was because they wanted “windows” to be before “linux” in the name, either just for marketing or to indicate that †he one is running beneath the other one — completely ignoring that it’s nonsensical.
From the title I thought this would be a tongue-in-cheek project, basing itself on the joke that no-one running Linux would actually prefer a DOS shell.
Also, I discovered to my surprise that the Download links still work - in the literal, upstream, sense. You can strip off the Web Archive prefix, request the direct image links from Google, and they promptly download (because of "content-disposition: attachment"). How interesting (at the very least), lol.
That is a nice story about open source to the sad but not so bitter sounding (BOO-YAH!) end.
I am not a user (or even Gnome user), but FWIW, I looked and Adrian's eog_window_cmd_copy_image is still there almost 11 years later, only renamed in a minor way ("cmd" -> "action").
I am no expert on its churn, but the Eye Of Gnome project seems still quite active (last commit yesterday). That file src/eog-window.c itself has already had more commits since his patch than before it.
{ Not to suggest that code durability/quality is (or was) the whole point, but I thought being less "tears in rain" than it might have been took the inspirational factor up a notch and so seemed worth sharing here. }
Sorry for your loss. Lost mine when I was 17, I know the feeling. Hope the "Easter egg" brings you some comfort.
A long time ago, during a night I couldn't sleep, I started thinking on the simplest way to calculate the volume of a torus without resorting to integrals. After a time I found a way to "turn it into a cylinder without changing its volume". Then went to my father's copy of "Simmons' Calculus with analytic geometry" to check my idea. How surprised was me to see that my father had had EXACTLY the same idea and left it written on the margin of the book!
That moment I saw how careful he was to model my way of thinking to be so similar to his. I'll be eternally grateful for that.
Hmm. Thinking about it as an integral of cross sections, the torus is just a cylinder with height equal to the circumference of the circle that defines the center of its tube. And I see that that is correct, at least for non-weird tori.
> [For a non-weird torus,] The volume of this solid torus and the surface area of its torus are easily computed using Pappus's centroid theorem
> These formulas are the same as for a cylinder of length 2πR and radius r, obtained from cutting the tube along the plane of a small circle, and unrolling it by straightening out (rectifying) the line running around the center of the tube.
> The losses in surface area and volume on the inner side of the tube exactly cancel out the gains on the outer side.
Emphasis mine; that third sentence is weirding me out. Still thinking about it as an integral of cross sections, I can't see why the surface area or volume of the inner half of the torus should be different from the surface area / volume of the outer half. Are they?
As far as the whole WSL topic, I wonder how this is going to play out long-term for MS. I understand why MS' hand was forced to streamline *nix development workflows on Windows in order to retain any relevance in modern software development, but what's the incentive to run windows at all if it's just a host environment for the OS where you get the real work done?
I guess there's proprietary software, but for instance Proton is getting good enough that this might not be a major selling point for so much longer.
For non-technical users, linux is a ways off from being a serious option as a daily driver. But as a developer, why on earth would I choose Windows over Linux in 2021?
There are too many different types of "developers." I read about all these people talking about playing AAA games being a concern on work computers, and that is not something I have ever even considered. A gaming computer that I own is totally separate from a work computer that my company purchased for me. I would expect even a solo dev would want to cleanly separate work and play, but I guess not.
As to why you might still need Windows on a work computer, Office 365 is still limited compared to native Office, but of course Microsoft is pushing everyone to stop using native Office anyway. I still haven't found a way to sign a pdf with a smartcard on Linux yet, which is literally the only reason I still need Windows because of account provisioning workflows that haven't gone full auto yet and still require pdfs digitally signed with a smartcard. The other reason is your employer requires a Windows computer because you're in a big company with an IT department that requires remote management agents, which exist on Linux, but are a lot more mature and common on Windows. The final really obvious reason is you need to target Windows as a platform or both Windows and Linux and find it easier to put a Linux VM in Windows, especially now that WSL exists and does it for you, rather than the other way around.
I do wonder what hardware people are still having issues with. I can understand if you're using something like Arch that comes with almost nothing in the base system and expects you to know what packages you need for your peripherals, but for a kitchen sink distro like Fedora or Ubuntu, they seem to pretty much just work at this point. I've run them on laptops, with external monitors, external webcams, wireless keyboards and mice, Bluetooth headsets with microphones, eARC soundbars, WiFi 6, smartcard readers, NVIDIA GPUs, using a television as a monitor. Every single one of those things "just worked" the first time I plugged it in.
The only hardware issues I have had in the past two years are:
1. aRGB LED controller software and PWM fan control software only runs on Windows because the vendors don't use open standards and don't make Linux versions of their proprietary software
2. Microsoft Teams on Windows never seems to work with a Bluetooth microphone, but every other program that accepts audio input uses it just fine
> I still haven't found a way to sign a pdf with a smartcard on Linux yet, which is literally the only reason I still need Windows
<nerdsnipe>oooooooo, Interesting™</nerdsnipe>
I toyed around with smart cards a little while back after discovering a reader in an old laptop's PCMCIA slot (yes, I said old, shhh :P). A truly fascinating and horrendously broken/fragmented ecosystem.
This honestly sounds fun to figure out... but that's almost certainly cuz I haven't repeatedly banged my head against the wall for however many hours/days/weeks ;)
My friends who use WSL have gone the other way. Instead of dual-booting Linux and Windows they now don’t see a need for Linux. Why use compatibility layers like Proton when you can just have Windows?
It's funny because most people I know have gone exactly the other way. Why use nosy and intrusive Windows when you can run all your games directly in Linux?
Windows is mostly the default; if you buy a computer it comes with Windows, if your employer gives you a computer it comes with Windows and with some employers you aren't even allowed to replace the OS, so having compatibility with Linux (and Android?) is a plus for devs.
Another advantage is that the drivers for Linux might not yet exist or be stable, while the proprietary Windows drivers probably exist and work.
Being the default isn't a strong argument if Windows is just a means to get to a linux dev environment. If all you are is a middleman, sooner or later people figure out they don't really need you.
That was how OS/2 lost. After Windows became more popular they marketed themselves as being a better way to run Windows, and at the time it was true, it was more stable, did proper multitasking etc.
But, people didn't care. OS/2 didn't actually provide any real features, and there wasn't much OS/2 software out there so it didn't take long until it was irrelevant.
Granted, in the case of WSl things are less obvious, but Windows really needs a hook to keep developers in. But all I see is new features allowing you to run GUI software in WSL as well.
As someone who has disliked Microsoft since a few years long time, it's amusing to see how the things changed.
It's hardware.
I really wanted to use linux as my main OS, but my logitech wireless mouse with additional buttons and ability to switch DPI suddenly became basic 3 button mouse. I get no information when my headset battery is low for example.
Also don't even start about laptop experience. Poor battery, bluetooth issues, unable to change display brightness. Now I have newer thinkpad which is linux certified and most problems are gone, but for example trackpad experience is still much much worse than on windows.
Yes, maybe I could spend numerous hours to find/develop workarounds and money to replace all my hardware with linux compatible one, but why when I can use OS which works with everything I plug in and also use all linux software I need in WSL.
Because it mostly just works. I don't want to spend time that could have been spent doing actual work debugging random hardware and software issues. I also don't like MacOS (or apple hardware in general). WSL provides an excellent middle ground, a stable OS, that just works and has excellent hardware and software compatibility while also giving you a full Linux environment.
I like Linux and do run various distros on home pc's and old laptops. I've tried using it on work laptops many times (last time a few years ago) and end up getting frustrated after a while with lack of compatibility, broken drivers, poor battery life, etc and go back to Windows and get on with stuff uninterrupted.
Deeply ignorant remark. I'm going to quote it so you can't weasel:
> Yes I have never heard of Windows described as a "just works" experience. There's a whole IT industry built on top of Windows' flaws
I hate bullshit. I hate lies and bullshit.
I regularly see uptime over a year on Windows servers. Longest I've seen is 1200 days. I'm sure we've got longer in the crusty governmental section.
These boxes aren't falling over, I see them when someone notices they are unpatched, which ought to tell you everything about the effort required to operate them. Some grunt had "done the needful" and they just sat there serving pages until we brought them into patch management.
These boxes are worth every penny of the license because they just work. I have in no way run out of steam, I can continue for hours. Let's discuss the oom killer, shall we? Or how about "fix permissions" on Mac, if that's still a thing that Geniuses get paid for?
Like, what do you want, ballmer's head on a spike?
WSL (and Docker) makes Windows now kind of the most versatile development platform. You can natively develop for Windows, Linux and Android. With .NET you have limited macOS and iOS development capabilities.
And you have the benefit, that Windows is the de-facto standard for desktop software, so everything will just run there. All games, all commercial software, also the software your company bought 15 years ago and is still working.
This has prompted some unexpected reflection. If I may, I have a somewhat orthogonal (tangentially related), slightly soapbox-y, philosophical question about the meaning of meaningfulness, which may not make any sense (recommendations for good sanitariums accepted).
The GIF of this shows
C:\>dsl
Starting DOS subsystem for Linux, please wait... ok
C:\>_
and this immediately got me headscratching about the mechanics of how this was done. My first serious consideration (after noticing the Building section and hastily discarding notions of "remote/out-of-band terminal I/O...?") was that it was somehow boxing Linux up into a TSR and then somehow running that in the background. Coool.
But no; the custom init.c uses virtual 8086 (vm86) mode to call back into DOS, trapping on a specific interrupt to enable DOS<->Linux communication. The launcher loads Linux into memory and jumps into it just like a bootloader would, then the init program maps the first 1MB of RAM (to cover all 640K of conventional memory) and hands the whole DOS address space area to vm86(2) to continue within DOS where everything left off. So, this isn't a TSR in the literal sense (it doesn't exit using INT 27h, "Terminate and stay resident"), nor in the figurative sense, wherein the program encapsulates Linux and then returns to DOS (which certain interpretations of the program output might suggest) in the same way exiting Netware or Windows 9x ("reboot in DOS mode", in certain circumstances) would. (But there are some interesting "it quacks like a duck" arguments in there, I can't deny that.)
The actual situation is basically the reverse of my first impression - this isn't a TSR that runs Linux, it's a DOS program that launches Linux that then continues DOS using v86. I've read how mainframes perform similar insanity, like where the kernel will initialize a VMM and then promote the bootloader/boot-up code into a task/process during startup. By some measures, this madness is arguably more awesome than a TSR.
Now, my question, which is squishy, and which I don't know how to articulate well (read: more concisely). Being able to run Linux in a TSR - cooool - leaps out at me as a captivating ball of interestingness that stands well above all the "oh yeah that would be kind of neat to look at one day... after I count to infinity twice"
intrinsically non-interesting, passive armchair thoughts I'll forget within seconds of thinking of them. But I'd probably be able to keep coming back to an idea like "Linux in TSR" for many months before giving up.
Flip the whole thing around, though ("start Linux and then resume DOS in emulation"), and poof, the interestingness is all gone. I think this is not because I consider the idea fundamentally less cool (or worse, think it's outright silly or stupid!), but due to the opposite physiological reaction.
I discovered https://www.teamten.com/lawrence/writings/norris-numbers.htm... yesterday. It was a really cool read, describing how programmers hit walls in terms of how much code they can write (and presumably then continue to reason about) before everything devolves into madness. I think I've been dealing with an almost identical type of wall for some time, which I'm not sure how to scale.
Learning and experience seem to basically be ways to build neurological surface area (or, room to store irreducible complexity) that allow us to stuff more and more stuff into our creative problem-solving/reward loops ("productivity: finding happiness, just with ever more (and more...) steps!"). As this develops, and as we associatively fold doing more things into our reward loops, it seems that the habit-forming parts of the brain coordinate subconsciously with the parts of our executive function that internalize the core intrinsics of whatever we're learning about, and we just find ourselves especially drawn to things that will further deepen and specialize our understanding. And sometimes, we find areas are so interesting that the persistence is just there to keep at certain things even when they're hard. And that persistence... is our worldview, or focal point, of "what I'm doing right now". It's our baseline watermark, or threshold, of keeping on.
But this process seems to have a hair-trigger limit. Push the whole thing even a tiny bit too hard, and it loudly cracks, sparks fly and springs and gears go everywhere.
I think the inspiration associated with restriction and limitation is strongly related to this. It seems that the most fun projects are those that exceed an individual's (socially?) measured accomplishment by a significant amount, but fit well within the complexity scale of the untapped feedback-loop surface area.
Which leads me to my current existential juxtaposition. The systemic incoherence that accompanies ADHD, autism and depression (or any combination thereof), and the subsequent conscious "driving" of the brain (and veering all over the metaphorical road, without access to the feedback loops available to the subconscious), exacerbates this situation; without the machinery to maintain relaxed focus without losing disorientation, I constantly consciously course-correct - but these systems do not like to be "driven", they only function correctly when they can lead, and when there is harmony.
It also seems very difficult (at the very least) to consciously drive the machinery/focus that builds raw mental capacity; I wonder if this construction process is subconscious by design, while the usage or resolution process of achievement, that chases the delta between untapped potential and achievement, is conscious by design. If so, yay.
Without the cohesion of subconscious-first leadership, building and maintaining this delta between capacity and interest is a game of second-guessing how my brain works, which I'm not winning at, and so the level of fundamental interest I have in the sorts of things I do want to master lags behind my logical interest levels.
To complete my question, I look at projects like this, and I perceive their complexity scales like a person standing within a tiny fenced-in square and saying "I am outside the fence". If the person were defined to be inside the tiny square, that would represent a small amount of problem-solving complexity that might even be described as "cute" (see also: every well-executed minimalist software project ever). But with the definitions flipped around, the complexity quotient might as well be practically infinite, because it falls outside of the incredibly narrow window of surface area I have available, which I don't know how to build upon and expand, and so the interest just vaporizes. Thus, this project is too cool to be fundamentally interesting to me! :( (And yes, this is a meta-explanation; the "Linux in DOS vs DOS in Linux" pathway was what got me thinking about all this, and then gave me the mental framework to follow the ideas well enough to write them down.)
...I'm stuck. My brain thinks that logical awesomeness should directly translate to follow-through and persistence. I logically know it doesn't work that way (something something effort). But there's a short-circuit somewhere (kinda like the example of the monkey who had its fingers bound together for a few months, then couldn't move them independently - except instead of fusing, I'm dealing with something that never spliced apart), and the step(s) that are supposed to go in the middle are missing. Wat do, if you by any chance know?
This was a weird ramble, and if you got to the end of it, thanks very much for taking the time.
Hi there. I'm a fellow 4eak. =). Perhaps this is irrelevant or missing the point (and I apologize if so). If I've understood correctly, maybe it isn't really that awesome to you. Often, I see myself just filtering through what looks interesting to find the very few pieces that maintain their persistent salience in my perception (though, I am often wrong).
Also, I find I honestly kinda resonate with https://philosopher.life. I find writing an slow and arduous process, though (related kinda-interesting relevant subthread: https://news.ycombinator.com/item?id=27112463 - the 4 comments represent the specific reference, while reading further athread (up-thread?) is likely useful for context).
For me, writing is a bit like putting a train on a multi-track rollercoaster ride and then finding all the carriages on different tracks at the end ("Noooo, that carriage is upside down and all the passengers fell out.") Now I think about it a good visual analogy would be https://www.youtube.com/watch?v=bcXiwNjkhxU&t=95s.
I think my brain has a few wiring bottlenecks in it somewhere, meaning I can only fit a certain amount of semantic value into my immediate focus, and much less than I know I should be able to. So, for example, if I'm listening to a piece of music in my head and want to actually switch to the track I'm thinking of, I basically get one shot to go "is this it", since whatever my ears hear next will immediately cancel out my memory of whatever pops into my head, even if I pause it. This seems to be a generalized extreme short-term memory problem; if I think of X, and then get a flash of insight on how it relates to Y, I'll immediately a) forgot X, and b) be incapable of deriving insight from the intersection between the two. I find I seem to be most appreciative of the contrasts between things, so this memory breakdown is extremely annoying.
And all this makes summarizing and writing tricky. I'd love to do more of it, but... welp. And so, it's kinda weird, but cool weird, to be reading the kinds of things on philosopher.life that I could see myself writing if a few settings on the character sheet were upped to 11 (particularly the above, which are at like 0.1 or 0.2) :). I particularly resonate with the existentiality, and the sense of incompleteness - in the non-exceptional sense, like I don't just mean "oh yeah I kinda see like 0.2% of myself in this haha", I can see these themes throughout almost everything, from the content to the writing style, and it is duly noted. Kind of cool that you've put that amount of effort in actually...
Looks like it's basically adding a Linux featureset to the bootable DOS command prompt.
Since you're already expected to have DOS to begin with, wouldn't it be simpler if there was just a single Linux folder to place on your C: volume and enable it using the native DOS command line once DOS has been booted, or automatically using AUTOEXEC.BAT?
"DOS Subsystem for Linux" sounds to me like something that runs a DOS environment in Linux. When it's actually the opposite.