Lecture-3B (Embedded Linux)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Islamic University of Technology

EEE 4765

Embedded Systems Design


Lecture-3

Embedded Linux
Introduction to Embedded Linux
Embedded Linux, though utilizing the same Linux kernel, is quite different from the standard Linux OS.
Embedded Linux is specifically customized for embedded systems. Therefore it is has a much smaller
size, requires less processing power and has minimal features. Based on the requirements of the
underlying embedded system, the Linux kernel is modified and optimized as an embedded Linux version.
Such an instance of Linux can only run device-specific purpose-built applications.

Android OS is a type of embedded Linux, customized to be used on smartphones. Other devices on


which embedded Linux is used include:

✓ Smart TVs
✓ Wireless routers
✓ Tablet PCs
✓ Navigation devices
✓ Other industrial and consumer electronic equipment
Linux used in Embedded Systems
Originally Linux was developed for desktop PC's (based on x86 processor architecture). Linux is basically a kernel and the
source code is available in kernel.org. There were many Linux distributions created to support desktop PC. The most
popular ones are Fedora, Debian, Ubuntu etc. We cannot install these Linux distributions on embedded systems because
there are lots of changes from desktop PC environment to embedded systems. The major differences are like

✓ Embedded systems are based on non x86 processor architecture such as ARM, MIPS, PowerPC etc.
✓ Embedded systems boot from flash instead of hard-drives and support flash filesystems.
✓ Embedded systems don't support BIOS unlike desktop PC.
✓ Embedded systems are resource constrained and hence can't run bulky OS.
✓ Embedded systems are battery operated and low power devices in general
✓ Embedded systems may be based on different processors and support different peripherals based on customer
requirements and hence the hardware is not generic like desktop PC.
✓ Embedded systems require real time performance.

Embedded Linux is basically a Linux distribution specific to the target Hardware. Companies like MontaVista, TimeSys,
Windriver are the major players in the embedded Linux domain.

The Yocto project is the open source embedded Linux project supporting numerous embedded hardware boards.

Embedded Linux mainly has the BSP (board support packages) specific to Embedded hardware board.
Definition: continued …

Embedded Linux generally refers to a complete Linux distribution targeted at embedded devices. Embedded Linux,
though utilizing the same Linux kernel, is quite different from the standard Linux OS. Embedded Linux is specifically
customized for embedded systems. Therefore it is has a much smaller size, requires less processing power and has
minimal features.

Based on the requirements of the underlying embedded system, the Linux kernel is modified and optimized as an
embedded Linux version. Such an instance of Linux can only run device-specific purpose-built applications.

Android OS is a type of embedded Linux, customized to be used on smartphones. Other devices on which embedded
Linux is used include:

Smart TVs

Wireless routers

Tablet PCs

Navigation devices
Main Components
Embedded Linux systems have four main components : toolchain , bootloader, kernel and root file system.

❑ tool-chain is consist compiler, linker and libraries.

✓ compiler is use for converting higher level code in machine understandable code.
✓ linker link pre-define function to our executable code. linker is mostly part of compiler.
✓ Libraries is collection of executable of pre-define functions.

❑ bootloader is piece of code which load our kernel in RAM.

❑ kernel is main brain of operating system which manage all resources.

❑ root filesystem is the filesystem that is contained on the same partition on which the root directory is located,
and it is the filesystem on which all the other filesystems are mounted.
What is Linux Kernel
The word "kernel" means "seed" or "core". In computer science, a "kernel" is the "core" or central part of something
around which everything else is built.
A kernel is the lowest level of easily replaceable software that interfaces with the hardware in the computer. It is
responsible for interfacing all of your applications that are running in “user mode” down to the physical hardware, and
allowing processes, known as servers, to get information from each other using inter-process communication (IPC).

In the case of Linux,


▪ The kernel keeps tracks of the various pieces of software running,
▪ The kernel is in charge of keeping track of what memory is available and handing off bits of free memory to
programs when they ask for it.
▪ The kernel manages all of the hardware devices and brokers interaction between the hardware devices and
programs that are running.
▪ The kernel has the ability to look at the raw data on a disk and determine how it is laid out as files, and present
those files and the disks as places where programs can read and write data.
▪ The kernel also handles the flow of data through networks and between programs, managing connections,
sending data where it is supposed to go, notifying the programs that data is available or that it's waiting, etc.
Linux Kernel : continued ..
The Linux Systems

User commands includes


executable programs and scripts

The shell interprets user


User commands
commands. It is responsible for
finding the commands and Shell
starting their execution. Several
different shells are available. Kernel File Systems

Bash is popular, Device Drivers

The kernel manages the hardware Hardware


resources for the rest of the system.
The Linux File-Systems : Basics
A file system is a logical collection of files on a partition or disk. A partition is a container for information and can span an entire hard drive if
desired.
Linux uses a hierarchical file system structure, much like an upside-down tree, with root (/) at the base of the file system and all other directories
spreading from there.
The directories have specific purposes and generally hold the same types of information for easily locating files. Following are the directories that exist on the major
versions of Unix −

/ This is the root directory which should contain only the directories needed at the top level of the file structure

/bin This is where the executable files are located. These files are available to all users

/dev This are device drivers

/lib Contains shared library files and sometimes other kernel-related files

/home Contains the home directory for users and other accounts

/tmp Holds temporary files used between system boots

/etc Supervisor directory commands, configuration files, disk configuration files, valid user lists, groups, ethernet, hosts, where to
send critical messages
/usr Used for miscellaneous purposes, and can be used by many users. Includes administrative commands, shared files, library
files, and others
/var Typically contains variable-length files such as log and print files and any other type of file that may contain a variable
amount of data
/kernel Contains kernel files

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy