SlideShare a Scribd company logo
© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Embedded Applications
2© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What to Expect?
W's of Embedded Applications
Various OSS Applications
Design Care for ES Apps
Programming Approaches for ES Apps
3© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Application Requirements in ES
As any other System, features of ES are also used,
ultimately by its applications, which can be categorized as follows:
Start-up Applications
Brings up services
Sets up network
Issues log-in prompt
And optionally provides shell interface
Peripheral Interfacing Applications
Display
Input System
Controls, ...
ES Requirements-specific Software Applications
4© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What's special about ES Apps?
May have many more constraints than the non-ES ones
Smaller Binary Size
Limited Library Support
Higher Fault Tolerance
Time Tolerant (Running forever)
Limited or No Console Services
Seamless Hardware Interaction
Lesser Processor Power
Real Time Requirements
...
In short, they are
Minimized, Optimized, Robust, Continuously Performing Software
5© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Development of ES Apps
Three ways
Port the Standard Applications
Typically, available as Open Source, e.g. under GNU License
Customized Applications
Port & Customize the Open Source Applications
Also becomes Open Source
Proprietary Applications
Write your own from Scratch
All these are Cross Compiled
And then transferred to the Target
For desired execution
6© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
GNU-style Applications
Configure using ./configure script
With options for Cross Compilation
Checks the system for its dependencies
Tool headers, ...
Generates a Makefile for Cross Compiling the Application
Using the Cross Toolchain
Build the Application using make
Install the Application on the Target (3 ways)
Manually, copy the executables & their dependencies
Transfer the “build structure” to target & make install
make install to the target's RFS on the host
7© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Start-up ES Apps in OSS
busybox
Small footprint shell environment
Download from http://www.busybox.net
udev
Dynamic Device Daemon
Download from http://kernel.org/pub/linux/utils/kernel/hotplug/udev.html
emutils
diet libc based very basic shell environment
Download from http://www.fefe.de/embutils
Minit
diet libc based non System V compliant init system
Download from http://www.fefe.de/minit/
8© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
busybox – A special mention
busybox is so-called a Swiss Knife
Shell environment being just the starting point
It provides
init system as per System V standard
Startup applications & Service daemons
mdev: Light-weight udev implementation
TinyLogin: Set of logging utilities
…
Building it is similar to any other OSS
9© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
busybox Init
Sets up signal handlers for init
Initializes console
console arg, or /dev/console
Parses init's configuration file /etc/inittab
Runs the system initialization script
Value of sysinit. Typically, /etc/init.d/rcS
Runs all inittab commands in the following order
wait → that blocks
once → run only once & non-blocking
Loop over commands that need
respawn (on terminate) & askfirst (before respawn)
10© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Other Useful OSS Apps
TinyX
X Server for devices tight on memory
Part of X Windows source tree
Download from ftp://ftp.xfree86.org/pub/XFree86/4.0/
thttpd
Tiny HTTP Server
Download from http://www.acme.com/software/thttpd
gdb & gdbserver
Excellent debuggers for Embedded environment
Download from http://www.gnu.org/software/gdb
And many more related to
Graphics
Audio
...
11© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Proprietary Applications
Typically, Start-up & standard Peripheral Interfacing Apps
Taken from OSS, as is, or with some customization
But, what if we need a custom ES specific application, Or
We don't want to make our application OSS, as
It contains some confidential info
Then, we would like to make it proprietary, Or
More than that, would have to develop ourselves
And, that is where we have to be really aware about the
various design & programming aspects for the ES Apps
To be specific
12© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Design Care for ES Apps
Functionality Design & Programming
Design for Fault Tolerance
Hardware aware Design & Programming
Design & Programming for Performance
Design for Maintainability
And,
13© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Right Mix of Languages
Embedded Application needs to do a wide category of Tasks
File Operations
Pattern Matching
Formula Computation
GUI Displays
Artificial Intelligence
Conditional Controls
...
Any one language is not the best choice for the variety
Best Design Approach should consider the Right Mix of Languages
Perl, Scripting, C, Java, Expect, …
to implement the best suited part
And then combine them using various interfaces
14© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Portable Languages
Based on the usage & popularity, many other
languages are portable today
Listing the interesting ones
C++
Perl
Python
Java
PHP
...
15© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
What all have we learnt?
W's of Embedded Applications
Functional & Non-Functional Requirements
Development Possibilities
Various OSS Applications
busybox – Swiss Knife
Design Care for ES Apps
Functionality
Fault Tolerance, Hardware, Performance, Maintainability
Programming Approaches for ES Apps
Right Mix of Languages
16© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Any Queries?
17© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Backup
18© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Get onto the Board
to
Explore the Start-up Apps
19© 2010-15 SysPlay Workshops <workshop@sysplay.in>
All Rights Reserved.
Comparison with Desktop init
Default configuration file: /etc/inittab
Different level executions separated by
“rc” directories: /etc/rc.d/rc[0-6].d
Apart from the system level sysinit
Levels
0 – halt
1 – single user mode
2 – multi-user without networking
3 – multi-user with networking
5 – X11
6 - reboot

More Related Content

What's hot

Embedded I/O Management
Embedded I/O ManagementEmbedded I/O Management
Embedded I/O Management
Anil Kumar Pugalia
 
Platform Drivers
Platform DriversPlatform Drivers
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
Anil Kumar Pugalia
 
SPI Drivers
SPI DriversSPI Drivers
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
 
BeagleBone Black Bootloaders
BeagleBone Black BootloadersBeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
 
File System Modules
File System ModulesFile System Modules
File System Modules
Anil Kumar Pugalia
 
gcc and friends
gcc and friendsgcc and friends
gcc and friends
Anil Kumar Pugalia
 
Bootloaders
BootloadersBootloaders
Bootloaders
Anil Kumar Pugalia
 
Toolchain
ToolchainToolchain
BeagleBoard-xM Bootloaders
BeagleBoard-xM BootloadersBeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
 
Linux DMA Engine
Linux DMA EngineLinux DMA Engine
Character Drivers
Character DriversCharacter Drivers
Character Drivers
Anil Kumar Pugalia
 
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting ProcessBeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
SysPlay eLearning Academy for You
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
Anil Kumar Pugalia
 
Kernel Timing Management
Kernel Timing ManagementKernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
 
Block Drivers
Block DriversBlock Drivers
Block Drivers
Anil Kumar Pugalia
 
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux DriversMobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
 
Architecture Porting
Architecture PortingArchitecture Porting
Architecture Porting
Anil Kumar Pugalia
 

What's hot (20)

Embedded I/O Management
Embedded I/O ManagementEmbedded I/O Management
Embedded I/O Management
 
Platform Drivers
Platform DriversPlatform Drivers
Platform Drivers
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
SPI Drivers
SPI DriversSPI Drivers
SPI Drivers
 
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
 
BeagleBone Black Bootloaders
BeagleBone Black BootloadersBeagleBone Black Bootloaders
BeagleBone Black Bootloaders
 
Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
 
File System Modules
File System ModulesFile System Modules
File System Modules
 
gcc and friends
gcc and friendsgcc and friends
gcc and friends
 
Bootloaders
BootloadersBootloaders
Bootloaders
 
Toolchain
ToolchainToolchain
Toolchain
 
BeagleBoard-xM Bootloaders
BeagleBoard-xM BootloadersBeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
 
Linux DMA Engine
Linux DMA EngineLinux DMA Engine
Linux DMA Engine
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting ProcessBeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
 
Kernel Timing Management
Kernel Timing ManagementKernel Timing Management
Kernel Timing Management
 
Block Drivers
Block DriversBlock Drivers
Block Drivers
 
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux DriversMobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
 
Architecture Porting
Architecture PortingArchitecture Porting
Architecture Porting
 

Viewers also liked

Introduction to BeagleBone Black
Introduction to BeagleBone BlackIntroduction to BeagleBone Black
Introduction to BeagleBone Black
SysPlay eLearning Academy for You
 
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xMIntroduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
SysPlay eLearning Academy for You
 
BeagleBone Black Booting Process
BeagleBone Black Booting ProcessBeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
Sudar Muthu
 
Arduino Robotics workshop day2
Arduino Robotics workshop day2Arduino Robotics workshop day2
Arduino Robotics workshop day2
Sudar Muthu
 
Kernel Programming
Kernel ProgrammingKernel Programming
Kernel Programming
Anil Kumar Pugalia
 
Low-level Accesses
Low-level AccessesLow-level Accesses
Low-level Accesses
Anil Kumar Pugalia
 
Linux Kernel Overview
Linux Kernel OverviewLinux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
 
File Systems
File SystemsFile Systems
File Systems
Anil Kumar Pugalia
 
Serial Drivers
Serial DriversSerial Drivers
References
ReferencesReferences
References
Anil Kumar Pugalia
 
Interrupts
InterruptsInterrupts
Interrupts
Anil Kumar Pugalia
 

Viewers also liked (12)

