Вы находитесь на странице: 1из 20

Seminar Report

On

“Embedded Linux”
Submitted By

Mr. Vineet V. Rathi

Department of
INFORMATION TECHNOLOGY
SIPNA SHIKSHAN PRASARAK MANDAL’S
College of Engineering & Technology, Amravati
Sant Gadge Baba Amravati University,
Amravati.
YEAR: 2010-2011_
Index
 Abstract

 Introduction

 Embedded systems

 Embedded Linux

 Concept of Embedded Linux

 Why choose Linux for Embedded Systems

 Reasons for Linux

 Implementation

 Windows Equivalents on Linux

 Embedded Linux distribution

 Advantages/Disadvantages

 Development in embedded Linux

 Applications

 Conclusion

 Reference
Abstract

An “embedded system” is any computer system or computing device that


performs a dedicated function or is designed for use with specific embedded
software application.

Embedded systems may use a ROM-based operating system or they may use a
disk-based system, like a PC. This paper covers the use of operating system in
embedded deign. Since the embedded system is dedicated to specific tasks;
design engineers can optimize it, reducing the size and cost of the product, or
increasing the reliability and performance. The absolute operating system for
this is “Linux”. The Linux operating system provides great opportunities in the
development of applications and technologies for the growing embedded
computing market.

Today Linux supports a very wide range of platforms, from Embedded Systems
based on ARM, PowerPC, Intel, and Hitachi microprocessors to name a few, all
the way up to workstations, servers, and clusters. It also served as a launch pad
for the open source movement, and consequently leads to great interest from
academia and business alike.
Introduction

Embedded systems are everywhere around us. An embedded system is a


combination of hardware and software which can be fixed or programmable and
are designed for a particular system or a device.[2] Embedded systems may use
a ROM-based operating system or they may use a disk-based system, like a PC.
Since the embedded system is dedicated to specific tasks, design engineers can
optimize it, reducing the size and cost of the product, or increasing the
reliability and performance. The absolute operating system for this is “Linux”.

The Linux operating system was created by Linus Torvalds at the


University of Helsinki in 1991. [1] From its simple beginnings,
Linux has become one of the fastest growing platforms, with
Linux Logo TUX
thousands of developers worldwide. One of the main reasons for
the success of the Linux platform has been its development as an open source
project. It allows all code developed for the Linux to be used freely by others,
for personal or commercial use, and specifically disallows distribution of the
system without also having accompanying source code, including all Linux
modifications. Linux is fully featured, portable, and extremely versatile. It runs
on everything from PDAs to the largest Mainframes. Unlike traditional
proprietary software, Linux is developed by a multitude of developers across the
world.

Embedded Linux means using a Linux platform to design and implement these
Embedded Systems.

Embedded Linux systems are not truly real time systems. In a real time a given
operation is guaranteed to be completed in a given time period. Embedded
Linux systems operate in a soft real-time or near real-time manner. It means
that it does not have an absolute completion time requirement or its completion
time is long enough that any operating system can meet it.

Linux can be modified to provide just about any level of real-time performance
desired

Embedded Linux is the use of a Linux operating system in embedded computer


systems such as mobile phones personal assistants phones, digital assistants,
media players and other consumer electronics devices equipment devices,
networking equipment, machine control, industrial automation, navigation
equipment and medical instruments. Automobiles, household appliances,
vending machines, PDA, cellular phones and almost everything these days that
has some intelligent are driven by some system embedded inside them. Linux
supports a very wide range of platforms, from Embedded Systems based on
ARM, PowerPC, Intel, and Hitachi microprocessors to name a few, all the way
up to workstations, servers, and clusters. It also served as a launch pad for the
open source movement, and consequently leads to great interest from academia
and business alike. [8]

The advantages of embedded Linux over other embedded operating systems


include no royalties or licensing fees, a stable kernel, a support base that is not
restricted to the employees of a single software company, and the ability to
modify and redistribute the source code. The disadvantages include a
comparatively larger memory footprint (kernel and root file system),
complexities of user mode and kernel mode memory access and complex device
driver’s framework.[3][4][8]
Concept of Embedded Linux

The first operating systems for mobile phones and other mobile consumer
electronic devices were custom developed, which means they were expensive to
develop and maintain, as all hardware drivers and interfaces had to be written
from scratch in a low level programming language.[7]

Soon developers started to look for higher-level approaches that would facilitate
re-use of software components. A typical installation of embedded Linux
requires only about two megabytes, which was therefore a good candidate for
use as operating system of resource limited devices. Furthermore, Linux is
Open Source and therefore well suited as basis for standards.

