[erlang-questions] Erlang on RumpRun Unikernel

Neeraj Sharma <>
Tue May 24 22:02:04 CEST 2016


On Wed, May 25, 2016 at 12:15 AM, Grzegorz Junka <> wrote:
>
> Sorry for my ignorance, how does it differ from http://erlangonxen.org/ (apart from its ability to run on bare metal without Xen)? Does rumprun support ARM processors/boards?

There are a number of differences if you care about the internals,
which may or many not interest all users. Having said that any comment
I make here will have subjectivity and my bias towards RumpRun
unikernel over the Ling (aka erlangonxen) project. I will give you my
opinion and reasons for choosing RumpRun, but the official
documentation for those projects can only do justice for any detailed
comparison. Although dated I remember that Ling did a number of
customization to get Erlang to work (one of them being playing around
with the binary format beam). Additionally, the system software is to
get only Erlang to work hence highly customized. The RumpRun unikernel
on the other side is a generic library operating system which has a
very strong focus towards POSIX compliance to allow existing code to
run as much possible. Additionally, the drivers for RumpRun is from
NetBSD which does infuse confidence. The Erlang port changes very
little (for example uses the patch for running epmd in pure Erlang and
such) to run it on RumpRun. I don't know how they compare in terms of
performance, since I never benchmarked either so cannot comment on
that.

Some references for official documentation on the RumpRun and Rump
Kernels project.

* http://rumpkernel.org/
* https://github.com/rumpkernel/wiki/wiki
* https://github.com/rumpkernel/rumprun
* https://github.com/anttikantee/rumpkernel-book


>
> IMHO both projects (Erlang on Xen / rumprun) suffer from a similar problem as IoT. They look great on paper as technologies, but it's hard to find an application in which they would be useful. They might be just waiting for that great idea which will allow them to break through and blow your mind.
>
> I could imagine an application which scales nearly linearly with the amount of nodes you allow it to use. When the capacity or speed needs to be increased, you just provision new nodes, each one a simple ARM module running Erlang, and you add it to the cluster. The application then uses the new node and distributes a bit of the running load to it.
>
> It's not impossible from a technical point of view but it's hard to imagine why a company would want to do that instead of moving the system to a new server with more CPU/RAM. In any case it's great that such an option exists and we can use it to try things. Anyway, thanks for bringing it up, I wouldn't have known Rumprun otherwise.


I agree that lack of such an showcase application does make things
complicated and restrict adoption.

-Neeraj


More information about the erlang-questions mailing list