A Hitchhiker's Tour of the BEAM

09.02.2018

The BEAM is the standard Erlang implementation in use today. It was specially designed just to run Erlang. But what is the BEAM other than a virtual machine for running Erlang?

Enter Robert Virding, your guide for the evening as he takes you on a quick tour of the BEAM visiting the major sights to see what it looks like internally and how it functions. There will be no need for a towel on this short tour.

Robert explains how, for Erlang to run on the BEAM, the BEAM has to support all of the specific properties of the Erlang system, including:

  • Lightweight massive concurrency
  • Asynchronous communication
  • Process isolation
  • Error handling
  • Continuous evolution of the system
  • Soft real-time

TLDR;

Schedulers
The BEAM uses something called schedulers. What is a scheduler? It’s a semi-autonomous BEAM virtual machine, so it’s got pretty much everything you need in it to run Erlang. But they’re running in the same system so they need to be able to communicate with each other. Each one has its own run-queue and runs as separately as possible to reduce the risk of locks or synchronisation.

Processes
There’s a lot of benefits to the BEAM’s separate process heaps, such as garbage collection efficiency. There’s also a lot of tuning options.

Memory management
There are lots of different memory areas for handling different memory types within the BEAM VM. it’s nothing unusual in a system this complex. This memory system supports a fast system. A more naive memory framework would work but it wouldn’t be as fast.

Robert also presents an overview of the BEAM’s message passing, multi-core, and a few other things throughout his talk.

Your guide: Robert Virding

Robert Virding is Principal Language Expert at Erlang Solutions. While at Ericsson AB, Robert was one of the original members of the Ericsson Computer Science Lab, and co-inventor of the Erlang language. He took part in the original system design and contributed much of the original libraries, as well as to the current compiler.

While at the lab he also did a lot of work on the implementation of logic and functional languages and on garbage collection. He has also worked as an entrepreneur and was one of the co-founders of one of the first Erlang startups (Bluetail). Robert also worked a number of years at the Swedish Defence Materiel Administration (FMV) Modelling and Simulations Group. He co-authored the first book (Prentice-Hall) on Erlang, and is regularly invited to teach and present throughout the world.

Get training from Robert at Code BEAM SF 2018: