Using open source software to create successful commercial products. Open source Open source software

The efforts of computer manufacturers to promote solutions supported by strong marketing support have become widely known. open source software (software open source). In modern official use in Russian, this phenomenon is usually called free software(SPO).

The essence of the concept consists in several principles for creating and distributing open source software:

  • availability of source codes for everyone;
  • distribution licensing policy based on one of the community-approved licenses (see the opensource.org website);
  • the possibility of direct participation in the development and correction of errors in the software on their own;
  • the ability to change some software functions and adapt to new conditions (subject to the availability of changes to the entire community);
  • maximum compatibility with open standards;
  • the ability to work in different operating systems and on multiple platforms (cross-platform).

These principles are used in the creation of the majority

SPO. It should be noted that there is a significant difference between free and free ON. Although most free software licenses assume free distribution, this property alone is not enough for software to be considered free software.

Open source has already scored some important victories against the strongest of the proprietary (proprietary) software vendors. In particular, the web server Apache far ahead of similar products from other companies (including Microsoft) in market share due to its low cost, vendor independence, many experienced users and developer support. linux bypassed all other types in terms of supply Unix for the platform intel, including the long-term leader SCO. Open source DBMSs have a strong presence in the markets for open source operating systems and popular low-end Internet solutions. The threat to proprietary software comes from the benefits of free software that are similar to those of the Internet, ie. openness, freedom of adaptation, etc.

Free software already has a strong presence in server operating systems, Internet infrastructure, web application servers, DBMS for small businesses and departments based on web databases with dynamic web page generation, technical and embedded computing systems, and software. for server devices. Speaking about the infrastructure of the Internet, it should be noted that most devices run operating systems and other open source software. These devices include domain name servers, routers, switches, firewalls, gateways, load balancers, application and database servers, and so on.

Given these advances, open source software is jeopardizing firms whose main source of revenue comes from client access fees and license fees for proprietary software. Open source brings to software the business model of obsolescence and commodification in the hardware market, a model that is difficult for a traditional software vendor, especially a leader, to adapt to.

Many of the vendors using open source business models didn't develop as traditional software vendors from the start. As open source software grows in market share and strength in strategic Internet markets, traditional software vendors are identifying threats from open source and opportunities presented by new business models. Naturally, traditional software vendors have the opportunity to adopt these business models in whole or in part, depending on their product portfolio. But even then, open source poses a tangible and very real threat to the way software companies do business.

There are four main threats to closed companies from open source.

  • Price pressure. Since open source licenses essentially require free distribution of software and its modifications, prices for similar traditional products must be reduced in order not to be inferior to open source software and to combat the loss of market share. For example, SCO cannot take $2,000 for Unix for the platform intel, while linux available for free, a Microsoft monopolizes the desktop sector. Traditional vendors can, however, recoup some of the losses by making their software products better than open source software and charging extra for this.
  • Pretty good functionality."Good enough" software (but not the best) can partially crowd out products from traditional software vendors, which are too often aimed at the mass market. More complex (and expensive) functionality in the early stages of its development is always focused on a relatively small group of specialist users. But even manufacturers operating in this market still need to clearly understand that the market for highly developed software will expand and deepen. If advanced functionality fails to attract a wider range of users, customers will naturally purchase open source alternatives, albeit less developed ones. In very large mass markets, the dominant open source software vendors, in addition to increasing their supply volumes, have a lot of room for growth through the implementation of complementary strategies in the field of products and services. The size of the mass market itself ensures price reductions due to high supply volumes, which allows end-users to make tangible profits even with a slight increase in the cost of their products.

