Open source software has become an entrenched component of embedded systems within the last decade. Marc Andreessen, co-founder of Netscape and the key investor in LinkedIn, recently announced that “software is eating the world.” There are more instances of embedded software in the world today than any other type of software combined. It is at the heart of transportation, safety, health care, food, agriculture, defense, entertainment and therefore virtually every sector of industry that one way or another touches our everyday lives.
The complexity of software design within the embedded space has increased exponentially. In a way, it has mirrored and followed the way gate complexity in integrated devices has doubled every 18 months in the last forty years. The growth in code complexity has overlapped the change in business dynamics of our interconnected global market. Demands for shortening product development times, increasing functionality in products and reducing development costs has led to an increase in outsourcing, contracting, and code-reuse. Open source software, the ultimate manifestation of code-reuse, has become a key enabler of today’s competitive embedded market.
From the first GNU in 1983 to invasion of the whole IT stack by 2011, open source has penetrated every facet of software development. Such desirable attributes as faster time to market, lower development cost, better security, peer-reviewed quality, variety, zero licensing cost and multiple sources from mostly reputable suppliers are some of the reasons where open source has become the software of choice for over 40% of embedded projects.
Better known examples of open source software targeted for embedded applications include Android, embedded Linux and other open source Real Time Operating Systems (RTOS), Qt User Interface (UI) used in phones and PDAs, refrigerators and industrial control systems, as well as roughly 100,000 other projects that cover everything from communications stacks, web browsing, user interfaces, remote management, embedded databases, audio and video codecs and even virtual machines (as in Java virtual machine).
However, the advantages of open source software can only be realized if its adoption is managed. Open source software invariably comes with obligations that are represented in their associated licenses, copyrights, security vulnerability notices and export control classifications. Failure to understand and respect these obligations has repercussions similar to those due to shortcomings in product quality. Embedded devices such as consumer products are distributed in volume, and any impairment in quality, or in meeting licensing obligations, can be very costly in the field.
Project-level or organizational policies usually frame the acceptable terms and obligations. Although some may find it difficult to admit, today’s resourceful developers do not write code from scratch. They know where to get code and enhance it with their own creativity. It is unreasonable and impractical to expect developers to be aware of, and manage, code obligations as they create software under tight schedules. Increasingly, organizations are deploying practices that allow managed adoption of open source in projects, shortening development intervals and reducing development costs.
A survey of more than hundred technology organizations, from large multinationals to small technology firms of less than 50 people identified the best practices used in embedded industry for leveraging and managing open source software. Establishing license policies, adopting package pre-approval processes, creating a baseline of the existing inventory of software, regular software analysis in real-time and at build-time, before the final product is shipped to the market, are some of the steps deployed by the embedded industry.
A structured Open Source Adoption Process (OSSAP) lowers development costs, accelerates time to market, and propels innovation through maximum re-use of code developed by communities. Widespread accessibility of open source code can impact established quality processes as tracking external code used by developers can become very difficult. Having an open source adoption and management process in place will help organizations ensure they are in compliance with all open source licenses used in their products.
This contributed article was written by Mahshad Koohgoli. He is CEO of Protecode, Inc., an innovative provider of open source license management solutions, based in Canada. He has more than 25 years of experience in the telecommunications industry, specializing in technology start-up businesses, and holds several patents in the computer and communications field.