I still think they could fulfill that requirement and call it the "Windows Linux subsystem" or something, but what do I know?
Unrelated, but I think the WSL2 design is kind of stupid. It's just a VM. I think the WSL1 design, where it was a syscall layer, is a better call. But that was slower, IIRC chiefly because the NT filesystem syscalls are slower than Linux's VFS. Rather than improve that problem, they side-step it by running Linux in a VM.
But once you give up the specialization for Android and want WSL to be a "real Linux" (i.e. behave like a specific Ubuntu/Fedora/etc distribution) now you no longer can get away with being Linux-like, you have to be Linux (i.e. you need the syscall layer to directly mirror all kernel development and features). It's actually fairly impressive how much worked with WSL(1) given how different the internals were, but you didn't have to go that far to find tools/services/etc that just wouldn't work.
Instead, once you consider how long MS had been working on Hyper-V, and how interested they are in using it to apply additional security boundaries/isolation (e.g. VBS) within what outwardly appears to be a single Windows OS instance to the user, it makes a lot of sense to leverage that same approach to just run a real Linux kernel atop Hyper-V. In that world, you no longer have to match Linux kernel development, you just need to develop/maintain the kernel drivers used to interact with Hyper-V - and MS already had a lot of experience and need to do that given how much of Azure is running Linux VMs.
So making a better WSL on syscall layer, which NT kernel is designed for, is not only behind a technical effort wall, but also behind a big red tape.
I would have expected Microsoft to address this issue in Windows containers by supplying the correct version of the system DLLs at runtime. However, it seems that they decided to bake them in at build time instead. This makes Windows containers similar to Linux containers but it could have made them quite kernel-version-sensitive. According to MSDN, newer kernels are able to run older images, implying to me that they've begun to stabilize the kernel interface, potentially enough to enable proper static binaries. See https://learn.microsoft.com/en-us/virtualization/windowscont...
For the topic at hand, though, Windows containers run Windows software, and a lot of software that gets containerized never runs on Windows normally and so can't easily be containerized for that platform. Even when the language and libraries are cross-platform, the build process often isn't.
In one, each container gets its own kernel copy, while the other one works like Linux containers, and indeed you need a recent version, as there were some issues doing that on older versions, which is yet another reason to be running Windows 11.
Note that having kernel copy to go along the containers is also existing on Linux world, this is what advanced security models like Kata containers.
There is plenty of Windows software on big corporations that will never be ported to Linux, and that is the golden use case for at least put them into containers.
One such example are all the .NET Framework applications that will never be rewritten into modern .NET, or Windows Services (aka UNIX daemons).
The WSL2 design isn't stupid, it's practical. What I will give you is that it's not elegant in an "ivory tower of ideal computing" sense.
It is stupid in that it's not really any kind of subsystem, it's just a vm. VMs have their uses, but it's basically just an app.
The reason hardware such as my usb serial example (or any serial) worked on wsl1 was because it actually was a subsystem.
WSL2, on the whole, is much more compatible. If you want 100% Linux compatibility, just run Linux.
Yet in practice works very well
There's saying if something is stupid, but works, then it aint stupid
Your name is bizarrely better considering how small the difference is.
> The explanation they give is they need to put their trademark, Windows, before Linux. Sometimes they say this is advice from the legal department.
It feels like they have some strange internal naming policy. Maybe it is called the “Policy Product for Naming.”
That wasn’t the original primary reason for it… Windows NT began life as NT OS/2… at first, an evolved OS/2 API was going to be its primary API… then as Windows 3.x took off and the IBM-Microsoft relationship further soured, the OS/2 API was downgraded to a backward compatibility afterthought, and eventually (in Windows XP) dropped entirely.
And because they weren’t even sure what the primary API was going to be at first… and the whole idea of multiple OS “personalities” was all the rage - IBM’s Mach-based Workplace OS sought to unify AIX and OS/2 (and they even talked about extending that to OS/400), Taligent (IBM-Apple joint venture) had similar objectives - so it is understandable they made this API flexibility a focus of their early plans
And the guy they hired as technical lead in developing NT, Dave Cutler - had come from DEC, which had the very real problem of selling two largely incompatible operating systems (Unix and OpenVMS) - and they also sought to unify them through multiple personalities, as their next generation operating system MICA which would merge Unix and OpenVMS, which Cutler was working on, until DEC management decided to cancel the project, and Cutler went to Microsoft to do the same thing there
It IS honestly kind of cool. If Microsoft would invest into their solid OS instead of enshitifying it, they could implement Linux and Darwin on a single system. That would be quite a selling point.
I think that would be far more useful in practice than trying to close the gap between WSL1 and WSL2, which is what I’d interpret your “implement Linux” proposal as meaning
As far as trying to emulate Darwin goes, I think relatively few would be interested in running macOS apps on Windows, and I wonder whether there is a risk Apple might sue
I wonder if AI coding agents are going to improve to the point that they might radically change the incentives here - if adding new features becomes a lot cheaper, maybe the cost-benefit analysis will shift towards implementing more of this stuff
My idea was to implement a true Windows subsystem for these alongside Win32.
So I guess this project should be FreeBSD's subsystem for Linux? Or should it be FreeBSD's subsystem for Windows' subsystem for Linux?
The same Windows services are provided to "Seamlessly integrate Microsoft Widows into your Linux environment."
WSU became WSL!
- Power management subsystem
- Scheduling subsystem
- Sound subsystem
etc
The word before "subsystem" describes the subsystem itself, not the greater system to which it belongs.
If Microsoft is putting someone else’s trademark (in this case Linux or PostgreSQL) in its product name, their own trademark will always come first and someone else’s trademark will come last.
Whoever decided on the name didn't have sentence diagramming in elementary school English class.
WINE => Windows Subsystem for Linux/FreeBSD/UNIX
WSL => Linux/FreeBSD Subsystem for Windows
I love WSL2, I basically live in it. I need Office, and working laptops, too much to go full time Linux, and I want to be able to play games so I don’t want a Mac (yes I know Mac has some games, but not anything compared to windows).
Games are pretty much there for linux, reasonable stress about anti-cheat aside; but the network effects of Microsoft office are the real poison pill.
The irony of course is that if it wasn’t for games you could have a good time using office on MacOS with their cut down versions: but no such version exists for Linux and FreeBSD.
Since its purely network effects, I’ve taken to trying to promote Google Docs usage; since their tools anywhere with a modern browser, which is practically every modern desktop environment.
I know its pushing another US tech giant, but somehow the network effects are less egregious.
On top of the game stuff, this PC is under my TV, so I kinda wanted a way to remote in. VNC is surprisingly jank, and Chrome Remote Desktop somehow never worked. So combined with 0/2 of my games working, I just gave up and went back to Win10.
Not trying to diminish your struggle, and if it didn't work for you then obviously you shouldn't use it.
I don't own a Gamecube controller anymore, but I haven't noticed much lag with a wireless Switch Pro controller with Dolphin. I played through Tony Hawk's Underground and Tony Hawk's American wasteland on my laptop a few months ago using Dolphin, and as far as I could tell my terrible scores had nothing to do with lag, and I was able to finish them.
Definitely have had issues with Nvidia drivers though. It cost me an entire weekend getting one working a few months ago and I didn't enjoy that process.
The GC thing is specifically the Wii U adaptor. There's an overclock kmod, but it's known (on gh issues) to be finicky and didn't work for me. Regular controllers have no lag but also don't work quite the same; on Win and Mac the standard is that Wii U adaptor.
> Also had to wait like 30 minutes to generate vulkan shaders.
Yeah I'll grant that, that seems to happen for pretty much every game. It doesn't usually take thirty minutes but it can easily ten minutes which is quite annoying.
> The GC thing is specifically the Wii U adaptor.
Fair enough. I guess I've been happy enough with using other controllers.
It is because there are way more games that work than games that do not work at all. Also in general the "golden path" is really an all AMD PC (since that is where most of the testing and open development goes).
That said sometimes you may need to tinker/tweak things but this applies to Windows too, hence the existence of pcgamingwiki (which recently has added Linux info, though that is still dwarfed by the Windows info). I've been gaming on Linux for a few years now and was gaming on Windows before that and i do not find Linux any worse at all when it comes to getting stuff working (this was certainly not the case before ~2021 or so though).
The real killer is Excel. The web version has zero support for crucial tools like Power Query or Power Pivot, which are essential for any modern data analysis. You can't run, edit, or even create serious VBA/Macros, and advanced data validation and conditional formatting are stripped down to the bone.
For Word, if you're in law or academia, forget it. Features like Table of Authorities or Table of Figures are either completely missing or so simplified they are useless. Even the ability to handle standard APA or MLA citation styles is heavily cut down compared to the desktop app.
And for PowerPoint? You lose access to serious third party add-ins, and the granular control over animations and timers that professionals need just isn't there.
So, while the web version might be fine for a quick edit of a simple file, if you need to reliably work with a complex document from a Windows-based company, the compatibility issues and missing features will force you into a desktop app eventually. If you're going to be forced into a desktop experience anyway, you might as well bite the bullet and go LibreOffice for its feature completeness on Linux/FreeBSD.
It's a stronger bet than relying on Microsoft's cut-down web versions.
I also try to avoid google wherever possible.
In fairness to them, they've been using Windows and Office a lot in the last ~30 years, so asking them to abandon all that stuff isn't a trivial endeavor, but my point is that
Maybe you'll luck out and get something cross-platform or online, but 90% of the time if a client is sending a document, it's going to be something from Office (or rarely, Pages).
Spreadsheets can run scripts, and important ones you need to be able to run accurately, and not just hope your alternative office suite works.
I hate it, but it is what it is.
For me that's a no go.
I can live with bash in a WSL2 though... That's about what I need of Linux anyway. I can enjoy my gaming and the remaining of the userland too.
Best of both worlds.
The Legion GO being the most prime example[0].
Some games work better on Linux, some worse, but largely comparable[1].
I don’t believe that reviewers are paid to promote this view.
[0]: https://youtu.be/CJXp3UYj50Q?si=QWx6DRTQqzXnwfPL
[1]: https://www.noobfeed.com/articles/steamos-vs-windows-10-pc-b...
https://www.youtube.com/watch?v=Giois6VtLPM
https://www.youtube.com/watch?v=pAfrarQDBIQ
Even freaking Phoronix, which is quite "pro linux"
https://www.phoronix.com/review/nvidia2022-windows11-linux
Let's stop the gaslighting here, it doesn't work with me.
Thank you, have a good day.
What game would you like me to run on my Threadripper 3970x with Radeon VII?
Maybe that’s where our communication has broken down
Now, this won’t help if you play a lot of new games at launch (and aren’t ok playing them on a console instead of PC) or lots of multiplayer games with heavy-handed anti-cheat, but otherwise, Linux as a gaming OS has become pretty damn viable lately. Windows hasn’t been for anything but gaming for me since somewhere around the turn of the millennium, and I’ve just finally been able to ditch it completely. Which is really nice.
What I’m getting at is all-Linux (if you have more tolerance for Linux on the Desktop jank than I do) or Mac-for-work, Linux-for-play are now both non-terrible combos for having gaming available, and unless you need Nvidia or AMD graphics on your work machine (in which case, sure, may as well share that hardware for both roles), there are real benefits to work-system stability you can get by separating those.
(I do agree with you that running Linux under virtualization on either Windows or Mac is the only non-crazy-making and/or non-professionally-embarrassing way to work in Linux on a laptop, and I write that as someone who did run Linux on a laptop as my primary serious OS for most of a decade)
[0] nb. depending on what “a lot” means, Apple Silicon with a lot of system memory might still be a really good option.
You’re 100% right for gaming. But I’ve solved that by being a console person. I already mostly was. I’m much prefer the appliance like nature and many of the kinds of games that show up there.
If I still wanted to play more “PC style“ games or just indie things that aren’t available on the consoles I would have a spare Windows machine just for that.
What WSL has brought is that now it is one thing less to install.
However what got me started with Linux back in 1995, was the not so great support of POSIX in Windows NT.
Had Microsoft kept selling Xenix, or done Windows NT POSIX subsystem property, Linux would most likely never taken off.
Quite ironic given how Bill Gates used to talk about Xenix taking over.
Microsoft didn't see a profitable future in following AT&T.
How? You still have to install WSL, it's not on the machine out of the box, although if it's really just about not installing things, you might use Hyper-V, that may already be installed.
Enabling WSL isn't the same as going through VMWare Workstation or Virtual Box installation, and naturally paying for the commercial features.
See also https://en.wikipedia.org/wiki/List_of_products_based_on_Free...
FreeBSD was popular for many appliances, especially in the late 1990s and early 2000s, as it was generally rock-solid, had very mature networking, and the legal departments at the time liked the more permissive licence.
It's getting less and less common to see it, though. Sheer market share numbers mean performance, driver support, user familiarity, and companies no longer being afraid of the GPL mean that has Linux pretty much taken over.
It makes me a bit sad, but the OS on most Juniper gear is just a control plane for ASICs nowadays and NetApp has moved on to more advanced filesystems. Finding developers to write drivers/software for Linux is probably an order of magnitude easier.
All it forbids is blocking users from running modified FOSS code which macOS doesn't do. You can compile what you want and run it in Xcode. Even on iOS you can do this.
What TiVo did was shipping FOSS code but not giving users any access to their device.
A USB distributions like NomadBSD ( https://www.nomadbsd.org/ ) can be used to test compatibility without installing the OS.
Also, for HW compatibility: https://bsd-hardware.info/
Even if true, not having great support for laptops doesn't mean "no one uses FreeBSD". Obviously it's supported by essentially all server hardware and is used there, as well as many routers and the Playstation.
It's a desktop (a NUC) though so I don't use WiFi. I really hate laptops.
FreeBSD is pretty neat, don't get me wrong, I have played with it on servers and I ran an OPNsense router for years, so this isn't a dig on the OS as a whole, just that I don't think it's a good fit for laptops, at least the ones I've tried.
Typically I purchase hardware supported by the software I intend on using. I don’t blame the software or hardware vendors, if I intend to use them in a non-supported way.
The only issues I have with is Bluetooth which to be fair was trying to connect a Xbox controller and HDMI-Sound, otherwise it all works.
WiFi too. A bit archaic to change SSID but that's more software then hardware.
Couldn't be happier and with ZFS I have on-boot encryption.
I run it myself on my desktop and it's great. What I like is that it's not constantly changing stuff for the sake of it like with Linux. New init systems, changing ifconfig for other commands etc. And it's much better documented.
I have isolated jails with their own vNics running a nested bHyve VM instance inside which inside you then host a jail with its own vnic.
If something jumps out of the they are dead locked to the VM, if they jump out of that, they're trapped in a jail.
You have web services you desire to host. Let's call our first jail, infrastructure.
Within our infrastructure jail we want to create a Virtual Machine for actual web services.
You have a AMP stack and you wish to keep MySQL, Apache and PHP isolated. Security right?
We construct a VM named Web Services running FreeBSD. This VM now enables us to construct more jails to handle isolated MySQL and Apache/PHP instances. These jails have no idea about the host underneath as they're being hosted in a floating hive.
The VM is now the host so all jails connected traditionally via a Bridge and this is where netgraph comes in. However to explain NG over HN would be painful.
bHyve too isn't just limited to a single jail, you could then create a second jail on the FBSD host and construct the same. "Network Infrastructure" where you handle routing between jails.
So you now have two jails, each running virtual machines isolated from each other running hierarchical jails.
In my case I have a storage virtual machine. Using ZFS, space is dynamic and storage jail within issue all my nfs zfs shares, my smb shares et cetera. This makes backups easy as all I ever need to do is backup the storage virtual machine.
A media jail where I hold all my streaming services and a network jail where all things network infrastructure go. Routers, monitoring, dns et cetera.
You can go deeper than that. I was playing with a host where you had a, VM, Jail with hosted a dedicated firewall for jails which hosted jails for services.
Host > Jail > VM > FW Jail > Service Jail A > Jail A, B, C
And because all is contained in a virtual machine, I just power off the VM and backup the raw image.
While macOS used some userspace components from FreeBSD, it has no commonality with it. Darwin is a different kernel that works completely differently. macOS also has quite a bit its own stuff in the userspace.
https://developer.apple.com/library/archive/documentation/Da...
There was no real point in WSL in the first place, except for desperate attempts by Microsoft to stay relevant in the cloud age. To take two huge and very different systems with all their bugs and idiosyncrasies, merge them (creating even more bugs and idiosyncrasies along the way), and call it progress? I call it insanity. Only now with FreeBSD.
Microsoft doesn't do anything without filling a gap or fulfilling customer requirements.
It clearly had "a point".
Microsoft, being a monopoly, hardly cares about customers, especially about closing some imaginary "gaps". What they care about is preserving their dominant or monopoly position wherever they can, since in the last 25+ years, they lost so badly so many times, they shifted from "owning" the whole industry to being a monopoly in particular segments. They are basically repeating the path of IBM from being the industry to being irrelevant and struggling desperately to stop that inevitable process.
If Microsoft had listened to its customers, it would never have neglected and killed Skype, it would have continued to support XNA, so adored by the indie game devs, it would never have closed Arkane Austin and Ghostwire studios, it would have never preinstalled spyware with every single Windows installation... But Microsoft hardly cares.
I've seen many customer requested changes go into various products at Microsoft as having requested such changes.
I already said the same in that HN thread and will repeat it here:
Let's do it the other way round: run Windows in FreeBSD with bhyve and voila. But even better, just switch to FreeBSD. It's an amazing and rock solid OS.
Microsoft loves open source so much that they are putting efforts into... making you keep using their lousy closed source OS infested with telemetry and dark patterns. No thanks.