SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
BYOD Revisited:
BUILD Your Own Device
Embedded Linux Conference 2014
San Jose, CA
Ron Munitz, The PSCG
@ronubo
PSCG
about://Ron_Munitz
● Distributed Fault Tolerant Avionic Systems
● Linux, VxWorks, very esoteric libraries, 0’s and 1’s
● Highly distributed video routers
● Linux
● Real Time, Embedded, Server bringups
● Linux, Android , VxWorks, Windows, devices, BSPs, DSPs,...
● Distributed Android
● Rdroid? Cloudroid? Too busy working to get over the legal naming, so no
name is officially claimed for my open source
about://Ron_Munitz
What currently keeps me busy:
● Running The PSCG, an Embedded/Android consulting and Training
● Managing R&D at Nubo and advising on Remote Display Protocols
● Promoting open source with The New Circle expert network
● Lecturing, Researching and Project Advising an Afeka’s college of
Engineering
● Amazing present, endless opportunities. (Wish flying took less time)
Agenda
● History 101: Evolution of embedded systems
● Software Product 101: Past, Present, Future.
● Software Product 201: The Cloud Era.
● Hardware Product 101: Building Devices
● Hardware Product 201: The IoT Era
History 101:
20th Century, 21st Century, Computers,
Embedded Devices and Operating Systems
http://i2.cdn.turner.com/cnn/dam/assets/121121034453-witch-computer-restoration-uk-story-top.
Selected keypoints in the evolution of
Embedded systems: The 20th century
● Pre 40’s: Mechanical Computers, Turing Machine
● The 40’s: Mechanical Computers, Embedded Mechanical
Computers(V2...), Digital Computers (Z3...)
● The 50’s: Digital Computers, Integrated Circuit, BESYS
● The 60’s: MULTICS, Modem, Moore’s Law, PC
● The 70’s: Apple First Computer, Unix, B becomes C,
● The 80’s: DOS, MacOS, Windows, System-V, GNU
● The 90’s: GSM, World Wide Web, Windows 3.0/9*,
36/56Kbps Modems, ISDN, Linux
Selected keypoints in the evolution of
Embedded systems: The 21st century
Windows, Linux, OS X, Symbian, Moblin, Meego,
Cellular Phones, PDA’s, IEEE802.11, Wireless,
Mobile Data, 2G, 3G, Bluetooth, NFC, GPS,
Cameras iPod, iPhone, Android, iPad, Laptops,
Tablets, Ultrabooks, ChromeOS, Google, Apple,
Amazon, Facebook, Twitter, Pebble, Smart Phones,
Smart Watches,Smart *, Smart Home, Sensors,
Location, Data, Big Data, 4G, LTE, DSL, Cable,
Broadband, IPTV, Streaming TV, Crowdsourcing,
Social Media, Autonomous Cars, Robots, iRobot,
The Internet of Things….
Embedded Systems: Generation I
● Mostly Analog devices.
● Some examples include:
● Laundry Machines
● Refrigerators
● “Ancient” Missiles
● Cars
● Thermostats
Embedded Systems: Generation II
● Dedicated Hardware, dedicated software.
● Introducing the Micro-Processor.
● No Operating Systems
● Heavy use of product dependent Assembly
● When lucky enough - also C.
● When extremely lucky - team is large enough to
have some libraries.
● Still very common with DSPs and other performance
critical components.
Embedded Systems: Generation III
● Using Operating Systems:
● Core/Real time embedded OS such as VxWorks,
Embedded Linux variants, Windows, Integrity, and
a lot lot more
● General Purpose Operating Systems such as
some Embedded Linux Variants
● Also run servers
● You really use them anywhere and everyday:
● Set Top Boxes, Televisions, Entertainment
Systems, ROUTERS, Phones, Smart watches...
Embedded Systems: Generation IV
● Using Android,iOS, Tizen, FirefoxOS or other
“mobile” Operating Systems.
● It is somewhere between:
● Core/Real time embedded Opsrating Systems
● General Purpose Operating Systems
● Also run servers (@ronubo et. al , android-x86.org)
● You CAN really use them anywhere and everyday:
● Set Top Boxes, Smart TV’s, Entertainment
Systems, Cellular Phones, Tablets, smart
watches...
Generation IV - Example
Software Product 101:
Past, Present/Future
What we won't cover:
● Software Development Methodologies “Blah-Blah”
● Waterfall/Spiral/Rapid/Agile/XP,...
● Antique technology which doesn't interest anyone
(almost)
● Card Punching
● Mainframes
● If the latter interests you join my OS course next year.
They always start with a blast from the past...
What we will cover
● Practical Software Development tools and
practices
● From the not so far past
● From the present
How to build software: Prior to the cloud
● Get struck by an idea
● Think whether it's worth spending the time
on implementing it.
● Define requirements (at least partially)
● Choose technology
● Hardware for which it is based/on which it will
run.
Can be a PC, can be a server, can be some
embedded device (e.g. cashier)
● Choose Operating system on which it will run.
Simple Example:
Portable Text Processor
● Idea: A word processor to be written
(coded) once and used everywhere
● Is it worth it? Probably not, but it's just an
example
● Requirements: Some sort of GUI, run
across all PC platforms.
● Assume supplemented libraries (e.g. QT, GTK+,
maybe assume a JVM etc.)
● Technology: C/C++ with QT. SVN for
source control.
Simple Example: Analysis
● There is only one component, which runs at
the Client side.
● Costs:
● Development
● Maybe marketing (but I won't address it here)
● Maintenance (Bugs, feature requests)
● There is a single point of failure, and failure
will affect only the very same user.
Building More Complex Software:
Using Servers
● Scenario: Clients, Servers. Real Software.
● Multiple Clients, User Centric.
● Multiple Servers, Business Logic Centric
● Choose Protocols
● Choose Technology
● Backend (C,C++, Java, .NET, Scala, Python,
Go,...)
● Frontend (C, C++, .NET,
HTML/JavaScript/CSS,...)
● Choose Data Center. Operate it
Building More Complex Software:
Analysis
● Multiple components.
● Multiple users on a single or multiple
servers → Any server failure can affect all
clients
● High Availability and fault tolerance
● Need to save state → Use Databases.
● That's another design/development/testing
phase.
● Most companies did they're on DB frameworks,
even on top of existing ones as
Building More Complex software:
Analysis
● Additional Costs (cf. The Simple example):
● Equipment. Servers cost.
● Data Center operation costs
− Rent, electricity, cooling, technicians...
− Apply whether you run your own Data Center, or use
someone else's
● High Availability engineering costs
(design/development/testing)
● More costs if you build your own hardware (i.e.
Network processors etc.)
● And repeat
Example: The Web
Software Product 201:
The Cloud Era.
Enter the cloud
● I don't believe this subject requires any
introduction these days.
● And that is for the following reasons:
● Relieves the pain of Operating a data center
− Much of the maintenance becomes someone else's
problem
− Including Hight Availability, scaling, storage and DB
handling etc.
● Eases deployment at diverse locations
● Enables seamless models of IaaS, PaaS
The importance of rapid prototyping
● The tech world is evolving quickly.
● And so does competition
● Many times you don't know what you've got
until you start “human trials”
● That's legal in most software industries
● And you want to know what you got.
● Fast.
● NOW!
How to build software:
Using the cloud
● Get struck by an idea
● Think whether it's worth spending the time
on implementing it.
● Define requirements (at least partially)
● Choose technology. For both Frontend and
Backend
● Hardware for which it is based/on which it will
run.
Can be a PC, can be a server, can be some
embedded device (e.g. cashier)
Modern Software Development Process
- Frontend
● Choose compatible OS/devices: Android,
iOS, Win8, HTML5, Web
● Choose corresponding languages and
frameworks.
● i.e. Objective C+Cocoa,
Android+OpenGL+Volley, Win8+.NET,...
● Integrate Open Source (@see github et.
al)
● When you want to do something – most of it
might have already be done
Modern Software Development Process
- Backend
● Choose Framework
● Ruby on Rails, Django, Node.JS, Java, C/C++,
scala, etc.
● Choose cloud provider and model:
● Amazon, Google, Rackspace, Azure...
● Choose operation mode
● PaaS, IaaS, e.g. Google's App Engine vs.
Google Compute Engine
● Choose pricing model (fixed, flexible)
● Choose DB frameworks
Modern Software Development Recap
● It's pretty much like building something out
of LEGO:
Hardware Product 101:
Building Hardware
CPU
ASIC ASIC
DDR
III
PHY
RJ45S RJ45 RJ45 RJ45
RS232
JTAG
DDR
III
High level Requirements/Block Diagram
The Manufacturing Process:
A 50000 feet high overview
● Get Struck by an Idea and see if it's worth
doing it...
● Just like the SW phases.
● Deciding needed components and
connectivity (netlist)
● To be bought: e.g. A CPU. Memory.
Components that can do some features
● To be manufactured: e.g. a chip, a mezzanine
board, an ASIC, and FPGA, or maybe even a
core or two.
The Manufacturing Process:
A 50000 feet high overview
● PCB design, Place and Route
● Decide the layout of the board
● Decide the number of layers (i.e. noise isolation)
● Decide wiring
● Resolve constraints
● Send PCB design (a couple of files) to
manufacturing (Assembly)
● PCB in → Board out.
● Assembly = PCB design + PCB (FR4) = BOARD
The Manufacturing Process:
A 50000 feet high overview
● The output of such a complex process is
Hardware
● Which may take time to manufacture
● Which may take time to ship
● Which may suffer natural or unnatural causes
● Which may suffer... Bugs.
● This is usually EXTREMELY expensive,
and hardly ever cost-effective before mass
manufacturing.
● That is also a critical time, in which you
The critical cost problem
● This actually applies to both SW and HW.
● You cannot determine scale ahead of time.
● If you overestimate – you will over pay.
● If you underestimate – you will over pay
(You may pay with your business)
● Software industry is permitting:
● Flexible plans. Start another Virtual Machine
when you're close to limits
● You can start with optimistic scale – and then
Quick Comparison
● Making software is
(arguably, sometimes)
easy
● Making hardware is
HARD
● And risky.
● And depends on too many parties
● And takes time to ship
But what if I need to manufacture a device?
● Assuming you understand the risks.
● And yet “I AGREE”.
● You're going to make the most amazing
phone or wearable device ever made, and
are confident you will make billions.
● You already told all your friends,
colleagues, and some bloggers from the
other part of the world, and they all worship
you.
Hardware Product 201: The IoT
Era
Building A Modern IoT Product
● Assuming you were struck by an idea
● And want to “go for it”.
● You are aware of the Software
Development Paradigms and
● Know what you can get on the client side
● Know what you can get on the server side
● Know you can utilize the Cloud for IaaS/PaaS
et. al.
● You also know you are going to have to
build your own hardware.
Building a Modern IoT product
● Hardware manufacturing takes time
● But in the meantime, you can decide your
Software requirements, for that hardware:
● Choose application suites (if relevant)
● Choose interfaces and design SW/HW
interaction
● Choose an Operating System
Building a Modern IoT product
● Modern products, are hardly limited by
amount of memory, number of processors,
etc.
● It takes a “bad” programmer to abuse them.
● But there are a lot of such programmers now.
Because programming is no longer a niche.
● So they can run fully fledged, powerful
GPOS.
● Mobile OS are definitely GPOS
● The #1 constraint, in terms of operation is
Building a Modern IoT product
● The important thing about the OS is how it
interacts with your Hardware.
● And that is mostly the responsibility of the
Kernel
● Moder Operating Systems running an open
source, Linux Kernel:
● Linux
● Android
● Tizen
● FirefoxOS
Rapid Prototyping
● As we previously mentioned, Creating
Hardware takes time.
● In the mean time, you want to progress with
the rest of the system.
● 80% of your hardware requirements (Wi-Fi,
Cores, BT, Serial interfaces, memory,
flash,...) are probably already implemented
in modern, COTS boards
● PandaBoard, BeagleBoard, Raspberry Pi,
Banana Pi, DragonBoard, Freescale WARP,
Rapid Prototyping
Which means you can actually do a
significant part of the board bringup,
prototype and show a PoC before you
really started manufacturing the hardware!
Rapid Prototyping Friends
Hardware Manufacturing and Shipping
● PoC – Checked.
● Hardware functionality – Checked
● Packaging – Checked
● Now what's left to do is minor adjustments:
● From your reference board
● To your final form factor
Rapid Prototyping Cycle
● Select the desired match:
● HW components on reference/eval boards
● Bootloader (available with those boards
probably)
● Operating System (available with those boards,
you can reflash another one as per your choice)
● Build System, Source Control, etc.
● Application sets and techonology
● Have all your teams working – before, or in
parallel to HW manufacturing
Shipping and Integration
http://www.collectorsquest.com/blog/wp-content/uploads/lego_ironman.jpg
Thank You!
(Also for tolerating the ugly slides!)
@ronubo
Consulting/Training requests:
ron@thepscg.com

Contenu connexe

Similaire à BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)

Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Ron Munitz
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Igor Stoppa
 
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Ron Munitz
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Ron Munitz
 