In some cases open source software can even bypass traditional products in terms of functionality. For example, Apache became the first of the web servers in which the Internet function popular among providers appeared IP aliasing, allowing hosting of several Internet domain names on one system.

  • "Network Effects" due to knowledge and study of software and tools for mass use. The cost of training users of a new technology is a significant portion of the total cost of ownership, exceeding the price of the software. A company with a large user base familiar with the product and its accompanying tools can use that familiarity by releasing new versions or entering adjacent markets. This kind of network effects can vary depending on the type of user - software developers use api, system administrators - certain administrative tools, users work with graphical user interfaces, and managers establish relationships with suppliers. Once established, this network of partners and users of open source solutions does not collapse and allows you to solve marketing problems of a smaller order, such as gaining adherents and customer loyalty.
  • Standardization pressure. The latest threat from the open source movement is its tools and culture, which sees all sorts of technological barriers erected by traditional software makers as its enemy.

Recently, the most rapidly developing area in software is considered to be the so-called "commercialopen-source", those. A JV supported by ordinary commercial companies. One of the leaders in this direction should be considered a corporation sun, which is developing several major projects in this sector: OpenSolaris OS, DBMS mysql, office suite openoffice.org and virtualization environment virtual box. As a rule, there are several versions of such software, including commercial ones. When paying for a license, the user receives technical support, as well as, in some cases, special tools for convenient work that are not available under an open license. That is, for small needs, companies can use free or free versions software, and when requests increase, buy commercial extensions without changing anything in your infrastructure and applications. Thus, the commercial version of free software directly competes with the developments of traditional companies, for example microsoft, which actively creates special licensing schemes for use in the Internet environment (we are talking about server software).

As a result, open source software on the Internet plays a system-forming role, supporting and developing the basic principles of building the Network. In addition, the use of open source software is relevant from the point of view of focusing on the provision of services instead of the sale of goods. Therefore, when creating Internet systems, it is worth focusing on open standards and software that implements them, since only this way will provide an opportunity for business development and obtaining new opportunities for electronic markets.

The use of open source software to support Internet technologies is natural and necessary in terms of scalability, globality, and compatibility. For example, increasing the number of servers or other infrastructure devices does not require additional investment in software, which provides greater flexibility than with proprietary software. This becomes especially true when the cost of software exceeds the hardware component of the project. The requirements of globality and compatibility are realized due to the good support of cross-platform open source software and the use of open standards, which makes it possible to maintain a high level of compatibility even with many competing products and platforms on the market.

In the light of modern developments of service applications based on web technologies, open source software in combination with inexpensive computers (nettops and netbooks) can significantly replace traditional desktop and mobile systems, which are based on the operating system. Windows and traditional office suites. Use of lightweight specialized OS with kernel-based GUI linux and modern web browsers allows you to perform most everyday tasks on netplatforms using only open source software.

Many people buy various software or use hacked pirated versions. Users see the graphical interface of the program, but the code for this product is usually hidden. In this regard, it is almost impossible to change the software, which guarantees the author protection from those who want to copy the program code and assign it to themselves. But, despite this, there are more and more so-called "Open Source" programs in modern world. Let's understand what open source programs are and what are their positive and negative sides.

What can be considered open source?

Almost all software reaches the end user already as ready-made software. These are quite functional programs with a nice interface and easy to use. If the code of this product is open, then anyone can change it, offer their own options for fixing bugs found, or make some kind of innovation. Thus, the quality of this product improves over time. Examples of open source operating systems are linux, Unix, ubuntu.

Everyone is familiar with Microsoft office, whose analogue, but already open source, is open office . Browsers Mozilla Firefox and Google Chrome are also open source software. There are a lot of similar products, many use a large amount of software and do not suspect that any of this may be an Open Source program.

Open source features

For software to be called a program, it is not enough that its code is open to everyone. Such a program should be absolutely free. In addition, with further use and an attempt to change the code, the user also does not have to pay anything. Anyone has the right to freely distribute this product, and, as mentioned above, change it. Such programs have no restrictions on the scope and terms of use. They can be used for doing business, research, education, use for your own purposes an unlimited amount of time.

Open Source Software License

The license of such programs is also free. There are absolutely no restrictions on application, modification, distribution, use with other compatible software. Also, it is technologically neutral to all other existing programs.

Pros and Cons of Open Source Programs

Unlike classical licensed programs, they are developed by a group of free programmers, and that is why they are free.

The second important advantage is that we can upgrade program data. A good programmer, having understood the code, can add new options to the program or improve the work of existing functions. For example, user macOS cannot change its operating system, unlike linux, which everyone can not only customize at their discretion, but also add any individual functions. In the end, he will succeed New Product which is very convenient to use. If the resulting program is really good, then it can be patented and even sold (!)

Another indisputable advantage of the programs is their protection from viruses. Almost all viruses are written for applications Windows, and malware on the same linux negligible amount. Thus, the probability of getting a virus using an open source operating system is very small.

Today, many organizations are moving to the use of open source software. This reduces costs and minimizes the possibility of a system hack.

But any medal, as you know, has two sides, we will tell about the cons of open source programs.

If you have any problems with the software, you usually contact technical support. Open source software does not have one. This problem arises because the program has been modified by different programmers from all over the country or even the world. So you will have to look for a solution to the problem on the open spaces of the network. Internet or figure it out yourself.

The second minus arises again due to the fact that anyone can change the program code. Often people's views may not match, and this causes conflicts in the modification of the product. This can lead to the collapse of a project that many people have been working on for a long time.

Also often disguised as open source malware, distinguishing them from real safe software can sometimes be very difficult.

Despite the fact that such programs have some drawbacks, more and more users are interested in them. More and more products today are created with open source. This means that such programs have a future and are worth paying attention to.

The success of open source software has been remarkable. It has not bypassed even the major producers of commercial programs. IBM, Hewlett-Packard, Oracle, and Microsoft recognize his influence and, in some cases, adopt his methods. It seems that most companies that have an IT department are already quite familiar with open source products, and often they are actively using them.

However, the ubiquity of open source software still raises more questions than it answers. So let's try to answer the most popular of them.

What is open source software?

Let's go back to 1997. Talented Developer operating system Linux Bruce Perens is writing a document related to preparing and distributing a Debian Linux distribution. He later removed all references to Debian and introduced the concept known today as The Open Source Definition. Among other things, the Definition document stated that open source software should be distributed without any royalties to developers, distributors are obliged to provide everyone with free access to the source code of programs, and all further improvements and upgraded versions of programs must also be supplied under the same conditions.

In fact, the open source software movement is a close relative of the Free Software Movement initiated in 1983 by Richard Stallman. Its main goal was the free distribution of software, freeing it from the standard restrictions of commercial programs. Free software distribution rules are governed by the General Public License (GPL), which was approved in its third edition in October 2006.

There are dozens of different Open Source Initiative licenses in use around the world today, each with its own specific rules that require scrutiny by companies considering using open source software. Usually, these rules do not impose strict restrictions on those who want to apply to open source programs. As far as distribution requirements are concerned, they need to be given more serious attention to avoid potential licensing issues.

Why Open Source Software?

The first reason companies look to open source software is very simple - it's price. And the ROI on the open source model demonstrates this. Open source software is free to download, install and use. Initially, low costs attracted developers willing to try out new tools or design new applications without spending any money. The resulting freedom encouraged many of them to support the open source movement. As a result, along with thousands of other projects, industrial-grade open source software, such as the Linux operating system, the Apache Web server, the JBoss Java application server, and the Eclipse development environment, began to appear in the world.

In the late 1990s, open source programs finally drew the attention of the management of enterprises. With IT budgets constantly shrinking, developers bragged about the quality and cost savings of using open source software, and many companies began to seriously consider using open source software components for enterprise projects. The first major companies to adopt open source software were The Weather Channel, Cendant Travel, Employease, and Saber.

During the global growth of the Internet, open source software allows companies to quickly expand their electronic operations without constantly purchasing new licenses for commercial software. The corresponding benefits also extend to development and testing. This way, companies can try out new things without the additional costs associated with commercial software and the mandatory budgeting process in such cases.

It is probably not a secret for anyone that in practice few people use the availability of source code in products distributed with open source. It would seem that the right to freely modify and fix the program code should be considered a serious plus, but in reality, instead of maintaining the software themselves, it is much easier for companies to rely on a community of developers who update and debug the program code of all popular products in a timely manner.

