Hardware and software setup

Open source software. Open source and free software

Peter Van Valkenburgh, Head of Research at Coin Center, Member of the Board of Directors of the Zcash Foundation, explains why open source software development source code important for building trust and security in blockchain networks.

The computer code behind all major cryptocurrencies and open blockchain projects is being developed as open source software. Regulators and policy makers trying to understand what cryptocurrencies are but not familiar with such software may be deluded into believing that these systems are (and should be) developed by one or more commercial companies. While many well-known software is indeed developed this way (for example, Microsoft's Windows or Oracle's RDBMS), things are different with open source projects, and this difference can and should shape public opinion. Open source software is created in collaboration, freely distributed, published openly, and developed as a product of a community, not the property of a single company or individual. In this case, there is no monopoly, there is no one company or individual who would create and sell software, would own it. Just as there is no single company that owns the bitcoin network, there is no single company that produces software that, running on Internet-connected computers, forms this network. This kind of decentralization brings some fundamental benefits that can be hard to understand for people who are not familiar with software development. To better understand the power and nature of open source, it's helpful to have some insight into one particularly successful piece of open source software. We are talking about the Linux operating system.

Open source everywhere

It is difficult to calculate how many times a day you use Linux, because this operating system is the basis of most of the servers on the Internet. Whenever you visit Facebook, Google, Pinterest, Wikipedia, and thousands of other major sites, the services that these (so different) sites provide you, you are dealing with computers that most likely run on the Linux operating system. Linux can be found much closer; most likely you have it at your fingertips. Let's say the operating system of Android smartphones is based on Linux. If you have a Chromebook, then you are using a Linux-based laptop. This operating system is increasingly used in televisions, thermostats, multimedia systems in airplanes, cars, etc.

Why is it interesting? Because Linux is not the product of one programmer, or even a group of programmers; unlike MacOS or Windows, it wasn't developed by one or even a dozen corporations. Linux has thousands of contributors. As reported in 2015 by the Linux Foundation (a non-profit organization that promotes open development operating system), approximately 14,000 developers from over 1,300 different companies contributed code snippets. In 2015 alone, 2,355 developers contributed to code improvement for the first time. Thus, by extrapolation, it can be calculated that by 2017, approximately 18,000 people have contributed, and this number will grow.

Who would have thought, even five years ago (in 1991), that a world-class operating system could, as if by magic, be molded into a coherent whole from fragments of freelance work of several thousand developers scattered around the globe and connected only by the ghostly threads of the Internet?

Benefits of open source

In his book, Raymond talks about how open source is a revolutionary way to create technology. Linux, with thousands of independent developers working in public collaboration, exemplifies the open source model. Cryptocurrencies follow the same pattern, but we will talk about this below.

Raymond highlighted several advantages of the open source model. The key ones in the context of our discussion are the following:

  • Every good piece of software begins with the satisfaction of the developer's personal desire. Most open source developers are motivated by the desire to personally use the products they create. They are not bound by a contract obliging them to create something for another; they have a personal need that they satisfy. Thus, a qualitatively different motivation arises, generating a detailed knowledge of the problem.
  • Good programmers know what to write. The great ones know what to rewrite (and reuse). When development is done openly, redundancy can be avoided and problematic, complicated, or redundant codes can be identified and simplified.
  • When you lose interest in a program, your last duty to it is to hand it over to a competent successor. People come into and out of an open source project based on their interests and expertise. No one gets stuck working on projects that are no longer interesting. Fresh minds are emerging, offering different points of view on old problems or new perspectives.
  • Perceiving users as fellow developers is the easiest way to improve code and debug software effectively. Many open source users help identify problems and even suggest solutions. The line between the consumer and the producer of open source software is blurred: work on software is transparent, it is carried out in front of the public, and participation in the creation process is available to everyone.
  • With a large enough base of beta testers and developers, almost any problem will be quickly qualified, and its solution will surely be obvious to someone. This postulate is named the Linus Law after Linus Torvalds, the creator of the Linux kernel, who for a long time remained the main developer of this operating system. When the code development process is closed, developers run the risk of missing a weak point or not noticing a certain error. Developing in a power user environment with a unique vision increases the likelihood of bugs being identified and fixed, making open source software more secure and resilient.