Embedded Linux Systems Basics
Embedded Linux Systems BasicsEmbedded Linux Systems Basics
Embedded Linux Systems BasicsMax Henery
 
Os hardware meets os software
Os hardware meets os softwareOs hardware meets os software
Os hardware meets os softwarePaul Tanner
 
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Ron Munitz
 
Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source B.A.
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiryVishwas N
 
Full stack development
Full stack developmentFull stack development
Full stack developmentArnav Gupta
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureYshay Yaacobi
 
Deploying Specter Desktop - Mechanism, not Policy
Deploying Specter Desktop - Mechanism, not PolicyDeploying Specter Desktop - Mechanism, not Policy
Deploying Specter Desktop - Mechanism, not Policyk9ert
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryLinaro
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightAndy Gelme
 

Similaire à BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014) (20)

Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)
 
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
Open_IoT_Summit-Europe-2016-Building_an_IoT-class_Device_0
 
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
 
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)
 
Embedded Linux Systems Basics
Embedded Linux Systems BasicsEmbedded Linux Systems Basics
Embedded Linux Systems Basics
 
IoT Session Thomas More
IoT Session Thomas MoreIoT Session Thomas More
IoT Session Thomas More
 
Cc internet of things @ Thomas More
Cc internet of things @ Thomas MoreCc internet of things @ Thomas More
Cc internet of things @ Thomas More
 