Reasons for moving away from open source software

Arguments against open source software are usually easy to count on one hand.

    Getting free software is like giving away free puppies. You can download and install it for free, but user training and support ends up costing more than the combined cost of commercial software, or quite comparable. This argument, which Microsoft especially likes to make, operates on a subconscious level. Whether this is fair or not depends on the specific situation and on which analytical report you are reading at the moment.

    Organization of technical support is difficult. In the early days of the open source movement, when development and support was largely done by volunteer groups or "communities", this was indeed an issue. But while many organizations have found that community support is enough to meet their needs, today there are many other opportunities open to them, including support for large open source projects by Hewlett-Packard and IBM. As a result, the assertion that “it is enough to block one throat to suffocate” loses its relevance.

    The development of new functionality takes more time compared to commercial software. It really depends a lot on the particular kind of software you're using. The Firefox web browser is the best example of how quickly open source software can be adapted to the needs of users. You can also recall how quickly the Linux developers organized support for new technologies, in particular USB ports. In this regard, Linux has not lagged behind Windows. But when it comes to enterprise software, building in mechanisms to support the latest video card or audio chip plays a much less important role here compared to ensuring high stability and performance.

    Uncertainty of further development and branching. A wide variety of open source software licenses, as well as the possibility of active intervention of end users in the program code, deter corporate clients from adopting such programs. But careful scrutiny of open source licenses by lawyers dispels most of these fears. Some open source vendors and third parties even offer damages, so the open source applications you use may well be the subject of a lawsuit.

Where to begin?

Today, almost all types of business software are available as open source products, starting with servers Email and ending with VoIP systems. Many companies primarily look at Web applications, where there are products that have been around for quite a long time and have already managed to prove their worth. Usually the LAMP stack is mentioned (Linux, Apache, MySQL and PHP, Perl or Python depending on the specific situation). Linux is a Unix-like operating system. One of the most popular web servers today is Apache. MySQL database management system successfully competes with expensive commercial products. And the programming and scripting languages ​​PHP, Perl, and Python are widely used as open source Web application development tools. Java-based open source websites often rely on the JBoss application server. As you become more familiar with open source tools and identify similarities and differences between them and commercial products, you will discover other possibilities. Perhaps surprisingly, your developers turn to certain open source products from time to time at their own peril and risk.

Application servers are fine, but what about open source desktop software?

It is quite common for end users to use various open source desktop tools. A prime example of such a solution is the Mozilla Firefox Web browser. The Sun OpenOffice office suite is preferred by some government and commercial organizations over Microsoft Office. But while some gamers venture into the unknown by installing the Linux operating system on their desktops, Windows continues to be undisputedly dominant. End-user-friendly versions of Linux (like LinSpire) can't change the status quo because user education takes time and money. In addition, most commercial software packages - on which many companies depend - are developed for Windows first and only then for Linux (if, of course, a Linux version is ever released).

Can open source products be sold?

Yes, of course, but the rules of the Open Source Initiative forbid preventing the sale of your code and everyone else. Yet many companies are finding ways to make money off of open source products. Many, in addition to the actual code, offer corporate support services that companies are very willing to buy. Others provide two versions of the code: one is open source and free, and the other, which includes additional useful features, contains proprietary components and must be paid for by customers. This mixed model is becoming more and more popular. It is actively used by companies such as SourceFire, SugarCRM, Alfresco and a number of others.

Other Open Source Resources

Many open source programs can be found on the Internet:

    freshmeat. Huge database of downloadable software, much of which is in open source form.

    sourceforge. A giant site for open source software developers, bringing together thousands of open source projects. Some of them continue to develop, while others have already ceased to exist.

Open source resources - official and unofficial

    open source initiative. A non-profit organization committed to the further development of open source software and funded by a number of players who have long been active in this field.

    Open Source Technology Group. Arguably the world's leading open source technology explorer. It is this association that owns the news site Slashdot, as well as the resources SourceForge and FreshMeat.

    Open Source Risk Management. Offers mechanisms to ensure regulatory compliance.

    Open Source Development Labs. An organization whose main goal is to promote the operating Linux systems among corporate clients.

