
Operating Systems - type0
https://xkcd.com/1508/
======
JBiserkov
alt-text: One of the survivors, poking around in the ruins with the point of a
spear, uncovers a singed photo of Richard Stallman. They stare in silence.
"This," one of them finally says, "This is a man who BELIEVED in something."

Just yesterday I was explaining to a friend that Stallman is not crazy; rather
there is a continuum from convenience to freedom and Stallman believes most of
us are way too far on the "left", so he goes as far to the "right" as possible
to show us we've gone to far. He pays for his freedoms with his conveniences
and we pay for our conveniences with our freedoms.

Things are much more nuanced and multidimensional than this. Not trying to
start a flame war here.

~~~
PaulRobinson
You might not want to start a flame war, but you know one is perhaps
inevitable on this topic.

I've met RMS several times (he even stayed at my place once, and yes the rider
asking hosts not to buy him a parrot is real and long-standing), and I came it
at from a different angle: I was a contributor to a BSD OS some yonks ago.

As a result we had a good-natured conversation about some of the conflicts
between GPL and BSD and he's actually a lot more forgiving than people portray
him or that argument. He's grounded in more reality than people give him
credit for. Yes, he supports and advocates GPL, but he'd rather see code
released as BSD/MIT than not released at all - at least that was the
impression I was left with.

There are two things that tend to get the anti-GPL crowds back up, which on
your continuum I'm not sure fit easily.

Firstly, there is the right for a programmer to be paid passively for the
result of work done by their software.

