What does HackerNews think of ling?

Erlang on Xen

Language: C

FYI, erlang && elixir workloads can run on Nanos: https://github.com/nanovms/ops-examples/tree/master/elixir .

I do understand what you are asking for though. There used to be an older project called erlang-on-xen: https://github.com/cloudozer/ling .

It'd be great to see this idea revisited although you'll need to create some sort of new handling/framework.

BEAM isn't the only runtime possible with green threads. OTP is just the libraries.

Lots of people have written alternatives to BEAM. The only problem they run into is that BEAM is very good, and would be tough to beat. I was an admirer of Erlang on Xen: https://github.com/cloudozer/ling

I'm still sad nanokernels or nanokernel-like never took off.

I also remember clicking around Ling (Erlang on Xen, sadly no longer active [1]) where the whole VM could boot up, service the request, and shut down in less time than it takes a cloud to start spinning up an instance :)

[1] https://github.com/cloudozer/ling

> It is ported to every major flavour of OS.

There also used to be an implementation of the BEAM VM directly on Xen: https://github.com/cloudozer/ling / https://web.archive.org/web/20190507184436/https://erlangonx...

No, it was not Jitsu. Jitsu is based on MiragOS/OCaml, Erlang-on-Xen was also a Xen-based unikernel like MirageOS but was (as you can guess) Erlang specific. I think you can now find it at https://github.com/cloudozer/ling .
For any "How do I...X?" question involving connecting two pieces of software together in a different way, the first thing I try to do is look at the API(s) that connects them. In the case of a program and the OS, it's the system calls, device drivers, and standard libraries.

There have been efforts to provide the capability of running a program without an OS before, but any such effort is going to need to provide the system calls and standard libraries used by the program, and the infrastructure to support it (device drivers, management, etc.). That that point it becomes a mini-OS.

An example is Erlang on Xen. Xen is more often run with a guest OS running inside it, and then the program runs within that guest os. The http://erlangonxen.org/ folks made Ling (https://github.com/cloudozer/ling), software that enables an Erlang BEAM VM to be run directly on Xen, and thereby run a single Erlang program on Ling.

That's a shame, because Erlang as a unikernel already exists (as https://github.com/cloudozer/ling, unfortunately unmaintained). I'd be really keen on seeing an Erlang port to the Solo5 API, which would give you KVM/bhyve/OpenBSD vmm/Muen/others to run on.
There is even a separately implemented BEAM VM for running directly on Xen hypervisor:

https://github.com/cloudozer/ling

An impressively done book on BEAM instruction sets:

https://github.com/cloudozer/ling/tree/master/doc

There is even a handy dandy online instruction set completion search:

http://erlangonxen.org/more/beam

I'm pretty sure this has been abandoned. Hasn't had any updates in a really long time. "Latest commit bc97a26 on 12 Oct 2015".

One of the contributors recently wrote: maximk commented on 25 May "All recent updates to the code were customer-driven. New users mean new updates. The likely application area for this is NFV, modular software for telecoms. No definite plans"

https://github.com/cloudozer/ling

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/

code: 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.