Hacker News new | ask | show | jobs
by grewil2 2948 days ago
Shouldn't it be called Windows Subsystem for GNU? There's a boatload of GNU-tools in there, but does it include a Linux kernel too?
6 comments

The GNU userland is copied verbatim from your GNU/Linux distribution. Microsoft doesn't need to maintain these utilities. What Microsoft is developing is really a compatibility layer for running ELF binaries and handling all the system calls expected by Linux programs. So it's accurate to say Windows Subsystem for Linux. I haven't tried but I bet a GNU-free Linux system like Busybox will run just fine.
It emulates a Linux kernel, by handling Linux syscalls - it doesn't care much about what's in the userspace. The GNU tools are not required, they are just present since the Linux distros available use them. You can, of course, run busybox if you please. It might be buggy in some fashion but it will almost certainly work.
> Shouldn't it be called Windows Subsystem for GNU?

No, that's a separate module that requires the Windows Subsystem for Pedants.

I'm just waiting for the rms rant demanding that it be called GNU/Windows. :) Then again, I guess rms cares much more about the non-free nature of Windows...
Or GNU/Linux Subsystem for Windows? It's called "Linux Subsystem on Windows" in the HTML:

<title>Install the Linux Subsystem on Windows 10 | Microsoft Docs</title> [1]

Microsoft has a tendency to create confusion around names when they relate in some way to Free software.

Another example: Office Open XML.

[1] https://docs.microsoft.com/en-us/windows/wsl/install-win10

I was actually trying to guess whether it’s an April joke indeed because of the naming.
Too put it more simply ladies and gents', it's the doppelgänger of WINE.
WSL's kinda the mirror-universe Wine, but not quite - AIUI, it doesn't translate Linux syscalls into Windows ones, it's an alternative Windows kernel ABI that bypasses the normal one entirely.

That makes a big difference when it comes to the implementation of syscalls that have no remotely close analogue in regular Windows. fork() and exec() spring to mind - the hoops Cygwin had to jump through to fake those[0] are pretty eye-watering, but for WSL Microsoft added new kernel functionality to support them directly.

[0] https://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-proce...

Just inside the NT kernel.
GNU/Windows seems snappier