Os hardware meets os software
Os hardware meets os softwareOs hardware meets os software
Os hardware meets os software
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
 
Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source Proactive monitoring tools or services - Open Source
Proactive monitoring tools or services - Open Source
 
Machine learning in cybersecutiry
Machine learning in cybersecutiryMachine learning in cybersecutiry
Machine learning in cybersecutiry
 
Full stack development
Full stack developmentFull stack development
Full stack development
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Deploying Specter Desktop - Mechanism, not Policy
Deploying Specter Desktop - Mechanism, not PolicyDeploying Specter Desktop - Mechanism, not Policy
Deploying Specter Desktop - Mechanism, not Policy
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 

Dernier

Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...amitlee9823
 
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...MOHANI PANDEY
 
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...amitlee9823
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja Nehwal
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证tufbav
 
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...tanu pandey
 
Top Rated Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
HLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discussHLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discussDrMSajidNoor
 
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men 🔝Muzaffarpur🔝 ...
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men  🔝Muzaffarpur🔝  ...➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men  🔝Muzaffarpur🔝  ...
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men 🔝Muzaffarpur🔝 ...amitlee9823
 
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Naicy mandal
 
SM-N975F esquematico completo - reparación.pdf
SM-N975F esquematico completo - reparación.pdfSM-N975F esquematico completo - reparación.pdf
SM-N975F esquematico completo - reparación.pdfStefanoBiamonte1
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制uodye
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Call Girls in Vashi Escorts Services - 7738631006
Call Girls in Vashi Escorts Services - 7738631006Call Girls in Vashi Escorts Services - 7738631006
Call Girls in Vashi Escorts Services - 7738631006Pooja Nehwal
 

