01-Introduction To Embedded Linux
01-Introduction To Embedded Linux
*
Merci à la société Bootlin (https://bootlin.com) d’où provient une grande partie de ces slides.
1/37
Embedded Linux
Embedded Linux?
2/37
Rationale
3/37
Aspencore 2023 Embedded Survey (1/4)
4/37
Aspencore 2023 Embedded Survey (2/4)
5/37
Aspencore 2023 Embedded Survey (3/4)
6/37
Aspencore 2023 Embedded Survey (4/4)
7/37
Supercomputers Linux market shares
Source: https://www.top500.org/
8/37
Servers operating system shares 2023
Source: https://www.fortunebusinessinsights.com
9/37
Automotive global operating system shares
10/37
Motivation
• Low cost.
• Open-source ecosystem provides many components for standard
features: hardware support, network protocols, multimedia, graphic,
cryptographic libraries, etc.
• As soon as hardware device, protocol, or feature is widespread
enough → high chances of open-source components supporting it.
• Allows to quickly design and develop products, based on existing
components.
• No need to re-develop another kernel, TCP/IP stack, USB stack or
graphical toolkit library.
• Instead: allows focusing on the added value of the product.
11/37
Low cost
12/37
Open-source software
13/37
Quality of open-source software
14/37
Community support
15/37
Involvement in the community
• Motivation:
• For engineers: way to get recognition outside the company,
communication with others in the field, new opportunities, etc.
• For managers: motivation factor for engineers, allows companies
to be recognized in the open-source community → get support
more easily.
16/37
Embedded Linux use cases
17/37
Internet of Things
18/37
Automotive
19/37
Space
20/37
Domotics
21/37
Cashier registers (1/2)
22/37
Cashier registers (2/2)
23/37
Point of sale terminal
24/37
Routers (Open-WRT)
25/37
Electronics appliances
26/37
Home appliances
27/37
Industrial automation
28/37
Agriculture machine
29/37
Embedded hardware for Linux
systems
Processor and architecture (1/2)
30/37
Processor and architecture (2/2)
• Besides the toolchain, the bootloader and the kernel, all other
components are generally architecture-independent.
31/37
RAM + storage requirements
• RAM
• Very basic system: 8MB!
• More realistically: ≥ 32 MB of RAM (use-case dependent)
• Storage
• Very basic system: 4MB storage!
• Support for RAW flash storage (NAND & NOR)
• Support for block flash storage (SD/MMC, eMMC, etc.)
32/37
How to choose the hardware?
• Make sure the hardware is supported by the Linux kernel and the
bootloader (typically U-Boot).
• Support in the projects’ (kernel, bootloader) official versions is a lot
better: better quality, and availability of new versions.
• Some vendors do not contribute their changes back to the mainline
Linux kernel. A good metric is the “delta” between their kernel and
the official one.
• Huge difference in dev time and cost between a properly supported
hardware in the official Linux kernel and a poorly supported one.
33/37
Embedded Linux system
architecture
Global architecture
34/37
Software components
• Cross-compilation toolchain
• Compiler that runs on the development machine but generates
code for the target.
• Bootloader
• Initiated by the hardware, performs basic initialization, loads
and executes the kernel.
• Linux kernel
• Handles hardware, memory and process management. Provides
services to user space applications.
• C library
• Interface between kernel and user space applications.
• Libraries and applications
• User applications and libraries running on top of the C library.
35/37
Board Support Package (BSP)
36/37
37/37