"It's time to tear the wall down. For too long, an onerous and obsolete barrier has divided the worlds of proprietary and open source software. A barrier that has forced developers to choose between one world or the other--when they could be enjoying benefits of both."
QNX Software Systems' new software model integrates open source and proprietary software products in new ways. It is a step forward in the embedded systems market toward openness and freedom of software development, and it gives QNX customers significantly greater flexibility to extend and adapt QNX technology for their own purposes.
The new QNX model is an effort to address fundamental problems in the way proprietary embedded software is traditionally developed and distributed. Today the rate of change to software and hardware is so rapid, and software so complex, that vendors and customers alike struggle to keep up. Often, software vendors are their own worst bottleneck, as they work to fix or extend their existing products while also attempting to satisfy new, and often divergent, customer needs. Meanwhile, the sophisticated users and customers in the embedded market often know exactly what features and functions they want; many would make the modifications themselves if allowed to do so. And many of them would welcome opportunities to cooperate and share the results of their collective development efforts, just as they would in an open source project.
A pure open source approach doesn't work in all cases, and it doesn't work for QNX which does not believe that relinquishing all control over their intellectual property and giving it away for free would best serve the interests of their customers. Technology companies implement their fundamental business strategies through licensing their intellectual property. It is a subtle task. If a company gives too much away through overly generous grants of copyrights or patents, then its competitors and customers get a free ride on its products and the company loses its incentive to invest in research and development. If the company makes restrictions on use too tight and complicated, it discourages customers from taking advantage of what its products have to offer. This is where QNX is looking to innovate, with a new blend of transparent development and accessible licenses for the embedded development community.
The goals of open source, built upon licenses that promise freedom to use, copy, modify, and distribute the software that people receive, are becoming part of the nature of the entire software and technology industry. Customers and vendors alike demand open source advantages to be included in their software-based products.
That is what QNX is doing: offering their development community the freedom to proceed without the company being the bottleneck. It is an enablement strategy that combines the benefits of an open source development model with the sustainability of a royalty-based business model for commercial projects. It isn't entirely open source; rather, it's a mixture of open source and proprietary software and rules. I'll explain why.
What's Already Open and What Isn't?
There is already much open source software inside QNX runtime technology and associated development tools. The varied and growing list of the open source components of QNX software is published. QNX licensees are encouraged to take those open source components and do with them whatever their open source licenses allow.
In addition to incorporating open source software into its products, QNX also serves as a major contributor to open source software. QNX was a founding member of Eclipse and continues to manage the Eclipse C/C++ Developer Tools (CDT) which is based on code that QNX donated to Eclipse.
QNX has released major components of its own software under open source licenses and will continue to release more over time. Many of the QNX board support packages (BSPs) are now available under the Apache License, Version 2.0. This is key to extending the amount of usable hardware available for QNX applications and will enable users to build their own BSPs to satisfy their own needs or those of other QNX users. QNX deliberately chose the Apache 2.0 license for this code in order to give developers the option to offer their derivative works for free or for a fee. While Apache 2.0 doesn't force developers to publish their derivative source code, it does provide a framework for open cooperative development.
Meanwhile, key proprietary components of the copyrighted and patented technology at the heart of QNX runtime software remain available only to QNX licensees, as are certain value-added features of the QNX developer tools. The public cannot freely copy, modify, or distribute QNX software, except for the specific open source components within it. QNX software as a whole, meaning the QNX