SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Embedded Linux
Information Technology Institute (ITI)
Sherif Mousa
Embedded Linux @ Information Technology Institute 1
2– Introduction To Embedded Linux
2
Definition
Embedded Linux @ Information Technology Institute
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
4
Some Whys ???
Embedded Linux @ Information Technology Institute
Why Embedded ?
?
5Embedded Linux @ Information Technology Institute
Why OS for Embedded ?
• Make use of micro-processor capabilities
(Multi-Tasking …).
• Easy to program.
• System scalability.
6Embedded Linux @ Information Technology Institute
Why Embedded not Normal OS ?
• Systems with small and limited resources.
• Special-Purpose systems.
• Real-Time systems.
7Embedded Linux @ Information Technology Institute
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.
8Embedded Linux @ Information Technology Institute
Why build from scratch ?
• “When you bake it at the factory that’s 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.
9Embedded Linux @ Information Technology Institute
10
Some Facts
Embedded Linux @ Information Technology Institute
Is it easy ?
• NO, IT’S NOT EASY.
• To finish a complete OS, it’s 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 
11Embedded Linux @ Information Technology Institute
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, THAT’S WRONG.
• Linux - Somethings = EmbeddedLinux
12Embedded Linux @ Information Technology Institute
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
don’t need Google maps, for example.
13Embedded Linux @ Information Technology Institute
14
Embedded Linux Development
Embedded Linux @ Information Technology Institute
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.
15Embedded Linux @ Information Technology Institute
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.
16Embedded Linux @ Information Technology Institute
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.
17Embedded Linux @ Information Technology Institute
Cross-ToolChain
18Embedded Linux @ Information Technology Institute
X86 Binary Target Binary
X86
X86 Target CPU
Source Code
Native ToolChain Cross ToolChain
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
19Embedded Linux @ Information Technology Institute
20
Embedded Linux Components
Embedded Linux @ Information Technology Institute
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)
21Embedded Linux @ Information Technology Institute
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.
22Embedded Linux @ Information Technology Institute
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 (?!!??!?!!!?!?!)
23Embedded Linux @ Information Technology Institute
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).
24Embedded Linux @ Information Technology Institute
Linux System Running
25Embedded Linux @ Information Technology Institute
Hardware
Linux Kernel
User
SpaceC Library
app A app B
Call
a service
Manage
Hardware
Event
Handler
Event
notification
Then What ???
• Once you have the system installed with no
problems on your development device, you
are free to write applications as you need with
the any programming language (supported by
your embedded OS).
26Embedded Linux @ Information Technology Institute
27Embedded Linux @ Information Technology Institute
eng.sherif.mosa@gmail.com
http://about.me/shatrix
28Embedded Linux @ Information Technology Institute

Weitere ähnliche Inhalte

Was ist angesagt?

Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systemsalok pal
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...Edge AI and Vision Alliance
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 
6 stages of linux boot process
6 stages of linux boot process6 stages of linux boot process
6 stages of linux boot processTeja Bheemanapally
 
Introduction to OpenCL, 2010
Introduction to OpenCL, 2010Introduction to OpenCL, 2010
Introduction to OpenCL, 2010Tomasz Bednarz
 
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64 BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64 Linaro
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingTushar B Kute
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Linux PCI device driver
Linux PCI device driverLinux PCI device driver
Linux PCI device driver艾鍗科技
 

Was ist angesagt? (20)

Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
L4 Microkernel :: Design Overview
L4 Microkernel :: Design OverviewL4 Microkernel :: Design Overview
L4 Microkernel :: Design Overview
 
Root file system for embedded systems
Root file system for embedded systemsRoot file system for embedded systems
Root file system for embedded systems
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
Linux Programming
Linux ProgrammingLinux Programming
Linux Programming
 
Ti DSP optimization on Jacinto
Ti DSP optimization on JacintoTi DSP optimization on Jacinto
Ti DSP optimization on Jacinto
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
6 stages of linux boot process
6 stages of linux boot process6 stages of linux boot process
6 stages of linux boot process
 
Introduction to OpenCL, 2010
Introduction to OpenCL, 2010Introduction to OpenCL, 2010
Introduction to OpenCL, 2010
 
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64 BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64
BUD17-209: Reliability, Availability, and Serviceability (RAS) on ARM64
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
Linux startup
Linux startupLinux startup
Linux startup
 
