Even the strictly GNU parts are in the minority in modern Linux usage. There are dozens of libraries, some GPL and some X11/zlib/Apache licensed but most of them not part of the "GNU project". Some parts only run on Linux and Linux-compatible systems because they were built on top of Systemd or other Linux-only software.
FreeBSD has had a Linux emulation layer for quite a long time, so in that sense you can of course have a Linux environment without a Linux kernel, just as you can have (with WINE or ReactOS) a Windows environment without the Windows kernel.
GNU doesn't define the Linux kernel API. The kernel defines the kernel API. Applications (GNU whatever) use the API. Now Windows implements the API. The Linux kernel API. It doesn't implement GNU API because there is no such thing. See?
Linux kernel is the implementation of the kernel API. You can run Linux applications as long as you have the implementation of the API. Windows has it. Linux kernel has it. GNU doesn't have it. See?
Yeah the bsd versions are generally pretty eh, at least the ones on OS X. Usually the first thing I do on a new Mac is install the gnu coreutils. Though the new rust replacements are generally quite nice.
Had Microsoft actually improved the POSIX personality on Windows NT, instead of having it as bullet point to win contracts in some areas, I doubt many would have cared that much about GNU/Linux.
Many of us installed Slackware and friends during the early days so that we could do university work on our home computers.
As proven by those that use macOS to deploy on GNU/Linux, a large majority is happy with having access to a POSIX userspace.
It just happens that how things have evolved, Linux syscall compatibility is now more relevant than plain POSIX.
> Had Microsoft actually improved the POSIX personality on Windows NT, instead of having it as bullet point to win contracts in some areas, I doubt many would have cared that much about GNU/Linux.
I can see why Microsoft wanted to push Windows and the GUI itself as a new way of interacting with the system, rather than have it come off as a cheap copy of Linux. You couldn't even administer Windows server from the command line until quite recently if I recall. You had to install all of Windows, including the GUI, even if all you wanted was access to the Powershell. Its only changed from Windows Server 2012 onwards. They really believed that Linux and the terminal were obsolete.
That isn't quite true regarding the command line on Windows.
At least since Windows 2000 it is possible to automate Windows via VBScript (JScript was possible as well, but never got much use), COM Automation and WMI.
And every savvy Windows admin has had the Windows Technet shell utilities installed as well.
Just not the way UNIX devs would expect every other OS to behave.
I'm having a hard time understanding why this is so important? Linux is "just" the kernel. Surely everybody knows this? And if they didn't then surely Android and ChromeOS made that distinction clear?
We had the discussion of the name here on Hacker News when WSfL first came out. I and others pointed out that these subsystems are, and have been for decades, effectively named after the kernel that is actually left out and replaced by the Windows NT kernel. There wasn't an OS/2 kernel in the OS/2 subsystem, for example.
That was originally known as Xenix V and was released in 1985. IBM sold it as Xenix 2.0 at the time. SCO was using Arabic version numbers by 1988, when it was up to Xenix 386 Release 2.3.
Linux might be the name of the kernel, but we use Linux to refer to the whole ecosystem too. For example, people say "I'm running Linux" when they run e.g. Ubuntu or Debian etc, not when they run Android. Running "Linux" doesn't mean just running the kernel.
And in the MS case, the argument is the opposite: MS calls it a "MS subsystem for Linux" but there's absolutely no Linux kernel code in it. Just emulation of APIs and the GNU userland.
All you can assume from that is a couple of people who saw your comment decided to click downvote. Extrapolating from those few people to the whole of the HN community is a bit of a stretch.
What's happening is hole-digging. Votes are noisy, especially at small values. When we take that to mean something and then accuse the community, they downvote because it's nonsense. This is one reason why complaining about voting is explicitly against the guidelines—it just makes everything sadder and worse.
For a long time before WSL was conceived of, there was a GNU system on top of Windows - cygwin. Cygwin and WSL have entirely different strengths and weaknesses due to the fact that Cygwin is GNU on top of Win32, whereas WSL is GNU on top of a Linux syscall layer implemented by the NT kernel. Earlier versions of Windows had GNU tools on top of the POSIX layer of the Kernel, which was entirely different beast altogether. All "GNU" systems, all very different characteristics.
I do think that the GNU/Linux distinction is valid when comparing something like CentOS against Android or even Busybox, but WSL is not a great example because it is almost entirely defined by its implementation of the Linux kernel API.
I guess it's an interesting debate, although I should point out for the benefit of anyone unaware that SwiftOnSecurity is somewhat of a parody / joke / tongue-in-cheek account so perhaps this should be taken accordingly.
Please remember that GNU is not just a collection of programs that fall under the umbrella of the GNU Project---GNU is a complete operating system, and it was an explicit decision to use existing free software when it was already available, and write replacements only for non-free components needed replacing. A detailed history of the development of GNU can be found here:
As distro maintainers know, it is a lot of work to come up with the right combination of programs to produce a complete, working operating system using _existing_ free components and being able to draw inspiration from existing GNU/Linux distributions. Imagine how difficult this effort was 30 years ago when nobody had done it yet.
If it was called "Windows Subsystem for Linux Applications", people probably wouldn't be this nit-picky, but it would be more of a mouthful. (What's a "Linux Application" ? Who knows...)
If you feel that GNU belongs in the name, I would say that it should be last since, with this subsystem, you need Windows up and running before you can even insert any GNU tools. So, Windows/GNU or more precisely: Windows + GNU.
However, you could enable the subsystem without installing any GNU tools at all if you wanted to. Then you could install whatever alternative tools that you wish to. Also, I don't think that the OS name should change when I install a set of applications. For instance, when I install Paint.NET to do all of my image work, I don't refer to Windows as Paint.NET/Windows.
Runs for 5 seconds in WSL, 100ms or less on an actual Linux box. I do like WSL, but this sort of thing limits how useful it is. Pull some big repo with git, and Zzzzz.
It means that you can switch the kernel beneath the userspace and hardly notice. So the Linux in GNU/Linux can be replaced, giving you GNU/NT, I guess.
Debian actually tried this a while ago with FreeBSD, but I think it was discontinued.
It does not mean anything. It's a minor variation on a commonly copied piece of text that has been doing the rounds for years, by people placing it in discussions for fun. It's not actually a genuine argument.
Correct me if I'm wrong, as I'm not that familiar with it, but isn't the point of WSL to lie to applications and present itself as the Linux kernel in order for them to be able to run? If that's the case, then the fact that they have to re-implement the Linux APIs in Windows makes the case that Linux is, in fact, the core, and without it you have nothing―of course I don't believe that statement generally, but that's what their argument would actually imply.
Not like this discussion merits any importance anyway, this is just another pointless argument about semantics. Most (if not all) parts of the GNU system are just another swappable component in the "GNU/Linux" ecosystem.
The Linux kernel most certainly does not define GNU/Linux.
I'd just like to interject for a moment.
What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project. There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
FreeBSD has had a Linux emulation layer for quite a long time, so in that sense you can of course have a Linux environment without a Linux kernel, just as you can have (with WINE or ReactOS) a Windows environment without the Windows kernel.