I think it's a fair exchange too, even as an individual I pay for plenty of smaller open-source SaaS services—even if they're more expensive than proprietary competitors—for the very reason that I could always selfhost it without interruption if SHTF and the provider goes under.
I've seen a number of theories online that boil down to young tech enthusiasts in the 2000's/early-2010's getting hands-on experience with open source projects and ecosystems since they're more accessible than enterprise tech that's typically gated behind paywalls, then translating into what they use when they enter the working world (where some naturally end up at M$).
This somewhat seems to track, as longtime M$ employees from the Ballmer-era still often hold stigmas against open source projects (Dave's garage, and similar), but it seems the current iteration of employees hold much more favorable views.
But who knows, perhaps it's all one long-winded goal from M$ of embracing, extending, and ultimately extinguishing.
My guess…
The same reason Rome didn’t fall. It simply turned into the Church.
MS isn’t battling software mfgs because they have the lock on hardware direction and operating systems so strongly that they can direct without having to hold the territory themselves.
- three years later it's left in the hands of the powerful community that was built around it with MS help
- MS doesn't have to provide support and it's not their problem anymore
strace shows that the sleep program uses clock_nanosleep, which is theoretically "passive." However, if the host suspends and then wakes up after the sleep period should have ended, it continues as if it were "active."
Of course, if you want the native integration WSL offers, you'll need to upgrade the Linux driver/daemon side to support whatever kernel you prefer to run if it's not supported already. Microsoft only supports a few specific kernels, but the code is out there for the Linux side so you can port the code to any OS, really.
With some work, this could even open up possibilities like running *BSD as a WSL backend.
Of course, there might be some regressions. They are usually only fixed (upstream) after WSL kernel gets upgraded and it starts to repro in WSL.
Edit: for clarity, by "multiple OS" I mean multiple Linux versions. Like if one project has a dependency on Ubuntu22 and another is easier with Ubuntu24. You don't have to stress "do I update my OS?"
So I left - I am willing to do more work to be spied on less, to be used as a product less, and to fight with my computer about who owns it less.
This feature thing is really one of their strategies. At work they send us "adoption managers" that run reports to check whether people use feature xyz enough and set up stupid comms campaigns to push them to do so.
I really hate that. I decide how I use my computer. Not a vendor.
This is a great way of saying it and expresses the uneasy feeling windows has given me recently. I use Linux machines but I have 1 windows machine in my home as a media PC; and for the last several years windows has made me feel like I don’t own that computer but I’m just lucky to be along for the ride. Ramming ads on the task bar and start menu, forcing updates on me, forcing me to make a Microsoft account before I can login (or just having a dark UI pattern so I can’t figure out how to avoid it, for the pedantic).
With Linux I feel like the machine is a turing complete wonderbox of assistance and possibility, with windows it feels like Microsoft have forced their way into my home and are obnoxiously telling me they know best, while condescendingly telling me I’m lucky to be here at all. It’s a very different feeling.
However, for those of us that went Linux many years ago, and like our free open source, in 2025, is it better to go back to the dark side, to run Windows and have things like a LAMP stack and terminals run with WSL?
I don't play games or run Adobe products, I use Google Docs and I don't need lots of different Linux kernels. Hence, is it better to run Linux in Windows now? Genuinely asking.
not on a shitty wrapper running on an ad-platform.
Sorry but not sorry, it's not easier to run than on linux. It requires the Windows store to work, and to use Hyper-V (which breaks VMware workstation, among other things).
It's in a better package, to be sure, but it's not "easier to run multiple OS on the same computer". It's easier to use multiple OSes (no SSH, GUI forwarding, etc), as long as all those OSes are Linux flavors supported by WSL.
Want FreeBSD or Windows? Nope!
Well, it is windows subsystem for Linux :) not windows subsystem for windows or FreeBSD for that matter :)
Ps I wonder if you can make your own image? After all its really just Hyper-V with some config candy.
I'm pretty sure that with the opensourcing, we'll see freebsd or more exotic systems popping up quite quickly. Heck, macOS would be fun!
Especially in licensing! /sarcasm
That said, the kernel they distribute is open source and you're not limited to just the distros they're working with directly. There are a number of third party (e.g. there's no Arch from Arch or Microsoft, but there's a completely compatible third party package that gives you Arch in WSL2)
No longer true since last month.
https://lists.archlinux.org/archives/list/arch-dev-public@li...
The big drawback to WSL to me is the slow filesystem access because NTFS sucks. And having to deal with Windows in the first place.
Ps I wouldn't worry about your karma. It's just a number :P
However it’s not perfect, for example I hit this bug when trying to run node a few days ago https://github.com/microsoft/WSL/issues/8219#issuecomment-10... and I don’t think they’re fixing bugs in WSL1 anymore
It’s fine for running small models but when you get to large training sets that don’t fit in RAM it becomes miserable.
There is a line where the convenience of training or developing locally gives way to a larger on demand cloud VM, but on WSL the line is much closer.
The culprit would be the plan9 bits (think of smb or nfs but .. wilder ? why are they using 9P again ?)
The problem is Windows IO filters and whatnot, Microsoft Defender trying to lazily intercept every file operation, and if you're crossing between windows and Linux land, possibly 9pfs network shares.
WSL2's own disk is just a VM image and fairly fast - you're just accessing a single file with some special optimizations. Usually far, far more responsive than anything done by windows itself. Don't do your work in your network-shared windows home folder.
Not the biggest issue of them, 'find' and 'git status' on WSL2 in a big project is still >100 times slower on windows dev drive which avoids those filters than it is with WSL 1 on dev drive.
WSL 1 on regular ntfs with defender disabled is about 4x slower than WSL1 on dev drive, so that stuff does cause some of it, but WSL2 feels hopelessly slow. And wsl 2 can't share memory as well or take as much advantage of the filesystem cache (doubling it if you use the windows drive in both places I think, unless the network drive representation of it doesn't get cached on the WSL2 drive.
WSL2 does not take less advantage of filesystem caches. Linux's block cache is perfectly capable. HyperV is a semi-serious hypervisor, so it should be using a direct I/O abstraction for writing to the disk image. Memory is also balloning, and can dynamically grow and shrink depending on memory pressure.
Linux VM's is something Microsoft has poured a lot of money into optimizing as that's what the vast majority of Azure is. Cramming more out of a single machine, and therefore more things into a single machine, directly correlates with profits, so that's a heavy investment.
I wonder why you're seeing different results. I have no experience with WSL1, and looking into a proprietary legacy solution with known issues and limited features would be a purely academic exercise that I'm not sure is worth it.
(I personally don't use Windows, but I work with departments whose parent companies enforce it on their networks,
Files on the WSL2 disk image work great. They're complaining about accessing files that aren't on the disk image, where everything is relayed over a 9P network filesystem and not a block device. That's the part that gets really slow in WSL2, much slower than WSL1's nearly-native access.
> Memory is also balloning, and can dynamically grow and shrink depending on memory pressure.
In my experience this works pretty badly.
> a proprietary legacy solution with known issues and limited features
Well at least at the launch of WSL2 they said WSL1 wasn't legacy, I'm not sure if that has changed.
But either way you're using a highly proprietary system, and both WSL1 and WSL2 have significant known issues and limited features, neither one clearly better than the other.
Watch https://www.youtube.com/watch?v=qbKGw8MQ0i8 please.
But in the end they had to get the OS vendor to bless their process name anyway, just so the OS would stop doing things that tank the performance for everybody else doing something similar but who haven't opened a direct line up with the OS vendor and got their process name on a list.
This seems like a pain point for the vendor to fix, rather than everybody shipping software to their OS
Thats if you are going from VM/host. If you use the allocated space for VM, its pretty fast.
Is VMWare more powerful than Linux?
I know… every year is the year of the Linux desktop… but seriously the AI spyware included was enough to get me gone for good.
This is why you pay karma tax. This statement is so clearly representative of a falsity.
My linux can run multiple linuxes as well without VM overhead. Something Windows can’t do. Furthermore WINE allows me to forgo running any vm to run windows applications.
I developed on WSL for 3 years and consistently the biggest issue was the lack of ability to use tooling across the shared OSes.
Your karma depleting statements are biased, unfounded, and it shows as you do not really provide counter evidence. That’s why you lose karma.
OP's statement remains incorrect, because their assumption is that the WSL experience can't be reproduced in Linux.
XAMPP did not work out of the box with me on Windows (skill issue on my part, I know), so my preferred setup was to run a Ubuntu Server VM (LAMP stack) and then develop whatever I had on a Windows IDE.
I could have done that under full Linux, I just did not want that. Then Vagrant came into existence, which I'd say was for my use case (but never came around to adopt it).
I'm really happy with my WSL2 setup. I stopped using VMware Workstation when WSL2 broke it, but WSL2 is exactly what I needed to match my use case.
Why wouldn't you have just spent 5 minutes to get XAMPP working?
Is it still broken?
Also 1980s style X11 widgets on the Windows desktop in their own windows? Cool.
Wayland supports window managers ?
Cool because nothing about how Windows boots is intercepted; you can just nuke the new partitions (or overwrite them with a new Linux installation). I still prefer a native Linux boot with "just in case" Windows option to WSL.
I understand the "roll your own" argument very well. In my time, I've experienced quite the variety of configs and dotfiles, but I'm not young anymore so I've settled with using Regolith which is an opinionated set of tools, including my favourite i3wm, on top of Ubuntu, and I simply use defaults for the most things.
Anyway, it's much easier to use Linux as a daily driver than it's ever been. The choice of distro is simply which package manager to use, and everything else just works, as long as it's in the package manager's inventory.
I haven't compiled my own computer's kernel in 6 years (but I still cross compile for rpi and other IoT), and I haven't used my dotfiles in 3 years, just defaults.
A very big and very incorrect assumption. This reads like you asked the initial question without any actual curiosity behind it.
I don't have a need to run multiple OSes though. All of my tools are Linux based, and in companies that don't let people run Linux, the actual tools of the trade are almost all in a Linux VM because it's the only reasonable way to use them, and everything else is cross-platform. The outer OS just creates needless issues so that you now need to be a power user with two operating systems and their weird interactions.
> extremely arcane things I had to fix when setting it up involving host DNS and VPN adapter priority not getting propagated into the VM so networking was completely broken
Are you sure you set up the VPN properly? Messing around with Linux configs is a good way to end up with "somehow" bugs like that.
OSX was a bit janky with docker filesystem slowness, homebrew being the generally recommended package manager despite being awful (why do I sometimes tap a cask and sometimes pour a bottle? Don't tell me; I don't care. Just make it be "install". Also, don't take "install" as a cue to go update all of my other programs with incompatible versions without asking), annoying 1+ second animations that you can't turn off that make it so the only reasonable way to use your computer is to never maximize a window (with no tiling support of course), and completely broken external monitor support (text is completely illegible IIRC), but Windows takes jank to another level.
wsl works good enough.
You know what's even more convenient than a VM? Not needing a VM and still having the exact same functionality. And you don't need a bunch of janky wrapper scripts, there's more than one tool that gives you essentially the same thing; I have used both Distrobox and toolbx to quickly drop into a Ubuntu or Fedora shell. It's pretty handy on NixOS if I want to test building some software in a more typical Linux environment. As a bonus, you get working hardware acceleration, graphical applications work out of the box, there is no I/O tax for going over a 9p bridge because there is no 9p bridge, and there is no weird memory balloon issues to deal with because there is no VM and there is no guest kernel.
I get that WSL is revolutionary for Windows users, but I'm sorry, the reason why there's no WSL is because on Linux we don't need to use VMs to use Linux. It's that simple...
It requires a bit of work to setup to your liking of course, but hey, at least you have an option to set it up to your liking
Then I was forced to use a Mac for work, so I was using a floating WM again. On my personal machine, ion3 went away and I never fully got around to migrate to i3.
By the time I got enough free time to really work on my personal setup, it had accumulated two huge monitors and was a different machine. I found I was pretty happy just scattering windows around everywhere. Especially with a trackball's cursor throw. This was pretty surprising to me at first.
Anyway this is just my little personal anecdote. If I go back to a Linux install I'll definitely have to check out i3 again. Thanks for reminding me :)
Care to elaborate? I'm not sure I understand what you're saying here.
I make a .desktop file and shell script to move it to the right place. Double click the shell file. It opens a text editor. Search the right click menu; still no way. To the CLI we go; chmod +x, and launch if from the CLI. Then after adding the Desktop icon, I can launch it.
On windows, you just double click the identified-through-file-extension executable file. This, like most things in Linux, implies the UX is designed for workflows I don't use as a PC user. Likely servers?
That sounds like Wayland getting worse, but it's actually been slowly improving and it's pretty good now. Only took a decade+ to get there.
I don't think it's silly. Sure, it's a VM, but it's so nice that I barely reboot into Linux. You get the best of both worlds with WSL.
If I were to run an OS on a VM it's gonna be windows, not Linux
No ridiculous start menu spam; a sane, non-bloated operating system (imagine being able to update user space libraries without a reboot, due to being able to delete files that other processes still have opened!); being able to back up my data at the file level without relying on weird block-level imaging shenanigans and so much more.
How is inverting the host/guest relationship an improvement on that?
Windows at its core just does not seem like a serious operating system to me. Whenever there are two ways to do something, its developers seem to have picked the non-reasonable one compared to Unix – and doing that for decades adds up.
But yes, first impressions undoubtedly matter too.
But there's also the thing where Microsoft stops supporting older machines, creating a massive pile of insecure boxes and normie-generated e-waste; and the thing where it dials home constantly; and the thing where they try and force their browser on you, and the expensive and predatory software ecosystem, and the insane bloat, and the requiring a Microsoft account just to use my own computer. Oh yeah, and I gotta pay for this crap?!
I went full Linux back when Windows 11 came out and will only use it if a job requires. Utterly disgusting software.
That said, a distaste for advertising goes beyond OCD. Advertisers frequently have questionable ethics, ranging from intruding upon people's privacy (in the many senses of the word) to manipulating people. It is simply something that many of us would rather do without.
That's... a very weird criticism to level at Windows, considering that the advice I've seen for Linux is to reboot if you update glibc (which is very much a user space library).
Having to constantly reboot my computer, or risk missing important security patches, was very annoying to me on Windows.
I've never had to reboot after updating glibc in years of using Linux, as far as I can remember.
Running programs will continue to use the libc version that was on disk when they started. They won't even know glibc was upgraded. If something is broken before rebooting, it'll stay broken after.
Where is the reverse WSL on Linux, where Windows is deeply embedded and you have all the Windows features in your hands?
You can use Wine/Crosseover, which is cool, but even now the number of software products it supports is tiny. Steam has a lot of games.
You can run a virtual machine with Windows on it. That is identical to what you can do on Windows with Linux.
WSL2-> is a virtual machine with unique tooling around it that makes it easier to use and integrates well with Windows.
Linux, on the other hand, barely supports Windows because the latter is closed, and not just closed, windows issues component updates which specifically check if they run in wine and stop running, being actively hostile to a potential Linux host.
The two are not equivalent, nobody in the Linux kernel team is actively sabotaging WSL, whereas Microsoft is actively sabotaging wine.
Do you have a link to where I can read more about this? My understanding is that Microsoft saw Wine as inconsequential to their business, even offloading the Mono runtime to them [1] when they dropped support for it.
I really don't see it happening any time in the next decade at least, though. While Windows might not be Microsoft's biggest focus any more it's still a huge income stream for them. They won't just give that up.
https://github.com/Fmstrat/winapps
Enjoy.
It also doesn't appear to be the case even now. I searched for laptops available in my country that fit my budget and for each laptop searched "<laptop name> linux reddit" on google and filtered for results <1 year old. Each laptop's reports included some or other bug.
https://www.reddit.com/r/linuxhardware/comments/1hfqptw/linu...
https://www.reddit.com/r/linuxhardware/comments/1esntt3/leno...
https://www.reddit.com/r/linuxhardware/comments/1j3983j/hp_o...
https://www.reddit.com/r/linuxhardware/comments/1k1nsm8/audi...
The laptop with the best reported linux support seemed to be Thinkpad P14s but even there users reported tweaking some config to get fans to run silently and to make the speakers sound acceptable.
https://www.reddit.com/r/thinkpad/comments/1c81rw4/thinkpad_...
I’ve been a software developer for 20 years and in _my_ opinion Windows is the best platform for professional software development. I only drop of to linux when need some of the excellent posix tools but my whole work ergonomy is based on Windows shortcuts and Visual Studio.
I’ve been forced to use Mac for the past 1.5y but would prefer not to.
Why would Windows be superior for me? Because that’s where the users are (for the work stuff I did before this latest gig). I started in real time graphics and then spent over a decade in CAD for AEC (developing components for various offerings including SketchUp). The most critical thing for the stuff I did was the need to develop on the same platform as users run the software - C++ is only theoretically platform independent.
Windows API:s are shit for sure for the most part.
But still, from this pov, WSL was and will be the best Linux for me as well.
YMMV.
WSL2 is really handy when you want to run other software though. For example, I use Solidworks, so I need to run windows. Forscan for Ford vehicles also has to run under Windows. Having WSL2 means that I can just have one laptop and run any software that I want.
I've successfully run it with WINE. Thought, my Forscan executable was 3 years old or so and that may have changed, but I doubt it.
That's always true, of course. But, compared to other options, relying on WINE increases the chances of it happening by an amount that someone could be forgiven for thinking isn't acceptable.
It's possible to see what Wine as a great product would look like. No offense to crossover because they do good work, but Valve's Steam Play shows what you can really do with Wine if you focus on delivering a product using Wine.
Steam offers two main things:
- It pins the version of Wine, providing a unified stable runtime. Apps don't just break with Wine updates, they're tested with specific Proton versions. You can manually override this and 9 times out of 10 it's totally fine. Often times it's better. But, if you want it to work 10 out of 10 times, you have to do what Valve does here.
- It manages the wineserver (the lifecycle of the running Wine instance) and wine prefix for you.
The latter is an interesting bit to me. I think desktop environments should in fact integrate with Wine. I think they should show a tray icon or something when a Wineserver is running and offer options like killing the wineserver or spawning task manager. (I actually experimented with a standalone program to do this.[1]) Wine processes should show up nested under a wineserver in system process views, with an option to go to the wineprefix, and there should be graphical tools to manage wine prefixes.
To be fair, some of that has existed forever in some forms, but it never really felt that great. I think to feel good, it needs to feel like it's all a part of the desktop system, like Wine can really integrate into GNOME and KDE as a first-class thing. Really it'd be nice if Wine could optionally expose a D-Bus interface to make it so that desktop environments could nicely integrate with it without needing to do very nasty things, but Wine really likes to just be as C/POSIX/XDG as possible so I have no idea if something like that would have a snowball's chance in hell of working either on the Wine or desktop environment side.
Still, it bums me out a bit.
One pet peeve of mine regarding using Wine on Linux is that EXE icons didn't work out of the box on Dolphin in NixOS; I found that the old EXE thumb creator in kio-extras was a bit gnarly and involved shelling out to an old weird C program that wasn't all that fast and parsing the command line output. NixOS was missing the runtime dependency, but I decided it'd be better to just write a new EXE parser to extract the icon, and thankfully KDE accepted this approach, so now KDE has its own PE/NE parser. Thumb creators are not sandboxed on KDE yet, so enable it at your own risk; it should be disabled by default but available if you have kio-extras installed. (Sidenote: I don't know anything about icons in OS/2 LX executables, but I think it'd be cool to make those work, too.) The next pet peeve I had is that over network shares, most EXE files I had wouldn't get icons... It's because of the file size limit for remote thumbnails. If you bump the limit up really high, you'll get EXE thumbnails, but at the cost of downloading every single EXE, every single time you browse a remote folder. Yes, no caching, due to another bug. The next KDE frameworks version fixes most of this: other people sorted out multiple PreviewJob issues with caching on remote files, and I finally merged an MR that makes KIO use kio-fuse when available to spawn thumb creators instead of always copying to a temporary file. With these improvements combined, not just EXE thumbnails, but also video thumbnails work great on remote shares provided you have kio-fuse running. There's still no mechanism to bypass the file size limit even if both the thumbcreator and kio-fuse remote can handle reading only a small portion of the file, but maybe some day. (This would require more work. Some kio slaves, like for example the mpt one, could support partially reading files but don't because it's complicated. Others can't but there's no way for a kio-fuse client to know that. Meanwhile thumb creators may sometimes be able to produce a thumbnail without reading most of the file and sometimes not, so it feels like you would need a way to bail out if it turns out you need to read a lot of data. Complicated...)
I could've left most of that detail out, but I want to keep the giant textwall. To me this little bit of polish actually matters. If you browse an SMB share on Linux you should see icons for the EXE files just like on Windows, without any need to configure anything. If you don't have that, then right from the very first double-click the first experience is a bad one. That sucks.
Linux has thousands of these papercuts everywhere and easily hundreds for Wine alone. They seem small, but when you try to fix them it's not actually that easy; you can make a quick hack, but what if we want to do things right, and make a robust integration? Not as easy. But if you don't do that work, you get where we're at today, where users just expect and somewhat tolerate mediocre user experience. I think we can do better, but it takes a lot more people doing some ultimately very boring groundwork. And the payoff is not something that feels amazing, it's the opposite: it's something boring, where the user never really has any hesitation because they already know it will work and never even think about the idea that it might not. Once you can get users into that mode you know you've done something right.
Thanks for coming to my TED talk. Next time you have a minor pet peeve on Linux, please try to file a bug. The maintainers may not care, and maybe there won't be anyone to work on it, and maybe it would be hard to coordinate a fix across multiple projects. But honestly, I think a huge component of the problem is literally complacency. Most of us Linux users have dealt with desktop Linux forever and don't even register the workarounds we do (anymore than Windows or Mac users, albeit they probably have a lot less of them.) To get to a better state, we've gotta confront those workarounds and attack them at the source.
[1]: https://github.com/jchv/winemon just an experiment though.
If you want a stable, repeatable way to wrangle a Windows tool: Wine is it. It's easy to deploy and repeat, requires no licenses, and has consistent behavior every time (unless you upgrade your Wine version or something). Great integration with Linux. No Windows Updates are going to come in and wreck your systems. No licensing, no IT issues, no active directory requirements, no forced reboots.
If I were to do it with a Windows VM, I'd need to:
1. Create the VM image and figure out how to build/deploy it.
2. Sort out the Windows licensing concerns.
3. Figure out how to launch my tool (maybe put an SSH server into the VM).
4. Figure out how to share the filesystem (maybe rsync-on-SSH? Or an SMB fileshare?).
If I do it with Wine instead, all I need to do is: 1. Install some pinned version of Wine.
2. Install my tool into Wine.
3. Run it directly.
* Wine is surprisingly good these days for a lot of software. If you only have an app or two that need Windows it is probably worth trying Wine to see if it meets your needs.
* Similarly, if gaming is your thing Valve has made enormous strides in getting the majority of games to work flawlessly on Linux.
* If neither of the above are good enough, dual booting is nearly painless these days, with easy setup and fast boot times across both OSes. I have grub set to boot Linux by default but give me a few seconds to pick Windows instead if I need to do one of the few things that I actually use Windows for.
Which you go for really depends on your ratio of Linux to Windows usage and whether you regularly need to mix the two.
Doesn't Linux as well?
You cannot claim with a straight face that Virtualbox is easier to use.
I think the two fairly deep integrations are window's ability to navigate WSL's filesystem and wslg's fairly good ability to serve up guis.
The filesystem navigation is something that AFAIK can't easily be replicated. wslg, however, is something that other VMs have and can do. It's a bit of a pain, but doable.
What makes WSL nice is the fact that it feels pretty close to being a native terminal that can launch native application.
I do wish that WSL1 was taken further. My biggest grip with WSL is the fact that it is a VM and thus takes a large memory footprint. It'd be nice if the WSL1 approach panned out and we instead had a nice clean compatibility wrapper over winapi for linux applications.
IDK how many VMs you've used, but there has been a lot of work specifically with x86 to make VMs nearly as fast as native. If you interact with cloud services everything you do is likely on a VM.
Apparently Linux VMs on other people's computers is very much appreciated.
It's a feature of the NT-family of kernels where you can create many environments sharing the same underlying executive and HAL.
It's a quite interesting way to build an OS: https://en.wikipedia.org/wiki/Architecture_of_Windows_NT
If you have control over where you put your git repo, WSL2 will hit max speed. If you want it shared between OSes, WSL2 will be slower.
Turns out that it's easier to emulate a CPU than syscalls. The CPU churns a lot less, too, which means that once things start working things tend to keep working.
I like Linux, and I use Linux as my daily desktop, but it's not because I think Linux or even UNIX is really that elegant. If I had to pick a favorite design it would be Windows NT for sure, even with all its warts. That said, the company behind Windows NT really likes to pile a lot of shit I hate on top of that pretty neat OS design, and now it's full of dubious practices. Automatic "malware submission" on by default, sending apps you download and compile yourself to Microsoft and even executing them in a VM. Forced updates with versions that expire. Unbelievable volumes of network traffic, exfiltrating untold amounts of data from your local machine to Microsoft. Ads and unwanted news all over the UI. Increasing insistence in using a Microsoft account. I could go on and on.
From a technical standpoint I do not think the Linux OS design is superior. I think Linux has some amazing tools and APIs. dmabufs are sweet. Namespaces and cgroups are cool. BPF and it's various integrations are borderline insane. But at its core, ... It's kinda ugly. These things don't all compose nicely and the kernel is an enormous hard-to-tame beast. Windows NT has its design warts too, all over, like the amount of involvement the kernel has in the GUI for historical reasons, and the enormous syscall surface area, and untold amounts of legacy cruft. But all in all, I think the core of what they made is really cool, the subsystems concept is super cool, and it is an OS design that has stood up well to time. I also think the PE format is better than ELF and that it is literally better for the capabilities it doesn't have w.r.t. symbols. Sure it's ugly, in part due to the COFF lineage, but it's functionally very well done IMO.
I feel the need to say this because I think I probably came off as a hater, and tbh I'm not even a hater of WSL2. It's not as cool as WSL1 and subsystems and pico processes, but it's very practical and the 9p bridge works way better than it has any right to.
Thanks for pointing this out.
But having Windows tightly integrated when needed is nice.
If only I could run replace the Windows shell with a Linux DE...
It is... I'm working these days on bringing a legacy windows only application to the 21st century.
We are throwing a WSL container behind it and relying on the huge ecosystem of server software available for Linux to add functionality.
Yes that stuff could run directly on windows, but you'd be a lot more limited in what's supported. Even for some restricted values of supported. And you'd have to reinvent the wheel for a few parts.
I actually just tried WINE for the FIRST time (surprisingly, I have been out of the Windows world for so long)
And as long as I installed the binaries from their repo, not Debian 12, it worked very well
Wine is an impressive project too. It's not a VM, which has upsides and downsides, but I was able to run GCC-TDM, Python 3, and git bash in it!
I use linux. I don't need WSL at all. Not at work nor at home.
So you praise WSL because you use Windows as your main system? Than yes its great. It definitly makes the Windows experience a lot better.
OpenSSH for Windows was also a game changer. Honestly, i have no clue why Microsoft needed so long for that.
Iterating on improvements and polishing on Screens and Design that they haven't touched in the past 30 years. Improving on ARM support etc. And STOP adding Ads on the OS.
And the Surface Laptop continues to push Hardware quality forward. From Speaker, Touchpad, Screen, Motherboard etc.
I honestly think Microsoft could win back some mind share from Apple if they:
* Put out a version of windows without all the crap. Call it Dev edition or something and turn off or down the telemetry, preinstalled stuff, ads, and Copilot. * Put some effort into silicon to get us hardware with no compromises like the Macbooks
I'm on Mac now, and I jump back and forth between Mac laptop and a Linux desktop. I actually prefer Windows + WSL, but ideologically I can't use it. It has potential - PowerToys is fantastic, WSL is great, I actually like PowerShell as a scripting language and the entire new PC set up can now be done with PowerShell + Winget DSC. But, I just can't tolerate the user hostile behavior from Microsoft, nor the stop the world updates that take entirely too long. They should probably do what macOS and Silverblue, etc. do and move to an immutable/read-only base and deploy image based updates instead of whatever janky patching they do now.
Plus, I can't get a laptop that's on par with my M4 Pro. The Surface Laptop 7 (the arm one) comes close, but still not good enough.
That said I'd pay for a dev edition as you described it, that would be fantastic.
I get customers and most people don't know about it but it's kind of ridiculous that techy people in a tech forum don't know how to do it.
Why? HN has traditionally always largely been a macOS and Linux crowd. Why do we have to care about fixing an OS that is broken out of the box (that most of us don't use anyway)?
Far too many Linux users, especially, make fun of Linux and if you dig a bit you see that most of their complaints are things that are solved with 5 minutes of googling. Some complaints are philosophical, and those I agree with, but even in that case, I'd be curious how consistent they are with their philosophy when for example Linux desktop environments due weird things.
Summarizing a bit: Linux users with years or decades of experience of tinkering as sysadmins with Linux frequently make junior-level user complaints about Windows usage, frequently based on outdated information about it.
I say this who has been using both Linux and Windows for a few decades now and has a fairly decent level of sysadmin skills on both.
as far as MS are concerned, that crap is their business.
Or, possibly, that crap is the multitude of little software empires build by the management layer now in control..
This is the only reason I have not requested a windows laptop from my company. WSL is better for docker development in basically every way than a mac can be (disclaimer: haven't tried orbstack yet, heard good things, but my base assumption is it can't be better than WSL2) except it is literally impossible to get hardware as good as the M3 or M4 for any other OS than macOS.
The MacBook Air M4 supports two external displays now (with the lid open):
https://support.apple.com/guide/macbook-air/use-an-external-...
My SOs MacBook Air can only do one external monitor, even though it has the same specs as her work Pro.
The MacBook Pro with the non-Pro/Max chip (i.e. MacBook Pro M3) has the same limitations as the corresponding MacBook Air (i.e. MacBook Air M3).
LTSC is a version like that
https://www.windowscentral.com/software-apps/windows-11/what...
But the increasing market share of Macs and even Linux these days plus the ever increasing of OSS initiatives from Microsoft points out that Microsoft knows a lot fewer of their users are as captive as they were in the 90's, for example.
The biggest difference between OSX and Windows is, Apple adds (some say steal) functionality from competition, and open source. They make it neat. On windows to have something working, you need a WezTerm, Everything for search, Windhawk for a vertical taskbar on the right, Powertoys for an app starter, Folder Size for disc management etc. If you spend a lot of time, Win11 can be ok to work with.
If Powerpoint and Affinity would work on Linux, I'd use Linux though.
Huh? Windows supports vertical taskbar.
At least the nags in Windows look like modern web-based UI (so far that ‘use Electron’ seems to be the post-Win 8 answer to ‘how to make Windows apps’) in contrast to MacOS which drove my wife crazy with nag dialogs that look like a 1999 refresh of what modal dialogs looked like on the classic Mac in 1984.
I have since moved to macbooks for the hardware, but until not too long ago WSL was my linux "distro" of choice because I didn't want to spend time configuring my computer to make basic things work like suspend/wake on lid down/up, battery life, hardware acceleration for video playback on the browser, display scaling on external monitor and so on.
> solved a while ago
Can not be the case because I was facing these issues less than a couple of years ago.
I was responding to the "Stockholm syndrome" comment specifically because there are a number of hardware and software problems (e.g. https://jayfax.neocities.org/mediocrity/gnome-has-no-thumbna...) with using linux as a desktop operating system that linux users have to find their way around, so I found the comment rather full of irony.
PS: I already know that the file-picker issue has been fixed. That does not take away from the fact that it was in fact broken for decades. It is only meant as an example.
Just like with Mac and Windows, you choose the supported hardware, and everything is flawless.
And it's not clear what the Linux ones are. Like, our dept ordered officially Linux-supported Thinkpads for whoever wanted them, and turns out they still have unsolved Bluetooth audio problems. Those people use wired headphones now.
People whose main environment is Linux intentionally buy hardware that works flawlessly with Linux.
People who try Linux occasionally do it on whatever hardware they have, which still almost always works with Linux, but there are occasional issues with sketchy Windows-only hardware or insufficiently tested firmware or flaky wifi cards, and that is enough for there to be valid anecdotes in any given comments section with several people saying they tried it and it isn't perfect. Because "perfect" is a very high bar.
It also doesn't appear to be the case even now. I searched for laptops available in my country that fit my budget and for each laptop searched "<laptop name> linux reddit" on google and filtered for results <1 year old. Each laptop's reports included some or other bug.
https://www.reddit.com/r/linuxhardware/comments/1hfqptw/linu...
https://www.reddit.com/r/linuxhardware/comments/1esntt3/leno...
https://www.reddit.com/r/linuxhardware/comments/1j3983j/hp_o...
https://www.reddit.com/r/linuxhardware/comments/1k1nsm8/audi...
The laptop with the best reported linux support seemed to be Thinkpad P14s but even there users reported tweaking some config to get fans to run silently and to make the speakers sound acceptable.
https://www.reddit.com/r/thinkpad/comments/1c81rw4/thinkpad_...
Which Linux? Each distro is essentially a different operating system.
I'd at least try Linux cause I abhor Microsoft, but idk if it'd work out.
There's also debootstrap which is useful for this technique, not sure if it also works on Ubuntu.
https://learn.microsoft.com/en-us/windows/wsl/connect-usb
I regularly run ADB through WSL2 using this.
I love WSL because it lets me have the best of Windows and Linux.
In fact, I'm a little annoyed that I can't get a comparably smooth experience on my MacBook without spinning up a full QEMU VM. I know it's a bit hypocritical since, like most people, I run WSL2 (which is container/VM-based), not WSL1 (the original magic syscall translation vision).
Does anyone know why there's no lightweight solution on macOS - something like LXC plus a filesystem gadget - that would let me run stuff like "apt-get install chromium"?
Another, smaller, gripe is networking. Because of how WSL is networked, I've run into edge-case issues with connecting to networked applications running in WSL from Windows.
https://www.amazingcto.com/upgrading-wsl-with-zsh-and-comman...
This is not often discussed, so it took me a lot of digging a couple of years ago, but I'm still surprised this is never discussed as a consequence / side effect / downside of wsl2. There are performance impacts to turning on hyper V, which may or may not be relevant to user (e.g. If this is also their gaming machine etc:)
Or on a macOS Desktop. Bonus: doing so on either platform doesn't also mean your host OS is running under a hypervisor, as it does with WSL2.
Bigger bonus: you don't have to run fucking Windows.
You can run multiple Linux distributions in chroots or containers, such as docker containers. I have showed people how to build packages for Ubuntu 22.04 on Ubuntu 20.04 for example.
For this part, I just create systemd-nspawn containers.
Last time I wanted to test something in a very old version of WebKit, creating a Debian Jessie container takes a few minutes. Things run at native speed.
... but WSL is an excellent piece of work. It's really easy to deploy apps on. Frankly, it can be easier to a deployment there than on a Linux or macOS system, for example the reasons detailed above.
It might be due to my corpo's particular setup etc. but for me 95% of the value of WSL would be the ability to run it on "corporate" Windows boxes. Alas.
For a person who will not invest the time to learn, e.g., how to avoid or minimise dependencies, indeed something like Windows with WSL may appear "more powerful".
The point of this comment is that "power" comes from learning and know-how as much as if not more than simply from choice of operating system. That said, some choices may ultimately spell the difference between limitations or possibilities.
I have been using it since the beginning of WSL 1 with a very terminal heavy set up but it has some issues.
For example WSLg's clipboard sharing is buggy compared to VcXsrv. It doesn't handle pasting into Linux apps without introducing Windows CRs. I opened an issue for this https://github.com/microsoft/wslg/issues/1326 but it hasn't gotten a reply.
Also, systemd is still pretty sketchy. It takes over 2 minutes for systemd services to start and if you close a WSL 2 terminal for just a few minutes systemd will delay a new terminal from opening for quite some time. This basically means disabling systemd to use WSL 2 in your day to day.
Then there's this 6 year old issue with 1,000+ upvotes https://github.com/microsoft/WSL/issues/4699 around WSL not reclaiming disk space. It means you need to routinely shut everything down and compress your VM's disk or you'll run out of space.
Beyond that is does work well so I'm happy it exists.
I'd venture to say this depends on which OS you're more comfortable with. I'm more comfortable with Linux, so I'd say it's easier/better/less janky to use Linux as a host OS.
> Like if one project has a dependency on Ubuntu22 and another is easier with Ubuntu24. You don't have to stress "do I update my OS?"
Once you're a developer who's been burned by this enough times, you do this with containers or dedicated dev VMs. You do not develop on your host OS and stay sane.
Here's the main difference between making Windows vs Linux the main OS from my POV: Windows is a lot of work and only the corporate editions can be converted into not-a-hot-mess-of-distractions (supposedly). Out of the box Linux doesn't have all of the bullshit that you have to spend time ripping out of Windows. You can easily re-install Linux to get the "powerwash" effect. But if you powerwash Windows you have to go back and undo all the default bullshit again.
Having said that Windows+WSL is a very nice lifeline if you're stuck in Windows-land. It's a much better combo than MacOS.
Have you tried lxd? It's far less janky than Docker (IMHO) to achieve what you describe. Docker is uniquely unsuited to your use case.
[1]: https://developer.apple.com/documentation/virtualization/vzl...
P.S. They also specifically built Rosetta for Linux to compile x64 Linux binaries into aarch64 to run inside Linux VMs on their machines.
Apple could just have gone and do a straight port of the iOS boot procedure to their ARM Mac lineup... and we'd have been thoroughly screwed, given how long ago the latest untethered bootrom exploit was.
Or they could have pulled a Qualcomm, Samsung et al and just randomly change implementation details between each revision to make life for alt-os implementers hell (which is why so many Android BSP dumps are the way they are, with zero hope of ever getting anything upstream). Instead, to the best of my knowledge the UART on the M series SoCs dates back right to the very first iPod.
The fact that the Asahi Linux people were able to create a GPU driver that surpasses Apple's own in conformance tests [1], despite not having any kind of documentation at all is telling enough - and not just of the pure genius of everyone involved.
[1] https://appleinsider.com/articles/23/08/22/linux-for-apple-s...
Could've been worse. At least they're not locking you out of your device like on iPhones and iPads. They don't stop you from running Asahi, they just aren't interested in helping anyone run Asahi.
Microsoft, on the other hand, sells laptops that actively prevent you from running Linux on them. Things get a little blurry once you hit the tablet form factor (Surface devices run on amd64, but are they really that different from an iPad?) where both companies suck equally, though Microsoft also sells tablets that will run Linux once someone bothers to write drivers for them.
Which is... not necessarily wrong.
Parallels also has a commercial offering that does some nice GUI-level integration with both Windows and Linux VMs.
My understanding is that these are both built on top of some Apple API, and Parallels actually collaborates with Apple on making it work for their use case. So it's not the first-class support that you get from Microsoft with WSL, but it's still pretty good.
Exactly same experience to WSL - great out of the box experience, easy to use, and insist on using their own patched kernel.
In this case who except Microsoft would have paid for development here.
(Also, I'm surprised that WSL 1 is still supported. It must be in maintenance mode though, right?)
It makes it sound like Microsoft is giving some capability to Linux whereas it's the other way around.
Source: https://x.com/richturn_ms/status/1245481405947076610?s=19
https://xcancel.com/richturn_ms/status/1245481405947076610?s...
That said, to address the grandparent comment’s point, it probably should be read as “Windows Subsystem for Linux (Applications)”.
That's not what I say, that's what the former PM Lead of WSL said. To be fair, Windows Services for UNIX was just Unix services for Windows. Probably the same logic applied there back then: they couldn't name it with a leading trademark (Unix), so they went with what was available.
When it works, it's great! When it doesn't....oh man it sucks. It has been non-stop networking and VPN problems, XServer issues, window scaling issues, hardware accelerated graphics not working, etc. this whole time. I've spent more time trying to fix WSL issues then actually developing software. It's never gotten better.
It's fast. It's powerful. But using it as a daily driver is very painful in my experience. I avoid it as much as possible and do most of my work in MSYS2 instead. Sure, it's much slower. But at least it works consistently and has for years.
Now do NT.
Given what Windows has become and already discussed here on HN I would even hesitate to run it in a virtual machine.
Edit: more than 15 years.
I used to do VFIO with hardware passthrough so I could have linux but still run windows software like CAD that takes advantage of the gfx card. That was a pain to set up and use.
The other way, its very simple. WSL2 can run ML tasks with just a tiny bit of overhead in moving the data to the card.
I'm not a novice either, $dayjob has me working on the lowest levels of Linux on a daily basis. I did linux from scratch on a Pentium 2 when I was 12. All that to say yes I happen to agree but edge cases are out there. The blanket statement doesn't apply for all use cases
I set it up originally for gaming, but nowaways I install a lot of disposable software there.
I use Linux guests VMs too (a la Qubes), but sadly there's no guest support for looking-glass on Linux. Native rendering speeds on VMs are something hard to let go.
1. I use UWF on windows (Education Edition). All disk writes to C:/ are ephemeral. On every single reboot, all changes are discarded and my pc is back to the exact same state as when I first set it up. I do keep a separate partition for documents that need persistence.
2. Miracast for screen mirroring.
> We currently package our virtual machines for four different virtualization software options: Hyper-V (Gen2), Parallels, VirtualBox, and VMware. These virtual machines contain an evaluation version of Windows that expires on the date posted. If the evaluation period expires, the desktop background will turn black, you will see a persistent desktop notification indicating that the system is not genuine, and the PC will shut down every hour.
Edit: Oops, dead link -- the dev tools evaluation VM hasn't been released for 6+ months. But they do offer Windows evaluations ISO's after registration.
So, if you don't have a secondary GPU, you'll need to live without graphics acceleration in the VM... so for a lot of people the "oh you just need to use a VM!" solution is not feasible, because most of the software that people want to use that does not run under WINE do require graphics acceleration.
I tried running Photoshop under a VM, but the performance of the QEMU QXL driver is bad, and VirGL does not support Windows guests yet.
VMWare and VirtualBox do have better graphics drivers that do support Windows. I tried using VMWare and the performance was "ok", but still not near the performance of Photoshop on "bare metal".
Every Windows thread on HN is a reminder of the stark divide between people who need to use Windows for productivity apps and those who don’t.
The apps I need a Windows machine for are not the kind that virtualize nicely. Anything GPU related means Windows has to become the base OS for me.
If you’re running an occasional light tool you can get away with Windows in a VM, but it’s a no-go for things like CAD or games.
Over time though more and more small issues with it came up. Packages working not quite right, issues with the barriers between the two, etc. It always felt like there was a little bit more friction with the process.
With Valve really pushing Proton and the state of linux gaming, I've recently swapped over to Ubuntu and Nixos. The friction point moved to the gaming side, but things mostly just work.
Things on linux are rapidly getting better, and having things just work on the development side has been a breath of fresh air. I now feel that it's a better experience than windows w/ WSL, despite some AAA titles not working on linux.
Scrolling to Medals, 50% of all 25.000+ games tracked by the site are playable, either working perfectly or mostly (Platinum or Gold ratings). Another 20% can be alright under specific circumstances, and with compromises (Silver rating).
i have some 2012 projects were the makefiles also build in msvc. never again.
then 2015 projects with build paths for cygwin. never again.
then some 2019 projects with build scripts making choices to work on msys2/git-bash-for-windows. never again.
now we can build on WSL with just some small changes to an env file because we run a psql container in a different way under wsl... let's see how long we endure until saying never again.
I actually switched to Linux full-time when Starfield wouldn’t run on Windows but worked in Proton. We are now in a world where Valve provides a more sable Windows API than Microsoft. The only limitation now is anti-cheat but that’s a political problem, not a technical one.
No, Windows is not about games, Windows is about being an objectively the most stable pile of garbage there is.
Microsoft releases the important parts of VS Code under proprietary licenses. Microsoft doesn’t release the source code for Windows or Office or the github.com web app under free software licenses.
Don’t get it twisted. This is marketing, nothing more.
While right now I enjoy the privilege to develop on Linux, things may change.
Microsoft ist really terrible at naming things, that's for sure.
pjmlp•3h ago
90s_dev•3h ago
> This is the result of a multiyear effort to prepare for this
pjmlp•2h ago
jayd16•3h ago
tgma•2h ago
jayd16•2h ago
tgma•2h ago
littlestymaar•2h ago
tgma•2h ago
littlestymaar•2h ago
Sigh, and company keep them for sentimental reasons I guess…
tgma•2h ago
[1]: the real debate is not “who’s my lowest performer” for each manager. It is about why I should cut rather than my sibling manager. If you force everyone to cut one person they all know who it will be.
magicalist•2h ago
But the latest layoffs were not performance based. Are you just confidently commenting without knowing about the event being discussed?
tgma•2h ago
(Also I was responding to a more generic comment saying doing layoff is bad and makes org more political.)
bitmasher9•2h ago
int_19h•1h ago