Introduction to BeagleBone Black
Introduction to BeagleBone BlackIntroduction to BeagleBone Black
Introduction to BeagleBone Black
 
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xMIntroduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
 
BeagleBone Black Booting Process
BeagleBone Black Booting ProcessBeagleBone Black Booting Process
BeagleBone Black Booting Process
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 
Arduino Robotics workshop day2
Arduino Robotics workshop day2Arduino Robotics workshop day2
Arduino Robotics workshop day2
 
Kernel Programming
Kernel ProgrammingKernel Programming
Kernel Programming
 
Low-level Accesses
Low-level AccessesLow-level Accesses
Low-level Accesses
 
Linux Kernel Overview
Linux Kernel OverviewLinux Kernel Overview
Linux Kernel Overview
 
File Systems
File SystemsFile Systems
File Systems
 
Serial Drivers
Serial DriversSerial Drivers
Serial Drivers
 
References
ReferencesReferences
References
 
Interrupts
InterruptsInterrupts
Interrupts
 

Similar to Embedded Applications

Embedded Software Design
Embedded Software DesignEmbedded Software Design
Embedded Software Design
Anil Kumar Pugalia
 
AIR for Higher Education
AIR for Higher EducationAIR for Higher Education
AIR for Higher Education
Joseph Labrecque
 
worklight_development_environment
worklight_development_environmentworklight_development_environment
worklight_development_environment
Aravindharamanan S
 
Project SOLOS
Project SOLOSProject SOLOS
Project SOLOS
Siddharth Shanbhogue
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
Eng Teong Cheah
 
Developing Multi-OS Native Mobile Applications with Intel INDE
Developing Multi-OS Native Mobile Applications with Intel INDEDeveloping Multi-OS Native Mobile Applications with Intel INDE
Developing Multi-OS Native Mobile Applications with Intel INDE
Intel® Software
 
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
Cyber Security Alliance
 
SharePoint 2010 Sandboxed Solution
SharePoint 2010 Sandboxed SolutionSharePoint 2010 Sandboxed Solution
SharePoint 2010 Sandboxed Solution
Srini Sistla
 
Progressing beyond the Desktop at Universities with Adobe AIR
Progressing beyond the Desktop at Universities with Adobe AIRProgressing beyond the Desktop at Universities with Adobe AIR
Progressing beyond the Desktop at Universities with Adobe AIR
Joseph Labrecque
 
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
zOSCommserver
 
W-JAX Keynote 2010
W-JAX Keynote 2010W-JAX Keynote 2010
W-JAX Keynote 2010
Anne Kathrine Petterøe
 
Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)
Future Insights
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejenIDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
Tonny Madsen
 
ch02.ppt
ch02.pptch02.ppt
ch02.ppt
emomani1
 
Computer Software and Operating System
Computer Software and Operating SystemComputer Software and Operating System
Computer Software and Operating System
Rupan Sharma
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
Tonny Madsen
 
IBM z/OS Provisioning Toolkit v1.0.2
IBM z/OS Provisioning Toolkit v1.0.2IBM z/OS Provisioning Toolkit v1.0.2
IBM z/OS Provisioning Toolkit v1.0.2
Matthew Webster
 
IamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux ReportIamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux Report
Bill Malchisky Jr.
 
The Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.NetThe Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.Net
Anand Kumar Rajana
 
Ite pc v40_chapter5
Ite pc v40_chapter5Ite pc v40_chapter5
Ite pc v40_chapter5
paulinagonzapyl
 

Similar to Embedded Applications (20)

Embedded Software Design
Embedded Software DesignEmbedded Software Design
Embedded Software Design
 
AIR for Higher Education
AIR for Higher EducationAIR for Higher Education
AIR for Higher Education
 
worklight_development_environment
worklight_development_environmentworklight_development_environment
worklight_development_environment
 
Project SOLOS
Project SOLOSProject SOLOS
Project SOLOS
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
 
Developing Multi-OS Native Mobile Applications with Intel INDE
Developing Multi-OS Native Mobile Applications with Intel INDEDeveloping Multi-OS Native Mobile Applications with Intel INDE
Developing Multi-OS Native Mobile Applications with Intel INDE
 
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
ASFWS 2013 - Advances in secure (ASP).NET development – break the hackers’ sp...
 
SharePoint 2010 Sandboxed Solution
SharePoint 2010 Sandboxed SolutionSharePoint 2010 Sandboxed Solution
SharePoint 2010 Sandboxed Solution
 
