The Cost of Free Linux
Linux en ander open-source is ’free’, maar
niet ‘gratis’. Want al mag u de code gratis gebruiken, u moet voldoen
aan de licentie voorwaarden. En om die (Linux/Opensource) code te gebruiken in
uw embedded systeem moeten uw ontwikkelaars aan de slag. Daar zitten de kosten!
Elk uurtje dat er besteed wordt geeft kosten en die kunnen flink
oplopen. Vooral de eerste keer.
Deze presentatie geeft inzicht in deze kosten en geeft middels een aantal
praktijkvoorbeelden hoe die kosten beperkt kunnen worden.
Transcript
The cost of ‘free’ Linux . And other open-source solutions Tensegrity is a blend of ‘tensional’ and ‘integrity’, a synergy of balanced tension and compression. The poles in a tensegrity-tower seem to float in air. Although they might look confusing, these structures are really very simple. All you need is to be very methodical when building them. It is an architectural principle for sky-high building and an example for SW engineering!
About ‘Albert’
Embedded R&D Architect
Columnist, Writer, Chairman; Trainer, ...
Open-source, Unix, SW-Development practices & processes
Consultant at PTS: SW engineer to architect; Knowledge worker; Creator of EQSL concept: an embedded Linux generator.
R&D Architect JVH Gaming: Bridge between R&D and MT; “Tilting" R&D department; Increase efficiency (twice or triple!) ‘Let go’ , due recession
NOW, I’m available for you
Nice things
Advice
Training
Research
Nice topics
Open-Source
Version Control
Code-quality
Designing
...
To help YOU
80% 20%
Agenda
Introduction
Me
Why look at SW-cost?
Embedded, Linux, Open-source
Cases
Anonymised and anecdotal experience
They typical go wrong
Lesson to learn
(Cost) advantages of Linux
Risks and other cost
GPL, Licences
Why look at SW cost?
History shows us!
‘ things’ become cheaper
SW is major part of most ‘things’
Where are the costs?
Expensive: license, man-hours, tools
How to save costs?
Use generic parts, not ‘custom made’
Candidate: the traditional RTOS
Go with the (big) flow:
Desktop/Server computers:
Cheap HW
Lots of (development) tools
Lots of know-how/manpower/...
Linux is free. End of discussion?
No, development is not free
No, look to total cost: HW+SW+DEV+...
Very simple model [multiplication]
BOM + SW-Licence(fee) [V*S]
Development
Hardware, etc [V]
Software
Shared libraries, etc. [1]
Project specific [P]
Testing [V+L+P]
Operations (“Reproduction”) [V*S]
Here HW and SW differ!
Sales, etc -
Total cost for a product with V variations, each will sell S copies. The software is developed in P projects (P≥V), however a part is shared in L libraries. Test everything.
This is not 'very simple' And it needs more details ....
What is embedded?
Traditional
Small: no memory, no cpu speed, no gpu
Embedded AND Real-Time
Now, Lately, Future
Small: mainly physical
Powerful; often: “pc-alike”
Kind of Real-Time
Example: Cell-phones
Apple's iPhone
Wifi/Bluetooth, GBytes storage, ssh/ssl networking
Nokia 770 Internet Tablet
Linux, WLan, GUI, ...
Are they Embedded? Real-Time?
Open-Source?
Linux is
open-source
But , not all open-source is Linux
“ X”, Apache, Eclipse, Firefox, ...
Linux is
Mainly a kernel; technical hart of OS
Distributed with many other OS SW
Mandrake, RedHat/Fedora, Ubuntu, ...
Linux is suited for
Desktop/Server PC’s
Mainframe computers
Embedded systems
EQSL, MontaVista, WindRiverLinux, ...
some cases What we can learn from others An example where everything goes completely and totally wrong is much more humoristic than any other Intro Cases Cost Adv Risks
Small is costly
Traditionally, each ‘feature’ adds costs
For Linux:
‘ everything’ is free.
Stripping Linux is a lot of work
Manager: “We only need a small Linux ...”
He thinks it saves cost
Developer:
Dives into Linux: enthusiastic for months
Typical result:
Working system or frustration
RAM/Disk/CPU ‘unused’
A bigger, cheaper Linux would also fit
HW increate SW-costs dramatically
Existing telecom product wanted to switch to Linux as OS. I did a study
Once, the HW could be designed in 2 options; for there current RTOS it didn't matter ...
They selected the ‘wrong’ one .
Linux doesn't like batch interrupts
Processing 600Kbyte/sec is easy
Processing 80 bytes at 2kHz, for 4 channels: (too) hard
Multiple no-cost HW solutions exist (buffering, rewire) NOT an option
This was a showstopper, they didn’t expect
(see next sheet)
Lesson (HW details)
HW-engineer:
“ But it really doesn’t matter. All you have to do ... ”
I: “ ... is pay to change it in Linux ”
Technical, everything is possible
Select the HW that is supported
Free Advice
Reality:
You can add it, if you really need it
flash file system, RT-scheduler, ...
HW versus SW development
55 Linux controlled radios are needed: industrial PC with compact-flash as disk.
Already done:
Calculations showed: only 64Mbyte flash needed
Ordered and build the HW (with CF-disk)
They liked Linux-distro ‘XYZ’
Fact & Estimates:
‘ XYZ’ -base needs about 80M; a few weeks to strip it.
Also: all "nice options" are gone
Extra cost pro 128M CF-card: €15 (back then)
Summary
Saved less then 1K€ (55*15) on hardware,
At the cost of:
weeks of development and a late delivery
a consultant (me:-)
Guess the cheaper alternative
Busy with the box
‘ R&D’ works on embedded Linux’
They use a familiar pattern:
Look for all possible solutions
Try to find the best one
Select ‘ Busybox ’ as component
This collection of small tools is used frequently
Lesson:
Use standard solutions initially !
Modify only when:
Really needed
Have know-how & experience
Hardware or application?
Goal: Conference system on Linux
Traditional approach
HW (first), drivers/OS, application (last)
Expensive:
Porting Linux to “own” hardware; write drivers
Wrong way around!
Start with difficult parts
Those parts, the end-user does not pay for
Linux has ‘ hardware abstraction ’
So, application does not see hardware!
Lesson:
Porting application to (desktop) Linux first!
If it doesn’t work at all, saves a lot of time
Cost advantages of Linux and open-source Open-source/Linux in technical/embedded systems is not ‘gratis’ . However, there are cost advantages, even beyond the trivial. Intro Cases Cost Adv Risks
Advantages of Linux
Huge numbers of develop- and test-tools, resources, know-how and code is available
This can speed up development; saving costs
Only an advantage when one needs and uses them!
Don’t use the argument and do else-way!
One can start development really early
Start developing on “an old Linux PC”
Use an embedded-aware Linux when possible
Saves a lot of handling cost
How often do engineers walk to the HW/lab now?
Some ‘features’ speedup the work
E.g. a web-server to set parameters
Configure instead of recompile!
‘ Mount’ debugers/src-code in the dev-lab
Very convenient for developers
Case: Linux saves cost
RTOS licence not in BOM (“forgotten”)
Facts:
Adding it, doubles the price
Margin becomes negative
Product family near end of live (for years)
Approach
Negotiations with supplier
Start study/port to Linux
Results:
Linux seems ‘too big’ ... , but ...
Don’t tell the supplier
Other open-source solutions are possible
Licence fee drops dramatically
‘ Problem is solved’
Other Costs & Risks
As this is about costs and saving them;
there are a few lost bits which needs mentioning
Intro Cases Cost Adv Risks
GNU Public Licence
Now, it becomes really complicated
The GPL is hard to read (for lawyers)
Using Linux: you have to comply
You may:
Use Linux, change Linux, add to Linux
Distribute Linux
You must :
Distribute your changes to your customers
Remember:
Not all open-source is Linux
There are many “open-source licences”
Other Licences
Some of the well known licences
http://www.opensource.org/licenses
GPL, GLPL
Gnu software, Linux, ...
“ Keep source available for everybody”
BSD (4- and 3-lines version), MIT
FreeBSD, *BSD, academic code ...
“ Use it as long as you don’t blame us”
Lessons
‘ Never’ mix non-disclosures with GPL
You can’t win on two sides
Never listen to ‘techies’
You have to convince a court. Ask a lawyer.
Don’t explain bits & bytes
Other open-souce
Open-source != Linux
Linux is open-source, but there is more
Open-source has advantages, ...
But there are alternatives to Linux
Ecos, *BSD [other operating systems]
http:sourceforge.net [1532 ‘embedded projects’]
PC style hardware && Linux to risky?
Consider Open/Net/FreeBSD
Open Unix/Linux without GPL!
Most open-source tools/applications run on many operation system, incl Linux
Conclusion & Questions
Linux/Open-source is not ‘gratis’
Look to the total cost!
HW, BOM, incl. Licence!
Development cost
Project, shared parts, etc
Man-hours
Advantages (negative cost)
Free extra features, time-2-market, ...
Beware of all open-source licences
How to add-up the legal cost?
Ask ‘the right questions’...
... to the right people
Any questions ?
Ik heb een missie: Software Beter Maken, vooral in Nederland.
For more info:
Albert AT SoftwareBeterMaken DOT nl
GSM: +31(0)6 16 531 258
http://SoftwareBeterMaken.nl