
The Linux Edge (1999) - chmaynard
https://blog.corememory.io/the-linux-edge.html
======
korethr
I find that remark towards the end of the article interesting; of him being
happy if someone came along and did the cool things that Linux can do, but
leaner and meaner by getting rid of the accumulated cruft of the decades-dead
architectures upon which Linux was born and must still run on. From his
remarks earlier on the article, that's more or less what he did with regards
to Unix.

I suppose we may see something like that eventually, but this article is now
20 years old. Isn't that about the same amount of time between Unix and Linus
beginning to work on Linux? I know there's various new OSes in the works, but
nothing has caught on yet. But, it's not like Linux caught on immediately
either, ("just a hobby, won't be big and professional like gnu"). Maybe in
another 5 or so years all the systems hackers, professionals and amateurs
alike will all be flocking around NewOS, which is so much better and fun to
hack on than crufty old Linux.

~~~
swiley
I'm not convinced we'll have anything that follows Linux. The GPL means that
people can't rip it off and fork a closed special version that's needed for
their hardware, the result of this being that most ports end up in mainline
eventually so you can just kind of expect it to work.

This also means that people doing new things know they'll have the most impact
if they do it on Linux and so that's were they do it (plust it being
everywhere means they're likely to be familiar with it.)

Personally I think if something new were to come along it would have to have
something that makes it interesting socially and I'm not sure there's a lot of
room for improvement on that front. It's not impossible it's just a little
difficult to imagine.

~~~
cpeterso
> if something new were to come along it would have to have something that
> makes it interesting socially and I'm not sure there's a lot of room for
> improvement

The Innovator's Dilemma model of technology disruption suggests that the "next
Linux" will be worse in most ways but better for some narrow use case. Perhaps
bare-metal containers or unikernels on servers and something like Google's
Fuchsia or some RTOS for mobile phones and IoT devices?

~~~
swiley
> RTOS for mobile phones

The market has clearly demonstrated that it doesn't care about phones being
real time. They used to be considered critical systems from what I understand
and many did actually run realtime OSes. Now we've got android and iOS
(android is about as far from an RTOS as you can get, it's almost impossible
to write an app that's not guaranteed to just killed by the OS at some point.)

~~~
DaiPlusPlus
The RTOS stuff happens in the handset’s baseband processor. The user-facing
GUI environment has no hard real-time constraints.

------
api
I think history has proven that the microkernel people were right from a
conceptual point of view, but maybe had some wrong ideas about how to
implement one and what level to put abstractions.

The whole mess of VM hosts, hypervisors, containers, and container images is
basically a messy half-baked microkernel architecture. A kernel running under
another kernel with thin I/O abstractions (virtio, etc.) is sort of like a
partition within a microkernel. VM hypervisor hardware pass-through is like
allowing a microkernel service to drive one system component.

The fact that the market created all this shows that one monolithic kernel is
insufficient from a security, permission management, and configuration
management perspective at least if one assumes the limitations of Unix-like
permissions and isolation.

I'm not necessarily saying Linus was wrong. Linus was right in the 1990s and
from a "get it working and ship it" point of view.

~~~
jaunkst
We might see containers running closer to metal as market interest demands can
drum up money to do it.

------
cjfd
Well, the micro kernel delusion is about the same as the micro services
delusion. Modularity is a good thing when it applies to code and either
irrelevant or detrimental when it is attempted to be applied to executables.

~~~
bitwize
Some Amiga diehards await the day when we all realize that virtual memory and
process isolation are passing fads, and go back to setting interrupt vectors
and walking kernel data structures directly in RAM like real programmers did
on the Amiga back in the day. What they don't realize is that Amigas crashed a
lot more than they remember.

If you value speed above all else, modularity is detrimental. If you value
security or robustness, modularity helps you design components in such a way
that one component's failure doesn't bring down the whole system, or
compromise data being worked on by other components.

~~~
0815test
> Some Amiga diehards await the day when we all realize that virtual memory
> and process isolation are passing fads, and go back to setting interrupt
> vectors and walking kernel data structures directly in RAM like real
> programmers did on the Amiga back in the day.

You mean, like a unikernel? I don't think anyone has tried to write a modern
desktop stack that runs within a unikernel, as the Amiga OS did (parts of the
desktop widget interface were even hardwired in ROM) but it can't be _that_
hard if you can get useful language-based guarantees.

~~~
bitwize
Well, there is AROS, but language guarantees don't stop a rogue binary from
bringing the whole system down. For that you want ISA guarantees, and then
you're talking a moddern OS. Unikernels only make sense when the entire
application of the system is defined AOT.

~~~
aidenn0
I know I've seen a design for mostly-single-address-space OS that use a VM
just for running untrusted binaries. I think it was from someone working on
one of the EROS successors, but not sure.

I've also seen proof-carrying code proposed as an alternative; binaries must
carry proof that they do not exceed certain capabilities and the proof is
verified before they are run.

------
bluescarni
> In fact, this made me think that the microkernel approach was essentially a
> dishonest approach aimed at receiving more dollars for research. I don’t
> necessarily think these researchers were knowingly dishonest. Perhaps they
> were simply stupid. Or deluded. I mean this in a very real sense. The
> dishonesty comes from the intense pressure in the research community at that
> time to pursue the microkernel topic. In a computer science research lab,
> you were studying microkernels or you weren’t studying kernels at all. So
> everyone was pressured into this dishonesty, even the people designing
> Windows NT.

A pretty accurate description of fads and fashions in academia.

~~~
tyingq
Intel's management processors run Minix, the Android bootloader is LK, and
Fuschia may soon displace Linux on Android. It's not necessarily bad for
academia to be very early in a cycle.

------
chihuahua
Torvalds is so kind and generous, just a great human being:

"I don’t necessarily think these researchers were knowingly dishonest. Perhaps
they were simply stupid. Or deluded."

~~~
cjfd
Yes, he merely gave us the greatest operating system of human history for
free. Such an incredible lack of generosity.

By the way, I read this quote as a sincere attempt to understand what was
going on in the mind of some people. I am afraid the actual explanation may be
a bit more prosaic. A monolithic kernel might -o horror of horrors- be quite
mundane. And where is the tenure in that?

~~~
MisterOctober
Plus -- git!

I'm a confirmed Linux user [switched from macOS], but to me it's clear that
git dwarfs Linux in terms of sheer _significance_.

Sure, Linux is what runs most big systems and that is really cool, but if
Linux hadn't come around, there was already BSD [which is also good and a
lotta my buddies were advocating in the mid-late 90s]. But git is quite unique
and has / had no easy substitute. I don't [personally] know a single
technology person who doesn't use or interact with git daily. And the benefits
of reliable, free/open, and distributed version control are just monumental
for the average working code stiff.