Dernier (20)

Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Pimple Saudagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Banashankari Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Hauz Quazi  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Hauz Quazi (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
Get Premium Pimple Saudagar Call Girls (8005736733) 24x7 Rate 15999 with A/c ...
 
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
Kothanur Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Th...
 
Abortion pills in Jeddah |+966572737505 | Get Cytotec
Abortion pills in Jeddah |+966572737505 | Get CytotecAbortion pills in Jeddah |+966572737505 | Get Cytotec
Abortion pills in Jeddah |+966572737505 | Get Cytotec
 
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
怎样办理维多利亚大学毕业证(UVic毕业证书)成绩单留信认证
 
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...Shikrapur Call Girls Most Awaited Fun  6297143586 High Profiles young Beautie...
Shikrapur Call Girls Most Awaited Fun 6297143586 High Profiles young Beautie...
 
Top Rated Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Ravet ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Bommasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
HLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discussHLH PPT.ppt very important topic to discuss
HLH PPT.ppt very important topic to discuss
 
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Chikhali Call Me 7737669865 Budget Friendly No Advance Booking
 
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men 🔝Muzaffarpur🔝 ...
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men  🔝Muzaffarpur🔝  ...➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men  🔝Muzaffarpur🔝  ...
➥🔝 7737669865 🔝▻ Muzaffarpur Call-girls in Women Seeking Men 🔝Muzaffarpur🔝 ...
 
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
Makarba ( Call Girls ) Ahmedabad ✔ 6297143586 ✔ Hot Model With Sexy Bhabi Rea...
 
SM-N975F esquematico completo - reparación.pdf
SM-N975F esquematico completo - reparación.pdfSM-N975F esquematico completo - reparación.pdf
SM-N975F esquematico completo - reparación.pdf
 
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
一比一原版(Otago毕业证书)奥塔哥理工学院毕业证成绩单学位证靠谱定制
 
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night StandCall Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In RT Nagar ☎ 7737669865 🥵 Book Your One night Stand
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Call Girls in Vashi Escorts Services - 7738631006
Call Girls in Vashi Escorts Services - 7738631006Call Girls in Vashi Escorts Services - 7738631006
Call Girls in Vashi Escorts Services - 7738631006
 

BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)

  • 1. BYOD Revisited: BUILD Your Own Device Embedded Linux Conference 2014 San Jose, CA Ron Munitz, The PSCG @ronubo PSCG
  • 2. about://Ron_Munitz ● Distributed Fault Tolerant Avionic Systems ● Linux, VxWorks, very esoteric libraries, 0’s and 1’s ● Highly distributed video routers ● Linux ● Real Time, Embedded, Server bringups ● Linux, Android , VxWorks, Windows, devices, BSPs, DSPs,... ● Distributed Android ● Rdroid? Cloudroid? Too busy working to get over the legal naming, so no name is officially claimed for my open source
  • 3. about://Ron_Munitz What currently keeps me busy: ● Running The PSCG, an Embedded/Android consulting and Training ● Managing R&D at Nubo and advising on Remote Display Protocols ● Promoting open source with The New Circle expert network ● Lecturing, Researching and Project Advising an Afeka’s college of Engineering ● Amazing present, endless opportunities. (Wish flying took less time)
  • 4. Agenda ● History 101: Evolution of embedded systems ● Software Product 101: Past, Present, Future. ● Software Product 201: The Cloud Era. ● Hardware Product 101: Building Devices ● Hardware Product 201: The IoT Era
  • 5. History 101: 20th Century, 21st Century, Computers, Embedded Devices and Operating Systems http://i2.cdn.turner.com/cnn/dam/assets/121121034453-witch-computer-restoration-uk-story-top.
  • 6. Selected keypoints in the evolution of Embedded systems: The 20th century ● Pre 40’s: Mechanical Computers, Turing Machine ● The 40’s: Mechanical Computers, Embedded Mechanical Computers(V2...), Digital Computers (Z3...) ● The 50’s: Digital Computers, Integrated Circuit, BESYS ● The 60’s: MULTICS, Modem, Moore’s Law, PC ● The 70’s: Apple First Computer, Unix, B becomes C, ● The 80’s: DOS, MacOS, Windows, System-V, GNU ● The 90’s: GSM, World Wide Web, Windows 3.0/9*, 36/56Kbps Modems, ISDN, Linux
  • 7. Selected keypoints in the evolution of Embedded systems: The 21st century Windows, Linux, OS X, Symbian, Moblin, Meego, Cellular Phones, PDA’s, IEEE802.11, Wireless, Mobile Data, 2G, 3G, Bluetooth, NFC, GPS, Cameras iPod, iPhone, Android, iPad, Laptops, Tablets, Ultrabooks, ChromeOS, Google, Apple, Amazon, Facebook, Twitter, Pebble, Smart Phones, Smart Watches,Smart *, Smart Home, Sensors, Location, Data, Big Data, 4G, LTE, DSL, Cable, Broadband, IPTV, Streaming TV, Crowdsourcing, Social Media, Autonomous Cars, Robots, iRobot, The Internet of Things….
  • 8. Embedded Systems: Generation I ● Mostly Analog devices. ● Some examples include: ● Laundry Machines ● Refrigerators ● “Ancient” Missiles ● Cars ● Thermostats
  • 9. Embedded Systems: Generation II ● Dedicated Hardware, dedicated software. ● Introducing the Micro-Processor. ● No Operating Systems ● Heavy use of product dependent Assembly ● When lucky enough - also C. ● When extremely lucky - team is large enough to have some libraries. ● Still very common with DSPs and other performance critical components.
  • 10. Embedded Systems: Generation III ● Using Operating Systems: ● Core/Real time embedded OS such as VxWorks, Embedded Linux variants, Windows, Integrity, and a lot lot more ● General Purpose Operating Systems such as some Embedded Linux Variants ● Also run servers ● You really use them anywhere and everyday: ● Set Top Boxes, Televisions, Entertainment Systems, ROUTERS, Phones, Smart watches...
  • 11. Embedded Systems: Generation IV ● Using Android,iOS, Tizen, FirefoxOS or other “mobile” Operating Systems. ● It is somewhere between: ● Core/Real time embedded Opsrating Systems ● General Purpose Operating Systems ● Also run servers (@ronubo et. al , android-x86.org) ● You CAN really use them anywhere and everyday: ● Set Top Boxes, Smart TV’s, Entertainment Systems, Cellular Phones, Tablets, smart watches...
  • 12. Generation IV - Example
  • 13. Software Product 101: Past, Present/Future
  • 14. What we won't cover: ● Software Development Methodologies “Blah-Blah” ● Waterfall/Spiral/Rapid/Agile/XP,... ● Antique technology which doesn't interest anyone (almost) ● Card Punching ● Mainframes ● If the latter interests you join my OS course next year. They always start with a blast from the past...
  • 15. What we will cover ● Practical Software Development tools and practices ● From the not so far past ● From the present
  • 16. How to build software: Prior to the cloud ● Get struck by an idea ● Think whether it's worth spending the time on implementing it. ● Define requirements (at least partially) ● Choose technology ● Hardware for which it is based/on which it will run. Can be a PC, can be a server, can be some embedded device (e.g. cashier) ● Choose Operating system on which it will run.
  • 17. Simple Example: Portable Text Processor ● Idea: A word processor to be written (coded) once and used everywhere ● Is it worth it? Probably not, but it's just an example ● Requirements: Some sort of GUI, run across all PC platforms. ● Assume supplemented libraries (e.g. QT, GTK+, maybe assume a JVM etc.) ● Technology: C/C++ with QT. SVN for source control.
  • 18. Simple Example: Analysis ● There is only one component, which runs at the Client side. ● Costs: ● Development ● Maybe marketing (but I won't address it here) ● Maintenance (Bugs, feature requests) ● There is a single point of failure, and failure will affect only the very same user.
  • 19. Building More Complex Software: Using Servers ● Scenario: Clients, Servers. Real Software. ● Multiple Clients, User Centric. ● Multiple Servers, Business Logic Centric ● Choose Protocols ● Choose Technology ● Backend (C,C++, Java, .NET, Scala, Python, Go,...) ● Frontend (C, C++, .NET, HTML/JavaScript/CSS,...) ● Choose Data Center. Operate it
  • 20. Building More Complex Software: Analysis ● Multiple components. ● Multiple users on a single or multiple servers → Any server failure can affect all clients ● High Availability and fault tolerance ● Need to save state → Use Databases. ● That's another design/development/testing phase. ● Most companies did they're on DB frameworks, even on top of existing ones as
  • 21. Building More Complex software: Analysis ● Additional Costs (cf. The Simple example): ● Equipment. Servers cost. ● Data Center operation costs − Rent, electricity, cooling, technicians... − Apply whether you run your own Data Center, or use someone else's ● High Availability engineering costs (design/development/testing) ● More costs if you build your own hardware (i.e. Network processors etc.) ● And repeat
  • 24. Enter the cloud ● I don't believe this subject requires any introduction these days. ● And that is for the following reasons: ● Relieves the pain of Operating a data center − Much of the maintenance becomes someone else's problem − Including Hight Availability, scaling, storage and DB handling etc. ● Eases deployment at diverse locations ● Enables seamless models of IaaS, PaaS
  • 25. The importance of rapid prototyping ● The tech world is evolving quickly. ● And so does competition ● Many times you don't know what you've got until you start “human trials” ● That's legal in most software industries ● And you want to know what you got. ● Fast. ● NOW!
  • 26. How to build software: Using the cloud ● Get struck by an idea ● Think whether it's worth spending the time on implementing it. ● Define requirements (at least partially) ● Choose technology. For both Frontend and Backend ● Hardware for which it is based/on which it will run. Can be a PC, can be a server, can be some embedded device (e.g. cashier)
  • 27. Modern Software Development Process - Frontend ● Choose compatible OS/devices: Android, iOS, Win8, HTML5, Web ● Choose corresponding languages and frameworks. ● i.e. Objective C+Cocoa, Android+OpenGL+Volley, Win8+.NET,... ● Integrate Open Source (@see github et. al) ● When you want to do something – most of it might have already be done
  • 28. Modern Software Development Process - Backend ● Choose Framework ● Ruby on Rails, Django, Node.JS, Java, C/C++, scala, etc. ● Choose cloud provider and model: ● Amazon, Google, Rackspace, Azure... ● Choose operation mode ● PaaS, IaaS, e.g. Google's App Engine vs. Google Compute Engine ● Choose pricing model (fixed, flexible) ● Choose DB frameworks
  • 29. Modern Software Development Recap ● It's pretty much like building something out of LEGO:
  • 31. CPU ASIC ASIC DDR III PHY RJ45S RJ45 RJ45 RJ45 RS232 JTAG DDR III High level Requirements/Block Diagram
  • 32. The Manufacturing Process: A 50000 feet high overview ● Get Struck by an Idea and see if it's worth doing it... ● Just like the SW phases. ● Deciding needed components and connectivity (netlist) ● To be bought: e.g. A CPU. Memory. Components that can do some features ● To be manufactured: e.g. a chip, a mezzanine board, an ASIC, and FPGA, or maybe even a core or two.
  • 33. The Manufacturing Process: A 50000 feet high overview ● PCB design, Place and Route ● Decide the layout of the board ● Decide the number of layers (i.e. noise isolation) ● Decide wiring ● Resolve constraints ● Send PCB design (a couple of files) to manufacturing (Assembly) ● PCB in → Board out. ● Assembly = PCB design + PCB (FR4) = BOARD
  • 34. The Manufacturing Process: A 50000 feet high overview ● The output of such a complex process is Hardware ● Which may take time to manufacture ● Which may take time to ship ● Which may suffer natural or unnatural causes ● Which may suffer... Bugs. ● This is usually EXTREMELY expensive, and hardly ever cost-effective before mass manufacturing. ● That is also a critical time, in which you
  • 35. The critical cost problem ● This actually applies to both SW and HW. ● You cannot determine scale ahead of time. ● If you overestimate – you will over pay. ● If you underestimate – you will over pay (You may pay with your business) ● Software industry is permitting: ● Flexible plans. Start another Virtual Machine when you're close to limits ● You can start with optimistic scale – and then
  • 36. Quick Comparison ● Making software is (arguably, sometimes) easy ● Making hardware is HARD ● And risky. ● And depends on too many parties ● And takes time to ship
  • 37. But what if I need to manufacture a device? ● Assuming you understand the risks. ● And yet “I AGREE”. ● You're going to make the most amazing phone or wearable device ever made, and are confident you will make billions. ● You already told all your friends, colleagues, and some bloggers from the other part of the world, and they all worship you.
  • 38. Hardware Product 201: The IoT Era
  • 39. Building A Modern IoT Product ● Assuming you were struck by an idea ● And want to “go for it”. ● You are aware of the Software Development Paradigms and ● Know what you can get on the client side ● Know what you can get on the server side ● Know you can utilize the Cloud for IaaS/PaaS et. al. ● You also know you are going to have to build your own hardware.
  • 40. Building a Modern IoT product ● Hardware manufacturing takes time ● But in the meantime, you can decide your Software requirements, for that hardware: ● Choose application suites (if relevant) ● Choose interfaces and design SW/HW interaction ● Choose an Operating System
  • 41. Building a Modern IoT product ● Modern products, are hardly limited by amount of memory, number of processors, etc. ● It takes a “bad” programmer to abuse them. ● But there are a lot of such programmers now. Because programming is no longer a niche. ● So they can run fully fledged, powerful GPOS. ● Mobile OS are definitely GPOS ● The #1 constraint, in terms of operation is
  • 42. Building a Modern IoT product ● The important thing about the OS is how it interacts with your Hardware. ● And that is mostly the responsibility of the Kernel ● Moder Operating Systems running an open source, Linux Kernel: ● Linux ● Android ● Tizen ● FirefoxOS
  • 43. Rapid Prototyping ● As we previously mentioned, Creating Hardware takes time. ● In the mean time, you want to progress with the rest of the system. ● 80% of your hardware requirements (Wi-Fi, Cores, BT, Serial interfaces, memory, flash,...) are probably already implemented in modern, COTS boards ● PandaBoard, BeagleBoard, Raspberry Pi, Banana Pi, DragonBoard, Freescale WARP,
  • 44. Rapid Prototyping Which means you can actually do a significant part of the board bringup, prototype and show a PoC before you really started manufacturing the hardware!
  • 46. Hardware Manufacturing and Shipping ● PoC – Checked. ● Hardware functionality – Checked ● Packaging – Checked ● Now what's left to do is minor adjustments: ● From your reference board ● To your final form factor
  • 47. Rapid Prototyping Cycle ● Select the desired match: ● HW components on reference/eval boards ● Bootloader (available with those boards probably) ● Operating System (available with those boards, you can reflash another one as per your choice) ● Build System, Source Control, etc. ● Application sets and techonology ● Have all your teams working – before, or in parallel to HW manufacturing
  • 49. Thank You! (Also for tolerating the ugly slides!) @ronubo Consulting/Training requests: ron@thepscg.com