RMS broadly (and I'm paraphrasing ridiculously here) thinks that you should be
paid for the hours you work, the software should be Free, you don't earn a
right to keep it closed and sell access to it through licenses, etc.

Fine, but that would pretty much shut down the programming economy. People
regularly write code because they or their employer believes a customer is
going to pay for it, and use that as leverage. Obviously. If we were to outlaw
such a model - and it would require statues to make a reality, laws that run
contrary to free-market liberalism - a large number of developers would be
laid off.

That's OK, says RMS, because society will be better off. However, Turkeys do
not vote for Thanksgiving/Christmas, and I want the _freedom_ to chose to work
in businesses with economic models like that.

I think interestingly if Amazon, Facebook, Google, Uber and all similar firms
(e-comms, social networks, search engines, etc.), released all their code, the
market would not move much. The value was first created by innovating through
their code base, but now the value is in the systems, brands, and
relationships those firms have been able to build. Curiously, it's possible we
are now in a scenario where closed source code can help a startup scale, but
once they're at scale, there is no value in keeping the code closed, and
making it open could benefit the companies (through "volunteer commits"), as
well as the wider economy. We are seeing the tip of this in the dev code space
(.NET et al).

Secondly, there is a weird line after which RMS does not care about software
freedom quite so much. For example, in one talk he gave I attended, he stated
that because he does not wish to modify the code in his microwave, he is not
bothered if that code is free or not. I think that's a weak (and arbitrary)
line, that is inconsistent with the core argument and really doesn't sit on
the continuum.

Either all code wants to be free, or only some code does. And if only some
code does, well, you can't go around telling people what does and does not.

Perhaps he's revised his position since then (a decade ago now), but I know it
was something that troubled me about his argument.

And when somebody's economic and political philosophy does not quite stand up
to not-very-rigorous arguments about the economic or political impact, from
the very same people you're trying to convince, it's going to be a hard sell.

TL;DR: people should be free to sell or give away software as they see fit,
and let market forces decide (as they have already in say, Internet
infrastructure software markets such as server OSes, web/mail servers,
virtualisation, and so on).

~~~
tremon
_RMS broadly (and I 'm paraphrasing ridiculously here) thinks that you should
be paid for the hours you work, the software should be Free, you don't earn a
right to keep it closed and sell access to it through licenses, etc.

Fine, but that would pretty much shut down the programming economy._

I don't think it would. The "programming economy" could instead flourish on
bespoke software solutions instead of the monoculture we have now. Perhaps
even governments (gasp!) would pick up the maintenance of a general OS, since
it is in their interest to keep their citizens safe online.

~~~
paulddraper
The US could use such an OS to run healthcare.gov.

------
ykm
I wonder if the HURD guys will finish and when. Can somebody comment on the
continued existence of this project even though the ideas propogated by
it(microkernels) have been well adopted into the mainstream?

~~~
Animats
Probably never.

Trying to emulate Mach, which was a dud as a microkernel, didn't help.

QNX is one of the few microkernels to get it right. L4 got stripped down so
far that it's just a hypervisor, on which people usually load Linux. L4 took
out arbitrary-length message passing in favor of interrupt-like events and
shared memory between sender and receiver. This simplifies the kernel, but now
it's easier for one side of a sender/receiver to mess up the other, since they
share a communications area. The QNX primitive set (MsgSend, MsgReceive, and
MsgReply) work well enough in practice to allow full POSIX functionality.
Applications can talk to file system servers, network servers, etc. through
those primitives. All QNX I/O works that way. You take maybe a 20% performance
hit for the extra copying, but you get robustness in exchange.

Most important thing for performance in a microkernel: the CPU dispatcher and
the message passing have to be tightly coordinated. You must be able to call
another process and get a reply back without trips through the scheduler or a
switch to a different CPU. QNX gets this right, because MsgSend is blocking.
The sender blocks and the receiver starts without having to schedule. The data
being sent is right there in the cache of the CPU, ready for use by the
receiver. Good test for a microkernel - put some CPU-intensive jobs in a loop,
while also running something that makes short request/reply calls to another
process. If the request/reply process stalls out, the microkernel is doing it
wrong. If the CPU-bound processes stall out, the microkernel is doing it
wrong. Message passing should schedule as smoothly as a subroutine call. If it
doesn't, performance under load will suck.

~~~
i336_
Arrrrrgh.

Roar.

QNX was cautiously courting the open source concept and venturing in the
direction of shared source (with some code already available), when BlackBerry
bought them and threw all of that out the window.

Biggest yanked opportunity. D:

Now QNX is all-commercial again, with source only available under a license.
And Photon is gone, too: no more self-hosting.

I wish BB would(/could?) do the webOS thing with QNX. That would be amazing.
The community would absolutely get Photon up and running again, it would be an
alternative to Linux and BSD.

data:text/html;base64,SSBmaWd1cmVkIG91dCBob3cgdG8gZ2V0IFFOWCA0IGxpY2Vuc2VkIGEgd2
hpbGUgYmFjay4gSWYgeW91IGdldCBzdHVjayBteSBlbWFpbCBpcyBpbiBteSBwcm9maWxlLiBJZiB
hbnlvbmUga25vd3MgaG93IHRvIGxpY2Vuc2UgNi54IEkgZG93bmxvYWRlZCB0aGF0IHRvby4=

~~~
Animats
I know. QNX the OS was great. QNX the company has been a huge pain to deal
with for more than a decade. They had a tough problem, though. Who else sold a
desktop OS for real money any more? Unlike Microsoft and Apple, they had no
other revenue stream. Still, until about 2005, QNX was considered a target
which UNIX-like software should support. There was an early version of Firefox
(called Firebird) for it, all the command-line GNU tools were available, and
the Eclipse IDE worked fine. For three years, while I was working on a DARPA
Grand Challenge vehicle, I ran QNX on the desktop.

Photon, the GUI, probably had the sanest internals of any major GUI system.

Dan Dodge, who designed much of QNX, was CEO of QNX, and he retired from
QNX/Blackberry to go work for Apple. Apple might end up doing something in
this direction. But if they do, they'll never let the internals out.

~~~
i336_
I'm curious what was wrong with QNX the company, in terms of the practical
ramifications of what you're describing.

I assume you were using QNX for the GC vehicle compo because of its RTOS
qualities? In any case, that's awesome.

I thought Photon was pretty cool too, at least from a "oh hey these
screenshots look awesome" perspective. I vaguely recall running it in a VM,
once, so long ago I only hazily remember poking around the sidebar. Sadly
it'll be somewhat _challenging_ to do further academic research on that
subject now, I wish the educational/noncommercial free options still existed
there.

Also, I found (and bookmarked) this HN thread from some time ago that's got
some QNX gems in it:
[https://news.ycombinator.com/item?id=4834334](https://news.ycombinator.com/item?id=4834334)
(very curious about the modem)

And you're very sadly right about Apple, they're very unlikely to release the
truly interesting bits of any projects like this.

------
drivingmenuts
Does Hurd actually have a plan to finish, or are they just banging on it on
Saturdays like an old project car that keeps them out of the wife's hair?

~~~
akira2501
I'm looking forward to their NPR call-in show.

~~~
PostOnce
I know thats a joke but oh my god would that be amazing.

A computer help call in radio show as funny and warmhearted as Car Talk? Comp
Talk? With crazy weird issues? Like email doesn't work over 400 miles? lol.

Esp. if the dudes seemed to know everything and had lots of old-timer computer
stories from their old CP/M desktops and whathaveyou.

I'm bored with my lack of decent radio and podcasts. Feel free to recommend me
stuff, readers.

~~~
qwertyuiop924
I recommend Welcome to Nightvale (Which is amazing, and you should be
listening to it:
[http://www.welcometonightvale.com/](http://www.welcometonightvale.com/)), The
Technical Difficulties (A trivia show starring Tom Scott (of emoji keyboard
fame) and friends [http://www.techdif.co.uk/](http://www.techdif.co.uk/),
Radiolab (it's fricking Radiolab: what else do you want?), 99% invisible
(loved Radiolab? you'll love this, too), Ask Me Another (trivia, and music by
Jonathan Coulton: any questions?), and finally the recently ended YouTube
series Let's Drown Out (Ben "Yahtzee" Croshaw and Gabriel Morton play
videogames of varying quality, and snark over them).

~~~
yitchelle
Every now and then, Reply All [https://gimletmedia.com/show/reply-
all/](https://gimletmedia.com/show/reply-all/) has a segment that is Tech
Support. Some of the items on there are down right bizarre but very plausible.
Great listening.

------
oxguy3
Could someone add a "(2015)" tag to the title?

~~~
yitchelle
A side question, does anyone find it useful to have a date reference to the
title?

Why don't we keep adding a date referenece to all titles retrospectively if we
want to have a chronological appreciation of the article.

~~~
madflame991
If it had a date I would have said "OS on xkcd from a year ago - ah, seen
that". If it doesn't have a date it must mean it's new and I _have to_ see it.

~~~
oxguy3
Yep same, that's exactly why I wanted the tag added.

------
sssilver
Worth pointing out that "macOS" is coming back ;)

------
smegel
Something.JS is basically Chrome OS, which is based on Linux, so not far from
the truth.

~~~
kenOfYugen
I believe something along the lines of runtime.js [1] is implied.

The timeline suggests a reference to Gary Bernhardt's talk, "The Birth & Death
of JavaScript" [2].

1\. [http://runtimejs.org/](http://runtimejs.org/)

2\. [https://www.destroyallsoftware.com/talks/the-birth-and-
death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of-
javascript)

------
amelius
I'm still waiting for a purely functional operating system with memoization.

~~~
qwertyuiop924
Nix?

------
aq3cn
If human civilization has been ended with fire, then how does it come back
with in ten years and with GNU/HURD to be specific. I don't get what's the
humor here.

Is it possible that AI has taken control over free OS from all over the web
and killed all proprietary stuff along with humans and now run's the earth
without any human civilization?

Am I correct?

~~~
emiliobumachar
From
[http://explainxkcd.com/wiki/index.php/1508:_Operating_System...](http://explainxkcd.com/wiki/index.php/1508:_Operating_Systems)

"This infamously and perennially late GNU/Hurd OS will finally make it in to
Randall's home after human civilization has been wiped out. The joke is that
GNU/Hurd began to be developed in 1990, and while it was expected to be
released in a relatively short time, even now only unstable builds have been
released. So Randall is saying that he will finally run it in his house a
decade or two after the end of civilization. GNU/Hurd will presumably have an
advantage as humanity rebuilds civilization due to the widespread availability
of its code and development tools, and perhaps also because of Stallman's
depth of belief, based on the title text. Alternatively, GNU/Hurd might be
finished by the same force that finished humankind, for instance Skynet, in
case of AI Apocalypse. (Interestingly, although still far from completion, a
new version of GNU/Hurd was released less than a week after this comic.)"

[...]

"The GNU/Hurd reference might also be a pun, as in a "herd" of Gnus "running"
in his living room, as wild animals reclaim the Earth after the end of human
civilization."

~~~
aq3cn
> "The GNU/Hurd reference might also be a pun, as in a "herd" of Gnus
> "running" in his living room, as wild animals reclaim the Earth after the
> end of human civilization."

If we fill our home with IoT devices which carries Lithium ion batteries and
relies on AI to function, I am sure fire will happen. Look at Samsung phones,
even after recall there are cases of explosions.

So much automation in basic things is be like shooting in foot. Driver-less
cars, really? Since when people started considering mental retardation as a
status symbol.

I wonder if self-driving is going to be illegal in near future because we are
incompetent to keep up with technological advances happening in our lifetime.

One day, masses will learning this hard way and come back to GNU.

PS: I am not alone saying this.
[https://www.theguardian.com/technology/2015/jul/27/musk-
wozn...](https://www.theguardian.com/technology/2015/jul/27/musk-wozniak-
hawking-ban-ai-autonomous-weapons)

~~~
chronolitus
> Driver-less cars, really? Since when people started considering mental
> retardation as a status symbol

Sure, only 'retards' crash cars. But I am smart so I would never crash a car
ever.

People should be more like me, then the world would be perfect, problem
solved.

------
sundvor
"And out of the ashes rose GNU/Hurd like a phoenix, to power the surviving AI
population".

------
antoineMoPa
I wonder what TinderOS would be like.

~~~
webmaven
Probably a super-hardened (security-wise) OS for an iPod Touch-like "second
device" intended for use primarily to arrange illicit assignations.

Very few apps available, all based on zero-knowledge protocols, and no apps
that are capable of leaking your real-world identity through ordinary or
casual use are allowed.

As a result, just about everyone on Capitol Hill has one of these, so they
can't be banned even though they are, as a side-effect, extremely useful to
whistleblowers, journalists, activists, dissidents, etc.

~~~
duncan_bayne
Neither (Bill) Clinton nor Trump would have any use for a device predicated
upon the need to obtain consent.

------
kryptiskt
Is Hurd 2038-safe?

~~~
my123
No.

------
NoOn3
GNU/HURD is not complete, not due to the complexity or laziness. But because
of the slowness of architecture which is considerably inferior in speed.

------
nidx
no BeOS?

~~~
agumonkey
Implied.

------
hanief
Randall "intuition" that iOS and MacOS will merge probably gonna happen in the
near future:

[http://www.iclarified.com/57138/apple-adds-arm-support-to-
ma...](http://www.iclarified.com/57138/apple-adds-arm-support-to-macos-sierra-
kernel)

~~~
simonh
Every now and then Apple release a new product, like TVOS for the Apple TV and
people ask why Apple wrote an entirely new OS. why not base it on iOS or OSX.
of course that's exactly what they do. There's a common core to OSX, iOS and
now TVOS that are almost entirely the same code base. Which specific files are
common or different for each flavour probably changes from time to time and
this may well be a case of that.

The fact is though, iOS and OSX are already as much the same code base as they
can be, and as much different as they need to be. That balance may change as
the OSes evolve, but I don't think there's any pressing need or benefit to
converging them completely.

~~~
m_mueller
The necessary divergence you talk about is mainly the UX coming from different
input methods for the pointer device, correct?

With the (partly regretable) adoption of UI design patterns that are mainly
meant for touch devices, such a merge appears to be closer however. I think
the main patterns missing are

* a more powerful touch-capable tiling window manager

* a method to get "mouse hover" events working on touch devices. finger hover?

* a both touch- and precision pointer friendly implementation of the OSX menu system.

Anything I'm missing here?

~~~
rzhikharevich
> a method to get "mouse hover" events working on touch devices

As far as I know, an example is Apple's 3D Touch.

~~~
m_mueller
I'm not convinced that employing 3D Touch to do the typical things of mouse
hover is a good idea. Displaying help text to users being lost when they do a
very specific gesture? It needs to be something that every user can
immediately pick up on.

Maybe a stare-o-recognizer using the camera? If the user looks puzzled at a
button, display text to explain ;-).