Mark Roberts
Product Management Director (Director, Product Management)
QNX Software Systems
e-mail: [email protected]

annotation

This article focuses on the benefits, strategic considerations, barriers and opportunities associated with using open source software in commercial production. Using the Integrated Development Environment (IDE) based on the Eclipse platform as an example, we will discuss the differences between protective (protective) and non-protective (nonprotective) software source code licenses. When integrating or linking open source code with "proprietary" closed source code, due care and attention is often required. There are also various legal issues to be aware of, such as the potential for patent infringement. We will also try to explain why the basic principles of using open source software in an information technology (IT) environment do not apply to commercial products for embedded devices.

QNX Momentics Development Environment as an Open Source Example

Back in 2001, when many software companies were struggling to survive in the face of a general collapse in the IT stock market, especially those associated with Internet e-business, QNX Software Systems made a strategic decision to start developing a new Integrated Development Environment (IDE) for the market. embedded systems. The company already had solid experience in developing a series of tools used in the development of embedded devices, but the company's management realized that the creation of an IDE would allow them to stay on the crest of the wave in a highly competitive environment. The decision to create an IDE was also driven by a shift in emphasis in customer requirements. During the business downturn, cash-strapped customers became more interested in solutions that could maximize productivity and make them more mobile (flexible) in their work, which would improve overall economic efficiency.

For QNX, developing an IDE was "a bet for the future" because at the time the cost and effort of developing the project was out of reach for most embedded systems tool vendors. Fortunately, QNX has worked closely with IBM on various segments of the embedded device market. Through close collaboration, IBM shared with QNX its plans to release an open source integrated development environment that later became the basis for the Eclipse platform.

IBM offered to use the experience of QNX to adapt the IDE technology to the needs of developers involved in the creation of embedded applications based on the C/C++ language. QNX experts almost immediately pointed out the irrefutable attractive aspects of using open source codes for the IDE. For example, for such an environment it would be possible:

  • eliminate dependence on a single vendor, which is usually associated with the need to license a window platform;
  • offer the source code for customization to the needs of the customer;
  • attract serious industry players to support and create an ecosystem of complementary technologies and plug-ins;
  • provide customers with a stable architecture that can support product differentiation;
  • enable embedded device developers to use standard workstations suitable for working with information technology applications as a development platform (in the a wide range applications).

Finally, there was a separate possibility that the IDE platform could catch on and become a de facto standard, allowing QNX to exploit the market for large ecosystems of third-party developers and tools through such a platform.

Eclipse.org open source project founded

In November 2001, Borland, IBM, Merant, QNX Software Systems, Red Hat, and SUSE founded the Eclipse Consortium. In early 2004, the Board of Stewards reorganized the Eclipse Consortium into a non-profit corporation called the Eclipse Foundation.

From the very beginning, Eclipse has been a truly open source project. The project offered both free open source technologies and access to a community of the most educated and advanced developers in their field. In this way, this technology turned out to be a universal platform for integrating all kinds of development tools. It is based on an open, extensible architecture, and is clearly licensed as a royalty-free, freely redistributable product. Community member contributions to the Eclipse project are based on the standard Open Source Software (OSS) development model, but most members also contribute commercial developments based on the Eclipse platform.

Tool storage project

In December 2001, QNX began building its QNX® Neutrino® RTOS based on the Eclipse IDE. The company's vision was for the IDE to be highly functional, C/C++ oriented, with deeply integrated tools for debugging, profiling, analyzing, and building embedded applications. From the outset, the QNX team intended it to be a multipurpose, multilingual IDE that supports multiple tool platforms. This included:

  • several instrumental platforms: Windows, Solaris, QNX Neutrino RTOS (self-hosted development);
  • multiple target architectures: ARM, MIPS, PowerPC, SH-4, x86;
  • programming languages ​​C, C++, Java.

Since then, the IDE has continued to grow to include support for the Linux platform and support for additional processor architectures, including the XScale processors.

