SlideShare uma empresa Scribd logo
1 de 19
© 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

Mais conteúdo relacionado

Mais procurados (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
 

Destaque (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
 

Semelhante a Embedded Applications

worklight_development_environment
worklight_development_environmentworklight_development_environment
worklight_development_environmentAravindharamanan S
 
Learn .NET Core - Introduction
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - IntroductionEng 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 INDEIntel® 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 SolutionSrini 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 AIRJoseph 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
 
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 vejenTonny Madsen
 
Computer Software and Operating System
Computer Software and Operating SystemComputer Software and Operating System
Computer Software and Operating SystemRupan 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.2Matthew Webster
 
IamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux ReportIamLUG -- Lotus On Linux Report
IamLUG -- Lotus On Linux ReportBill Malchisky Jr.
 

Semelhante a 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
 

Mais de 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
 

Último

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
"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
 
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
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
"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
 
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?
 
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
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

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