LF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver modelLF_DPDK_Mellanox bifurcated driver model
LF_DPDK_Mellanox bifurcated driver model
 
ARM Architecture in Details
ARM Architecture in Details ARM Architecture in Details
ARM Architecture in Details
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Linux PCI device driver
Linux PCI device driverLinux PCI device driver
Linux PCI device driver
 
Embedded Linux
Embedded LinuxEmbedded Linux
Embedded Linux
 

Andere mochten auch

Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded LinuxSherif Mousa
 
Operating systems Basics
Operating systems BasicsOperating systems Basics
Operating systems BasicsSherif Mousa
 
linux minimal os tutorial - by shatrix
linux minimal os tutorial - by shatrixlinux minimal os tutorial - by shatrix
linux minimal os tutorial - by shatrixSherif Mousa
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchSherif Mousa
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)Jaime Barragan
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
001 linux revision
001 linux revision001 linux revision
001 linux revisionSherif Mousa
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linuxWingston
 
The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...Marc Leeman
 
sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resumeSasi Kumar
 
Ensoft dvb 1
Ensoft dvb 1Ensoft dvb 1
Ensoft dvb 1sarge
 
Embedded linux barco-20121001
Embedded linux barco-20121001Embedded linux barco-20121001
Embedded linux barco-20121001Marc Leeman
 
OTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefOTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefFarhad Shahrivar
 

Andere mochten auch (20)

Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
 
003 scripting
003 scripting003 scripting
003 scripting
 
Operating systems Basics
Operating systems BasicsOperating systems Basics
Operating systems Basics
 
linux minimal os tutorial - by shatrix
linux minimal os tutorial - by shatrixlinux minimal os tutorial - by shatrix
linux minimal os tutorial - by shatrix
 
Building Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 ArchBuilding Mini Embedded Linux System for X86 Arch
Building Mini Embedded Linux System for X86 Arch
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
001 linux revision
001 linux revision001 linux revision
001 linux revision
 
Smile
SmileSmile
Smile
 
005 skyeye
005 skyeye005 skyeye
005 skyeye
 
كيف تفشل
كيف تفشلكيف تفشل
كيف تفشل
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linux
 
The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...The move from a hardware centric design to a software centric design: GStream...
The move from a hardware centric design to a software centric design: GStream...
 
sasikumarj_resume
sasikumarj_resumesasikumarj_resume
sasikumarj_resume
 
Linux Workshop , Day 3
Linux Workshop , Day 3Linux Workshop , Day 3
Linux Workshop , Day 3
 
Ensoft dvb 1
Ensoft dvb 1Ensoft dvb 1
Ensoft dvb 1
 
How To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - AtainzHow To Handle An IRD Audit - Atainz
How To Handle An IRD Audit - Atainz
 
Embedded linux barco-20121001
Embedded linux barco-20121001Embedded linux barco-20121001
Embedded linux barco-20121001
 
OTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project BriefOTT in Azerbaijan - Project Brief
OTT in Azerbaijan - Project Brief
 

Ähnlich wie Building Embedded Linux Systems Introduction

Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Raspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionRaspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionMohamed Abdallah
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwaredefinecareer
 
Computer architecture overview
Computer architecture overviewComputer architecture overview
Computer architecture overviewMuhammad Ishaq
 
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Adam Dunkels
 
OSCON: Unikernels and Docker: From revolution to evolution
OSCON: Unikernels and Docker: From revolution to evolutionOSCON: Unikernels and Docker: From revolution to evolution
OSCON: Unikernels and Docker: From revolution to evolutionDocker, Inc.
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywheressuser06ea42
 
operating system ondesktop computer ( laptop)
operating system ondesktop  computer ( laptop)operating system ondesktop  computer ( laptop)
operating system ondesktop computer ( laptop)BandaruGowtham1
 
Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareRai University
 
Docker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker, Inc.
 
Lecture 1 Introduction.pptx
Lecture 1 Introduction.pptxLecture 1 Introduction.pptx
Lecture 1 Introduction.pptxOrchestra2
 
Chapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxChapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxgowthamiv26
 

Ähnlich wie Building Embedded Linux Systems Introduction (20)

Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Raspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionRaspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 Introduction
 
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteUnit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
 
Introduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmwareIntroduction to embedded linux device driver and firmware
Introduction to embedded linux device driver and firmware
 
Intro to linux
Intro to linux Intro to linux
Intro to linux
 