A group of companies interested in the development of Linux products formed


The Embedded Linux Consortium (ELC) in order to promote Linux and
develop standards for the embedded computing markets. Standards are also
developed for managing power consumption of devices, designing user
interfaces, and real-time operation of embedded Linux software. One of the
results of this effort is the Embedded Linux Consortium Platform Specification
(ELCPS). Linux is making steady progress in the embedded arena. Because
Linux is covered under the GPL, anyone interested in customizing Linux to his
PDA, palmtop, or wearable device can download the kernel and applications
freely from the Internet and begin porting or developing. Many Linux flavors
cater to the embedded/realtime market.[4][8]
Why choose Linux for Embedded Systems

Number No: 1 Reason. It’s FREE also Linux is the most cost efficient
OS in the world. And not only is it free, it also (typically) comes with
applications that would cost hundreds if not thousands of dollars.[11]
Security -Linux will keep your family safe from Malware and viruses

Reasons for wanting to use Linux for embedded


systems

source code is free available

No run time royalties

Linux is more robust/reliable

Linux has excellent networking support

There are more drives and Tools

Lots of programmers are familier

Its not from microsoft

other

0 5 10 15 20 25

Ease of use- Linux is extremely easy to use. As Windows, you’ll be able


to work easily in Linux
Run fast.
Currently Linux is the most popular open source OS in the IT
community. Even Intel, IBM, HP and other very well known companies
are embarrassing the power of Linux and supporting its growing number
of developers worldwide[11][12]
The power of Linux combined with its support for wide range of
microprocessors, hardware devices, graphics card support, and
communications protocols have made Linux as an increasingly popular
software platform for a vast array of Embedded projects and products

What do you value most about using open source


software in embedded applications?

Collaborative open source development


produces superior S/w

It allows fully understanding what's going on


inside the OS

it eliminates dependence on a single OS


vender

it represents "insurance"

it facilitates debugging and troubleshooting


the application

its lets add functionality directly within OS

it lets immediately fix OS bugs

Want OS source

Other

0 0.2 0.4 0.6 0.8 1

As the technology and the use of embedded devices grows, the need to
minimize cost and to keep up with the latest features that technology has
to offer becomes increasing difficult and expensive. To manage these
issues Embedded Linux becomes a highly desirable choice of technology
for the operating system due to its scalability, configurability and
affordability[13][14]
Implementation

An embedded Linux project requires both hardware and software on the


development machine and the target device. On the development side the
hardware would consist of a machine with all its required components; and
software would be the OS and other development tools such as programming
language packages, compilers and low level programming tools. For the
target device which is actually the embedded device itself the hardware is the
circuit board and software would be kernel, function libraries and specific
device drivers for the board.

Linux uses the file system to store and locate executable programs and
persistent data. Even system devices are referred to by special files in the file
system. A file system on some type of disk device is an integral part of the
Linux execution environment. [3] All operating systems require some
resource usage in order to operate. The main resource required is computer
memory. Some operating systems have a larger memory "footprint" than
others. In embedded systems where both RAM and ROM is a precious
resource, an operating system with too large a footprint must be ruled out.

Minimum system requirement for running embedded Linux is around 2 MB


Flash Memory and 4 MB RAM and a 100 MIPS or better processor. A 60
MHz Pentium performs 100 MIPS. A typical Linux kernel is 1.5 megabytes
uncompressed. RAM use by the kernel for a default configuration is over 4
megabytes. Linux also requires a file system for operation, and, if the
embedded system does not have a disk, this means more memory will be
used in the form of a RAM disk. That is why it is much more favorable to
use Linux compared to other embedded OS systems such as Microsoft
Windows OS which demand high system requirement and use up more
system resources. [3][4][8]
The Linux Kernel

The Linux kernel provides support for memory management, process and thread
creation, interprocess communications mechanisms, interrupt handling, execute-
in-place ROM filesystems, RAM filesystems, flash management, and TCP/IP
networking. The Linux kernel provides a POSIX-compliant API to these
services. The directory structure of the kernel source tree separates architecture-
dependent code out from the core kernel services, allowing greater reliability
with known-working core algorithms, with calls to machine-specific code added
for particular platforms. Thus, adding support for specific device features is
fairly straightforward. This implementation methodology is also followed for
memory management, i/o, and driver designs, where the core kernel code
abstracts a model that allows implementation on differing architectures.

Memory Management
The kernel provides complete modern virtual memory services to applications
programs, including support for large address spaces, protection, demand
paging, memory mapping and shared virtual memory. While support for large
address spaces or demand paging may not seem important for embedded
systems designs, all of the modern 32-bit processor architectures support these
features, and Linux will allow growth in application complexity as hardware
costs are reduced without redesign or reimplementation. Memory protection
allows building systems that allow user-upgradeable or third-party applications
to be added to the system, without compromising the entire system. Shared
virtual memory support allows multiple copies of application’s code segments
to be shared across the system using less physical memory, as well as
implementation of more sophisticated schemes like high-speed direct
application framebuffer access for MPEG digital video players, for instance.
Processes and Threads
Linux provides a relatively cheap process creation mechanism, which allows
memory-protected processes and threads to be created quickly for a variety of
uses. Recent embedded implementations provide soft real-time scheduling
services for applications programs. In most cases, these scheduling services
provide all that is required for applications requiring networking, i/o and
graphical services. Each process in Linux has its own table of open files and
virtual memory allocations, although files and memory can be shared between
processes.

Interprocess Communication
The kernel provides signals, pipes and sockets for communications between
applications. The signal mechanism allows user programs to be asynchronously
notified when a specified event occurs. Signals can be sent to single processes
or process groups. The pipe mechanism implements a full-duplex facility for
arbitrary byte i/o between processes.Linux sockets act just like file or pipe
descriptors but instead communicate to the networking subsystem. A
specialized type of socket, known as a local UNIX socket, allows
communications between local processes similar to the pipe mechanism but
using the networking system calls instead. Using a socket creation parameter,
processes communicating together on a local machine can be replaced by
processes communicating between two different machines, using the
networking system, without other architectural changes.

Interrupt Handling and Device Drivers


Linux provides sophisticated methods for interfacing the system with hardware.
The interrupt handling allows handling high-priority interrupts with interrupts
disabled, with scheduling of later “bottom-half” code to execute in kernel mode
after interrupts have been enabled and other higher-priority kernel tasks
completed. Adding support for a specific hardware device is implemented using
a device driver, which may be linked into the kernel, or dymanically loaded as a
kernel loadable module. At system startup time, scanning for various hardware
options can be performed, and drivers loaded as required.

RAM/ROM File systems


The Linux kernel implements a virtual file system that allows the
implementation of various real filesystems accessible with a common interface.
Standard disk and network file systems are supported, along with filesystems
for ROM and RAM residence. A compressed ramdisk image for system startup
can reside linked with the Linux kernel, or copied from a compact flash card,
for instance. In addition, implementations for execute-in-place ROM
filesystems are becoming available. Read-only compressed filesystems can be
decompressed partially as required, resulting in fast boot times.

TCP/IP Networking
A very complete implementation of the standard TCP/IP networking protocol
suite, including TCP, UDP, IP, and ARP is found in the Linux kernel. In
addition, complete support for NFS, DNS, DHCP, PPP and SLIP is included by
applications programs. Linux’s networking support and configuration
customizability make Linux well suited for the mobile and Internet appliance
markets, where data communications is a key technology.
Windows Equivalents on Linux

Many of the programs we used on Embedded Linux mobiles are either


ported, or have alternatives. Let’s have a look.

WINDOWS LINUX

Internetexplorer/browser Firefox/Mozilla/Konqueror

Microsoft office openOffice.org (Ooo), koffice

Windows Media Player Totem/mplayer/VLC/Amarok

GoogleTalk/Y! /MSN GAIM/Pidgin/Kopete

Limited to only 5 users infinite users

Nil Dynamic file system handlers

Easily breakable password high security can be achieved

Nil Language coding( C,C++,Java)

Linux has its working in six shells

