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 tried this in the past but I was unable to get the debugger to work from within a VM.
Has this improved, or is there a trick, or are you just going without a debugger?
Doesn't Linux as well?
I discovered over the weekend that only 1 monitor works over HDMI, DisplayPort not working, tried different drivers. Suspend takes a good 5 minutes, and on resume, the UI is either turn or things barely display.
I might buy a Windows license, especially if I can't get multi-screen to work.
Or use Suse, only distro that manages that well. Forget PopOS. Really, either binaries or Suse.
If someone else here is entrenched on Arch, do this: https://github.com/Frogging-Family/nvidia-all
If on Fedora, just use the binaries... trust me.
Hope this helps someone.
To be fair I stay away from NVIDIA to, I would probably run a separate headless box for those GPU workloads if I needed to
In my experience, it has zero issues. I use nvidia binary build. I have since 2006 through various nvidia GPU's.
Side note: our main use case is using cuda for image processing.
I know people here hate this, but if you want a good Linux experience, you need to start by picking the right hardware. Hardware support is far and away the number one issue with having a good Linux experience anymore. It's, unfortunately, very possible to even set out to pick good hardware and get burnt for various reasons, like people misrepresenting how well a given device works, or perhaps just simply very similar SKUs having vastly different hardware/support. Still, i'm not saying you have to buy something from a vendor like System76 that specifically caters to Linux. You could also choose a machine that just happens to have good Linux support by happenstance, or a vendor that explicitly supports Linux as an option. I'm running a Framework Laptop 16 and it works just fine, no sleep issues. As far as I know, the sole errata that exists for this laptop is... Panel Self Refresh is broken in the AMDGPU driver. It sorta works, but it's a bit buggy, causing occasional screen artifacts. NixOS with nixos-hardware disables it for me using the kernel cmdline argument amdgpu.dcdebugmask=0x10. That's about it. The fingerprint reader is a little fidgety, and Linux could do a better job at laptop audio out of the box, but generally speaking the hardware works day in and day out. It's not held together with ducktape.
I don't usually bother checking to see if a given motherboard will work under Linux before buying it, since desktop motherboards tend to be much better about actually running Linux well. For laptops, Arch wiki often has useful information for a given laptop. For example, here's the Arch wiki regarding the Framework 16:
https://wiki.archlinux.org/title/Framework_Laptop_16
It's fair to blame Linux for the faults it actually has, which are definitely numerous. But let's be fair here, if you just pick a given random device, there is a good chance it will have some issues.
Unfortunately, most (almost all) hardware is Windows hardware. So far, System76 is the only one that I've had actually work.
Big fan of Linux, but saying that Linux works on system76 while they have a tiny sliver of the Linux market share seems like a nonstarter.
You can either get hardware that works or you can deal with breakage.
That's not to detract from the larger point here though. It's pretty funny that all of the replies in this thread identify different causes and suggest different fixes for the same symptom. Matches my experience learning Linux very well.
Sorry you have had such bad luck.
But saying it can vary largely by distro is overstating it by a lot. Mostly, distro issues are going to be based on how old their kernels are.
But definitely, modern hardware is much too complex to just slap Linux on Windows (and vice versa).
Yes, exactly! There are whole teams inside Dell etc. dealing with this. The term is "system integration." If you're doing this on your own, without support or chip unfo, you are going to (potentially) have a very, very bad time.
> This is not the fault of hardware makers.
It is if they ship Linux on their hardware.
This is why you have to buy a computer that was built for Linux, that ships with Linux, and with support that you can call.
* 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.
The possibilities seem endless and kinda confusing with Windows on ARM vs Rosetta and Wine, think there's some other options which use MacOS's included virtualization frameworks.
(Edit: just so you know, the UI is a bit weird, there is a bit of a learning curve. But the app behaves in a very sane manner, with every step the previous state is maintained and a new node is created. It takes time to get used to it, but you'll learn to appreciate it.
May your cloud have oriented normals, and your samples be uniformely distributed. Godspeed!)
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.
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.
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.
> To get to a better state, we've gotta confront those workarounds and attack them at the source.
To my eye, the biggest problem with Linux is that so few are willing to pony up for its support. From hardware to software.
Buy Linux computers and donate to the projects you use!
That all said, I haven't tried CodeWeavers in almost 10 years so it might have improved a lot.
Forscan was developed independently by some Russian gentlemen, probably with plenty of reference to FDRS/IDS internals.
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.I’ve got an airgapped Toughbook that I use for the few Windows apps I really need to talk to strange hardware.
Lots of people bitch and moan about Windows problems that only exist because they buy the cheaper "Home" or whatever license and complain that Microsoft made different product decisions for average users than for people who have bought the explicitly labeled "power user" version.
Remember, the average computer user IS a hostile entity to Microsoft. They will delete System32 and then cry that Windows is so bad! They will turn off all antivirus software and bitch about Windows being insecure. They refuse to update and then get pwned and complain. They blame Microsoft for all the BSODs that were caused by Nvidia's drivers during the Vista era. They will follow a step by step procedure in some random forum from ten years ago that tells them to turn off their entire swap file despite running with lots of RAM and spinning rust and then bitch that Windows is slow.
Don't expect Microsoft to not deal with morons using their software. Buy the Pro versions if you don't want the version meant for morons.
I shouldn’t need to spend this much time and energy turning off AI rubbish, bypassing cloud features, or knobbling telemetry and ads because some shitbag at Microsoft decided this was a good way of getting a promotion.
My computer is supposed to work for me, not the other way around.
Right. One of the things a lot of people don't get is the extent to which multidisciplinary workflows require Windows. This is particularly true of web-centric software engineers who simply do not have any exposure to the rest of the engineering universe.
Years ago this was the reason we had to drop using Raspberry Pi's little embedded microcontroller. The company is Linux-centric to such an extent that they simply could not comprehend how telling someone "Just switch to Linux" is in a range between impossible and nonsensical. They were, effectively, asking people to upend their PLM process just for the sake of using a little $0.50 part. You would have to do things like store entire OS images and configurations just to be able to reconstruct and maintain a design iteration from a few years ago.
WSL2 is pretty good. We still haven't fully integrated this into PLM workflows though. That said, what we've done on our machines was to install a separate SSD for WSL2. With that in place, backing-up and maintaining Linux distributions or distributions created in support of a project is much, much easier. This, effectively, in some ways, isolates WSL2 distributions from Windows. I can clone that drive and move it from a Windows 10 machine to a Windows 11 machine and life is good.
For AI workflows with NVIDIA GPU's WSL2 is less than ideal. I don't know if things have changed in this domain since I last looked. Our conclusion from a while back was that, if you have to do AI with the usual toolchains, you need to be on a machine running Linux natively rather than a VM running under Windows. It would be fantastic if this changed and one could run AI workflows on WSL2 without CUDA and other issues. Like I said, I have not checked in probably a year, maybe things are better now?
EDIT: The other reality is that one can have a nice powerful Linux machine next to the Windows box and simply SSH into it to work. Most good IDE's these days support remote development as well. If you are doing something serious, this is probably the best setup. This is what we do.
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
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.
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 don't think WSL2 supports CPU emulation. It might not even support (or at least rely on) driver emulation, though Hyper-V itself does.
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.
The new WSL1 uses kernel call translation, like Wine in reverse and WSL2 runs a full blown Linux kernel in a Hyper-V VM. To my knowledge neither of these share anything with the aforementioned POSIX subsystem.
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.
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?
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).
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.
For a trivial change to glibc, it won't cause issues. But there's a lot of shared libraries and lots of different kinds of changes in different kinds of libraries that can happen.
I still haven't nailed if it was due to a shared library update, but just the other day, after running upgrades I was unable to su or sudo / authenticate as a user until after rebooting.
Firefox on Linux did not really enjoy being updated while running, as far as I remember; Chrome was fine with it, but only since it does some extra work to bypass the problem via its "zygote process": https://chromium.googlesource.com/chromium/src/+/main/docs/l...
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.
This is absolutely not true for Linux kernel updating. While you won't be using the new kernel before rebooting, there's 0 risk in not rebooting, because there's exactly 1 version of the kernel running on the machine -- it's loaded into memory when your computer starts.
There's of course rare exceptions, like when a dynamically linked library you just installed depends on a minimum specific version of the Linux kernel you also just installed, but this is extremely rare in Linux land, as backwards compatibility of programs with older kernels is generally a given. "We do not break userspace"
Most distros leave the current running kernel and boot into the new one next time.
Some, like Arch, overwrite the kernel on an update, so modules can’t be loaded. It is a shock the first time you plug in a USB drive and nothing happens.
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.
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.
These days I'm avoiding booting into Windows unless I really have no choice. The ridiculousness of it is simply limitless. I would open a folder with a bunch of files in it and the Explorer shows me a progress bar for nearly a minute. Why? What the heck is it doing? I just want to see the list of files, I'm not even doing anything crazy. Why the heck not a single other file navigator does that — not in Linux, not on Mac, darn — even the specialized apps built for Windows work fine, but the built-in thing just doesn't. What gives? I would close the window and re-open the exact same folder, not even three minutes later and it shows the progress bar again. "WTF? Can't you fucker just cache it? Da fuk you doing?"
Or I would install an app. And seconds after installing it I would try to search for it in the Start menu, and guess what? Windows instead opens Edge and searches the web for it. wat? Why the heck I can't remove that Edge BS once and for all? Nope, not really possible. wat?
Or like why can't I ever rebind Cmd+L? I can disable it but can't rebind it, there's just no way. Is it trying to operate my computer, or 'S' in 'OS' stands for "soul"?
Or for whatever reason it can't even get the time right. Every single time I boot into it, my clock time is wrong. I have to manually re-sync it. It just doesn't do it, even with the location enabled. Stupid ass bitch.
And don't even let me rant about those pesky updates.
I dunno, I just cannot not hate Windows anymore. Even when I need to boot in it "for just a few minutes", it always ends up taking more time for some absolute fiddlesticks made of bullcrap. Screw Windows! Especially the 11 one.
I want a OS, not an entertainment center, meaning I want to launch a program, organize my files, and connect to other computers. Anything that hinders those is bad. I moved from macOS for the same reason, as they are trying to make those difficult too.
Exactomundo! I'm a software developer, not a florist. I don't care about all those animations, transitions, dancing emojis, styled sliding notifications, windings and dingleberries. If I want to rebind a fucking key I should be able to. If I want to replace the entire desktop with a tiling manager of my choosing — that should be possible. And definitely, absolutely, in no way, should just about any kind of app, especially a web-browser, be shoved in my face. "Edge is not that bad", they would say. And would be completely missing the whole point.
Dual booting will do that because linux & windows treat the system clock differently. From what I recall one of them will set it directly to the local time and the other always sets it to UTC and then applies the offset.
https://wiki.archlinux.org/title/System_time#UTC_in_Microsof...
That's exactly the type of Windows-ism I'm talking about. Two options (use UTC or the local time), and Windows chose to pick the nonsensical one.
https://learn.microsoft.com/en-us/windows-server/networking/...
nope, that's with a pristine, freshly installed Windows Pro instance.
This isn't even a corpo-sloptop with Qualys and Zscaler and crap running, Just a basic WIndows box I rarely boot. It's deeply offensive to me.
That's much more complicated and error prone than fork.
But also, no, it's not worse than fork. Fork literally breaks every threaded app.
So, basically yesterday, and not default like how it is with execve, and you can never know if the command you're trying to call implements it the same way or does a different escaping.
Care to explain how fork "breaks" threaded apps? You can't mix them for doing multiprocessing, but it's fine if you use one model or the other.
fork() breaks threaded apps by forking the state of all threads, including any locks (such as e.g. the global heap lock!) that any given thread might hold at that moment. In practice this means that you have to choose either fork or threads for your process. And this extends to libraries - if the library that you need happens to spawn a background thread for any reason, no more fork for you. On macOS this means that many system APIs are unusable. Nor is any of this hypothetical - it's a footgun that people run into regularly (just google for "fork deadlock") even in higher level languages such as Python.
> just google for "fork deadlock"
I did, results were completely unrelated to what you're talking about.
Anyway libraries spawning hidden threads… I bet they don't even bother to use reentrant functions? I mean… ok they are written by clueless developers. There's lots and lots of them, they exist on windows too. What's your point?
That's
It's like complaining that Unix is hard to use because I can't just drop a dll into a folder to hook functionality like I can on Windows. It's a radically different design following different ideologies and you can't magically expect everything to transfer over perfectly. If you want to do that on Linux land, you learn about LD_PRELOAD or hook system calls.
If you want to build powerful, interoperable modules that can pipe into each other and compose on the commandline, Powershell has existed since 2006. IMO, passing well formed objects from module to module is RADICALLY better than passing around text strings that you have to parse or mangle or fuck with if you want actual composibility. Powershell's equivalent of ls doesn't have to go looking at whether it is being called by an actual terminal or by an app Pipe for example in order to support weird quirks. Powershell support for Windows internals and functionality is also just radically better than mucking around in "everything is a file" pseudo folders that are a hacky way to represent important parts of the operating system, or calling IOCntrls.
I also think the way Windows OS handles scheduled tasks and operations is better than cron.
I also think Windows Event logging is better than something like dmesg, but that's preference.
Also EVERYTHING in Windows land is designed around remote administration. Both the scheduled tasks and Event Logging systems are transparently and magically functional from other machines if you have you AD setup right. Is there anything in Linux land like AD?
The problem is when you want to click a file on your file manager and you want it to open in the associated application. Because the file manager can only hope the associated application parses the escapes the same way it generates them. Otherwise it's file not found :)
I'm not going to bother to reply point by point since you completely missed the point in the first few words.
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.
This is correct, but let's not pretend that linux is perfect. 99% of linux _for me_ is my terminal environment. WSL delivers on that _for me_.
I don't see any start menu spam because I rarely use it, when I do I type what I'm looking for before my eyes even move to look at that start menu.
oh, I can play destiny 2 and other games without shenanigans. Also don't need to figure out why Slack wants to open links in chromium, but discord in firefox (I have to deal with edge asking to be a default browser, but IMO it's less annoying).
Oh and multi-monitor with multiple DPI values works out of the box without looking up how to handle it in one of the frameworks this app uses.
That's a /s, right? When I start typing immediately after the windows button, the initial letters are lost, the results are bad either way, and most turn into just web suggestions rather than things named exactly like the input.
No, I rarely have issues with search in start menu.
If I were to run an OS on a VM it's gonna be windows, not Linux
Having Windows and Linux in the same desktop the way that WSL2 does obviously means that it does add a lot of value, but what you get in the box isn't exactly the same as the thing running natively. Rather than a strict superset or strict subset, it's a bit more like a Venn diagram of strengths.
I am surprised you had such problems with wsl2 graphics acceleration. That just worked for me, including CUDA accelerated workloads on the linux side.
You obviously don't. Maybe WSL is the best compromise for people who need both Windows and Linux.
But it's ridiculous to think that WSL is better than just Linux for people who don't need Windows at all. And that's kind of what the author of this thread seems to imply.
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.
The filesystem navigation getting partially open sourced is one of the more interesting parts being open sourced per this announcement. The Plan9 file server that serves files from Windows into Linux is included in the new open source dump. (The Windows filesystem driver that runs a Plan9 client on the Windows side to get files from Linux is not in the open source expansion.)
It's still fascinating that the whole thing is Plan9-based, given the OS never really succeeded, but apparently its network file system is a really good inter-compatibility file communication layer between Linux and Windows.
> I do wish that WSL1 was taken further.
WSL1 survives and there's still a chance it will see more work eventually, as the tides shift. I think the biggest thing that blocked WSL1 from more success was lack of partners and user interest in Windows Subsystem for Android apps. That still remains a potentially good idea for Windows if it had been allowed "real" access to Google Play Services and App Store, rather than second rate copy of Amazon's copy of Google Play Services and Fire App Store. An actual Google partnership seems doomed given one of the reasons to get Windows Subsystem for Android competitive was fear of ChromeOS, but Google still loves to talk about how "Open" Android is despite the Google Play Services moat and that still sounds like something that a court with enough fortitude could challenge (even if it is probably unlikely to happen).
Sure, but I never claimed otherwise.
> You cannot claim with a straight face that Virtualbox is easier to use.
I also didn't claim that. I wasn't comparing WSL to other virtualization solutions.
WSL2 is cool. Linux doesn't have a tool like WSL2 that manages Linux virtual machines.
The catch 22 is that it doesn't need one. If you want to drop a shell in a virtual environment Linux can do that six ways through Sunday with no hardware VM in sight using the myriad of namespacing technologies available.
So while you don't have WSL2 on Linux, you don't need it. If you just want a ubuntu2204 shell or something, and you want it to magically work, you don't need a huge thing with tons of integration like WSL2. A standalone program can provide all of the functionality.
I have a feeling people might actually be legitimately skeptical. Let me prove this out. I am on NixOS, on a machine that does not have distrobox. It's not even installed, and I don't really have to install it since it's just a simple standalone program. I will do:
$ nix run nixpkgs#distrobox enter
Here's what happened: $ nix run nixpkgs#distrobox enter
Error: no such container my-distrobox
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:latest? [Y/n]: Y
Creating the container my-distrobox
Trying to pull registry.fedoraproject.org/fedora-toolbox:latest...
...
0f3de909e96d48bd294d138b1a525a6a22621f38cb775a991974313eda1a4119
Creating 'my-distrobox' using image registry.fedoraproject.org/fedora-toolbox:latest [ OK ]
Distrobox 'my-distrobox' successfully created.
To enter, run:
distrobox enter my-distrobox
Starting container... [ OK ]
Installing basic packages... [ OK ]
Setting up devpts mounts... [ OK ]
Setting up read-only mounts... [ OK ]
Setting up read-write mounts... [ OK ]
Setting up host's sockets integration... [ OK ]
Integrating host's themes, icons, fonts... [ OK ]
Setting up distrobox profile... [ OK ]
Setting up sudo... [ OK ]
Setting up user groups... [ OK ]
Setting up user's group list... [ OK ]
Setting up existing user... [ OK ]
Ensuring user's access... [ OK ]
Container Setup Complete!
[john@my-distrobox]~% sudo yum install glxgears
...
Complete!
[john@my-distrobox]~% glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
302 frames in 5.0 seconds = 60.261 FPS
^C
No steps omitted. I can install software, including desktop software, including things that need hardware acceleration (yep, even on NixOS where everything is weird) and just run them. There's nothing to configure at all.That's just Fedora. WSL can run a lot of distros, including Ubuntu. Of course, you can do the same thing with Distrobox. Is it hard? Let's find out by using Ubuntu 22.04 instead, with console output omitted:
$ distrobox create --image ubuntu:22.04
...
$ distrobox enter ubuntu-22-04
...
$ sudo apt install openarena
...
$ /usr/games/openarena
To be completely, 100% fair: running an old version of Ubuntu like this does actually have one downside: it triggers OpenGL software rendering for me, because the OpenGL drivers in Ubuntu 22.04 are too old to support my relatively new RX 9070 XT. You'd need to install or copy in newer drivers to make it work. There are in fact ways to do that (Ubuntu has no shortage of repos just for getting more up-to-date drivers and they work inside Distrobox pretty much the same way they work in real hardware.) Amusingly, this problem doesn't impact NVIDIA since you can just tell distrobox to copy in the NVIDIA driver verbatim with the --nvidia flag. (One of the few major points in favor of proprietary drivers, I suppose.)On the other hand, even trying pretty hard (and using special drivers) I could never get hardware acceleration for OpenGL working inside of WSL2, so it could be worse.
That aside, everything works. More complex applications (e.g. file browsers, Krita, Blender) work just fine and you get your normal home folder mapped in just like you'd expect.
Except that Distrobox does not require a VM of course as the host kernel is Linux.
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.
But having Windows tightly integrated when needed is nice.
If only I could run replace the Windows shell with a Linux DE...
Apparently Linux VMs on other people's computers is very much appreciated.
For many software engineers, a lot of our work is Linux, and it wouldn't be atypical to spend most of the time doing Linux development. I work on Linux and deploy to Linux, it's just a no-brainer to run Linux, too, aside from the fact that I simply loathe using modern Windows to begin with.
(Outside of that, frankly, most people period live inside of the web browser, Slack, Discord, and/or Steam, none of which are Windows-exclusive.)
My point isn't that Linux is better than Windows, it's that WSL2 isn't better than literally running Linux. If you need to do Linux things, it is worse than Linux at basically all of them.
For anything that is PvP multiplayer, this is very much not a given because of how pervasive kernel-level anti-cheat solutions are today.
> For anything that is PvP multiplayer, this is very much not a given because of how pervasive kernel-level anti-cheat solutions are today.
To be fair, though, you probably still have a better shot of being able to play the games you want to under Linux than macOS and that doesn't seem to be that bad of an issue for Mac users. (I mean, I'm sure many of them game on PC anyways, but even that considered macOS has greater marketshare than Linux, so that's a lot of people either able to deal with it or have two computers.)
I do indeed have two computers with a KVM setup largely for this reason, with a secondary Windows box relegated to gaming console role.
Still, the point is that you can make it work if you want to make it work. Off the top of my head:
- Two computers, completely separate. Maybe a desktop and a laptop.
- Two computers, one desk and a KVM like you suggest.
- Two computers, one desk. No proper KVM, just set up remote desktop and game streaming.
- (on Linux) KVM with GPU passthrough, or GPU passthrough with frame relay. One computer, one desk.
- Game streaming services, for more casual and occasional uses.
- Ordinary virtualization with emulated GPU. Not usually great for multimedia, but still.
- And of course, Steam Play/Heroic Launcher/WINE. Not as applicable on macOS, but I know CodeWeavers does a lot to keep macOS well-supported with Crossover. With the aforementioned limitations, of course.
Obviously two computers has a downside, managing two boxen is harder than one, and you will pay more for the privilege. On the other hand, it gives you "the real thing" whenever you need it. With some monitors having basic KVM functionality built-in, especially over USB-C, and a variety of mini PCs that have enough muscle to game, it's not really the least practical approach.
I suspect for a lot of us here there is a reasonable option if we really don't want to compromise on our choice of primary desktop OS.
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.
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.
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 think the infamous cascade of attention-deficit teenagers (CADT) has slowed down quite a bit in the desktop space because... well, most developers there are over 30 now.
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?
If you're on KDE, you can right-click the start menu and add the application. Also, right-click menu should give you a run option.
Removing double-click to run an executable binary certainly sounds like something either Gnome or Ubuntu would do, but thankfully that's not the only option in town. In KDE I believe the same exact Windows workflow would just work.
`cargo build --release`
Good to know KDE doesn't do that!
$ cargo --version
cargo 1.86.0
$ cargo new hello-rs
Creating binary (application) `hello-rs` package
$ cd hello-rs && cargo build --release
Compiling hello-rs v0.1.0 (/Users/int19h/src/hello-rs)
Finished `release` profile [optimized] target(s) in 0.73s
$ ls -la target/release/hello-rs
-rwxr-xr-x@ 1 int19h staff 468608 May 20 20:16 target/release/hello-rs*
$ ./target/release/hello-rs
Hello, world!
Are you sure it's not because the package in question does some kind of weird custom build steps?KDE is much more cohesive, stable, and has significantly more features.
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.
This approach has been fascinating so far, but yeah not "exciting" from "what crazy things can I do with Windows like put it in a toaster" side of things.
It would be great to see at least a little bit more "middle-out" from Windows Open Source efforts. A minimal build of the NT Kernel and some core Windows components has been "free as in beer" for a while for hobby projects with small screens if you really want to try a very minimal "toaster build" (there's some interesting RPi out there), but the path to commercialization is rough after that point and the "small screens" thing a bit of a weird line in the sand (though understandable given Microsoft's position of power on the desktop and sort of the tablet but not phone).
The NT Kernel is one of the most interesting microkernels left in active use [0], especially given how many processor architectures it has supported over decades and how many it still supports (even the ones that Windows isn't very commercially successful on today). It could be a wealth of power to research and academia if it were open source, even if Microsoft didn't open source any of the Windows Subsystems. It would be academically interesting to see what sort of cool/weird/strange Subsystems people would build if NT were open source. I suppose Microsoft still fears it would be commercially interesting, too.
[0] Some offense, I suppose to XNU here. Apple's kernel is often called a microkernel for its roots from the Mach kernel, but it has rebuilt some monoliths on top of that over the years (Wikipedia more kindly calls it a "hybrid kernel"), and Mach itself is still so Unix flavored. NT's "object oriented" approach is rather unique today, with its more VMS heritage, a deeply alternate path from POSIX/Unix/Linux(/BSD).
I have to onboard a lot of students to work on our research. The software is all linux (of course), and mostly distribution-agnostic. Can't be too old, that's it.
If a student comes with a random laptop, I install WSL on it, mostly ubuntu. apt install <curated list of packets>. Done. Linux laptops are OK too, I think, but so far only had one student with that. Mac OS used to be easy, but gets harder with every release, and every new OS version breaks something (mainly, CERN root) and people have to wait until it's fixed.
Fair enough. I think the best way to run Linux if you want to be sure you won't have tweak to stuff is to buy hardware with linux preinstalled. That your choice is more limited is another matter than "linux can't suspend".
Comparing a preinstalled Windows with a linux installed on random laptop whose manufacturer can't be bothered to support is a bit unfair.
Linux on a laptop where the manufacturer did their work runs well.
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_...
And yeah, it's best to wait a bit for new models, as support is sorted out, if the manufacturer doesn't support Linux itself. Or pick a manufacturer that sells laptops with Linux preinstalled. That makes the comparison with a laptop with Windows preinstalled fair.
I wasn't cherry-picking things. I literally searched for laptops available in my budget in my country and looked up what was the linux support like for those laptops as reported by people on reddit.
> Or pick a manufacturer that sells laptops with Linux preinstalled
I suppose you are talking about System76, Tuxedo etc. These manufacturers don't ship to my country. Even if I am able to get it shipped, how am I supposed to get warranty?
HP, Dell and Lenovo also sell Linux laptops on which Linux runs well.
I sympathize with the more limited availability and budget restrictions, but comparisons must be fair: compare a preinstalled Windows and a preinstalled linux, or at least a linux installed on hardware whose manufacturer bothered to work on Linux support.
When the manufacturer did their homework, Linux doesn't have the issues listed earlier. I've seen several laptops of these three brands work flawlessly on Linux and it's been like this for a decade.
I certainly choose my laptops with Linux on mind and I know just picking random models would probably lead me to little issues here and there, and I don't want to deal with this. Although I have installed Linux on random laptops for other people and fortunately haven't run into issues.
> it's been like this for a decade
Again, depends on the definition of "flawlessly". Afaik, support for hardware accelerated videoplayback on browsers was broken across the board only three years ago.
You first option is to buy a laptop with linux preinstalled from one of the many manufacturers that provides this. This requires no particular knowledge or time. Admittedly, this may lead you to more expensive options, entry grade laptops won't be an option.
Your second best bet is to read tech reviews. Admittedly this requires time and knowledge, but often enough people turn to their tech literate acquaintance for advice when they want to buy hardware.
> Afaik, support for hardware accelerated videoplayback on browsers was broken across the board only three years ago.
Yes indeed, that's something we didn't have. I agree it sucks. Now, all the OSes have their flaws that others don't have, and it's not like the videos didn't play, in practice it was an issue if you wanted to watch 4K videos for hours on battery. Playing regular videos worked, and you can always lower the quality if your situation doesn't allow the higher qualities. Often enough, you could also get the video and play it outside the browser. I know, not ideal, but also way less annoying that the laptop not suspending when you close the lid because of a glitch or something like this.
I have earnestly tried for >20 minutes trying to find such a laptop with any reputed manufacturer in my country (India) and come up empty-handed. Please suggest any that you can find. Even with Thinkpads, the only options are "Windows" or "No Operating System".
>Your second best bet is to read tech reviews.
Which tech reviews specifically point out linux support?
>Playing regular videos worked, and you can always lower the quality if your situation doesn't allow the higher qualities
The issue was never about whether playing the video worked. CPU video decoding uses much more energy and leads to your laptop running hot and draining battery life.
Can we at least agree to reduce the timeframe for things working flawlessly to "less than two years" instead of "a decade"? Yes you were able to go to the toilet downstairs but the toilet upstairs was definitely broken.
If buying with Linux is not an option at your place, you can always buy one of the many models found with this search without OS and install it yourself. Most thinkpads should be all right. Most elitebooks should do. Dell laptops sold with Ubuntu somewhere on the planet should do. I'm afraid I can't help nore, you'll have to do your search. Finding out which laptops are sold with Linux somewhere should not be rocket science. I don't buy laptops very often, I tend to keep my computers for a healthy amount of time, I can't say what it's like in India in 2025.
> Can we at least agree to reduce the timeframe for things working flawlessly to "less than two years" instead of "a decade"? Yes you were able to go to the toilet downstairs but the toilet upstairs was definitely broken.
No. I understand that it can be a dealbreaker for some, but that's a minor issue for me on laptops, even unplugged, and I do watch a lot of videos (for environmental reasons I tend to avoid watching videos in very high resolutions anyway, so software rendering is a bummer but not a blocker). There are still things that don't work, like Photoshop or MS Office, so you could say that it's still not flawless, still, that doesn't affect me.
Many results, including a US-specific page of the Lenovo website.
>If buying with Linux is not an option at your place, you can always buy one of the many models found with this search without OS and install it yourself.
>Finding out which laptops are sold with Linux somewhere should not be rocket science.
It should not. Given the amount of time I have already spent on trying to find one, it is fair to say that there are none easily available in India, at least in the consumer laptop market.
> I understand that it can be a dealbreaker for some, but that's a minor issue for me on laptops
Stockholm syndrome.
Are you failing to see that this US-specific page gives you a long list of models you can consider elsewhere?
> Stockholm syndrome.
Yeah, no. It just appears I have different needs than you and value different tradeoffs. It appears that the incredible comfort Linux brings me offsets the minor inconvenience software rendered browser video playback causes me.
I'm done in this discussion, we've been quite far away the kind of interesting discussions I come to HN for for a few comments now.
Stockholm Syndrome was bullshit made up on the spot to cover for the inability of the person making it up to defend their position with facts or logic, and...that fits most metaphorical uses quite well, too, though its not usually the message the metaphor is intended to communicate.
https://github.com/Fmstrat/winapps
Enjoy.
( https://news.ycombinator.com/item?id=44025837 )
Seems to be based on very polished https://www.winehq.org , so no full VM, but maybe it's less 'heavy'?
WinApps runs the apps on real native Windows in a VM, but integrates their UI with the host OS.
WINE does this anyway, and it's an inherent property of WINE because there is no host OS. WINE does some fakery and indirection to make Unix filesystems appear on drive letters and things, but the app is still executing on the host OS, just via a translation layer.
Bottles runs the apps on top of WINE, but maintains separate WINE instances for each app and allows different onces to have different auxiliary tools, such as games-compatibility libraries, different versions of WINE, etc.
And because it bubbled up instantly, having read about it before, right here on HN, just ...uhhhmmm...hours ago.
FWIW, I tested Bottles on 2 machines here, one with Ubuntu 22.04 and one with Ubuntu 24.04.
I could not get any app to install in Bottles that wouldn't run under bare WINE. Apart from a friendly GUI -- although it looks awful on any other desktop, like most Gtk 4 apps -- I can't see any benefit to it, TBH.
This isn't really the case, and hasn't been for some years now, especially since Valve started investing heavily in Wine. The quality of Wine these days is absolutely stunning, to the point that some software runs better under Wine than it does on Win11. Then there's the breadth of support which has has moved the experience from there being a slight chance of something running on Wine, to now it being surprising when something doesn't.
This is a list of software I run or have run and that I keep checking on every 6th month or so.
Most of them simply dont work, some have unstable limited features.
https://www.codeweavers.com/compatibility/crossover/microsof... https://www.codeweavers.com/compatibility/crossover/adobe-cr... https://www.codeweavers.com/compatibility/crossover/corel-pa... https://www.codeweavers.com/compatibility/crossover/corel-pa... https://www.codeweavers.com/compatibility/crossover/visual-s... https://www.codeweavers.com/compatibility/crossover/microsof... https://www.codeweavers.com/compatibility/crossover/affinity... https://www.codeweavers.com/compatibility/crossover/affinity... https://www.codeweavers.com/compatibility/crossover/affinity... https://www.codeweavers.com/compatibility/crossover/snagit13 https://www.codeweavers.com/compatibility/crossover/evernote...
So, for me Windows + WSL is more productive than just using Linux. The UI is still better on Windows(basic utilities like File Explorer and Config Management is better on Windows). No Remoting Software beats RDP. When I remote to a Windows workstation through RDP, I can't tell the difference. VNC is always janky. Of course there is Word/Excel/Illustrator which is simply not available on Linux
Any recent distro running Gnome or KDE has built-in support for connecting and hosting an RDP session. This used to be a pain point, you don't need to use VNC anymore.
It's actually worse on windows since you need to pony up for a pro license to get RDP hosting support...
5 years ago, we would be comparing old GNOME 3 or KDE Plasma 5 on X11 and Windows 10. I would be forced to agree. The Windows UI was better in many ways at that point.
Today we have KDE Plasma 6.3 on Wayland and Windows 11. This is an entirely different ball game. It's hard to explain. Wayland feels like it has taken an eternity to lift off, like well over a decade, but now things change dramatically on the scale of months. A few months ago HDR basically didn't work anywhere. Right now it's right in front of me and it works great. You can configure color profiles, SDR applications don't break ever, and you even get emulated brightness. Display scaling? Multiple monitors with different scale factors? What about one monitor at 150% and another at 175% scale factor? What about seamlessly dragging windows between displays with different scale factors? Yes, Yes, Yes, and Yes. No `xrandr` commands. You configure it in the GUI. I am dead serious.
File Explorer? That's the application that has two context menus, right? I think at this point Windows users might actually be better off installing KDE's Dolphin file manager in Windows for the sake of their own productivity. If I had the option to use Windows File Explorer on KDE I would impolitely decline. I have not encountered any advertising built into my file explorer. I do not have an annoying OneDrive item in the menu on the left. I have a file tree, a list of Places, and some remote file shares. When I right click it does not freeze, instead it tends to show the context menu right away. And no, I'm not impressed by Tabs and Dark Mode, because we've had that on Linux file managers for so long that some people reading this were probably born after it was already supported.
Windows still has the edge in some areas, but it just isn't what it used to be. The Linux UI is no longer a toy.
> When I remote to a Windows workstation through RDP, I can't tell the difference. VNC is always janky.
I don't really blame you if you don't believe me, but I, just now, went into System Settings, went to the Remote Desktop setting, and clicked a toggle box, at which point an RDP server spawned. Yes, RDP, not VNC, not something else. I just logged into it using Reminna.
Not everything on Linux is seamless and simple like this, but in this case it really is. I'm not omitting a bunch of confusing troubleshooting steps here, you really can do this on a modern Linux setup, with your mouse cursor. Only one hand required.
> Of course there is Word/Excel/Illustrator which is simply not available on Linux
True, but if you want to use Linux and you're held back by needing some specific software, maybe it's not the end of the world. You have many options today. You can install VirtualBox and run your spreadsheets in there. You can use Office 365 in a browser. You can run Crossover[1] and emulate it. You can use an office alternative, like possibly WPS Office. You can dual boot. You can go the crazy route and set up a KVM GPU passthrough virtual machine, for actually native performance without needing to reboot.
The point I'm making here is not "Look, Linux is better now! Everyone go use it and get disappointed ASAP!" If you are happy with Windows, there's literally no point in going and setting yourself up for disappointment. Most people who use Linux do so because they are very much not happy with Windows. I'm sure you can tell that I am not. However, in trying to temper the unending optimism of Linux nerds, sometimes people go too far the other way and represent Linux as being in far worse of a state than it actually is. It really isn't that bad.
The worst thing about modern Linux is, IMO, getting it to work well on your hardware. Once you have that part figured out, I think modern Linux is a pretty good experience, and I highly recommend people give it a shot if they're curious. I think Bazzite is a really nice distro to throw on a random spare computer just to see what modern Linux is actually capable of. It's not the absolute most cutting edge, but it gives you a nice blend of fairly up-to-date software and a fairly modern RPM ostree base system for better stability and robustness, and it's pretty user-friendly. And if you don't like it, you can easily get a full refund!
[1]: https://www.codeweavers.com/compatibility/crossover/microsof...
Or ONLYOFFICE, which is FOSS (and what I use personally). Or LibreOffice (also free/libre software, of course). I don’t miss MS Office one bit, the compatibility is nothing short of excellent nowadays, and the speed and UX both surpass it.
There are specialized software packages that are Windows-only, of course, but at least office programs ain’t it.
I mean this is basically heresy now.
most code is virtualised, or sandboxed, or in a VM, or a docker container, or several of the above at the same time.
Full hardware support is still not a given, and Windows emulation is still need for so many cases (e.g. games, specialized software etc).
Until I can choose any machine based on form factor and specs alone and just run Linux on it, WSL will the best version of Linux it can run.
If you're not buying your hardware from a vendor you can call and get support with Linux from, you're going to have a hard time.
Fingerprint sensors and IR login cameras that are pre-installed on many laptops, and have Windows-only drivers.
As an end-user (yes, I'm an engineer too, but from the perspective of the OS and driver developers I am an end-user) I don't care who is in charge of getting the device to work on an OS—I only care that it works or not. And these devices don't, on Linux. So, they are broken.
What may hap be your workload? The only thing that aren't working on Linux day 1 are GPU's, and it's mostly because kernel/distro timings (we haven't had a GPU release without support for mainline kernel in years).
The absolute best built laptops on the market right now don't come with Linux support...
This is totally laptop vendors' fault, but that doesn't change the fact of the matter.
PS: it would be fine if there was a few good options in all categories. Right now I see nothing comparable to an Asus Z13 but with first class Linux support for instance.
I was holding hopes for the Framework 12" but they cheaped on the screen to target the student market, with no upgrade option at this point.
I use Linux as my primary OS, and while Proton/Steam are pretty good now I'm still rebooting into (unactivated) Windows for some games. It's fine. It's also the only thing I use Windows for.
On an unrelated note, I'm frankly confused about who wants Apple's janky OS, because I've been forced to use it for work and it is very annoying.
I bought an iphone and then got angry it didn't run android
Just use Linux.
I use WSL extensively, with lots of languages, and I’ve never had anything do that.
It’s running in a VM, so that would be some kind of weird VM escape?
[interop]
appendWindowsPath=false
section in /etc/wsl.conf.
Then everything will go flawlessly.
Sounds a lot like a picnic problem but you didn’t give nearly enough details.
One of the most common issues is calling a windows executable from within wsl… it’s a “convenience” feature that takes about 2 seconds to disable in the wsl config but causes these kinds of weird bugs
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...