This document discusses the development of Embedded Erlang, an environment for running Erlang programs on embedded devices. It describes goals of minimizing memory and disk usage while maintaining performance. It also outlines several projects involving porting Erlang to new hardware, adapting the Erlang VM for low-resource systems, and creating a framework for data sharing between mobile Erlang nodes.
Ensuring Technical Readiness For Copilot in Microsoft 365
Embedded Erlang Development Environment
1. Embedded Erlang
Development environment for Embedded Erlang
Fredrik Andersson, Niclas Axelsson, Fabian Bergström, Christoffer Ferm,
Henrik Nordh, Gustav Simonsson
Erlang Solutions Ltd.
FSCONS
Gothenburg, November 2010
Erlang Solutions Ltd.
2. Copyright 2010 Erlang Solutions, Ltd
Background
• Thesis projects
– Uppsala University and Erlang Solutions
• Embedded Platform
– OS platform for embedded devices
• Embedded Erlang
– Erlang on embedded devices
• Erlang VM Extensions
– Better hardware utilization
• Framework for data sharing
– Automatic data sharing
4. Copyright 2010 Erlang Solutions, Ltd
Erlang
• Development started 1987 at Ericsson Computer Science Lab.
Released as opensource 1998, Ericsson is still the active
maintainer
• Native support for SMP and Concurrency using message passing
• History in Telecom buisness. Designed with Robustness and Low
Down Time in mind.
• Used by among others, Facebook (Facebook chat), T-Mobile
(WAP, SMS), Klarna (e-commerce)
7. Copyright 2010 Erlang Solutions, Ltd
Goals
• Minimal Linux system with Erlang and tools
• Different versions for different purposes
• Easy-to-install package
• Reduce time-to-productivity for embedded Erlang developers
8. Copyright 2010 Erlang Solutions, Ltd
Metrics
• Evaluating Linux distributions
– memory
– disk usage
– boot times
– harware support
• Embedded focus
11. Copyright 2010 Erlang Solutions, Ltd
The Ångström Distribution
• Linux for embedded devices
• Smallest image uses 11 MB disk, 16.2 MB memory
• Default distribution for several devices
– BeagleBoard
– Gumstix
– Pandora (portable gaming console)
• Easy to customise with OpenEmbedded
12. Copyright 2010 Erlang Solutions, Ltd
OpenEmbedded
• Framework for building embedded Linux Distributions
• Several hardware architectures
• 1000+ packages pre-defined
• Quite complex, but powerful
• Handles dependencies, sources, configuration, cross-
compilation etc.
13. Copyright 2010 Erlang Solutions, Ltd
uClibc
• Much smaller than glibc, smaller than EGLIBC
• Source compatible with glibc, not binary compatible
• Highly configurable
14. Copyright 2010 Erlang Solutions, Ltd
BusyBox
• Smaller versions of UNIX utilities in a single binary
• Written with size-optimisation and limited resources in mind
• Very modular and configurable
• Well-tested against uClibc
15. Copyright 2010 Erlang Solutions, Ltd
Maintaining Different Versions
• “Minimal”
• “Debug”
• “Extended”
• Binary installation packages for common platforms
• Latest Erlang version included
17. Copyright 2010 Erlang Solutions, Ltd
Goals
The Virtual machine must be adapted to the limited resources of
embedded systems.
• Low RAM consumption
– How can we reduce RAM usage?
– How will this impact performance?
• Low Disk usage
– How can we keep disk usage low?
– Performance?
• Benchmarks, analysis and documentaion.
19. Copyright 2010 Erlang Solutions, Ltd
Progress, Disk Usage
Vanilla Erlang
Compressed Applications
-Os, strip, stripped beams
0
1
2
3
4
5
6
7
Size on disk
Megabytes
20. Copyright 2010 Erlang Solutions, Ltd
Progress, Hardware
• VM compiled for Gumstix, BeagleBoard
– BeagleBoard is a prototyping platform
– Gumstix is a much smaller system for commercial use
• TI OMAP35x
– Another thesis project for OpenGL and DSP from Erlang
21. Copyright 2010 Erlang Solutions, Ltd
The Future
• Support for more hardware
– Pandaboard, utilizing the latest multicore ARM processor
• Documentation for embedded Erlang development
– How should you utilize Erlang tools for handling project mangement
• Real world application
– Small measuring nodes in larger distributed systems
22. Adding support for special purpose
computing units to the Erlang VM
Christoffer Ferm
23. Copyright 2010 Erlang Solutions, Ltd
Erlang VM Charasterics
• Good support for SMP
– Added in 2006
• Easy approach to utilizing SMP for developers
– Message passing
– Lightweight processes
24. Copyright 2010 Erlang Solutions, Ltd
Modern Processing Units
• CPU
– Already supported
• GPU
– OpenCL
– Other GPGPU
• Digital Signal Processor
• Cryptoprocessors
26. Copyright 2010 Erlang Solutions, Ltd
Introduction
• Mobile devices with limited resources
– Phones
– Cars
• Dynamic ad-hoc networks
• Delay tolerant data
27. Copyright 2010 Erlang Solutions, Ltd
Features
• Written in Erlang
• Simple to configure
• Takes care of the communication between nodes
• Handles storage of data
• A subscription system
28. Copyright 2010 Erlang Solutions, Ltd
Example Applications
• Music player – share songs
• Announcement systems
• Statistics gathering
30. Copyright 2010 Erlang Solutions, Ltd
www.erlang-embedded.com
• First release “Stag Beetle” is already out.
– Next release is scheduled around the 16th
of november
• Mailinglist
– erlang-embedded@googlegroups.com
• Github
– http://github.com/esl/erlang-embedded
33. Copyright 2010 Erlang Solutions, Ltd
Embedded Market
• 2006: 4 billion embedded processors sold worldwide
• 2010: 16 billion
• 2020: 40 billion
• Intel estimates 15 billion will be connected in swarms or
over the Internet by 2015
• ARM announced embedded multi-core CPU in okt 2009