Computer architecture overview
Computer architecture overviewComputer architecture overview
Computer architecture overview
 
Dedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/SDedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/S
 
The Linux System
The Linux SystemThe Linux System
The Linux System
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
Advanced Internet of Things firmware engineering with Thingsquare and Contiki...
 
OSCON: Unikernels and Docker: From revolution to evolution
OSCON: Unikernels and Docker: From revolution to evolutionOSCON: Unikernels and Docker: From revolution to evolution
OSCON: Unikernels and Docker: From revolution to evolution
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywhere
 
RT linux
RT linuxRT linux
RT linux
 
operating system ondesktop computer ( laptop)
operating system ondesktop  computer ( laptop)operating system ondesktop  computer ( laptop)
operating system ondesktop computer ( laptop)
 
Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer software
 
Docker Online Meetup #31: Unikernels
Docker Online Meetup #31: UnikernelsDocker Online Meetup #31: Unikernels
Docker Online Meetup #31: Unikernels
 
Platform-Technology.pdf
Platform-Technology.pdfPlatform-Technology.pdf
Platform-Technology.pdf
 
Lecture 1 Introduction.pptx
Lecture 1 Introduction.pptxLecture 1 Introduction.pptx
Lecture 1 Introduction.pptx
 
Chapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptxChapter 1 - Introduction to Operating System.pptx
Chapter 1 - Introduction to Operating System.pptx
 
Linux
LinuxLinux
Linux
 

Kürzlich hochgeladen

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Building Embedded Linux Systems Introduction

  • 1. Embedded Linux Information Technology Institute (ITI) Sherif Mousa Embedded Linux @ Information Technology Institute 1 2– Introduction To Embedded Linux
  • 2. 2 Definition Embedded Linux @ Information Technology Institute
  • 3. 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
  • 4. 4 Some Whys ??? Embedded Linux @ Information Technology Institute
  • 5. Why Embedded ? ? 5Embedded Linux @ Information Technology Institute
  • 6. Why OS for Embedded ? • Make use of micro-processor capabilities (Multi-Tasking …). • Easy to program. • System scalability. 6Embedded Linux @ Information Technology Institute
  • 7. Why Embedded not Normal OS ? • Systems with small and limited resources. • Special-Purpose systems. • Real-Time systems. 7Embedded Linux @ Information Technology Institute
  • 8. 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. 8Embedded Linux @ Information Technology Institute
  • 9. Why build from scratch ? • “When you bake it at the factory that’s 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. 9Embedded Linux @ Information Technology Institute
  • 10. 10 Some Facts Embedded Linux @ Information Technology Institute
  • 11. Is it easy ? • NO, IT’S NOT EASY. • To finish a complete OS, it’s 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  11Embedded Linux @ Information Technology Institute
  • 12. 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, THAT’S WRONG. • Linux - Somethings = EmbeddedLinux 12Embedded Linux @ Information Technology Institute
  • 13. 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 don’t need Google maps, for example. 13Embedded Linux @ Information Technology Institute
  • 14. 14 Embedded Linux Development Embedded Linux @ Information Technology Institute
  • 15. 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. 15Embedded Linux @ Information Technology Institute
  • 16. 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. 16Embedded Linux @ Information Technology Institute
  • 17. 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. 17Embedded Linux @ Information Technology Institute
  • 18. Cross-ToolChain 18Embedded Linux @ Information Technology Institute X86 Binary Target Binary X86 X86 Target CPU Source Code Native ToolChain Cross ToolChain
  • 19. 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 19Embedded Linux @ Information Technology Institute
  • 20. 20 Embedded Linux Components Embedded Linux @ Information Technology Institute
  • 21. 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) 21Embedded Linux @ Information Technology Institute
  • 22. 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. 22Embedded Linux @ Information Technology Institute
  • 23. 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 (?!!??!?!!!?!?!) 23Embedded Linux @ Information Technology Institute
  • 24. 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). 24Embedded Linux @ Information Technology Institute
  • 25. Linux System Running 25Embedded Linux @ Information Technology Institute Hardware Linux Kernel User SpaceC Library app A app B Call a service Manage Hardware Event Handler Event notification
  • 26. Then What ??? • Once you have the system installed with no problems on your development device, you are free to write applications as you need with the any programming language (supported by your embedded OS). 26Embedded Linux @ Information Technology Institute
  • 27. 27Embedded Linux @ Information Technology Institute