Recently Microsoft made the announcement regarding the ability to run some GNU/Linux programs under Windows. Unfortunately, it was a lightning rod attracting the most high-profile abuse of the name of the kernel, Linux.
In Mike Gerwitz’s blog post entitled “GNU/kWindows”, he sets the record straight on exactly what is going on. The main points:
- What most people have been referring to as “Linux” is actually GNU.
- “Most users would not even recognize what GNU is” thanks to the mislabeling that has been ongoing for the past two decades.
- The GNU Project is about freedom. Not just passing around the source code, but freedom. Specifically, these four freedoms:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Note that source code access is only a precondition for two of these four freedoms. It’s very possible to distribute source code that cannot legally be run for specific purposes, or that cannot be legally redistributed.
It is also worth noting again (Mike does not touch on these points, but maybe he should have), the “open source” movement which seems to get all the publicity splintered from the original free software movement founded by Richard Stallman back in 1984. Without the free software movement there would have been nothing for this “open source” splinter faction to splinter from. In fact, “open source” started off as a “marketing campaign” for free software. It was an attempt to get people talking less about freedom–and unfortunately, it worked.
There is a GNU kernel, the Hurd. A lot of people choose to ignore its existence, as it is not “release quality” yet; the goals and philosophy behind it differ radically from those of the kernel, Linux. (There is technically a recent release, but it’s numbered 0.7. Usually versions numbered 1.0 denote development versions.) It is still there, and I have faith the GNU Project developers will complete it. I do check in on their progress with Hurd every so often (about once every 2 to 3 years). I do plan to switch to a system which boots Hurd when the time is right.
Microsoft has done the free software community more of a disservice by naming this the Windows Subsystem for Linux (WSL) when a more appropriate name would be the Windows Subsystem for GNU (WSG). As I read it, they are using GNU bash, GNU libc, etc.
Mark Shuttleworth ought to be especially ashamed of himself, per this quote:
In our journey to bring free software to the widest possible audience, this is not a moment we could have predicted. Nevertheless, we are delighted to stand behind Ubuntu for Windows, committed to addressing the needs of Windows developers exploring Linux in this amazing new way, and are excited at the possibilities heralded by this unexpected turn of events.
He had a great opportunity to say “exploring GNU” instead, and set the record straight. Remember, Linus Torvalds himself has said the kernel, Linux, is nothing without an operating system (OS) to boot into:
Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren’t in the distribution – ask me (or GNU) for more info.
Unfortunately this paragraph has been omitted in every version of the kernel, Linux, released since (at least the surviving RELNOTES-0.12 doesn’t have it, it may have been in versions released between, but who knows how many copies of those survive and where). Of course, personally, I make it a point to either refer to “GNU/Linux” or “a GNU variant” (when the kernel really matters less than the operating system and software) when referring to what operating system I run. I could only wish everyone else did the same.
This is before even getting into the broader implications of making it more convenient to use Microsoft Windows. The spying on users that Microsoft has been doing has only gotten worse with Windows 10. Microsoft has combined that with a rather aggressive attempt to get users to upgrade to Windows 10, either by discontinuing support for earlier versions of Windows, or by just pestering them with unwanted offers to upgrade “for free” to Windows 10. It’s obvious to see what direction this is going.
The best choice to develop software for a given OS, is to actually run that OS. Unless of course it is an OS intended to run on a different device (embedded systems) in which case cross-compiling is unavoidable. Choosing to run an OS like Windows, to develop for an OS like GNU/Linux or another GNU variant, is a highly questionable and self-contradictory choice. I don’t know what the point was behind Microsoft’s port of the Bash shell and a GNU variant environment to Windows, but they would have served the community better making their own GNU/Linux or GNU variant distribution. Actually, the best case scenario is pledging to release Windows 11 under the GPL. (A man can dream…)