~~~
cesarb
> But git is quite unique and has / had no easy substitute.

There was Monotone, which was git's main inspiration. If it weren't slow as
molasses, we might be using it today instead of git.

~~~
BurningCycles
I'd say the main inspiration was Bitkeeper, which is what Linus used until the
free usage was withdrawn by the author.

------
jimbokun
"The first very basic rule is to avoid interfaces."

...

"But from a design point of view this is also the right thing to do: keep the
kernel relatively small, and keep the number of interfaces and other
constraints on future development to a minimum."

This is exceptionally poor writing. The second sentence is what he meant to
say, which is completely different from the first sentence. An operating
system is mostly just a bunch of interfaces for user space programs to use, so
they don't have to talk to hardware directly. An OS without interfaces is
pretty much an oxymoron.

Limiting the number and types of interfaces, of course, is a very sensible
idea. But I was very confused for the several paragraphs between those two
sentences about what Linus meant.

~~~
pvg
It seems more like questionable reading and strange selective quoting than
poor writing. The writing as written is pretty standard - first sentence is
the thesis and the rest of the paragraph supports it:

 _The first very basic rule is to avoid interfaces. If someone wants to add
something that involves a new system interface you need to be exceptionally
careful. Once you give an interface to users they will start coding to it and
once somebody starts coding to it you are stuck with it. Do you want to
support the exact same interface for the rest of your system’s life?_

~~~
jimbokun
He meant to say "Avoid unnecessary proliferation of interfaces", but said
"avoid interfaces" without any qualifiers, which makes zero sense.

Sure, I figured out what he meant a few paragraphs later, but his writing made
it much more difficult than it needed to be.

~~~
pvg
I think you might have just missed it on a quick scan when you first read it.
The broader notion is in the paragraph before. The paragraph with the sentence
itself is specifically about that - it lays out a very standard 'design by
contract' sort of argument. It's not true that there are 'no qualifiers', the
immediate surrounding context is plenty of qualification.

