

On rump kernels and the Rumprun unikernel - fcambus
https://blog.xenproject.org/2015/08/06/on-rump-kernels-and-the-rumprun-unikernel/

======
rdtsc
Regarding unikernels it is fun to combine it with Erlang, since Erlang already
has process isolation by default, so it acts as a mini-OS for your
application. Process supervision is a bit like the initd (or systemd), it has
networking and file system access API,etc...

So there is:

[http://erlangonxen.org/](http://erlangonxen.org/)

code: [https://github.com/cloudozer/ling](https://github.com/cloudozer/ling)

Basicly instead of:

hardware|kernel|os|erlangvm|yourcode

it is now:

hardware|xen|ling|yourcode

Not sure how functional it is now. I haven't followed the project in the last
year much. But I see some development on github lately.

~~~
nivertech
Another (still experimental) option is running Erlang/OTP ported to OSv
unikernel:

[http://www.slideshare.net/nivertech/erlang-on-
osv-49278675](http://www.slideshare.net/nivertech/erlang-on-osv-49278675)

------
yebyen
> That minimal quality of most of the OS not being present also explains why
> the container the drivers run in is called a rump kernel

I have seen a number of articles on 'rump' kernels and they always similarly
gloss over the name like this. How does that explain? It's not capitalized, so
I assume it is not an acronym that stands for something.

Where does this name come from? Is it an acronym, portmanteau, metaphor, what?
I have never seen it clearly explained, and I have followed link trails down
the rabbit hole through circular references and wikis looking, half a dozen
times at least, to no avail.

Can someone please clue me in?

~~~
dragonwriter
> Where does this name come from? Is it an acronym, portmanteau, metaphor,
> what?

It appears to be a fairly standard use of the English word "rump" in its non-
anatomical sense, that is "a small or unimportant remnant of something
originally larger."

~~~
alricb
The classic use is to talk about the Rump Parliament of 1648 in England:
[https://en.wikipedia.org/wiki/Rump_Parliament](https://en.wikipedia.org/wiki/Rump_Parliament)

~~~
yebyen
You win the gold star, that was the historical context of this usage of the
word that I did not understand and what I was missing, mystery solved. Thank
you!

------
TheMagicHorsey
Before I read this, is anyone willing to explain how a rump kernel and Rumprun
unikernel differ from what MirageOS is doing with unikernels?

Is a rump kernel just a more general abstraction of a unikernel like MirageOS?

~~~
vezzy-fnord
The principle of a rump kernel is to make OS drivers and subsystems able to
run both in a monolithic kernel context and in a userspace context, with a
microkernel-like fashion.

An earlier example of a similar approach is DDEKit ([https://os.inf.tu-
dresden.de/ddekit/](https://os.inf.tu-dresden.de/ddekit/)), designed so that
Linux 2.x drivers can be reused in foreign systems. It's what GNU Hurd uses
for its TCP/IP stack, for instance.

------
cwp
I'd love to see a Smalltalk VM running directly on Xen. The language has
always been a bit awkward on PCs because in its heart it still wants to be the
OS for a Xerox Alto. It ought to be right at home on virtual metal!

~~~
anthk_
Give me Scheme any day :)

------
mcguire
Here's a prediction of how this conversation is going to go:

1\. This stuff isolates specific functionality into a hardened component!

2\. You can run an existing program as an isolated, hardened component!

3\. You can run all of your programs as iso., hard. components! The parts of
your system won't be able to step on each other except in well-defined ways!

4a. You mean sort of like old-school process isolation?

4b. Blah, blah, blah, Plan 9, blah...

4c. Blah, blah, any virtual machine like the JVM...