/bin/sh (login-sh 3.1#)[15]


/bin/bash (working directory)
/sbin/nologin (can not login)
/bin/tcsh
/bin/csh (programming)
Bin/ksh /zsh (programming in java)[15][16][17]
Embedded Linux distribution

A Linux distribution, often simply distribution or distro, is a member of the Linux family of
Unix-like operating systems comprising the Linux kernel, the non-kernel parts of GNU
operating system, and assorted other software. Because most of all kernel and software
packages are free and open source, Linux distributions have taken a wide variety of forms
from fully-featured desktop and server operating systems to minimal environments.[10]

1.Red Hat/Fedora Core


User level-Beginner to Advanced Server
Good points-Used to be very popular, easy to use, good installer
Bad points-Have some annoying quirks, RPM software packaging can suffer from dependency
problems, even with YUM system.
2.SuSE
User level -Beginner to Advanced/Server
Good points Good all rounder, good manuals & docs, masses of great software, brilliant
support. Enterprise version great for corporate use with business support.
Bad points-YAST Installer still relies on RPM system from RedHat which suffers from
dependency problems.
3.Debian
User level-Intermediate to Advanced
Good points- Very established Linux distributor. DEB packages combined with apt-get system
solve the tedium of the RPM software packaging in Red hat/SuSE/Mandriva.
Bad points-Traditionally known for being further behind than some other distros, but rock
solid!
4.Ubuntu
User level-Beginner to Advanced/Server
Good points -This relative newcomer the most popular of all the Linux Distributions currently.
It is built on a Debian core, but has a more regular release cycle, is more polished, is easy to use
and has major financial backing.
Bad points-It is a completely free distro, therefore copyrighted materials such as DVD playing
software do not come as standard with Ubuntu, you must download and install it separately.

Other Linux distributions or distros are:


PC Linux OS, Debian, Fedora, Mint, Slax, Mepis, Mandriva, CentOS,
Linspire,[10]
Advantages of Using Linux for Embedded Systems

 It’s source code is completely open for everyone


 It has the world's largest and most active Open Source development
community
 Developers looking to run embedded systems with Linux have a wide
variety of choices, both commercial and noncommercial
 Mature, proven, and still evolving rapidly[4]
 Embedded Linux can be very small
 It is a modular and configurable OS
 There are many development tools available
 No runtime royalties required
 Does not require much system resource as the other OS does

Drawbacks of Using Linux for Embedded Systems


Ever system has its disadvantages likewise Linux is also not untouched
by this
 Linux is great product, but it’s problem is that it is also Free
 Hard to make money on something that is Free
 There is no single governing body to overlook the Linux
developments
 Lack of support from the hardware vendors[4]
 Compatibility issues with other OS vendors
 It can’t succeed greatly in the embedded markets unless its suppliers
can find ways to make money from it
 Commercial software tools and integrated development environment
that allow user to configure and built applications for Linux can be
expensive due to lack to competition. [6]
Development in embedded Linux

Linux is making steady progress in the embedded arena. Because Linux is


covered anyone interested in customizing Linux to his PDA, palmtop, or
wearable device can download the kernel and applications freely from the
Internet and begin porting or developing. Many Linux flavors cater to the
embedded/real-time market. These include RTLinux (Real-Time Linux),
uclinux (Linux for MMUless devices), Montavista Linux (Linux distributions
for ARM, MIPS, and PPC), and ARM-Linux (Linux on ARM), and others
Embedded Linux development broadly involves three tiers: the bootloader, the
Linux kernel, and the graphical user interface (or GUI). [3]

Growth in million dollars

700

600
Growth in million
500 dollars, 610
400

300

200

100

0
2000
2001
2002
2003
2004
2005
2006
2007
Embedded Linux Applications

The ROAD S101 is a Linux powered device.


ROAD stands for Remote Office Access Devices
it is powered with LINUX Kernel 2.6.x.[14]

MotorolaRAZR2[1]

Blackberry BOLD

Samsung st45-lg1[9]

Samsung Giorgio Armani Smartphone[9]


Sprint phone[7]

Samsung omniaPro-b7330[9]

Neo Free Runner

Samsung reclaim[9]

Samsung bada mobile OS


Conclusion

You should’ve got a fair idea about embedded Linux, open source. The
Linux operating system is well suited for use in the rapidly growing embedded
computing market. It’s technologically advanced, open source development
model, free availability and royalty free distribution make it an ideal choice for
future designs. The large developer environment and fast pace of contributions
ensure that Linux will meet the requirements of emerging embedded and mobile
applications for some time to come.
References

Thanks to lot of websites on the internet.

[1] Evolution of Linux [PDF]


[2]Wikipedia/embedded systems
[3]Linux-embedded.com
[4]Linuxworks.com
[5]Redhat.com
[6]Ubunutu.com
[7] Alllinuxdevices.com
[8] embedded-linux.org
[9]Samsungeurop.com
[10]Linuxduro.com
[11]www.novell.com/linux
[12] www.centos.org
[13]www.eglug.org/community
[14] linuxdevices.com

Thanks to IIHT for providing very useful books

[15]RED HAT ENTERPRISE LINUX ESSENTIALS-RH033

[16]RED HAT ENTERPRISE LINUX ESSENTIALS-RH133

[17]RED HAT ENTERPRISE LINUX ESSENTIALS-RH253

Вам также может понравиться