Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Can anyone explain what does this mean? How is it different from regular VMs? Is it not booting an OS? What does it have to do with erlang?


It's an implementation of the Erlang VM on top of Xen. Xen is a virtualization hypervisor. Erlang VM is a virtual machine which runs Erlang bytecode. The default implementation is called BEAM and it runs on *nix, Windows and other architectures. This implementation is more lightweight and only runs on top of Xen. One of its main features is a fast boot time.

So to recap instead of the typical stack of:

    Erlang Code | BEAM VM | Linux or other OS | VM or Hardware
You get:

    Erlang Code | Ling | Xen | Hardware

The use cases could be isolation, scaling or what authors calls 0-footprint cloud. That is, only spawn instances as you process requests. When requests are not coming, you don't have any instances running. In more modern terms maybe it could be used for building a serverless architecture used to run cloud "functions"

Yes there is obvious irony here with the demo not handling requests well after the HN frontage hug of death, but I think it is still a beta / experimental product, it has been around for a good number of years and is somewhat abandoned. If anyone knows more please feel free to correct me.


Actually, we had a POSIX port of Ling of alpha quality (e.g. no access to file system, a prototype of network connections based on libuv, etc) and experimented with running it on MIPS microcontrollers natively (not a great idea due to memory constraints and lack of drivers, but it could do simple computations).


I enjoyed your post, it made me think, could you do something similar with say the JVM?

I know loading JVM based applications have horrific startup times on cold boot, but I was just wondering could you run the JVM directly on top of Xen?


You might want to look at OSv[0], an extremely lightweight OS for running a singular JVM process on cloud vms. There's a decent list of unikernels (including OSv and LING) here[1].

0. http://osv.io/ 1. http://unikernel.org/projects/



OK, thanks, I think it's a great idea, especially if it can run other runtimes like Node.js or JVM


It's a unikernel of sorts called Erlang on Zen (the VM implementation they wrote is called Ling). It does not use the BEAM runtime so you'll likely need to recompile the Erlang code but otherwise, Erlang is a simple language so I expect most things would work.

Given that this was written roughly 4 years ago (guessing by some dates on the site), its not clear what their support looks like for newer features like maps might be.

Performance looks good (relative to BEAM) but they are also single-threaded which means you'd need to cluster your instances to do multi-processing... and I'm not sure that'd mix well with ephemeral nodes. They talk a little more about this on their site: http://erlangonxen.org/more/clustering




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: