Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

(online) The Paradox of Open Source and Embedded

How can Linux be specialized for deeply embedded projects, as characterized by the Internet of Things, while still maintaining the network effects of community cooperation and sharing? Is this possible or even desirable?
by Tim Bird on 6 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of (online) The Paradox of Open Source and Embedded

We want computers in our:
cars
appliances
furniture
light switches
clothing
Open Source
Open Source Software can be freely used, changed and shared by anyone
Definition
GPL License
Guarantees freedom for downstream users to obtain source code
Legal framework
Other Licenses
BSD
Apache
MIT
How it works
They need to contribute
Creates a community
Network Effects
Lego Model of Software
Developers publish their derivative software
System only works when people do more than publish
Internet of Things
Network Effects
Economic term for the effect where the value of something increases based on the network of participants (users/developers) that adopt it.
Phone network
Operating Systems
Windows vs. Mac vs. Linux
Android vs. IOS
Format Wars
VHS vs. Betamax
HD DVD vs Blu-ray
Types
Network Effects are Everywhere
All large companies understand and try to leverage network effects
Companies spend billions to win a format war
Format wars
Subsidies to one side of a market




Fanboy behavior
Convincing people to use your platform is a rational behavior -- even if irrational arguments are used
TV - relationship of advertisers and viewers
Open Source and Network Effects
Other developers write software you use
More developers = more value
Related services: Books, training, tools, jobs
Community size
People are in multiple communities simultaneously
Some communities are very small
Ecosystem
Cost to contribute
To build community, must create generalized software
Generalized software costs more to write
Bigger
Slower
Dedicated function
Router
TV
Digital camera
Set-top box
Robots
Mobile phones
Tension between generalization
and specialization
Two-sided markets
Ideal - molded plastic
Franken-car
History
From custom to general-purpose OS
VxWorks
Nucleus
pSOS
VRTX
LynxOS
ITRON
QNX
Linux
Cheaper, more capable hardware
Tradeoff in development time vs. hardware resources
Cheapest DRAM is 32M
There's always something new with different characteristics
ST-MRAM
Asynchronous CPUs
CPU with 9 cores is same cost as one with 3 cores
Get used to wasting silicon!
Re-Specialization
Andrew Murray's talk on Boot Time
(2010 ELC Europe)
IOT
Changes the equation

Possibly in our bodies and our food!
In our infrastructure - monitoring environment, water, energy, traffic
Want to run Linux on a 10-cent processor, that runs for years on a single charge
Finally - Linux on a ceral box
Linux in IOT
Do we actually need Linux here?
Hitachi rfid chip
Why Linux?
What re-use are we striving for?
Linux is too:
Big
Slow
Power-hungry
Insecure
Linux 0.11 system ran in 2MB
More features since then
Problem with Linux in IOT
Reuse
If we slim down Linux, it's not Linux anymore
No network effects
People want to leverage:
Network stack
File systems
USB
NFC
SOC support
Streamlining Linux
Modularity/Legos
Lose community
Subtractive Engineering
Folly of subtractive engineering
As system scales up, it's harder to remove than build from scratch
Nobody wants to remove stuff they don't understand
DT and network effects
DT helps build network effects
What to do?
Fork!
Linus Quote

"Fragmentation is the sort of bogeyman of Unix, but fragmentation is often good. Most of the things about fragmentation I like. You want to have a market where everybody gets to do their own thing and where one entity doesn't control it."

Good fragmentation, on the other hand, makes it possible for Linux to run in both supercomputers and refrigerators, Torvalds said. "The key is modularity. You don't solve every problem with one huge operating system"
(ZDNet Interview - February, 2000)
What made the UNIX fragmentation so bad was that it was an "overlapped" fragmentation....

what will happen is that the "market" fragments, as opposed to the technology. Which is good and proper. You'll have different Linux companies going after different markets, and having different priorities.
Ask Linus response #1, Linux Mall - May, 2000
Linux Mall - Ask Linus, May 2000
3rd parties increase your value!
First mover advantage
Applies to anyone who publishes a platform, where other developers or users create value.
Embedded
Bad Fragmentation
Good Fragmentation
OK - a little bit of a rant
Not a rant
Device Tree
Has encouraged restructuring platform code for re-use
Exposes IP blocks between platforms
Relate here my long sad story about Link-Time Optimization and how parsed data items are not optimizable by the compiler.
Can't do compile-time optimizations
Kernel parses tree at runtime
It's meant to support single image
DT is Hard to specialize
Chipidea, is that you?
Fragmentation
Explanatory Power
Different Legal Terms
Size matters
Not a single community
Lots of sub-communities
Doesn't perform as well
Persistent Memory
Esoteric Stuff
Amulet
General Purpose Hardware
Modern SOCs have enormous complexity
vs
We need a new base camp
here!
At the intersection of Open Source
and Embedded
Just
say
"NO"
to
sub
eng
trac
tive
inee
ring
In 2014 -- still evolving our theories about multi-sided markets
Wifi-stack needs:
ICMP
crypto lib
O(1) Scheduler
....
DT Problems
No typing
Separation of data from code
Harder to write drivers
Language problems
Unfamiliarity
Multi-node dependencies not easy-to-express
Thanks for your time
See the full transcript