Hacker News new | ask | show | jobs
by wtallis 287 days ago
> answered complaints about Windows being bad for development by embedding an OS that is good for development and calling that an innovation

Well, they actually did it twice in recent history: WSL 1 was relatively innovative, integrating Linux application compatibility into the Windows operating system itself. But that turned out to still be bad for development because it meant Linux software was now subjected to the performance problems of the Windows IO stack. So they responded with WSL 2, an ordinary Linux VM. And separately they also introduced the "Dev Drive" feature to let you create a filesystem that bypassed the worst parts of the Windows IO stack.

2 comments

> WSL 1 was relatively innovative, integrating Linux application compatibility into the Windows operating system itself

Both FreeBSD and Illumos were running Linux applications (at various levels of compatibility) many years prior to wsl v1. Joyent even went as far as re-implementing the Docker api to allow running OCI images natively in LX zones. Hence, it wasn't even that novel of an idea.

What's interesting is that the syscall-compatibility layers in the BSDs began with SunOS binary compat on NetBSD m68k/32-bit sparc-- which was created by Theo de Raadt.

https://marc.info/?l=openbsd-tech&m=161435521906992&w=2

https://github.com/NetBSD/src/commit/6ce3f21

https://github.com/NetBSD/src/commit/1a68594

He also came to the same conclusion compat layers were a dead end (OpenBSD removed all compat_*(8) support, including Linux).

That’s arguably an easy task though because there is more commonality due to POSIX.

But there are plenty of examples of compatibility layers like this throughout computing history. WINE, cygwin, Linux compat, etc.

Microsoft even went down this road already in the 80s with Xenix before abandoning the idea of Unix.

The only novel part of WSL was the marketing folks

Microsoft had a POSIX personality on NT since its release in 1993.

https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem

Then with the release of XP it was replaced with: https://en.wikipedia.org/wiki/Windows_Services_for_UNIX

NT running POSIX applications pre-dates the existence of FreeBSD by a handful of months.

The interesting thing about WSLv1 is the pico process concept, not the syscall compatibility.

Achieving it on Windows was fairly novel, though: we hadn't had something like that since the XP days.
Even that’s not true. cygwin, mingw, and others have been around for decades.
Those are runtime environments provided by DLLs (requiring recompilation), not Wine-like translation layers. WSL 1 was something special, and it says something that Microsoft ditched it in favour of "we've invented virtual machines for the very first time!!!".
It’s been a while since I’ve played with Cygwin and I do recall there were a lot of stuff compiled for Windows, but couldn’t it also run Linux software run natively too?

Admittedly back then I was working for a place that mainly developed in Perl, so I didn’t port a whole lot of ELFs across. So maybe I’m misremembering

When I was on the team migrating datacenters, we got ahold of tcpdump.exe which didn't need winpcap presumably because it was staticly compiled under cygwin - I'm fairly certain someone didn't write the entire thing including winpcap from scratch.

It was nice because getting anything approved by the windows sysadmin group was like changing the tire on a moving truck.

It was more than a godsend, because when a windows server was plugging into "the wrong vlan" we could just give them the tcpdump command to capture a CDP/LLDP packet and tell us which switch and port the box was physically connected to.

I had to confirm this, but you are misremembering. https://www.sobyte.net/post/2021-11/cygwin-mingw-msys/ gives a good rundown.
This begs the question of why Microsoft doesn’t just transition Windows to being a commercial Linux distribution, especially now that Windows licenses are so much less important to Microsoft’s business than they used to be.
That'd be a lot of work for no gain and substantial loss of control (due to GPL). How are they going to force adverts onto people if it becomes easy to just run a script to remove them?
It’s just as easy to run a script to remove them on Windows but most people don’t do that.

I would say that this vision of Windows would involve Microsoft essentially producing a Linux graphical shell similar to Gnome and KDE with a bunch of convenience tools that are typical to the Windows experience. It would have defaults like the Bing brower and all the typical Windows revenue-generating stuff.

I don’t think the GPL requirement to release code is a problem for the business model. Not all of the tooling has to be released as GPL and even if some of it does, the brand and commercial partnerships of Windows will mean that most people don’t go out and replace Windows with the hypothetical de-commercialized version.

We see this with VSCode where Microsoft is totally fine to release the code with an even more permissive license than the GPL, but they keep the extension marketplace gated. If you want Microsoft’s extensions you have to use VSCode.

What people are asking on this thread, that Microsoft just move everything to a Linux distro, is a gargantuan task. It will not happen in 10 years. It might not happen in 20 years but mark my words. Windows will switch to Linux within our lifetime.
The realistic way I see it happening is more like a product split rather than an explicit migration, or leveraging compatibility layers.

One day Microsoft would say, hey, Windows 15 is Linux-based. It'll run most of your Windows stuff either natively with some nice developer tooling to make a transition or using a compatibility layer (which, as we know, Linux already has!)

But you can keep using Windows 14 for a very, very long time.

Android is technically Linux, but you still can't remove the ads because it's all very locked down.
You can remove the ads from Android in a similar fashion to how you'd remove ads in Windows (e.g. DNS blocking). However, if you've got root access to Android, then there's other methods available to you. Some phones don't allow you access to root mode, but presumably a Windows version of Linux wouldn't be running on locked hardware (or at least I wouldn't buy something like that).