The result of this development is very robust code created by users for users. The goal is not to create something that enriches a company that makes and sells products, but rather to solve a problem that is common enough for a large community of talented programmers to be happy to contribute. People without programming skills benefit greatly from such a model. Free software seems to materialize out of thin air, it is free for everyone to use, and it receives updates as long as expert-level users are also interested in using it.

Law and free software

Current legislation supports and in some cases encourages the development of open source software. It, like all software, is protected by copyright, but its authors release the code with a license that allows anyone to use and modify it without specific permission or any payment to the authors (that is, with a license developed by the Massachusetts Institute of Technology - MIT).

Some licenses include requirements that derivatives of the software be released under the same terms. Through this scheme, the open source base grows and spreads. This phenomenon is known as the Free Software License, or LGPL-3, the lesser General Public License.

Open source in cryptocurrencies and token projects

Linux is perhaps the largest and most important example of the open source model, but there are others. These include all major cryptocurrency and blockchain projects. They all create computer networks, allowing participants to reach agreement on shared data (cryptocurrency blockchain).

The software that allows any participant to connect to the network is called a client, and it is open source software. Often, client software is developed by several unrelated parties as a simple version of network software (i.e., the so-called reference client), on the basis of which mining, wallet, exchange, or other software compatible with the network can be built.

The Bitcoin Core client is the result of the work of over 450 independent developers who have contributed over 15,000 code developments in total. The software is available for free use and modification in accordance with the MIT Free Software License, and the entire development history is available for viewing in a public repository on Github - cloud service, allowing anyone to create an account, upload new code, and track changes. If the repository you create is open to the public for review, comments, and suggestions for changes, then you don't even need to pay for a Github account.

The public repository also keeps track of so-called forks of the original client. A fork creates a clone of the original software, which can then be modified for one purpose or another without changing the original repository. Developers freely fork the Bitcoin Core Github repository to create either specific bitcoin-compatible applications (such as a smartphone wallet) or a new cryptocurrency that is no longer compatible with the bitcoin network and involves the creation of a new cryptocurrency network (such as was with Litecoin or Zcash). To date, the original Bitcoin Core client has been forked over 10,000 times, and new repositories emerging show that derivative work continues.

There are now at least 121 repositories on Ethereum, each of which focuses on a specific aspect of the project (for example, programming languages ​​for writing smart contracts, graphical browsers for end user interaction with the Ethereum network, compatible clients for participating in the network, etc. ). There are at least eight projects focused on developing ethereum compatible clients, with hundreds of independent developers working on the most popular clients (go-ethereum and Parity). The Ethereum code and its complete history, as well as the code and the history of Bitcoin, are available for public viewing on Github and elsewhere. network storage, and all code is released under the LGPL-3 license, which requires all future derivative works to be released under the same license.

Even recent projects initiated by commercial start-ups demonstrate adherence to the open source credo. The Zcash Company develops the Zcash protocol through a public repository. A few lead developers do not work for the company, and a purpose-built non-profit organization is called upon to ensure that there is a gradual transition from company-driven development to community-driven development. The Zcash source code base is released under license from the Massachusetts Institute of Technology. Protocol labs, the developer of Filecoin, intends to create a similar open model and has already tested it in their IPFS project, working with code in open repositories and releasing it under the MIT license.

Why open source is important

Cryptocurrencies and open blockchains can provide functionality that would be regulated if it came from a single corporation. Centralized digital currency issuers, such as Liberty Reserve or E-gold, were financial services and had to register with the US Treasury Department's Financial Crimes Enforcement Office and obtain a license to transfer money in each state. If such tokens are promoted on the market to attract investors, they may be equated to securities, in which case registration with the US Securities and Exchange Commission will be required. These restrictions make sense because centralized services run the risk that the party at the center of the whole scheme will not be able to fulfill their promises by adequately testing the product and making it secure.

However, technologies like bitcoin can offer similar functionality by being open and unowned networks. There is no corporation here. Users join these networks, and open source software stimulates their willingness to collaborate. Ultimately, all participants come to an agreement on each piece of data needed to create a currency. Decentralization rests on two pillars: open consensus mechanisms and open source software. If the code weren't open source, how would participants (people who don't know each other on the internet) be able to understand and trust the system they're joining?

