I probably would, in this context. Well, maybe not WinME, because that was a dumpster fire. But any Windows coming down from NT line, which is what's relevant in the past 20 years, sure. Same bucket.
Also feels a lot less intrusive for light terminal work.
And the subsystems concept was quite common in micro-computers and mainframes space, Microsoft did not come up with the idea for Windows.
It got actually somewhat usable with the 2k/XP version, slightly better in Vista (notably: the utilities installer had option to use bash a default shell) and IIRC with 7 MS even again mentioned existence of the thing in marketing (with some cool new name for the thing).
I am aware it got much better later on, but given the way it was introduced, the mess with third party integrations, as Microsoft always outsourced the development effort (MKS, Interix,..), it never got people to care about afterwards.
First impressions matter most.
As there is another alternative one where Microsoft doesn't sell Xenix and keeps pushing for it, as Bill Gates was actually a big fan of.
IIS and SQL Server (Win) boxes are fairly typical, still.
[1]: In fact, Active Directory was specifically targeted by EU antitrust lawsuit against Microsoft.
If Microsoft had wanted, Windows could have officially been Unix too-they could have licensed the test suite, run it under their POSIX/SFU/SUA subsystem, fixed the failures, paid the fee-and then Windows would be a Unix. They never did-not (as far as I’m aware) for any technical reason, simply because as a matter of business strategy, they decided not to invest in this.
Whatever computer people would be getting at the local shopping mall computer store already had UNIX support.
Lets also not forget that UNIX and C won over the competing on timesharing OSes, exactly because AT&T wasn't allowed to sell it in first place, there was no Linux on those days, and had AT&T not sued BSD, hardly anyone would have paid attention to Linux, yet another what-if.
They didn't prioritize it until fixing at a late stage, barely before WSL 2 came out. Sometimes i do wonder if they made a premature decision to move to WSL2 since there was quite a lot of basic applications/runtimes that were crashing due to this fix lacking (Naturally a lot of other new Linux API's like io_uring probably would have made it an api chasing treadmill that they just wanted to circumvent).
I thought you could do it using ntdll functions, no?
https://www.jeremyong.com/winapi/io/2024/11/03/windows-memor...
Regardless this led WSL1 to have fatal incompatibilities for a long time, iirc basic stuff like the rpm system or something similarly fundamental for some distros/languages relied on it. And once WSL2 existed people just seems to have gone over.
As for NTFS: it's not NTFS specifically, it's the way the I/O system is designed in the NT kernel. Imagine any call from outside that layer transitioning through a stack of filter drivers before actually reaching the implementation. Very powerful stuff, but also very bad for performance.
1. https://learn.microsoft.com/en-us/archive/blogs/wsl/pico-pro...
But WSL2 is freaking incredible, I'm super excited to see this and just wish the rest of windows would move to a Linux kernel and support bash natively everywhere. I was never a fan of powershell, sh/dash/ash/bash seem fine
The whole point of Windows right now is having a kernel that a) does not shove GPL down the device manufacturer's throat and b) care about driver API stability so that drivers actually work without manufacturer or maintaner intervention every kernel upgrade.
And thanks to no ABI/API stability guarantees, Linux can innovate and doesn't care about what others might say. Considering Linux is developed mostly by companies today, the standard upkeep of a driver is not a burden unless you want to shove planned obsolescence down the throats of the consumers (cough Win11 TPM requirements cough).
https://www.gnu.org/philosophy/free-sw.html
https://creativecommons.org/faq/#is-creative-commons-against...
Closed source is protected in other ways besides copyright. Trade secrets, confidentiality, NDA, proprietary ownership, obfuscation, and in the case of hardware, big globs of epoxy and other countermeasures to ensure nobody can get in and reverse-engineer it.
While I'm a strong Free Software proponent, I'm not a zealot and insist on a black or white approach.
Yes, some software can be closed source, I agree, but it shouldn't be the bedrock software, i.e. anything required to enable hardware (firmware, OS, and preferably the utilities).
For the record, I'm paying for a couple closed source software packages on Linux which provide very unique feature s. These are inSync and Pagico.
On top of that, you can always sell GPL software (remember, you shall ship the source with the product. opening it it to everyone is not a requirement). On top of it, you can sell support or special versions. curl has a special version for paying customers, and ccid driver developers sell ccid compliance testing.
So, there are always alternatives, and the reality has more shades of gray than two distinct colors.
I was working as a freelancer wher a lot of my job meant interfacing with files other people made in Software that only runs reliably on Windows or Mac (and I tried regularly).
So WSL provided me with a way to run Linux stuff without having to run a fat VM or dual boot. In fact my experience with WSL is probably why I run Linux as my daily driver OS in academia now, since here the context differs and a switch to Linux was possible.
Whether a thing is useful is always dependent on the person and the context. WSL can absolutely be a gateway drug to Linux for those who haven't managed to get their feet wet just yet.
We tend to forget that "Horses for Courses" and "Your Mileage May Vary" applies way broader than we think.
But you're asking the wrong question. It should be "why not use MacOS?" if you need a stable UI with UNIX underneath :).
Other than that, macOS plus some tools (Fileduck, Forklift, Tower, Kaleidoscope to name a few), you can be 99% there.
I use macos as my daily driver, but any real work on it happens on a linux container or VM. Using one of {cursor, vscode, windsurf} with a devcontainer is a much better approach for me.
Why not both? Like me?
It depends on what you're doing. PowerShell is incredible for Windows sysadmin, and the way it pipes objects between commands rather than text makes it really easy to compose pretty advanced operations.
However, if I'm doing text manipulation, wrangling logs, etc, then yes, absolutely I'm going to use a *nix scripting language.
It's good. But if/when you start using it as your main work platform nagging issues start cropping up. The native linux filesystem inside it cannot actually reclaim space. This isn't very noticeable if you aren't doing intensive things in it, or if you are using it as a throwaway test bed. But if you are really using it, you have to do things like zero out a bunch of space on the WSL disk and then compact it from outside in the Windows OS. Using space from your NTFS partition / drive isn't very usable, the performance is horrible and you can't do things like put your docker graph root in there as it is incompatible. It also doesn't respect capitalization or permissions and I've had to troubleshoot very subtle bugs because of that. Another issue is raw network and device access, it basically isn't possible. Some of these things are likely beyond the intended use of WSL2, in its defense. Just be aware before you start heavily investing your workflow in it. For these use cases a traditional dual boot will work far better and save you much frustration.
But VMware still excels at running desktop Linux on Windows. Especially for distros that use 3D accelerated desktops (aka literally anything that uses a recent GNOME or KDE release).