Vous êtes sur la page 1sur 31

Introduction to Embedded Software

Development

2. Embedded Operating System

School of software Engineering


2005

Agenda

What is an Embedded OS?


Embedded system OS

Windows Embedded
VxWorks
Embedded Linux

Agenda

What is an Embedded OS?


Embedded system OS

Windows Embedded
VxWorks
Embedded Linux

Operating System Flavors

Desktop

Server

Windows (9X, XP Home, XP/2000 Pro)


Mac

Windows (XP/2000 Server &Advanced Server)


Unix Varieties

Embedded

Many

What is an Embedded OS?

An "embedded system" is any computer


system or computing device that performs a
dedicated function or is designed for use
with a specific embedded software
application.

Embedded systems may use a ROM-based


operating system or they may use a diskbased system, like a PC. But an embedded
system is not usable as a commercially
viable substitute for general purpose
computers or devices.

What makes a good Embedded


OS?

Modular
Scalable
Configurable
Small footprint
CPU support
Device drivers
etc, etc, etc...

What makes a good RTOS?

Multi-threaded and preemptible


Thread priority has to exist because
no deadline driven OS exists
Must support predictable thread
synchronization mechanisms
A system of priority inheritance must
exist

Who are the Embedded OS


players?
Microsoft

Embedded NT/XP

Real-time control

Windows

Internet devices

Pocket

CE (CE.NET)

PC 2002

Handheld PCs and PDAs

Wind

River Systems

VxWorks
pSOS

Who are the Embedded OS


players?
Commercial Embedded Linux

AMIRIX Embedded Linux

Coollogic Coollinux

Coventive Xlinux

Esfia RedBlue Linux

KYZO Pizza Box Linux

Lineo Embedix

LynuxWorks BlueCat

MontaVista Linux

Who are the Embedded OS


players?
Open

Source Embedded Linux

Embedded Debian Project


ETLinux
uCLinux
uLinux (muLinux)

Who are the Embedded OS


players?

QNX Software Systems

QNX

Palm PDA
Palm

OS

Symbian
Symbian

OS

Green Hills Software


Integrity

Agenda

What is an Embedded OS?


Embedded system OS

Windows Embedded
VxWorks
Embedded Linux

Microsoft Mobility
Platforms
Pocket PC

Smart
Personal
Objects
One-way
network
Information
consumption

Windows CE

Information
consumption
View and some
data entry
Smartphone
Integrated PDA with
Information
phone
consumption
Interoperability with
Primarily data
Office, Exchange
viewing
Integrated phone and SQL Server
.NET Compact
with PDA
Framework
Interoperability
ASP.NET mobile
with Exchange
controls
.NET Compact
Framework
ASP.NET mobile
controls

Tablet PC

Notebook PC
Complex document
authoring, editing and
reading
Keyboard centric at the
desk
Keyboard and mouse
input methods
Full .NET framework
available

Windows Mobile

Increased Functionality

Complex document
authoring, editing and
active reading
Note taking and ink
annotating
Keyboard centric at the
desk, pen & keyboard
away from the desk
Keyboard, mouse plus
pen, ink, and speech
input methods
Full .NET framework
preinstalled
Pen, ink, handwriting and
speech recognition APIs

Windows XP/XPE

Windows Embedded Family

Agenda

What is an Embedded OS?


Embedded system OS

Windows Embedded
VxWorks
Embedded Linux

VxWoks

VxWorks is a commercial hard real time


operating system developed by wind
river systems.

The main idea: use monolithic kernel to


schedule user tasks according to user
defined priorities. Maximize kernel
timing predictability.

Gives the users maximal control.

VxWoks

A dedicated real time system, not


intended as a general purpose OS.

lacks many modern os features that


interfere with real time performance
(flat memory model, no paging).

VxWoks

Scheduling is done using a preemptive


priority driven approach, priorities are
chosen arbitrarily by the user (0-255).
Priorities can be changed by the user
at runtime but this is discouraged.
A user can lock a task so that it cant
be preempted even by higher priority
tasks or interrupts.
This allows the use of the fixed priority
response time analysis to check
schedulability offline.

VxWoks

Is resource sharing aware and has a


priority inheritance built in.
Optimizations in implementation of the
context switch and the return from
interrupts.
The kernel never disables NMI (nonmaskable interrupts) so they are
always available to the user.

VxWoks - limitations

Lacks many modern OS features.


Guaranteeing the deadlines is the
responsibility of the user at design
time.
Doesnt support most modern
applications and APIs (only a small
subset of POSIX).
Despite the flat memory model dynamic
memory allocation still cases memory
fragmenting, which increases timing
unpredictability.

VxWoks - limitations

A dedicated and widely used real time


system.
Offers the user maximal control , but
also passes him responsibility for the
deadlines.

Tornado Development tools

GDB Debugger

WindView Tracer and Analyzer

Agenda

What is an Embedded OS?


Embedded system OS

Windows Embedded
VxWorks
Embedded Linux

outline

A simple view of embedded Linux

Developing process of an embedded


devices with embedded Linux

Embedded Linux VS windows CE

Embedded Linux in
various devices:

NASA personal
assistant

Developing Process
From system
design

t
e
s
t

Linux OS
select

OS Porting and
improvement
Driver and
Application
software
development

Rehat,bluecat,RT
Linux,Monta Vista
Linux,RTAI,
http://linux.org
http://www.gn
u.org
Tekram,HP,Intel,

Windows embedded VS
Linux Embedded
Royalty
Development
environment
Functions
Market on time
Developers
Hardware
support

Very cheap

Not all embedded


windows products

better

disagree

more
shorter
more

disagree

equivalency

Not sure
Not sure
Linux better

Argument between Jerry Krasner and Rick Rehrbraum

Cont.
Windows embedded VS
Linux Embedded

Both
on
strong
uptake
curve!
Oses targeted in current and next
embedded projects,2002,data from EDC

Homework
1. What

is an embedded Linux?Give
some examples.
2. What are the features of embedded
Windows compared with embedded
Linux?
3. What are the differences of the
development processes when you use
windows CE and use embedded
Linux?