SlideShare a Scribd company logo
1 of 29
Download to read offline
28.05.18 1
28.05.18 2
IoT Hardware
28.05.18 3
Architectures
●
MIPS
– 1981
– HDTV, wireless networks, VoIP
●
Power Architecture
– Networking and telecommunications-related embedded
applications
●
x86
●
ARM
– Sony PlayStation Portable (PSP), Apple iPhone
28.05.18 4
Operating Systems
28.05.18 5
Embedded Linux
●
Why linux?
– Supports a vast variety of hardware devices
– Supports a huge variety of applications and networking
protocols
– Linux is scalable
– Linux can be deployed without the royalties
– Linux has attracted a huge number of active developers
– An increasing number of hardware and software vendors
– Supports many programming languages
28.05.18 6
Busybox
The Swiss Army Knife of Embedded Linux
●
Tiny versions of many common UNIX utilities
●
Small and efficient single executable file
●
Can use as init process
●
Useful for cross compile
●
Multi call Binary‐call Binary
28.05.18 7
uCLinux
●
Microcontroller Linux
●
No MMU (Memory Management Unit)
●
No virtual memories
●
Architecture supported:
– ARM Cortex-M
– ARC
– MicroBlaze
– Blackfin
– Nios
28.05.18 8
Real Time Linux
●
Real-Time kernel patch – by Ingo Molnar
– PREEMPT_NONE
– PREEMPT_VOLUNTARY
– PREEMPT_DESKTOP
– PREEMPT_RT
28.05.18 9
Storage Options
●
NOR flash (few MB to a GB)
– Expensive
– Mapped into the CPU address space
– Useful for bootloader
●
NAND flash (tens of MB to tens of GB)
– Much cheaper than NOR
– Higher capacities
– Needs a lot of hardware and software support
28.05.18 10
Storage Options...
●
Managed flash
– MMC: Multi Media Card
– SD: Secure Digital
– eMMC
– UFS (Universal Flash Storage)
28.05.18 11
Bootloaders
●
Initialize the system to a basic level
●
Loads the operating system kernel
28.05.18 12
Bootloaders...
28.05.18 13
Bootloaders...
Name Main architectures supported
Das U-Boot ARC, ARM, Blackfin, Microblaze, MIPS, Nios2, OpenRiec, PowerPC, SH
Barebox ARM, Blackfin, MIPS, Nios2, PowerPC
GRUB 2 X86, X86_64
Little Kernel ARM
RedBoot ARM, MIPS, PowerPC, SH
CFE Broadcom MIPS
YAMON MIPS
28.05.18 14
UEFI
●
Universal Extensible Firmware Interface
●
The processor loads the platform initialization
firmware
●
load an EFI boot manager from the EFI System
Partition (ESP)
●
UEFI boot manager
– systemd-boot
– Tummiboot
28.05.18 15
Initramfs
●
Ramfs is a very simple filesystem that exports
Linux's disk caching mechanisms
●
A dynamically resizable RAM-based filesystem
●
gzipped "cpio" format archive
●
Linked into the linux kernel image
28.05.18 16
Device Tree
●
ARM does not come with any hardware
information
●
A flexible way to define the hardware
components
●
Loaded by the bootloader and passed to the
kernel
28.05.18 17
Device Tree...
28.05.18 18
Device Tree Example
serial@4806c000 {
compatible = "ti,dra742-uart", "ti,omap4-uart";
reg = <0x4806c000 0x100>;
interrupts = <0x0 0x44 0x4>;
ti,hwmods = "uart2";
clock-frequency = <0x2dc6c00>;
status = "disabled";
dmas = <0xb3 0x33 0xb3 0x34>;
dma-names = "tx", "rx";
};
28.05.18 19
Pinmux
●
Different embedded projects deal with different
components
●
We cannot attach an I2C device to a pin that
follows the protocol of the SPI bus
●
We cannot attach an analog sensor to the
GPIO pin
●
It is not possible to have that many CPU pins
●
share the functionalities of available pins
28.05.18 20
Toolchains
●
Set of tools that compiles source code into executables
– Compiler
– Linker
– Run-time libraries
●
Standard GNU toolchain components:
– Binutils: A set of binary utilities including the assembler and the linker
– GNU Compiler Collection (GCC): compilers for C, C++, Objective-C, Java, Fortran,
Ada, Go
– C library: A standardized application program interface (API) based on the POSIX
specification
28.05.18 21
Toolchains...
●
Native: toolchain runs on the same type of system
●
Cross: toolchain runs on a different type of system
than the target
Linaro, ( h t t p s ://w w w . l i n a r o . o r g / )
crosstool-NG
28.05.18 22
Application Binary Interface (ABI)
●
Guarantees that the libraries exist on all compliant
machines
●
Ensures the integrity of the interface
28.05.18 23
Application Program Interface (API)
●
glibc: it is the most complete implementation of the
POSIX API
●
musl libc: a small and standards-compliant
alternative to GNU libc
●
uClibc-ng: developed to work with uClinux
28.05.18 24
Application Program Interface (API)
28.05.18 25
API & ABI
28.05.18 26
Static & Dynamic Compiling
28.05.18 27
Yocto
●
Tools and methods to help you create custom Linux-
based systems
●
The Yocto Project is more than a distribution
●
Main Components:
– glibc
– BusyBox
– matchbox (for the windowing system)
28.05.18 28
Other Programming Languages
●
C++/Qt
●
Python
●
Golang
●
Node.js
●
Lua
●
Scratch
●
Java ...
28.05.18 29
Refrences

More Related Content

What's hot

OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to BottomKernel TLV
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLinaro
 
Kernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauKernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauAnne Nicolas
 
OpenIO Summit'17 - ARM, Object Storage and more
OpenIO Summit'17 - ARM, Object Storage and moreOpenIO Summit'17 - ARM, Object Storage and more
OpenIO Summit'17 - ARM, Object Storage and moreOpenIO Object Storage
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareLinaro
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLinaro
 
BKK16-402 Cross distro BoF
BKK16-402 Cross distro BoFBKK16-402 Cross distro BoF
BKK16-402 Cross distro BoFLinaro
 
A Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech ThingA Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech Thingyeokm1
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trustyeokm1
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Linaro
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLinaro
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverLinaro
 
BKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusBKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusLinaro
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64Linaro
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE Linaro
 

What's hot (19)

OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
Las16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need itLas16 200 - firmware summit - ras what is it- why do we need it
Las16 200 - firmware summit - ras what is it- why do we need it
 
Kernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy TarreauKernel Recipes 2017 - Build farm again - Willy Tarreau
Kernel Recipes 2017 - Build farm again - Willy Tarreau
 
Qemu
QemuQemu
Qemu
 
OpenIO Summit'17 - ARM, Object Storage and more
OpenIO Summit'17 - ARM, Object Storage and moreOpenIO Summit'17 - ARM, Object Storage and more
OpenIO Summit'17 - ARM, Object Storage and more
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
BKK16-402 Cross distro BoF
BKK16-402 Cross distro BoFBKK16-402 Cross distro BoF
BKK16-402 Cross distro BoF
 
Qemu
QemuQemu
Qemu
 
A Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech ThingA Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech Thing
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trust
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leaderLAS16-405:OpenDataPlane: Software Defined Dataplane leader
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driver
 
BKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation StatusBKK16-403 Android HAL Consolidation Status
BKK16-403 Android HAL Consolidation Status
 
Masters porting linux
Masters porting linuxMasters porting linux
Masters porting linux
 
BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64BKK16-304 The State of GDB on AArch64
BKK16-304 The State of GDB on AArch64
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE
 
Wirelessconnect
WirelessconnectWirelessconnect
Wirelessconnect
 

Similar to Embedded Linux

Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
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
 
OSOS SEM 4 Chapter 2 part 1
OSOS SEM 4 Chapter 2 part 1OSOS SEM 4 Chapter 2 part 1
OSOS SEM 4 Chapter 2 part 1Syahriha Ruslan
 
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMXPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMThe Linux Foundation
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...SZ Lin
 
Rasperry pi Part 9
Rasperry pi Part 9Rasperry pi Part 9
Rasperry pi Part 9Techvilla
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Raspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionRaspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionMohamed Abdallah
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...Toradex
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating SystemThomas Graf
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversVladimir Shakhov
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & dockerejlp12
 
history_of_linux lec 7.pptx
history_of_linux lec 7.pptxhistory_of_linux lec 7.pptx
history_of_linux lec 7.pptxtouseeqzulfiqar1
 

Similar to Embedded Linux (20)

Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
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
 
OSOS SEM 4 Chapter 2 part 1
OSOS SEM 4 Chapter 2 part 1OSOS SEM 4 Chapter 2 part 1
OSOS SEM 4 Chapter 2 part 1
 
K vector embedded_linux_workshop
K vector embedded_linux_workshopK vector embedded_linux_workshop
K vector embedded_linux_workshop
 
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARMXPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
XPDDS18: Unikraft: An easy way of crafting Unikernels on Arm - Kaly Xin, ARM
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...
 
Rasperry pi Part 9
Rasperry pi Part 9Rasperry pi Part 9
Rasperry pi Part 9
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
TMS320DM8148 Embedded Linux
TMS320DM8148 Embedded LinuxTMS320DM8148 Embedded Linux
TMS320DM8148 Embedded Linux
 
Raspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 IntroductionRaspberry Pi - Lecture 1 Introduction
Raspberry Pi - Lecture 1 Introduction
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
C# on a CHIPs
C# on a CHIPsC# on a CHIPs
C# on a CHIPs
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
 
Linux container & docker
Linux container & dockerLinux container & docker
Linux container & docker
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
history_of_linux lec 7.pptx
history_of_linux lec 7.pptxhistory_of_linux lec 7.pptx
history_of_linux lec 7.pptx
 
Building
BuildingBuilding
Building
 

More from Shiraz LUG

منطق فازی
منطق فازیمنطق فازی
منطق فازیShiraz LUG
 
بینایی ماشین
بینایی ماشینبینایی ماشین
بینایی ماشینShiraz LUG
 
رایانش ابری
رایانش ابریرایانش ابری
رایانش ابریShiraz LUG
 
Ubuntu workshop
Ubuntu workshopUbuntu workshop
Ubuntu workshopShiraz LUG
 
Python workshop
Python workshopPython workshop
Python workshopShiraz LUG
 
پردازش زبان طبیعی
پردازش زبان طبیعیپردازش زبان طبیعی
پردازش زبان طبیعیShiraz LUG
 
امنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبامنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبShiraz LUG
 
gnu و fsf پروژه های پیشنهادی
gnu و fsf پروژه های پیشنهادی gnu و fsf پروژه های پیشنهادی
gnu و fsf پروژه های پیشنهادی Shiraz LUG
 
(رمزنگاری (گذشته، حال، آینده
(رمزنگاری (گذشته، حال، آینده(رمزنگاری (گذشته، حال، آینده
(رمزنگاری (گذشته، حال، آیندهShiraz LUG
 
(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم
(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم
(اصول پایه ویدئو و صوت دیجیتال (قسمت دومShiraz LUG
 
(اصول پایه ویدئو و صوت دیجیتال (قسمت اول
(اصول پایه ویدئو و صوت دیجیتال (قسمت اول(اصول پایه ویدئو و صوت دیجیتال (قسمت اول
(اصول پایه ویدئو و صوت دیجیتال (قسمت اولShiraz LUG
 
HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در Shiraz LUG
 
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#Shiraz LUG
 
فرصت های برنامه نویسی با بلاک چین
فرصت های برنامه نویسی با بلاک چینفرصت های برنامه نویسی با بلاک چین
فرصت های برنامه نویسی با بلاک چینShiraz LUG
 
توانمندسازی سازمان های مردم نهاد
توانمندسازی سازمان های مردم نهادتوانمندسازی سازمان های مردم نهاد
توانمندسازی سازمان های مردم نهادShiraz LUG
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیتShiraz LUG
 
Lua زبان برنامه نویسی
Lua زبان برنامه نویسی Lua زبان برنامه نویسی
Lua زبان برنامه نویسی Shiraz LUG
 
R یادگیری ماشین با استفاده از زبان برنامه نویسی
R یادگیری ماشین با استفاده از زبان برنامه نویسیR یادگیری ماشین با استفاده از زبان برنامه نویسی
R یادگیری ماشین با استفاده از زبان برنامه نویسیShiraz LUG
 
برای طراحان گرافیک inkscape
 برای طراحان گرافیک inkscape برای طراحان گرافیک inkscape
برای طراحان گرافیک inkscapeShiraz LUG
 
SMO و SEO آشنایی با
SMO و SEO آشنایی با SMO و SEO آشنایی با
SMO و SEO آشنایی با Shiraz LUG
 

More from Shiraz LUG (20)

منطق فازی
منطق فازیمنطق فازی
منطق فازی
 
بینایی ماشین
بینایی ماشینبینایی ماشین
بینایی ماشین
 
رایانش ابری
رایانش ابریرایانش ابری
رایانش ابری
 
Ubuntu workshop
Ubuntu workshopUbuntu workshop
Ubuntu workshop
 
Python workshop
Python workshopPython workshop
Python workshop
 
پردازش زبان طبیعی
پردازش زبان طبیعیپردازش زبان طبیعی
پردازش زبان طبیعی
 
امنیت در نرم افزارهای وب
امنیت در نرم افزارهای وبامنیت در نرم افزارهای وب
امنیت در نرم افزارهای وب
 
gnu و fsf پروژه های پیشنهادی
gnu و fsf پروژه های پیشنهادی gnu و fsf پروژه های پیشنهادی
gnu و fsf پروژه های پیشنهادی
 
(رمزنگاری (گذشته، حال، آینده
(رمزنگاری (گذشته، حال، آینده(رمزنگاری (گذشته، حال، آینده
(رمزنگاری (گذشته، حال، آینده
 
(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم
(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم
(اصول پایه ویدئو و صوت دیجیتال (قسمت دوم
 
(اصول پایه ویدئو و صوت دیجیتال (قسمت اول
(اصول پایه ویدئو و صوت دیجیتال (قسمت اول(اصول پایه ویدئو و صوت دیجیتال (قسمت اول
(اصول پایه ویدئو و صوت دیجیتال (قسمت اول
 
HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در HTML 5 گرافیک دو بعدی در
HTML 5 گرافیک دو بعدی در
 
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#
برنامه نویسی مستقل از پلتفرم با استفاده از .NET Core و C#
 
فرصت های برنامه نویسی با بلاک چین
فرصت های برنامه نویسی با بلاک چینفرصت های برنامه نویسی با بلاک چین
فرصت های برنامه نویسی با بلاک چین
 
توانمندسازی سازمان های مردم نهاد
توانمندسازی سازمان های مردم نهادتوانمندسازی سازمان های مردم نهاد
توانمندسازی سازمان های مردم نهاد
 
کنترل ورژن گیت
کنترل ورژن گیتکنترل ورژن گیت
کنترل ورژن گیت
 
Lua زبان برنامه نویسی
Lua زبان برنامه نویسی Lua زبان برنامه نویسی
Lua زبان برنامه نویسی
 
R یادگیری ماشین با استفاده از زبان برنامه نویسی
R یادگیری ماشین با استفاده از زبان برنامه نویسیR یادگیری ماشین با استفاده از زبان برنامه نویسی
R یادگیری ماشین با استفاده از زبان برنامه نویسی
 
برای طراحان گرافیک inkscape
 برای طراحان گرافیک inkscape برای طراحان گرافیک inkscape
برای طراحان گرافیک inkscape
 
SMO و SEO آشنایی با
SMO و SEO آشنایی با SMO و SEO آشنایی با
SMO و SEO آشنایی با
 

Recently uploaded

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Embedded Linux

  • 3. 28.05.18 3 Architectures ● MIPS – 1981 – HDTV, wireless networks, VoIP ● Power Architecture – Networking and telecommunications-related embedded applications ● x86 ● ARM – Sony PlayStation Portable (PSP), Apple iPhone
  • 5. 28.05.18 5 Embedded Linux ● Why linux? – Supports a vast variety of hardware devices – Supports a huge variety of applications and networking protocols – Linux is scalable – Linux can be deployed without the royalties – Linux has attracted a huge number of active developers – An increasing number of hardware and software vendors – Supports many programming languages
  • 6. 28.05.18 6 Busybox The Swiss Army Knife of Embedded Linux ● Tiny versions of many common UNIX utilities ● Small and efficient single executable file ● Can use as init process ● Useful for cross compile ● Multi call Binary‐call Binary
  • 7. 28.05.18 7 uCLinux ● Microcontroller Linux ● No MMU (Memory Management Unit) ● No virtual memories ● Architecture supported: – ARM Cortex-M – ARC – MicroBlaze – Blackfin – Nios
  • 8. 28.05.18 8 Real Time Linux ● Real-Time kernel patch – by Ingo Molnar – PREEMPT_NONE – PREEMPT_VOLUNTARY – PREEMPT_DESKTOP – PREEMPT_RT
  • 9. 28.05.18 9 Storage Options ● NOR flash (few MB to a GB) – Expensive – Mapped into the CPU address space – Useful for bootloader ● NAND flash (tens of MB to tens of GB) – Much cheaper than NOR – Higher capacities – Needs a lot of hardware and software support
  • 10. 28.05.18 10 Storage Options... ● Managed flash – MMC: Multi Media Card – SD: Secure Digital – eMMC – UFS (Universal Flash Storage)
  • 11. 28.05.18 11 Bootloaders ● Initialize the system to a basic level ● Loads the operating system kernel
  • 13. 28.05.18 13 Bootloaders... Name Main architectures supported Das U-Boot ARC, ARM, Blackfin, Microblaze, MIPS, Nios2, OpenRiec, PowerPC, SH Barebox ARM, Blackfin, MIPS, Nios2, PowerPC GRUB 2 X86, X86_64 Little Kernel ARM RedBoot ARM, MIPS, PowerPC, SH CFE Broadcom MIPS YAMON MIPS
  • 14. 28.05.18 14 UEFI ● Universal Extensible Firmware Interface ● The processor loads the platform initialization firmware ● load an EFI boot manager from the EFI System Partition (ESP) ● UEFI boot manager – systemd-boot – Tummiboot
  • 15. 28.05.18 15 Initramfs ● Ramfs is a very simple filesystem that exports Linux's disk caching mechanisms ● A dynamically resizable RAM-based filesystem ● gzipped "cpio" format archive ● Linked into the linux kernel image
  • 16. 28.05.18 16 Device Tree ● ARM does not come with any hardware information ● A flexible way to define the hardware components ● Loaded by the bootloader and passed to the kernel
  • 18. 28.05.18 18 Device Tree Example serial@4806c000 { compatible = "ti,dra742-uart", "ti,omap4-uart"; reg = <0x4806c000 0x100>; interrupts = <0x0 0x44 0x4>; ti,hwmods = "uart2"; clock-frequency = <0x2dc6c00>; status = "disabled"; dmas = <0xb3 0x33 0xb3 0x34>; dma-names = "tx", "rx"; };
  • 19. 28.05.18 19 Pinmux ● Different embedded projects deal with different components ● We cannot attach an I2C device to a pin that follows the protocol of the SPI bus ● We cannot attach an analog sensor to the GPIO pin ● It is not possible to have that many CPU pins ● share the functionalities of available pins
  • 20. 28.05.18 20 Toolchains ● Set of tools that compiles source code into executables – Compiler – Linker – Run-time libraries ● Standard GNU toolchain components: – Binutils: A set of binary utilities including the assembler and the linker – GNU Compiler Collection (GCC): compilers for C, C++, Objective-C, Java, Fortran, Ada, Go – C library: A standardized application program interface (API) based on the POSIX specification
  • 21. 28.05.18 21 Toolchains... ● Native: toolchain runs on the same type of system ● Cross: toolchain runs on a different type of system than the target Linaro, ( h t t p s ://w w w . l i n a r o . o r g / ) crosstool-NG
  • 22. 28.05.18 22 Application Binary Interface (ABI) ● Guarantees that the libraries exist on all compliant machines ● Ensures the integrity of the interface
  • 23. 28.05.18 23 Application Program Interface (API) ● glibc: it is the most complete implementation of the POSIX API ● musl libc: a small and standards-compliant alternative to GNU libc ● uClibc-ng: developed to work with uClinux
  • 26. 28.05.18 26 Static & Dynamic Compiling
  • 27. 28.05.18 27 Yocto ● Tools and methods to help you create custom Linux- based systems ● The Yocto Project is more than a distribution ● Main Components: – glibc – BusyBox – matchbox (for the windowing system)
  • 28. 28.05.18 28 Other Programming Languages ● C++/Qt ● Python ● Golang ● Node.js ● Lua ● Scratch ● Java ...