The implementation of the project was launched in the style of "extreme programming". The company selected a team of 12 best engineers. They were given a special room, they were isolated from all distractions, the project was given to them at their full disposal.

The group was given the necessary decision-making authority, a tight, risk-averse work schedule was put in place, with a beta release of the product in 16 weeks and a commercial release by July 4, 2002. The group met all of the set milestones and released a new product - dubbed the QNX Momentics® IDE - right on schedule, demonstrating the potential of open source software to reduce time to market.

From idea to product delivery - less than 7 months

Building on the Eclipse platform, the QNX team completed a very powerful and versatile IDE for embedded software development in six months. The IDE supported cross-platform development for multiple tool platforms and programming languages, and supported the most popular embedded target processor boards. With the Eclipse platform, QNX was able to:

  • use GNU compilers and cross-development tools for cross-development command line;
  • implement support for third-party plug-ins, such as IBM WebSphere for embedded Java applications and Rational ClearCase for Model-Driven Development;
  • create additional tools for building systems, managing target devices, analyzing memory, profiling systems and applications, etc.

On fig. Figure 1 provides an example of how the Eclipse platform can reduce the cost of building an IDE, allowing companies to focus on the upper levels of development where the real innovations are made. For example, using the Eclipse platform, QNX has been able to easily create several innovative visualization tools that allow you to get deep inside an embedded system and display its behavior.

Return contribution to the work of the community

The strength of a successful open source project lies in the collaboration of the developer community and the constant improvement of the codebase. If a company embraces and makes good use of open source, then it simply has an obligation to contribute to the community. To this end, QNX took over leadership of the Eclipse CDT project in June 2002.

The goal of the Eclipse CDT (C/C++ Development Tools) project is to create a common set of interoperable C/C++ language tools for the Eclipse platform. Eclipse CDT has been positioned as an open source project, with management rights from the Eclipse Corporation. To start the CDT project, QNX donated its development resources and source code for the QNX Momentics IDE project. Rational and Red Hat, as members of the community, also provided significant support for the project.

Rice. 1. With the Eclipse platform, tool vendors can focus on the top level of the work stack, where the real innovation is actually created.

QNX continues to maintain the CDT project, which has grown from an initially modest 80,000 lines of code to over 700,000 lines of code today. In early 2006, the Eclipse CDT project progress log estimated QNX's contribution at 52%. Next was IBM with a contribution of 36%. The CDT project is the second most popular Eclipse project after the Eclipse platform itself.

Can I afford to "gift" the code?

It may seem that "donate" your code - means to act contrary to common sense. However, if the functionality of your product turns out to be useful to use, then why not contribute it to the open source user community. By taking this step, one can benefit from such a "standard" implementation offering, along with the benefit of product support expertise. You will be able to benefit from the work of the entire community aimed at improving the codebase. Such a strategy can free up your own resources for additional research focused on innovative developments, on making additional functionality into your products.

What's more, you could gain some control over the direction of the "standard" platform - earned, of course, through your contributions to the community! If you are supporting a project, behave like a good citizen of the community, respect other people's opinions, appreciate the contributions and advice of other members. Do not think that someone will try to "cleanse your pockets" as a result of using the code and take control of the direction of the platform development from you.

For example, QNX Software Systems' strategy is to take advantage of its involvement with Eclipse while developing new functionality that plugs in through the standardized extensibility points already included in the Eclipse and CDT platforms. To this end, QNX intends to remain an active member of the Eclipse community, capitalizing on the existing code base and third party work (plug-ins), helping to meet real customer needs by creating proprietary extensions. The described strategy is illustrated in fig. 2.

Rice. 2. With your work, you can contribute to the work of the community.

Benefits Summary

The Eclipse-based tool platform is mutually beneficial for both application developers such as QNX and customers who buy platform tools.