Progressing beyond the Desktop at Universities with Adobe AIR
Progressing beyond the Desktop at Universities with Adobe AIRProgressing beyond the Desktop at Universities with Adobe AIR
Progressing beyond the Desktop at Universities with Adobe AIR
 
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
z/OS V2.4 Preview: z/OS Container Extensions - Running Linux on Z docker cont...
 
W-JAX Keynote 2010
W-JAX Keynote 2010W-JAX Keynote 2010
W-JAX Keynote 2010
 
Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)Using JavaScript to Build HTML5 Tools (Ian Maffett)
Using JavaScript to Build HTML5 Tools (Ian Maffett)
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejenIDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen
 
ch02.ppt
ch02.pptch02.ppt
ch02.ppt
 
Computer Software and Operating System
Computer Software and Operating SystemComputer Software and Operating System
Computer Software and Operating System
 
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...
 
IBM z/OS Provisioning Toolkit v1.0.2
IBM z/OS Provisioning Toolkit v1.0.2IBM z/OS Provisioning Toolkit v1.0.2
IBM z/OS Provisioning Toolkit v1.0.2
 
IamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux ReportIamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux Report
 
The Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.NetThe Seven Pillars Of Asp.Net
The Seven Pillars Of Asp.Net
 
Ite pc v40_chapter5
Ite pc v40_chapter5Ite pc v40_chapter5
Ite pc v40_chapter5
 

More from Anil Kumar Pugalia

Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
 
Processes
ProcessesProcesses
System Calls
System CallsSystem Calls
System Calls
Anil Kumar Pugalia
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
Anil Kumar Pugalia
 
Embedded C
Embedded CEmbedded C
Embedded C
Anil Kumar Pugalia
 
Playing with R L C Circuits
Playing with R L C CircuitsPlaying with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
 
Audio Drivers
Audio DriversAudio Drivers
Audio Drivers
Anil Kumar Pugalia
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
Anil Kumar Pugalia
 
Functional Programming with LISP
Functional Programming with LISPFunctional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
 
Power of vi
Power of viPower of vi
Power of vi
Anil Kumar Pugalia
 
"make" system
"make" system"make" system
"make" system
Anil Kumar Pugalia
 
Hardware Design for Software Hackers
Hardware Design for Software HackersHardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
 
RPM Building
RPM BuildingRPM Building
RPM Building
Anil Kumar Pugalia
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
 
Linux Network Management
Linux Network ManagementLinux Network Management
Linux Network Management
Anil Kumar Pugalia
 
System Calls
System CallsSystem Calls
System Calls
Anil Kumar Pugalia
 
Timers
TimersTimers
Threads
ThreadsThreads
Synchronization
SynchronizationSynchronization
Synchronization
Anil Kumar Pugalia
 
Processes
ProcessesProcesses

More from Anil Kumar Pugalia (20)

Kernel Debugging & Profiling
Kernel Debugging & ProfilingKernel Debugging & Profiling
Kernel Debugging & Profiling
 
Processes
ProcessesProcesses
Processes
 
System Calls
System CallsSystem Calls
System Calls
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
Embedded C
Embedded CEmbedded C
Embedded C
 
Playing with R L C Circuits
Playing with R L C CircuitsPlaying with R L C Circuits
Playing with R L C Circuits
 
Audio Drivers
Audio DriversAudio Drivers
Audio Drivers
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Functional Programming with LISP
Functional Programming with LISPFunctional Programming with LISP
Functional Programming with LISP
 
Power of vi
Power of viPower of vi
Power of vi
 
"make" system
"make" system"make" system
"make" system
 
Hardware Design for Software Hackers
Hardware Design for Software HackersHardware Design for Software Hackers
Hardware Design for Software Hackers
 
RPM Building
RPM BuildingRPM Building
RPM Building
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
 
Linux Network Management
Linux Network ManagementLinux Network Management
Linux Network Management
 
System Calls
System CallsSystem Calls
System Calls
 
Timers
TimersTimers
Timers
 
Threads
ThreadsThreads
Threads
 
Synchronization
SynchronizationSynchronization
Synchronization
 
Processes
ProcessesProcesses
Processes
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 

