Embedded Linux
Embedded Linux
and Linux
1
Agenda
➲ Embedded Systems
➲ Real Time Systems
➲ Who Are The Players?
➲ Linux As An Embedded OS
➲ Kernel 2.4 vs. 2.6
➲ Applications And Products
➲ The Embedded OS Market
2
Embedded Systems
3
What is an Embedded OS?
➲ An "embedded system" is any computer sys-
tem or computing device that performs a ded-
icated function or is designed for use with a
specific embedded software application.
4
What makes a good Embedded OS?
➲ Modular
➲ Scalable
➲ Configurable
➲ Small footprint
➲ Device drivers
➲ etc, etc, etc...
5
Real Time Systems
6
What is Real Time?
Donald Gillies
7
What is Real Time?
8
Hard vs. Soft Real Time
➲ Hard
● Absolute deadlines that must be met
● Example: Braking system controller
➲ Soft
● Time tolerance within which an event can
occur
● Example: Multimedia streaming
9
What makes a good Real Time OS?
10
Who are the players
11
Who are the Embedded OS
players?
12
Who are the Embedded OS
players?
➲ Mentor Graphics
● VRTX
➲ Palm Computing
● PalmOS
➲ Symbian
● SymbianOS
13
Who are the Embedded OS
players?
➲ Windows
● Embedded NT/XP
● “Real-time” control
● Windows CE (CE.NET)
● Internet devices
● Pocket PC 2002
● Handheld PC’s and PDA’s
14
Linux as an Embedded
and Real Time system
15
GNU History
➲ In 1983
➲ Richard Stallman
➲ It is free
● free means freedom
➲ GNU's Not Unix
16
Linux History
➲ In 1991
➲ Linus Torvalds
➲ Based on Minix
➲ GNU/Linux
17
What’s so special about Linux?
➲ Multiple choices vs. sole source
➲ Source code freely available
➲ Robust and reliable
➲ Modular, configurable, scalable
➲ Superb support for networking and Internet
➲ No runtime licenses
➲ Large pool of skilled developers
18
What’s so special about Linux?
19
What’s special about Open Source?
20
Commercial Embedded Linux
➲ AMIRIX Embedded Linux
● Derived from Debian
➲ Coollogic Coollinux
● Combines Linux and Java for Internet apps
➲ Coventive Xlinux
● Kernel can be as small as 143KB
21
Commercial Embedded Linux
➲ KYZO Pizza Box Linux
● SAMBA based file, print, CD server
➲ Lineo Embedix
● Supports real time and high availability apps
➲ LynuxWorks BlueCat
● General purpose embedded solution
➲ MontaVista Linux
● General purpose embedded solution
22
Commercial Embedded Linux
➲ Neoware NeoLinux
● Red Hat derived for information appliances
➲ PalmPalm Tynux
● Internet appliance and multimedia
23
Commercial Embedded Linux
➲ RidgeRun DSP Linux
● For multimedia, wireless, RT on DSP
➲ Tuxia TASTE
● Distro targets Internet appliances
24
Open Source Embedded Linux
➲ Embedded Debian Project
● Convert Debian to an embedded OS
➲ ETLinux
● It is small, modular, flexible and complete
➲ uCLinux
● For microprocessors that don’t have MM
➲ uLinux (muLinux)
● Distro fits on a single floppy
25
Commercial Real Time Linux
➲ FSMLabs
● Open RT Linux
➲ Lineo
● Embedix Realtime
➲ LynuxWorks
● BlueCat RT
26
Commercial Real Time Linux
➲ MontaVista Software
● Real Time Extensions
➲ REDSonic
● REDICE Linux
➲ TimeSys
● Linux/Real-Time
27
Open Source Real Time Linux
➲ RT Linux
● “Hard” Real Time Application Interface
➲ RTAI
● “Hard” Real Time Application Interface
➲ KURT
● Event schedules with 10us resolution
➲ Linux-SRT
● For soft real time apps like multimedia
➲ Qlinux
● Provides Quality of Service guarantees
28
Commercial or Open Source Linux
29
What makes them different?
30
How to create Embedded Linux?
31
How to create Embedded Linux?
33
Providing Real Time Service within Linux
➲ Preemption improvement
➲ Interrupt abstraction
34
Preemption improvement
35
Preemption improvement
36
Interrupt abstraction
➲ The entire kernel is made preemptible by hav-
ing a separate hardware-handling layer.
➲ This hardware abstraction layer has complete control
over the hardware interrupts, and simulates the inter-
rupts up to the Linux kernel in a way that allows the ker-
nel to run unmodified on the real-time scheduler.
➲ This system is often described as a micro-kernel
system.
● where the full Linux kernel runs as the lowest priority
task alongside real-time tasks in the system on top of
the real-time scheduler.
➲ It is used to implement hard real time systems.
37
Interrupt abstraction
38
RTLinux and RTAI
➲ Interrupt abstraction
➲ Hard real time
➲ Real time tasks are operating in kernel space
➲ Real-time tasks are written to the API of RTLinux or RTAI,
not to the Linux API.
➲ RTAI offers an alternative to kernel-space operation, in
the form of LXRT.
● LXRT supports the same API as RTAI, but via tasks that run
in user-space.
➲ The recent announcement of RTLinux V3.0 pre-7 also in-
troduces user-space real-time in RTLinux.
● In this model, a function in user address space may be ac-
tivated by an interrupt or timer.
39
MontaVista and TimeSys
➲ Preemption improvement
➲ Hard real time
➲ They use preemtible kernel
● This preemption cannot be done safely at arbitrary
places in the kernel code (critical sections).
➲ They alter the spin-lock calls to additionally
prevent preemption.
➲ They use separate real time kernels.
● Interrupt abstraction
● MontaVista uses RTLinux
● TimeSys uses RTAI
40
Kernel 2.4 vs. 2.6
41
Linux Kernel 2.4 vs. 2.6
42
Device Drivers and Loadable Kernel Modules
43
Verifying and updating critical packages
44
Real Time Linux Alternatives
45
Applications
and
Products
46
What’s It Being Used For?
➲ Control and Monitoring Applications
➲ Industrial Controllers
➲ TV Set Top Boxes (TiVO)
➲ Handheld PDA’s
➲ Automobile Computers
➲ Telecomm and Networking Hardware
➲ Other uses...
47
Cyclades TS-100 (Console Server)
➲ Netlinos OS
➲ Dual 50MHz PowerPC
➲ 16MB SDRAM 4MB Flash
➲ Ethernet/Serial/RS485
48
Sixnet VersaTRAK IPm (Remote Terminal Unit)
➲ Embedded Linux
➲ PowerPC CPU
➲ 16MB DRAM 16MB Flash
➲ Serial & Ethernet Ports
49
Sharp Zaurus
➲ Lineo Embedix
➲ 206 MHz StrongARM
➲ 64 MB DRAM 16MB Flash
➲ 3.5” display (320x240) 64K
colors
➲ Opera browser & Qtopia
➲ QT/Embedded GUI
50
Cell and Web Phones
Telepong
Mobile Phone
Aplio/PRO
GITWiT IP Phone
Mobile Phone
51
TiVO Set Top Box
52
Axis 2120 Network Camera
➲ uCLinux
➲ Built-in Ethernet port
➲ 100 MHz ETRAX CPU
➲ 16 MB RAM
53
Humanoid Robots
➲ Univ. of Tokyo
➲ Dual Pentium CPU
➲ RT-Linux
➲ Height: 53 inches
➲ Weight: 121 lbs
54
Humanoid Robots
➲ Fujitsu
➲ RT-Linux
➲ Height: 48 cm
➲ Weight: 6 kg
55
The Embedded
OS Market
56
What CPU's will it run on?
57
Which OS for Embedded System (2005)
58
The Choice Factor (2005)
59
Growth of Embedded Linux
60
Conclusion
61
Conclusion
Embedded System
Linux as a
good solution
RTLinux MontaVista
and and
RTAI TimeSys
62
Resources
➲ LinuxDevices.com
http://www.linuxdevices.com/
63
Questions
Comments
64