Developers benefit from reduced time to market for their products and the ability to benefit from other people's research (at low cost). These results may include high-quality "clean IP" code provided by reputable firms such as IBM and QNX. Another advantage for the developer is that he gets a simple and clear licensing scheme, including commercial rights and some patent protection. Moreover, the developer gains the ability to work on multiple OS platforms supported by Eclipse, as well as access to well-defined extension points in the Eclipse project.

Customers who purchase an Eclipse-based IDE benefit from a tooling platform for embedded application development with strong cross-compilation support, easy debugging, and extensions to manage target systems. The client's development team will appreciate the many features that make work easier, the short time required for additional training, good performance product and a reliable platform that allows you to work with large projects. The customer may also benefit from the Eclipse platform in their own applications (eg RCP, eRCP, etc.).

The Future of Eclipse Corporation

The Eclipse Corporation is an active and energetic community. New projects are constantly emerging, new architectures are being made available to established innovative companies, and even small companies can commercialize the Eclipse platform by creating new plug-ins that extend existing functionality at minimal cost (see Figure 3).

Rice. 3. Eclipse Corporation is a vibrant and rapidly growing community of plug-in developers.

Comparison of open source licenses

Not all open source software licenses are equal. QNX made a well-thought-out move with the Eclipse Public License. This choice was driven partly by the needs of its embedded customers and partly by a desire to control (and capitalize on) technology that differentiates products.

The non-profit corporation Open Source Initiative () has come up with a useful 10-point definition of open source. There are currently over 50 OSI-approved licenses on the website, including the Eclipse Public License. These licenses may contain significant differences that should be clearly understood. These differences can significantly affect the intellectual property (IP) of developers and the ability to protect it. This is most true in the case of using open source (or derivative works based on open source) in embedded devices.

Protective and non-defensive license

Under the terms of a protective license, such as the GPL v2, a derivative work may only be distributed along with the corresponding source code. Under the terms of the protective license, it is guaranteed that when a source code is moved to the open source category, it will remain in this category in all subsequent generations and derivative products. As we will explain later, this requirement leads to certain problems in the case of embedded systems.

Examples of non-protective licenses are the original MIT and BSD licenses. Non-protective licenses retain the copyright of the owner, but grant extensive rights to the user, including the right to modify and unrestricted free distribution (or personal use) of the software.

What is meant by "viral license"

Some people call the GPL a "viral license". This name arose because of the uncertainty of the legal definition of the concept of "derivative development". With a strict interpretation of the definition, it turns out that if even a small piece of GPL-licensed code is embedded in some proprietary application, then the entire application must be licensed as GPL. The analogy with a virus immediately comes to mind.

Compensation issues

Recently, the issues of indemnification for IP infringement (IP Indemnification) have become the main topic of discussion for developers. In response, some open source vendors have announced that they will defend customers against patent or copyright infringement lawsuits. And the newest open source licenses spell out penalties for users who try to assert their patent rights against other users of the codebase.

The main problems that arise in the commercialization of open source software

Comparison of embedded and IT applications

The success of the open source space has been fueled by the adoption of Linux by IT organizations. Benefit from Linux usage was about running on relatively homogeneous and stable hardware (usually the x86 family) and using a flexible, resource-rich computer platform.

With embedded software, things are quite different. The software runs on a huge number of devices with a fixed set of features, using a wide range of hardware with a variety of architectures. Embedded device designers often base their competitive advantage on a particular feature set, size, performance, cost, battery life, reliability, interoperability, and scalability. These distinguishing features are usually implemented in low-level software, which in the case of Linux requires linking directly to the OS kernel. Customizing low-level software to customer needs is the norm, not the exception, so developers often achieve the functionality they need by changing the OS kernel. The method of direct linking is also used by embedding into code fragments in order to reduce the cost of creating libraries. Taken together, these practices make it very difficult to protect proprietary code under licenses such as the GPL (public domain).

Typically, these licensing issues do not apply to IT applications, because branded, enterprise-specific software is not distributed beyond the enterprise, being used exclusively for internal needs. In the case of embedded devices, however, they always distribute derivative software that is subject to the “force open” clause of open source licenses, which can jeopardize key aspects of valuable open source offerings.

