Getting to Know the Erlang Virtual Machine, the BEAM
summary
BEAM is designed for isolation and fault-tolerance using many lightweight processes (~2 KB each) that communicate by message passing rather than shared memory. It uses per-core schedulers tied to OS threads, accounts execution in reductions (about 2000 reductions per process before yielding), provides C-native ports and interfaces, has per-process generational garbage collection, ETS tables, and moves large binaries out of process memory to support hundreds of thousands or millions of processes with low latency.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:55BEAM VM origin and goal
- 3:44BEAM architecture components
- 6:22BEAM fault tolerance
- 7:04BEAM isolated processes
- 13:56OS vs BEAM processes
- 17:55BEAM schedulers and processes
- 22:30BEAM memory and lightweight processes
- 27:30BEAM garbage collector efficiency
- 29:40BEAM vs other VMs differences
- 37:05BEAM OS compatibility
- 39:11Process distribution on schedulers
- 41:21Handling large binaries and shared memory
- 42:45Process recovery and global collector
- 44:10BEAM programming model
related talks
42mThe Soul of Erlang and Elixir
26mseL4 and BEAM: A match made in Erlang
31mHow does fault tolerance work in Erlang
19mElixir – what it is and why is it amazing?
45m12 years supporting Software Architecture teaching with BEAMs
24mFantastic Voyage III: Destination BEAM
19mErlang/OTP Update
42mIntroduction to Elixir for Rubyists
