
GNU/kWindows - mikegerwitz
https://mikegerwitz.com/2016/04/GNU-kWindows
======
stcredzero
_I recently read an article that referred to GNU Bash as “Linux’s Bash”; this
is simply a slap in the face to the GNU Project and all the hackers that have
for the past 26 years (since 1989) been writing what is one of today’s most
widely used shells on Unix-like systems, including on Apple’s proprietary Mac
OSX._

I think this speaks worlds -- about exactly how bad and anti-productive the
FSF's PR has been at times in the past 26 years. I remember sending liason
email to an FSF secretary in the early 2000's. Smalltalkers had always liked
the idea of seeing the source to everything. In fact, you can't really hide
the source very well, because de-compilation is trivial for Smalltalk.

The person at the FSF was far more concerned with politics and correcting my
terminology than actually talking to me. It made me not want to talk with him
or deal with him at all. (Ironically, many Smalltalkers did the same sort of
thing to outsiders of their community as well.)

Takeaway: Just because you're philosophically correct and far-sighted, that
doesn't mean you can get away with alienating potential allies and bad PR.
Above, I cite two examples.

~~~
zxcvcxz
They don't consider it "philosophically correct", but customary. When you go
to Japan does people following differing customs (like bowing) feel
alienating? That's how I see this. This is part of a culture with certain
customs.

What you're saying probably makes people of this culture feel alienated and
many of them already are.

~~~
mwfunk
The FSF isn't a different culture though, not in the sense that you're talking
about. They live in the exact same culture as the people around them.

It's alienating because asking people reasonable questions and getting
lectured about not phrasing the questions using their approved terminology*
instead of getting a reasonable answer to those reasonable questions is rather
alienating.

* And their terminology is based on what always seemed like an intentional strategy of attaching very specific and nonintuitive definitions to commonly used words with dozens of dictionary definitions already. So if anyone has given up their privilege to lecture people about misusing terminology, it's them, because they created the confusion in the first place by overloading common terms instead of creating new terms to represent their (very unique and complicated) ideals.

------
Jasper_
Windows is implementing the Linux system call interface. So it's valid to
include Linux in the overall name, since it's running binaries designed and
targeted at Linux's own APIs.

GNU/kWindows might also refer to Cygwin or gnuwin32, which are ports of GNU
software to other operating systems.

And people might run zsh and busybox on top of the Linux subsystem, and
eliminate GNU entirely.

But overall, I'm just tired and sick of the GNU project attempting to correct
people on technical matters like this. I remember having a very technical
conversation talking about the Linux kernel and its APIs, when rms came in and
"corrected" us to tell us that the proper name of the OS is GNU/Linux. It's
just rude and unwarranted at this point.

~~~
loeg
> And people might run zsh and busybox on top of the Linux subsystem, and
> eliminate GNU entirely.

Nevermind that many userspace components Linux-users interact with are _not_
GNU projects. GNU was essential to the rise of Linux as the 3rd party
operating system, and is still essential to the system today, but it is not
the biggest piece.

If people want to identify the system as Linux regardless of the other
software in the system, it's fine by me.

~~~
ryao
It is less essential these days than it used to be. There are replacements for
just about everything from other projects. Many are under even more permissive
licensing. A userland is not enough to form an OS either. It is enough to be
an organ donor for other operating systems. Each Linux distribution could be
considered its own OS.

Also, much of the development behind GNU components were meant for other
operating systems than the GNU operating system. There would be many more
working on the GNU kernel if that were not the case.

------
Sanddancer
No, it's not. It is Canonical's packaging of various components, some of which
are GNU, some of which are from a disparate group of people, and those
components may be used much much more than the gnu components. Given the
intended use cases, such as server development, it would be a lot more
accurate, but no less ridiculous, to call it
Python/ImageMagick/GNU/Canonical/Nginx/kWindows. Canonical and Microsoft did
the heavy lifting, the GNU project is just responsible for the bitching and
moaning afterward.

~~~
drdaeman
> GNU project is just responsible for the bitching and moaning

It really sounds like you want to say GNU Project hadn't wrote the whole OS
core (sans kernel), but Microsoft and Canonical did.

What they're shipping is actually Ubuntu OS (which is a GNU derivative, with
GNU being actually the _essential_ core part here - the OS, with the other
essential part being apt/dpkg system) for Windows kernel, not nginx or
ImageMagick or anything. Even though those can be installed (and when those
are what it's about, then we call it "python stack" or "LAMP" or whatever).

So the names "Ubuntu" (I'm not sure why author's against this one, it's Ubuntu
after all; we call "Debian GNU/Linux" just "Debian" as well) and "GNU" (which
Ubuntu essentially _is_ distribution of) are perfectly applicable.

------
dikaiosune
But it's not _just_ GNU running on top of the Windows kernel. It's GNU
executables which think they're communicating with a Linux kernel. I
understand being frustrated about the already-forming naming conventions
(although they've been chanting GNU/Linux forever and it still isn't used in
common parlance), but GNU/kWindows doesn't capture the nature of the system
either.

~~~
ecma
Accurate. Technically the Microsoft compatibility later could have been
entirely done at the library level by replicating POSIX and adding an ELF
linker/loader. There would have been some edge cases around Linux specific
source but the GNU core would have been well served by something like that.

The reason the language is all centered around Linux is because what they
chose to do was do a Linux syscall compatibility layer. Really it could be
called GNU/sLinux/kWindows but nobody is ever going to bother with that
mouthful.

Edit: I should add that this doesn't mean I agree with the use of Linux here -
I just understand why that's the case. I would much prefer if those involved
went to the trouble of explaining what GNU is to those consumers who are
interested. Pretty unlikely Microsoft would be leading that given GNU's
position on Windows.

~~~
ryao
Cygwin does that. forking does not perform very well.

------
ake1
I've never really understood the FSF's incessant need to claim GNU as the
operating system which happen to be running on x kernel. There are operating
systems running the linux kernel without any GNU software. The operating
system is whatever is between the hardware and my application. The lines are
somewhat blurred in my opinion, is /bin/ls part of the operating system? (both
rhetorical and not...)

Granted, free software would not be where it is today had it not been for GNU
and the FSF and they do deserve a lot of credit for their hard work from which
i am benefiting every day.

~~~
drdaeman
Well, GNU Project had written a whole userspace stack (glibc, bash, gcc, ...).
Most of this was before Linux, they started in '84, while Linux was only born
in '91\. However, GNU Project had no kernel for their OS, so they took Linux
(which wasn't/isn't a part of GNU Project) while they had worked on their
kernel (HURD, started in '90). But sadly - some may argue - HURD had never
really happened.

So, isn't it fair to give GNU Project some attribution for the OS that they
made, that no one dares to call by its name but calls it by the kernel's name
instead?

It's somewhat like as everyone would've called "Dropbox" as "Amazon" because
they've used EC2 and S3 as an important parts of their infrastructure (I know,
I know, they've moved, doesn't really matter).

~~~
mwfunk
Names aren't attributions though. Names are somewhat arbitrarily-chosen words
people use to refer to specific things. Some names contain indicators about
the history of the thing they refer to, but when that happens it's due to
historical and/or sociological accident, and is usually not a conscious
attempt to give attribution to one entity or take it away from another.

On top of that, their obsession with names and attribution (for non-legal
reasons) is almost comically immature and obsessive. The GNU/Linux kerfluffle
in the '90s (continuing to this day!) might as well be a giant billboard
advertising to the world that they are people obsessed with trees but blind to
forests. When people get that emotionally invested in what is truly just
distracting minutiae, it's hard not have fundamental questions about their
basic rationality.

~~~
drdaeman
I'm not sure how to do it otherwise, if not by name. Say, we do call certain
web server "nginx" (but probably nobody would object if we'd say "that server
by Igor Sysoev et al", it's just quite cumbersome this way), and it probably
won't feel right if we'd call it, say, "fastcgi". Yet, for some reason we
don't call a certain OS called "GNU" by that name, or author names or any
other name at all, but say it like it's a part of other project (of which it
isn't part of - here's the problem!).

I don't think it's unreasonable that FSF/GNU Project feel that it's not right.
They did a large project, and it had "lost" its name, like their project
doesn't exist or is irrelevant. I surely can't speak for GNU Project authors,
but I believe, for authors, that may probably feel unfair if not even
offensive. I'm not sure what's the "trees" (must be naming) or "forest" (?)
here, when they just want their fair share of recognition for something that
they did but that's not ever called by its name. Is it really immature?

And, duh, it's not like they're asking something unreasonable or unnecessarily
complicated, so, personally for myself, I had decided I have no reasons to not
respect this request.

Edit: added about forest/trees - not sure what you meant of those.

------
pc2g4d
The trouble is, GNU is only _part_ of the GNU/Linux operating system. What
people actually experience as "the operating system" day to day includes the
kernel, and a bunch of GNU userspace, and a bunch of BSD userspace, and a
bunch of completely unrelated software. Is systemd a GNU project? Is
yum/apt/dnf/whatever? Is KDE or XFCE or X.org?

They're totally right that the GNU components are an indispensable part of a
Linux system. But if they wanted to guarantee they got continuous credit for
their components over the decades then maybe GNU shouldn't have given their
software away to the world to do with largely as it pleases.

~~~
Osiris
I came here to say the same thing. GNU provides user-land applications and
libraries. I have a hard time seeing their jump to "GNU operating system".
There's a LOT of code that makes up a *nix distribution and GNU, I'm sure, is
a fairly small part of the overall code even though it's a pretty important
one.

------
dragonwriter
You know, if the GNU project wants to insist that their branding is plastered
all over derivatives, they should choose a different license. Beyond that, I'm
tired of GNU cultists insisting on the right to demand other people's projects
get called by different names than the people releasing the projects choose.

~~~
drdaeman
Hey, hey, don't mix weirdos and actual GNU Project together.

Had GNU Project had ever really insisted on plastering "GNU" branding on some
derivatives? I really doubt that. What they had always asked is to call their
OS by it's name and give the proper attribution when you base something on it.
Just like everyone else (BSD) does.

The OS without kernel is called "GNU", and with kernel it's "GNU/Linux". Oh,
and the editor's "GNU Emacs" (because there are other Emacses). That's all
that GNU Project had ever asked.

If you see some weirdo telling that, say, Debian must be called "GNU Debian"
or something, tell that they're nuts because Debian is not a part of GNU
Project. But if someone expands and explains what Debian is ("Debian
distribution of GNU OS with Linux kernel"), then surely, it's only right to
give GNU some well-deserved attribution about the OS they wrote. That's all
they ask.

Oh, and I really don't get why author says it's not "Ubuntu" but "GNU". Ubuntu
it is, with Ubuntu being a GNU distribution.

~~~
fmoralesc
> The OS without kernel is called "GNU"

But that's the thing, nobody other that the GNU people called that an OS worth
of a name. I suspect what people call an OS is an standalone set of
conventions and packaging that can _actually_ be used to interface between the
hardware and the user [0]; so I think Debian is more worth of being called an
OS on its own than "GNU userspace - kernel". Same with any other Linux
distribution, *BSD variant, Windows and OSX. It was the linux project that
made those OSes viable as standalone things (to be fair, the GNU userspace
made them viable as usable working platforms for early adopters - but nowadays
the role of GNU software in the OS is less central), and people place more
weight to that.

[0]: I pretty much agree with Ted Nelson about the distinction between
"technology" and "packaging".
([https://youtu.be/KdnGPQaICjk?t=1m47s](https://youtu.be/KdnGPQaICjk?t=1m47s))

~~~
mikegerwitz
Please take a look at a brief history of the GNU Project:

[https://gnu.org/gnu/gnu-history.html](https://gnu.org/gnu/gnu-history.html)

GNU is more than a collection of GNU programs; when free software existed, it
was used. The result with a complete Unix replacement.

------
doener
"Secondly, when you see someone using a GNU/kWindows system, politely ask them
why. Tell them that there is a better operating system out there—the GNU/Linux
operating system—that not only provides those technical features, but also
provides the feature of freedom! Tell them what free software is, and try to
relate it to them so that they understand why it is important, and even
practical."

Am I the only one thinking of crusading Mormons here? ;)

------
chungy
It is sad that the article positions itself to once again attack "open source"
as if it is an abandonment of the free software values. Yes, part of open
source was making it an "easier sell", but another part was to remove the
linguistic ambiguities that arise from "free software". The proponents of open
source in the beginning, and still to day, actively reject non-free software
just as much. GNU on Microsoft Windows can be just as revolting to open source
advocates ("can be" \-- people are different from other people, not everyone
holds the same standards, and this is true in the free software camps too).

Beyond that trifle, I applaud the article for trying to dispell the confusion
surrounding everything. Given that Microsoft is adding a subsystem that is
binary-compatible with Linux system calls, so that ELF Linux binaries may run
as-is, calling it a "Linux subsystem" is not that big of a stretch, but
continuing to call the user space "Linux" is.

One final point: If anyone reimplements this on ReactOS, the issues about
freedom disappear. You don't have to like the operating system, but it is free
software in every sense of the word. :-)

~~~
Sanddancer
The FSF has rather bitter words about ReactOS that would keep them from
admitting such, "ReactOS is meant as a free binary compatible replacement for
Windows. Allowing people to continue using the proprietary software and
drivers meant for Windows is one of the stated goals of the project."[1] Also
note on the same page their disdain of more permissive licenses, like BSD and
Apache, calling them "pushover".

[1] [http://www.gnu.org/distros/common-
distros.en.html](http://www.gnu.org/distros/common-distros.en.html)

~~~
8note
based on those examples, I'm confused as to why they support GNU, considering
it can be used with non free software such as a windows kernel. It looks like
GNU is abhorrent to the FSF.

------
0x0
But it's still running binaries compiled for GNU/Linux?

The Debian GNU/kFreeBSD port compiles for FreeBSD kernel system calls, not
their linux emulation, as far as I know. So a "GNU/kWindows" system could
compile against NT system calls, or perhaps something like Cygwin which could
reasonably be called "GNU/(k)win32".

Also, it remains to be seen whether this can even be considered a full GNU
operating system. I doubt you'll be able to run a pure "Linux Subsystem for
Windows" GNU setup without the rest of wininit.exe, lsass.exe etc etc etc.

~~~
Shorel
You mean, despite the fact that there's no full GNU operating system anywhere?

------
suzeanne
A key excerpt from the article:

‘This combination is referred to as GNU/kWindows (GNU with the Windows kernel
added).

Microsoft and Canonical have apparently been working together to write a
subsystem that translates Linux system calls into something Windows will
understand—a compatibility layer. So, software compiled to run on a system
with the kernel Linux will work on Windows through system call translation.
Many articles are calling this system “Ubuntu on Windows”, or “Linux on
Windows”. This is a fallacy: the kernel Linux is not at all involved! What we
are witnessing is the GNU operating system running with a Windows kernel
instead of Linux.’

~~~
ryao
Microsoft wrote the kernel parts. Canonical provided the Ubuntu userland
image. I heard it straight from Canonical in an in-person chat last week on
the day it was announced.

------
stantona
This confusion is both astonishing, given the length of time GNU has been
around. Yet it is also understandable, for many there's a missing distinction
between GNU vs Linux project vs FreeBSD etc etc. The GNU operating system
website explains the distinction pretty clearly on its home page.

[https://www.gnu.org/home.en.html#More-
GNU](https://www.gnu.org/home.en.html#More-GNU)

I often wonder why Microsoft doesn't just bite the bullet and adopt Linux as
the kernel for Windows.

~~~
ygra
> I often wonder why Microsoft doesn't just bite the bullet and adopt Linux as
> the kernel for Windows

What is to gain? It's not like the Windows kernel is bad or useless. You'd
have to redo the Windows API on top of a kernel that works very differently.
Any gains here are marginal and there's a lot of cost involved.

~~~
stcredzero
_It 's not like the Windows kernel is bad or useless._

The NT kernel is pretty darn good, so long as it's not polluted with things
that don't belong in it. It shares a lot of heritage with the VAX kernel. A
lot of the same people worked on both. If you don't molest it, the NT kernel
can (and does) run ultra high reliability things like RAID arrays.

~~~
ryao
RAID is not very reliable. Here is an example that I tried the other day in MD
RAID 1. I made a 2-disk array, zeroed it, wrote a sector of garbage at 1MB
into one disk directly, cleared caches, ran a scrub and did not see any
warning about the inconsistency. It relies on the drive firmware to verify the
low level formatting parity, so things like misdirected writes (which my
writing garbage was meant to simulate) go undetected. There are plenty of
other problems too, but that is just one example. Anyway, at scale, you can
count on RAID to be unreliable. If you want something reliable, use ZFS.

------
atemerev
Technically, the article is correct. Indeed, GNU/kWindows is a better name for
the resulting OS, and Windows is still very non-free and spies at its users,
etc etc.

But: we already know all that. I am a heavy Linux user, and I am quite excited
to see it available on Windows. Because Windows is nice and shiny and well-
polished and works with hardware and works better for my needs than fully free
OS with limited hardware support (especially on the GPU side). I want to work,
not endlessly configure my Emacs, I am pro-capitalism (though very anti-
surveillance) and I don't even have a beard.

So, thank you, GNU guys, your software is excellent and free. Even if you make
it more difficult to use with some software with other licenses, it is still
possible, and I am quite happy to add it in the mix. But I don't want to live
in your idealized non-commercial world, and your proselytizing became quite
boring for the last 25 years.

When I do open source, I use MIT/BSD license, because it helps people
unconditionally and doesn't introduce restrictions as those in less free
licenses like GPL.

~~~
cremno
>GNU/kWindows is a better name for the resulting OS

What's the issue with “Ubuntu” so that it needs to be dropped completely? The
article only contains:

>It would also be best if you avoid calling it “Ubuntu on Windows”; it isn’t a
factually incorrect statement—you are running Ubuntu’s distribution of GNU—but
it still avoids mentioning the GNU Project.

~~~
mikegerwitz
That statement is the reason.

If Ubuntu were called "Ubuntu GNU/Linux", we'd still have a bit of an awkward
situation, because there's no Linux involved; it'd be "Ubuntu GNU/kWindows",
going by the stated naming convention. So it's not that "Ubuntu" is the
problem, per se; it's the lack of mention of GNU.

I suppose that's worth clarification in the article.

------
justin_vanw
The FSF doesn't seem to understand much about how to win. Winning means that
everyone uses your software and you can apply massive influence, in this case
to push for freedom.

Winning isn't being a damn curmudgion that everyone hates because you
constantly correct how they refer to your product.

What is the proper way to refer to the Apple computer system? Is it Mac? OS/X?
OSX? OSX/Mach FreeBSD +Commercial UI layer based on NeXT? Literally __NOBODY
__cares. Why doesn 't Apple come out every week with a press release
explaining the proper grammar for referring to their stuff?

Because that would be ludicrous and stupid and counter productive.

Learn something from that FSF!

~~~
rekado
The GNU project is primarily a social project with technical components. If
the project's philosophy is not mentioned because the project isn't even
understood to exist this is a problem.

GNU is not primarily a product; if it were you would be right that its name
wouldn't matter much and world domination would be the primary target.

------
iso-8859-1
Isn't the Microsoft project just emulating Linux system calls? If that is so,
how does it have _anything_ with GNU to do? Just be cause many people use the
GNU userland and glibc doesn't mean it isn't possible to run other stuff.
Calling the project GNU/kWindows is wrong since GNU is not necessarily
included.

~~~
tagrun
They're emulating Linux system calls in order to run GNU userland on it.

Yes, they can theoretically run non-GNU userland (such as Android userland
programs), but that's not what they're trying to do.

------
mikegerwitz
Thank you to whomever posted this link again; I'm glad others can read about
GNU's perspective.

If any quotes from others here are out of date: I rearranged and modified the
article slightly to reflect some suggestions from rms, and to clarify a few
things.

------
rjeli
Why does he keep claiming that MacOS uses GNU code? Isn't the MacOS userspace
almost entirely FreeBSD?

~~~
mikegerwitz
My only claim was that OSX uses GNU Bash. I don't use OSX, so I'm not sure
what else it includes.

------
legulere
They should write GPLv4 that requires your software to have GNU in it's name.

------
koolba
I wonder if MSFT will include readline.

------
GFK_of_xmaspast
"For example, GNU can be run with its own kernel, The GNU Hurd"

My understanding is that this statement is a little optimistic.

~~~
mikegerwitz
Some pretty good progress has been made, if you're curious:

[https://gnu.org/software/hurd/hurd/status.html](https://gnu.org/software/hurd/hurd/status.html)

------
fleitz
I love it, such great satire!

------
zxcvcxz
>But what if you’re using GNU/Linux today? In that case, it is a major
downgrade to switch to a GNU/kWindows system; by doing so, you are
surrendering your freedom to Microsoft. It does not matter how many shiny
features Microsoft might introduce into its freedom-denying surveillance
system; an operating system that respects your freedoms will always be a
superior choice. We would do our best to dissuade users from switching to a
GNU/kWindows system for the technical benefits that GNU provides.

I would never downgrade from Linux or mac to GNU/kWindows or as I prefer to
call it "NSA/Windows". Not even because of privacy issues, but because Linux
out performs Windows 10 on my shitty laptop that came with windows 10 from
dell.

I'm sure it out performs OS X too on this hardware, and yeah I could get a mac
book or a surface but I think I'll just get something nice that runs Linux
because it's just as easy and probably cheaper. I don't even give my parents
Windows because if I did they'd find a way to muck up the system and it's a
constant headache, Linux is rock solid for the elderly. No, it doesn't just
randomly break when I ssh in and update it. Even I, a power user and
programmer, can't seem to get Windows to have a fast start up time on a
regular HDD, sure it gets to the desktop reasonably fast but then it
constantly chokes as soon as I try to do something like open the start menu. I
have to give windows a five minute "warm up" period for it to be usable in
some cases. When I plug in an external monitor while using Windows the whole
OS can slow to a crawl and when I unplug it my windows are lost forever,
forget saving your work!

Windows is a proprietary billion dollar OS and yet it only really works well
across a short range of hardware, contrary to popular belief.