In addition, embedded products often have a long lifespan, both in production and in service. An embedded product that is subject to open source terms of use is at greater risk, including lack of long-term technical support, potential security issues, and IP infringement.

Licensing Issues

Legal Status Uncertainty

Despite the comforting words of some open source license advocates, many of the key issues that embedded developers have raised concerns about have not yet been extensively tested by the judiciary. As mentioned, the definition of "derivative work" is key to enforcing certain terms of the license, although many individuals and organizations that accept open source terms of use have little or no understanding of the meaning of this term.

Some workarounds that allow commercial vendors to embed "proprietary" drivers in Linux (such as Loadable Kernel Modules) rely on "he said, she said" arguments rather than direct links to license agreement text. In fact, such drivers that use LKM modules are a dangerous circumvention of the requirements of the GPL license. Going to the extreme, one can interpret the matter in such a way that the Linux codebase can be presented as useless for most practical applications if it does not include some of these very "proprietary" drivers. This situation can effectively devalue the idea of ​​a GPL license.

Lack of compensation for IP infringement

In most cases where open source code is used, there is a real possibility that you will inadvertently infringe someone's patent rights. Few open source licenses make explicit reference to patents, and implied licenses cannot be judged. You must separately license any patents relating to, for example, open source codecs that implement MP3 algorithms or other proprietary solutions. In the meantime, the bad boys (Microsoft included) are busy building up a portfolio of patents that many experts believe could be fired at open source advocates.

Some licenses make explicit reference to patents. For example, the Eclipse Public License has an explicit mention of patent rights, and it contains a clause about penalties in case someone tries to assert patent rights in a different way. Eclipse Corporation also goes to great lengths to verify the code and determine its source of origin in terms of licensing, patent or copyright.

Additional Efforts to Preserve IP

To use open source, a company must make significant efforts in the following areas:

  • product distribution management;
  • license management;
  • resolution of legal conflicts in terms of customer obligations;
  • paying due attention to legal issues: maintaining the purity of IP rights, checking IP rights to open source, establishing the source of origin of code, tracking changes in license versions, for example, GPL v3, etc.

Acceptance of customer requirements

Some large customers, faced with the complexity and uncertainty of open source software, refused to deal with products that included open source. If you still want to work with these clients, you must obtain or invite them to include commercial license terms for your code.

IP related issues

Do the terms of your open source license affect the intellectual property that distinguishes your product? If yes, then your IP is at risk.

If embedded systems use a mixture of your own software and open source software, then you must understand the essence, origin and relationship of all components of the embedded software. Without this deep insight into the subject matter, you could inadvertently infringe someone else's IP or even lose the rights to your own software.

Without patent licenses and compensation, the long-lived embedded software, relatively high sales price, and sales volume of a fixed-function embedded device make such systems an obvious target for patent infringement claims by the aforementioned bad boys and major competitors.

As the QNX Momentics IDE example shows, there are many immediate benefits to open source software, including reduced time to market, lower development costs, and more freedom to add features and innovation to your product. If you offer your software as a service that solves a customer's problem, then the customer doesn't care if you use open source software or not, they just pay for the feature they need.

However, you should understand the difference between different open source licenses and choose the one that suits your application and customer needs. Moreover, be prepared to be responsible for the license obligations of the software you choose. You should be aware of other IP requirements (such as patent rights) related to the program code. Be wary of a codebase that does not display a message about the consequences of an IP violation. Look for projects that offer indemnification and that display an on-screen message about monetary donations for developing code to compensate for costs associated with copyright or patent infringement, and so on. Also make sure that the open source software you use is consistent with your intellectual property policy and avoid defensive licenses that might force you to reveal distinctive pieces of your code. If your product is built into the system, then consider also offering commercial licensing terms for your IP.

The use of open source in embedded devices raises more complex issues than using open source software in IT applications, as the former is more risky. Before deciding to use any open source software, evaluate its true cost of ownership (TTCO) and its suitability for your project.

Finally, join the community of open source users and developers to get the most value and benefit for yourself!