In fact, token projects based on proprietary code may turn out to be just centralized services that hide behind professional slang and “blockchain gibberish”. However, for “true” projects, the code that creates a decentralized network, allowing participants to trust each other, have a common motivation and punish scammers, is itself decentralized. It is being developed in front of everyone by hundreds of enthusiasts, it is available to everyone in the world for use and modification and is completely independent of corporate interests.

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 main principles of using open source software in the environment information technologies(IT) does not apply to commercial products for embedded devices.

QNX Momentics Development Environment as an Open Source Example

Going back to 2001, when many development firms were struggling to survive in the face of a general collapse in the stock market of IT companies, especially those associated with e-business on the Internet, QNX Software Systems has made a strategic decision to start developing a new Integrated Development Environment (IDE) for the embedded market. 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 company shared with QNX its plans to release an open source integrated development environment - this environment 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 developers of embedded devices to use standard workstations suitable for working with information technology applications (in the widest range of applications) as a development platform.

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 start Eclipse was 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 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 and had a tight, risk-averse work schedule, with a beta product release in 16 weeks and a commercial release by July 4, 2002. The group met all targets deadlines 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 instrument platforms and multiple 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

Forte successful project open source lies in the collaborative work of the developer community and in the constant improvement of the code base. 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 codebase 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 tools platforms.

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 designed 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 big 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 gain control over (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 get the functionality they want 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 concerns that embedded developers have expressed 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 inject proprietary drivers into Linux (such as Loadable Kernel Modules) rely on "he said, she said" arguments rather than direct text references. license agreement. 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 on someone else'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 system 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 said "bad boys" and major competitors.

As the example of using the QNX Momentics IDE shows, there are many immediate benefits to open source software, including reduced time to market, lower development costs, and more freedom to endow your product. additional features and innovation. 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 best 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 better projects, where it is proposed to indemnify possible damages and where a screen message is displayed 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!

The success of open source software is quite 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 actively use 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. The talented developer of the Linux operating system, Bruce Perens, writes a document related to the preparation and distribution of the distribution version Debian Linux. 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 free access to the source code of the programs and all further improvements and upgraded versions of the 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 for distribution requirements, they need to be given more serious attention in order to avoid potential problems associated with violation of licensing rules.

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 " free distribution puppies. You can download and install it for free, but user training and support ends up costing more than the combined costs 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 best example 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 similar 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 first of all pay attention to Web-applications, where there are products that have existed 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. The 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 Web browser. Mozilla Firefox. 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 in open and free form, 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 with a core mission to further develop open source software and funded by a number of players who have long been active in the 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 Linux operating system among corporate clients.

The software market offers a wide range of software (software). Along with applications that can be purchased for a fee, there is an opportunity to use free programs.

Free software (Freeware)

For the first time the term "freeware" appeared in 1982, it was registered as a trademark by the American programmer Andrew Flegleman for the communication program he developed.

You can download for free:

  • beta versions of programs
  • simplified analogues of full-fledged packages
  • drivers
  • programs, the use of which will prompt the acquisition of additional resources.

The advantage of freeware is one - you do not have to pay money, there are a few more disadvantages:

  • No automatic update programs
  • no technical support
  • possible errors during operation.

Almost any commercial program for Windows has its free counterparts:

  • Archivers (7-Zip)
  • FTP software (FileZilla)
  • Antiviruses (CureIt, Avast!, AVZ)
  • Text editors(Notepad++)
  • Browsers (Mozilla, Firefox, Opera, Google Chrome)
  • Audio players (WinAmp)
  • Video players (VLC, Miro, Media Player Classic)
  • Transcoders (MediaCoder)
  • Graphic editors (GIMPshop)
  • Office software (Apache OpenOffice, LibreOffice)

Free Apps under Windows are available on the Internet at the developer's sites. After downloading the archive and installing the software on the computer, all the directories and files necessary for the normal operation of the application are automatically generated. Free applications for Android and iOS can be downloaded using the PlayStore and AppStore marketplaces.

When downloading free programs, you run the risk of encountering the “Trojan horse” effect: the developer includes other programs in the free package that are automatically placed on the computer when the package is installed. This software is not always safe!

A special place in the category of free programs is occupied by open source projects. Some of the above software (Mozilla Firefox, 7-Zip, FileZilla, Notepad++, Miro, VLC, Apache OpenOffice, LibreOffice, Media Player Classic, GIMPshop, Google Chrome) belongs to this category.

open source software

The software may be distributed in closed source (Microsoft Windows, MS Office - proprietary software) and open source (open source). Introduced in 1984, the term "free software" (free software) refers to software that can be obtained free of charge, modified using available source codes of programs, and distributed further.

Programs are distributed under the GNU GPL and must meet the following requirements:

  1. There are no restrictions on the use of the software in certain areas of activity.
  2. The source code is distributed with the executable or can be obtained from a public source for free/at a reasonable price. The code must be readable.
  3. The modified version is distributed under general conditions. You can change the name or version number.
  4. The program is available to everyone.

In 1998, the concept of "open source software" was introduced - open source software. Formally, all free software can be considered open source software. It is customary to classify open source programs as free, although it is not forbidden to use them for commercial purposes. Usually, it is distributed under the Apache 2.0 license. But there are other options (see more about licenses in the open source world).

Benefits of working with open source projects:

  • it is a good learning material
  • the functions described in the project are not prohibited from embedding in your applications
  • found errors can be corrected and the correct code placed in the appropriate repository
  • when compiling the program, it is allowed to make changes to the text and modernize it for specific conditions of use.

Disadvantages:

  • compilation may require additional libraries, which will have to be searched on the Internet
  • if you have any questions while using this software, you will need to look for the answer in the forums on the Internet.

The concept of Open Source is based on improving the reliability and quality of software through the discovery and correction of errors by many users. Located in open access open source project is constantly tested by a huge number of programmers.

Google has been widely implementing open source technology for a long time. All of her projects of this type, there are about 200 of them (initially, Kubernetes was developed here, and then transferred to the management of the Cloud Native Computing Foundation), are available on the company's GOOGLE OPEN SOURCE portal. The resource contains not only program codes, but also documentation on their use and support. How widely the open source code can be used is specified in the license, usually placed directly in the text of the program.

Apple is trying to increase the number of applications available to Apple by open sourceing the Swift language. The current version of the language currently has limitations: in order to upload your development to the AppStore, you will have to purchase a licensed Swift. All the necessary language information is available on the swift.org website and in cloud storage GitHub. Released Swift for Linux.

Shareware

Some programs distributed free of charge have limitations:

  • by working time
  • by number of launches
  • by functionality

To limit the period of operation and the number of launches, trial protection is used - special counters. As a limited functionality software, a demo version or a version with limited service is provided. Sometimes a developer inserts an advertisement into the program code that makes it difficult to work with the package. In order to get rid of advertising banner, will have to pay.

Examples of programs with a shareware license:

  • WinRAR archiver (30 days)
  • Antivirus Nod32 (30 days)

AcrobatReader is an example of a program with limited functionality. This program, the bottom segment of the AdobeAcrobat suite, only allows viewing of PDF files. To fully work with these types of files, you need to buy more full version Acrobat.

Large developers provide their products for free for personal use for study purposes. If you plan to use their software for commercial purposes, you must buy a license.

For example, Oracle allows you to download the DBMS distribution kit and utilities for working with it for free. At the same time, restrictions are imposed on the volume of the array of processed data. But for studying the principles of working with a database and developing the skill of writing procedures, this version of working with software is suitable.

Actually, downloading the "sources" of open source software - open source - you must be prepared to incur certain costs in order to use it. No need to purchase a license, but you will need to pay for the work of programmers who will create based on it software products for a specific task.

conclusions

By purchasing licensed paid software, you automatically get the opportunity to apply for technical support to the developer and regularly, as necessary, update your product. To install it on a computer, you do not need to have deep knowledge in the field of IT.

When installing free software, pay attention to the date it was created/updated and be sure to check the software for viruses. Such programs are used by both IT-specialists and PC users of various levels.

Open source projects are of interest to people who are fond of programming and professionals. Usually the texts of these programs can be downloaded for free. Compiling an executable module and creating the right working environment for it requires certain skills of an IT specialist.

The undoubted advantage of open source projects is their independence from the vendor, large companies prefer to create corporate software based on them. This is especially relevant for state corporations due to possible difficulties in acquiring proprietary products due to economic sanctions. A deterrent to open source adoption is some of the uncertainty associated with information security: there may be problems when passing certification in the FSTEC.

Liked the article? Share with friends!
Was this article helpful?
Yes
Not
Thanks for your feedback!
Something went wrong and your vote was not counted.
Thanks. Your message has been sent
Did you find an error in the text?
Select it, click Ctrl+Enter and we'll fix it!