4 1 Introduction
Low power consumption: Many embedded systems are battery powered and need
to conserve energy consumption. Such systems may be static or mobile, either
way they operate at a distance from any mains power. There are obvious exemp-
tions to this rule. High speed routers and switches, for example, have powerful
processors for forwarding high volumes of network packets. Consequently energy
consumption will be high and mains supplied.
Low processing power and memory: This is somewhat a corollary of the charac-
teristic above. Whereas, in the past, embedded systems were almost exclusively
based on specially designed hardware, it is possible nowadays to develop embed-
ded systems on commercial off-the-shelf (COTS) hardware.
Real-Time systems: Real-time systems are systems that must respond to events
within strict time constraints. The term “real-time system” is sometimes used
synonymously with embedded systems. Real-time systems are almost always
dedicated to a single application and can be categorised as embedded systems.
However, not all embedded systems support real-time applications.
Requires specially designed operating system: This characteristic may have been
true in the past when embedded system had limited processing and memory
resources. It is still true to some extent but the increase in processor speed and
memory size means that operating systems that run on general purpose computing
platforms can be used on embedded systems. The Linux kernel for an embed-
ded system will almost certainly need to be customised to work on the target
platform (but this is true of any computer system). For devices that lack mem-
ory management units (MMUs) there is a separate Linux kernel branch called
uClinux. Systems that need to support real-time applications need a real-time
kernel. The vanilla Linux kernel does not support real-time. There is a real-time
version of Linux, namely, RTLinux which has an RTOS (real-time operating sys-
tem)microkernel.
Interact with the physical world Physical computing: is a branch of computing
concerned with sensing and responding to the analogue world. This application
is considered the domain of embedded systems.
Single board computer: Entire computer systems can be built on a single printed
circuit board (PCB). The PCB includes the CPU memory and peripheral devices.
Such systems are called single board computers (SBCs) and are well suited to
embedded system platforms. It is possible to go beyond single board computers
with system on a chip (SoC). This format too, lends itself to embedded system
design.
The distinction between an embedded system and a general processing system is
somewhat blurred. The Raspberry Pi for example, fits many of the criteria above,
yet is primarily designed to function as a general processing computer. Given that it
shares many characteristics of an embedded system, it is being used extensively for
embedded applications.
We do not intend to get overly concerned with strict definitions of embedded
systems in this book. Our focus is on the core components of an embedded operating
system. For this reason, we omit graphical user interfaces and sophisticated user input