Embedded Applications

  • 1. © 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Embedded Applications
  • 2. 2© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? W's of Embedded Applications Various OSS Applications Design Care for ES Apps Programming Approaches for ES Apps
  • 3. 3© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Application Requirements in ES As any other System, features of ES are also used, ultimately by its applications, which can be categorized as follows: Start-up Applications Brings up services Sets up network Issues log-in prompt And optionally provides shell interface Peripheral Interfacing Applications Display Input System Controls, ... ES Requirements-specific Software Applications
  • 4. 4© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What's special about ES Apps? May have many more constraints than the non-ES ones Smaller Binary Size Limited Library Support Higher Fault Tolerance Time Tolerant (Running forever) Limited or No Console Services Seamless Hardware Interaction Lesser Processor Power Real Time Requirements ... In short, they are Minimized, Optimized, Robust, Continuously Performing Software
  • 5. 5© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Development of ES Apps Three ways Port the Standard Applications Typically, available as Open Source, e.g. under GNU License Customized Applications Port & Customize the Open Source Applications Also becomes Open Source Proprietary Applications Write your own from Scratch All these are Cross Compiled And then transferred to the Target For desired execution
  • 6. 6© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. GNU-style Applications Configure using ./configure script With options for Cross Compilation Checks the system for its dependencies Tool headers, ... Generates a Makefile for Cross Compiling the Application Using the Cross Toolchain Build the Application using make Install the Application on the Target (3 ways) Manually, copy the executables & their dependencies Transfer the “build structure” to target & make install make install to the target's RFS on the host
  • 7. 7© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Start-up ES Apps in OSS busybox Small footprint shell environment Download from http://www.busybox.net udev Dynamic Device Daemon Download from http://kernel.org/pub/linux/utils/kernel/hotplug/udev.html emutils diet libc based very basic shell environment Download from http://www.fefe.de/embutils Minit diet libc based non System V compliant init system Download from http://www.fefe.de/minit/
  • 8. 8© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. busybox – A special mention busybox is so-called a Swiss Knife Shell environment being just the starting point It provides init system as per System V standard Startup applications & Service daemons mdev: Light-weight udev implementation TinyLogin: Set of logging utilities … Building it is similar to any other OSS
  • 9. 9© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. busybox Init Sets up signal handlers for init Initializes console console arg, or /dev/console Parses init's configuration file /etc/inittab Runs the system initialization script Value of sysinit. Typically, /etc/init.d/rcS Runs all inittab commands in the following order wait → that blocks once → run only once & non-blocking Loop over commands that need respawn (on terminate) & askfirst (before respawn)
  • 10. 10© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Other Useful OSS Apps TinyX X Server for devices tight on memory Part of X Windows source tree Download from ftp://ftp.xfree86.org/pub/XFree86/4.0/ thttpd Tiny HTTP Server Download from http://www.acme.com/software/thttpd gdb & gdbserver Excellent debuggers for Embedded environment Download from http://www.gnu.org/software/gdb And many more related to Graphics Audio ...
  • 11. 11© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Proprietary Applications Typically, Start-up & standard Peripheral Interfacing Apps Taken from OSS, as is, or with some customization But, what if we need a custom ES specific application, Or We don't want to make our application OSS, as It contains some confidential info Then, we would like to make it proprietary, Or More than that, would have to develop ourselves And, that is where we have to be really aware about the various design & programming aspects for the ES Apps To be specific
  • 12. 12© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Design Care for ES Apps Functionality Design & Programming Design for Fault Tolerance Hardware aware Design & Programming Design & Programming for Performance Design for Maintainability And,
  • 13. 13© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Right Mix of Languages Embedded Application needs to do a wide category of Tasks File Operations Pattern Matching Formula Computation GUI Displays Artificial Intelligence Conditional Controls ... Any one language is not the best choice for the variety Best Design Approach should consider the Right Mix of Languages Perl, Scripting, C, Java, Expect, … to implement the best suited part And then combine them using various interfaces
  • 14. 14© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Portable Languages Based on the usage & popularity, many other languages are portable today Listing the interesting ones C++ Perl Python Java PHP ...
  • 15. 15© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? W's of Embedded Applications Functional & Non-Functional Requirements Development Possibilities Various OSS Applications busybox – Swiss Knife Design Care for ES Apps Functionality Fault Tolerance, Hardware, Performance, Maintainability Programming Approaches for ES Apps Right Mix of Languages
  • 16. 16© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?
  • 17. 17© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Backup
  • 18. 18© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Get onto the Board to Explore the Start-up Apps
  • 19. 19© 2010-15 SysPlay Workshops <workshop@sysplay.in> All Rights Reserved. Comparison with Desktop init Default configuration file: /etc/inittab Different level executions separated by “rc” directories: /etc/rc.d/rc[0-6].d Apart from the system level sysinit Levels 0 – halt 1 – single user mode 2 – multi-user without networking 3 – multi-user with networking 5 – X11 6 - reboot