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.

The Cost Of Free Linux from Albert Mietus

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