Linux usage is growing enormously in embedded systems, thanks to its stability, being open source, the availability of drivers for a huge amount of hardware peripherals and its support for many networking protocols and filesystems. However, Linux exhibits some drawbacks in safety systems, where the code needs to be certified, or hard real-time systems where deadlines are critical.
Nowadays, some Linux installs in embedded systems have been deployed following a top-down approach, where no much care has been taken to remove unused software. This may have security implications, resulting also on code bloating and maintenance problems down the line of a software product lifecycle. I recommend following a bottom-up approach, where we control precisely the software installed in our systems. This helps in the long run with easier maintainability, and better security.
Why is ARM the dominant architecture on embedded systems? ARM follows a fabless model, with licensees competing with each other on SoCs that include an ARM core and a number of extensions. This model, together with the efficiency and elegancy of their design has made them number one, especially in power-conscious designs like mobile phones.
It is becoming very easy to port Linux to new hardware devices on X86, MIPS and ARM platforms. This is a list of popular ARM development platforms with ARM cores containing an MMU and therefore can be leveraged with standard Linux:
- Beaglebone and Beagleboard, TI. ARM Cortex-A8. Product page.
- Dreamplug. ARM9. Product page. Product page.
- Gumstix Overo. ARM Cortex-A8. Product page.
- i.MX53 Quick Start. ARM Cortex-A8. Product page.
- ISEE IGEP v2. ARM Cortex-A8. Product page.
- Origen board, Samsung. Quad-core ARM Cortex-A9. Product page.
- Pandaboard. Dual-core ARM Cortex-A9. Product page.
- Raspberry Pi. ARM11. Product page.
- Snowball, ST Ericsson. Dual-core ARM Cortex-A9. Product page.