Sie sind auf Seite 1von 28

Embedded Linux

2 Introduction To Embedded Linux

Information Technology Institute (ITI)

Sherif Mousa
Embedded Linux @ Information Technology Institute 1
Definition

Embedded Linux @ Information Technology Institute 2


Definition
Embedded Linux is the use of Linux in embedded
computer systems.
Adapting the Linux kernel and customizing the
user-space libraries and utilities to embedded
applications such as those in use in consumer
electronics, military, medical, industrial, and auto
industries.
Creating an Embedded Linux based system is like
a puzzle. Putting the right pieces together will
create the final image.
Embedded Linux @ Information Technology Institute 3
Some Whys ???

Embedded Linux @ Information Technology Institute 4


Why Embedded ?

?
Embedded Linux @ Information Technology Institute 5
Why OS for Embedded ?

Make use of micro-processor capabilities


(Multi-Tasking ).
Easy to program.
System scalability.

Embedded Linux @ Information Technology Institute 6


Why Embedded not Normal OS ?

Systems with small and limited resources.


Special-Purpose systems.
Real-Time systems.

Embedded Linux @ Information Technology Institute 7


Why Linux ?

Inexpensive, Robust, Easy to program.


Source code is available.
Ported to a variety of CPU architectures.
Large device drivers coverage.
Hosting huge number of languages & libraries.
Software is highly modularized, making it easy
to build something new.

Embedded Linux @ Information Technology Institute 8


Why build from scratch ?

When you bake it at the factory thats what it


does forever. Tim Bird, Sony Entertainment
You can use ready-made distributions as well,
but you will face some restrictions if you need
to modify something.

Embedded Linux @ Information Technology Institute 9


Some Facts

Embedded Linux @ Information Technology Institute 10


Is it easy ?

NO, ITS NOT EASY.


To finish a complete OS, its not just Linux
kernel to compile, you need to build and
integrate the other OS components
(BootLoader, Libraries, Commands, .)
And you will do all of this without getting a
PhD degree in OS building

Embedded Linux @ Information Technology Institute 11


Do I need more knowledge ?

If you are a Linux super user, and you think


that you need to learn more things to enter
the Embedded Linux field, THATS WRONG.
Linux - Somethings = EmbeddedLinux

Embedded Linux @ Information Technology Institute 12


Android is embedded Linux?

Of course not Karim Yaghmour


Google custom-built Android as a mobile
operating system that comes with its own
ecosystem, separate from the classic Linux
ecosystem. Its user interface is optimized for
touch screen devices. It comes with a set of
APIs. But most classic embedded devices dont
need Google maps, for example.

Embedded Linux @ Information Technology Institute 13


Embedded Linux Development

Embedded Linux @ Information Technology Institute 14


Cross Compiler

A cross compiler is a compiler capable of


creating executable code for a platform other
than the one on which the compiler is
running.

Embedded Linux @ Information Technology Institute 15


ToolChain

Set of programming tools that are used to


create a product (typically another computer
program), used in chain.
A simple software development ToolChain
consists of a compiler and linker to transform
the source code into an executable program,
libraries to provide interfaces to the operating
system, and a debugger.

Embedded Linux @ Information Technology Institute 16


Cross-ToolChain
The usual development tools available on a
GNU/Linux workstation is a native ToolChain.
For embedded systems, it is usually impossible or
not interesting to use a ToolChain installed on it
The target is restricted in terms of storage and memory
The target is very slow compared to your workstation
Therefore, Cross-ToolChain is used. They run on
your workstation but generate code for your
target.
Embedded Linux @ Information Technology Institute 17
Cross-ToolChain

Source Code X86

Native ToolChain Cross ToolChain

X86 Binary Target Binary

X86 Target CPU


Embedded Linux @ Information Technology Institute 18
Cross-ToolChain Components
Binutils is a set of tools to generate and
manipulate binaries for a given CPU architecture
as, ld, ar, .
Kernel headers
Available system calls and their numbers, Constant
definitions, Data structures.
C/C++ libraries
Interface between the applications and the kernel
glibc (or) uClibc
GCC compiler
GDB debugger
Embedded Linux @ Information Technology Institute 19
Embedded Linux Components

Embedded Linux @ Information Technology Institute 20


Embedded Linux Components

Boot Loader (grub, Lilo, Uboot)


Kernel (Normal or Real-Time)
FileSystem (FHS)
Configuration files
C Library
Common system commands
User application(s)

Embedded Linux @ Information Technology Institute 21


Embedded Linux Components
Bootloader
Started by the hardware, responsible for basic
initialization, loading and executing the kernel.
Linux Kernel
Contains the process and memory management, network
stack, device drivers and provides services to userspace
applications.
System libraries (C library)
The interface between the kernel and the userspace
applications.
Filesystem
Contains Linux commands, libraries and other needed
scripts.
Embedded Linux @ Information Technology Institute 22
System Integration & Installation

Integrate all the components, bootloader,


kernel, system libraries and applications and
our applications into a full working system.
Install the OS into the device (?!!??!?!!!?!?!)

Embedded Linux @ Information Technology Institute 23


Booting Sequence
Bootloader
Executed by the hardware at a fixed location in ROM / Flash
Initializes support for the device where the kernel image is found (local
storage, network, removable media)
Loads the kernel image in RAM and execute.
Kernel
Uncompresses itself
Initializes the kernel core and statically compiled drivers (needed to
access the root filesystem)
Mounts the root filesystem (specified by the root kernel parameter)
Executes the first userspace program (specified by the init kernel
parameter)
First userspace program Configures userspace and starts up system
services and user interface (if found).

Embedded Linux @ Information Technology Institute 24


Linux System Running
app A app B
User
C Library Space

Call Event
a service Handler

Linux Kernel

Manage Event
Hardware notification
Hardware
Embedded Linux @ Information Technology Institute 25
Then What ???

Once you have the system installed with no


problems on you development device, you are
free to write applications as you need with the
any programming language (supported by
your embedded OS).

Embedded Linux @ Information Technology Institute 26


Embedded Linux @ Information Technology Institute 27
eng.sherif.mosa@gmail.com
http://about.me/shatrix
Embedded Linux @ Information Technology Institute 28

Das könnte Ihnen auch gefallen