How to set up smartphones and PCs. Informational portal
  • home
  • Iron
  • The difference between free and open source software. Top 100 Useful Open Source Software

The difference between free and open source software. Top 100 Useful Open Source Software

Open source software has its fans, and recently, when it comes to the development of some kind of "national" products, they basically mean open-source. Paradoxically, interest in this type of software has generated a lot of distortions and misconceptions that in practice prevent its distribution.

Our company has been involved in open source projects since 2005 - and through the development of its own open source solutions (OpenVZ , CRIU projects), participating in other open source projects (QEMU , OpenStack , libvirt , libcontainer , etc.). Over 10 years, we have collected some of the most common myths about open source software. I will talk about each of the misconceptions and explain why it is wrong. Surely, you will remember as many more, but, in my opinion, these five are the most “hellish”.


An open source project is an open source project.

Any software project consists of many artifacts: project source code, information about uncorrected defects, test source code, documentation. The source code of the project is only a part of it, free access to which does not give the right to call the entire project open source. In addition to the source code, other development artifacts should be freely available, and the more artifacts are open, the more the project is open to contributors (people who want to contribute to the project). In addition, transparent processes are needed between all community members, open communications in the project, etc. All these measures will only contribute to the development of the project and the fruitful cooperation of the community members.

The quality of open source software is worse because anyone can write code for it

The main principle of open source software - open joint development - in itself is a guarantee that low-quality code, crutches and patches simply cannot be hidden from other participants. A person participating in such projects is ready for the fact that his work will be subjected to both analysis and criticism, which means that he will not hack. His reputation is at stake, and no one wants to lose it.

In addition, in some communities (for example, the community around the development of the Linux kernel) there is a strict principle - only the best, tested and ideal code is accepted into the source kernel. An attempt to add low-quality changes will be rejected, the second attempt is fraught with a loss of reputation for the person or company-contributor.

That is, an open project really makes it possible for anyone to take part in writing code, but in serious projects, due to the high entry threshold, code will not be accepted from people with an insufficient level of expertise.
Most large IT companies (IBM, Google, Canonical, Parallels, etc.) have entire departments in which specialists are paid for working on open source projects and thus indirectly work on the company's products.

Separately, it is worth mentioning that companies that develop products based on open projects are interested in improving the code of open projects that they use during testing. Therefore, all detected problems must be fixed and ensure that this fix is ​​added to the main branch of the project in order to have as few differences as possible in your code and the code of the open project. Our products use the code of other open projects, so we fix the problems found in the code of these projects and send them to the upstream. This was the case with vulnerabilities in the RHEL kernel: Red Hat noted Vladimir Davydov for discovering serious vulnerabilities CVE-2014-0203 and CVE-2014-4483 in one of the RHEL6 kernel updates (the second problem, by the way, was found using one of our automated tests, using the Linux Test Project). Vasily Averin received commendations for finding CVE-2014-5045 , Dmitry Monakhov for CVE-2012-4508 . The good testing of the Linux kernel was even noted by Andrew Morton (who is this?): “I'm interested. Over the past few months, the people at @openvz.org have found (and fixed) a bunch of obscure, but serious and rather ancient bugs. How did you discover these bugs?”

Outcome

In fact, all of these myths arise for the most part from users who either just start working with OpenSource software, or have not tried it at all. The best way to get rid of prejudices is to start working closely with such decisions.
We have recently released a new version of our Virtuozzo 7 product. If you are also interested in creating the best container virtualization technology, then

To understand what open/closed source software means for our organization, we need to understand how they differ from each other. This article points out the main differences, but remember that this is a very simplified explanation. For more information, see Wikipedia or see case studies of both types of software.

First of all, open source software means that we can change and develop our program as long as we have the knowledge and skills to do so. On the contrary, it is not possible to modify a closed source program by yourself, as the source code of the program/application is not available. While not all of us are programmers, we can still benefit from working with open source software.

Such software is provided to users free of charge, and not only programs, but also operating systems. It is created and developed by the users themselves, who post their creations on the Internet. The most popular programs are regularly updated as they are used by a lot of people. Examples include Mozilla Firefox or Thunderbird. If the program is not updated regularly, it may be that there are not enough technical resources for this - the whole question is how many users the program has. A high frequency of updates is a certain guarantee of the safety of using the program. Although, if after installing the update it turns out that the program does not work (for example, Skype is not supported in the new version of the operating system), there are two ways to solve the problem: try to find help on the forums on the Internet or fix the problem yourself, which is relatively difficult.

Closed source software is much more popular than open source software. First of all, due to the ease of use, and also because we just got used to it - as a rule, at school, at work and at home, we use Windows. In the case of programs and operating systems based on closed source code, we are dealing with a finished product that does not require any intervention on our part. It is much more convenient for the average user to work with them. Users of closed source software often emphasize how easy it is to install and use, how convenient it is to have clear help for the program at hand, and the ability to contact technical support in case of problems. Such systems and products are produced by companies, and only after several stages of testing. The user simply buys a whole software package ready to be installed on the computer. Such software is paid: we purchase a license, and often program updates.

Some software developers support community organizations and offer them programs for free or at a discount through eligible non-profit organizations, such as TechSoup's extensive partner network, which has members located in different countries. In Russia, the program is implemented by the Greenhouse of Social Technologies (Spiro LLC). By contacting the infoDonor program, you can find out if your organization can participate in the program. We should also remember that when we choose an operating system, we also choose the way we work in our organization. For example, if we have chosen Linux, we will not be able to use Adobe solutions, and if we have chosen Windows, we will have to purchase licenses by the number of computers. Each case has its pros and cons. We need to think carefully about what exactly our organization needs, what are the criteria for the effective use of equipment, and make a decision after a thorough analysis.

Of course, open source or closed source software is not just limited to Microsoft, Mac or Linux. The issue of licensing appears in connection with any type of software used in an organization. As a general rule, read all licenses and maintenance agreements carefully. There are many examples where organizations have had serious problems with software that was practically useless due to licensing conditions, or where even the smallest changes to the site were very costly.

Open source and free software
07.07.2009 12:25

Among programmers there are people who are ready to provide free of charge the results of their work, along with the opportunity to change and improve them. It's about about manufacturers so-called open source software, which for many years has been the subject of controversy in the global IT community. Some say that open source software is the future, while others, on the contrary, consider it dangerous and unnecessary. But who is right in the end? There is hardly a definitive answer to this question.

So what is open source software? Perhaps the most common definition of this term reveals its main features. Open source software is all open source software, software products based on which are available not only for viewing, but also for modification, which allows you to use already created code to write new versions of software, for bug fixes and improvements to the open source program. It is worth noting that this definition, according to open source supporters, does not fully reflect the very essence of the concept. From their point of view, open source software is, in addition to the source code available for editing, also a whole philosophy, the meaning of which is the creation of an information society through the comprehensive use of open software products in all areas of human activity.

What is the beauty of open source software? According to representatives of this trend, open source software allows:

  1. adjust the software product to the requirements of a particular user or group of users;
  2. fix the mistakes of previous developers;
  3. refine and improve software.

In addition, open source software is mostly free, which is especially attractive to small and medium-sized businesses that, for example, are not currently able to provide themselves with licenses for commercial software products. Also, supporters of the idea of ​​open source code highlight its security as an advantage, that is, open source software, due to its lack of popularity, is practically not subject to virus attacks. And if a threat is nevertheless detected, then it is eliminated as soon as possible, since, as a rule, a lot of professionals and amateurs who keep in touch with each other have access to the source code. Accordingly, a security threat, having already been detected, is quickly eliminated by one of the community members, or by joint efforts.

It is worth noting that in the global view, open source software includes directly open source software, as well as other types of software products that can be distributed free of charge and provide source code for changes. Such software includes free (freeware) and free (free software) programs.

So, the term open source (open source software) was first used in 1998 by programmers Eric Raymond (Eric Steven Raymond) and Bruce Perens (Bruce Perens). They were sure that the term free software (free software) in English is ambiguous and in some sense can even scare off entrepreneurs who are potential users of such software. Open source is now a trademark of the Open Source Initiative, which distributes open source software. In addition, there is also a special committee that decides whether the license of a particular program can be called open source.

Here it is worth clarifying that most of the open source software is also free. The definitions of open source and free software, while not exactly the same, are broadly similar, and most software licenses fit both.

The difference between open source and free software lies in the priorities. For example, open source advocates emphasize for efficiency work with open source as a method of developing, modernizing and maintaining programs. Proponents of the term "free software" believe that it is the rights to freely distribute, modify and study programs that are the main advantage of free open source software, thereby fixing the authorship of a particular software product.

The founder of the free software concept is the American programmer Richard Matthew Stallman. It was he who first formulated the concept of free software, which reflected the principles of open software development in the scientific community that developed in US universities in the 1970s. Stallman formulated clear criteria for free software. These criteria stipulate the rights that a free software author grants to any user. Thus, using free software, the user gets "four freedoms": run, study, distribute and improve the program.

  • "Zero freedom" - the program can be used for any purpose.
  • "First freedom" - you can study how the program works and adapt it for your own purposes. The condition for this is the availability of the source code of the program.
  • "Second freedom" - you can distribute copies of the program - to help the developer.
  • "Third Freedom" - the program can be improved and published its improved version in order to benefit the entire community. The condition for this is also the availability of the source code of the program.

A program that satisfies all these principles can be considered free, that is, guaranteed to be open and accessible to the scientific community and simply to interested people and organizations. It must be emphasized that these principles affect only the availability of programs for general use, criticism and improvement, but do not stipulate related with the spread money relations programs, including do not imply free.

The way free software works is that a software product and its source code are by default protected by copyright, which gives the copyright holder full power to distribute and modify the program, even if the source code is publicly available. That is, the author has the right, including to sell his product. However, once users not available the right to obtain the source codes of programs, modify them and distribute further, then the software becomes proprietary - regardless of other conditions.

As for the terms of distribution and use of free software programs, their copying is often prohibited, and reverse engineering, modification, redistribution are stipulated in the license agreement.

However, there are programs that fall, according to some experts, under the definition of open, but are not free. Such programs include, for example, UnRAR, a RAR archive unpacker. The fact is that its source code is in the public domain, but the license prohibits using it to create RAR-compatible archivers.

Of course, the fact that the categories of open source software are different is also important, since they involve different degrees of freedom in relation to user actions. At the same time, one can sometimes observe a significant difference between the definition of free and open source software. Open source software, that is, software with (open) source code (Open Source Software), is a method of software development in which the generated source code of programs is open, that is, publicly available for viewing and modifying. This allows everyone to use the already created code for their own needs and, perhaps, help in the development of an open source program. Free software is the right of the user, but not the obligation of the manufacturer, because The open license does not require that the software is always provided free of charge. However, many of the most successful open source projects are still free.

Open source software is also a key feature of free software, so the later term "Open Source Software" proposed by Eric Raymond seems to some to be even more appropriate for the phenomenon of free software than Stallman proposed in his time " free software.

Note that the benefits of free development for the user should not be exaggerated. Not all free software is equally available for modification by the user, which, on the other hand, has nothing to do with the license to their distribution. An important role is played by the volume of the program: if it contains tens of thousands of lines (as, for example, in OpenOffice.org, an analogue of Microsoft Office), then even a qualified specialist will need quite a lot of time to find and fix the error. count for developers, which will respond to all the comments and suggestions of the user and immediately correct the program, is also impossible, since they do not bear any obligations to the user regarding the quality of the program. In this regard, the user of a proprietary program may be in a better position.

It is worth noting that all participants in the open software process are usually engaged in a particular program out of interest or because this software is a necessary tool for them for any activity. The time spent developing the program not paid therefore, there is no hope that circumstances will not change, and development will not stop altogether. There are cases when the development of the program began thanks to one author-enthusiast who attracted many people to participate in it, then the leader's enthusiasm fades, and with it the software development is suspended. Unfortunately, there are thousands of free programs today that have never been able to reach a full working version. In addition, the program may be necessary, but not of interest, which means that there are no free developers for it.

The place of free software in today's software market is very significant, and many commercial and state businesses use free software directly or indirectly. For example, all Internet users, albeit indirectly, use the free program Bind, which provides a DNS service. In addition, many organizations (in particular, those providing services via the World Wide Web) use the free Apache web server, on the operation of which the profit of the enterprise can directly depend, not to mention servers on the Linux platform.

The benefits of using free and open source software are obvious: you usually don't have to pay for it, and if you do, it costs much less than proprietary counterparts. The main drawback, from a commercial user's point of view, is that free software developers have no obligations other than moral ones. That is, they, in fact, are not responsible for the quality of the software.

For example, in one of the public licenses (GNU) there is even a standard wording that states the absence of warranties: “This program is provided on an “as is” basis. Unless otherwise specified in writing, the author and / or other copyright holder does not accept any warranty obligations, either express or and implied program, including the implied warranties of merchantability and fitness for a particular purpose, and any other warranties."

By the way, at present the GNU system, more commonly known as GNU/Linux or simply Linux, is quite common, especially in the server market, and is a complete software product. It consists of a large number of GNU project programs (primarily the system utilities and the GNU toolchain), the Linux kernel—the part of the system responsible for running other programs, including device drivers, and so on—and a host of other free programs.

Therefore, today there is a tendency when large IT corporations such as Intel, Oracle or IBM try to support free software development projects by paying the work of the employees of these projects so that the degree of responsibility of developers is at a high level. Why do they do this, because open and free software is competitive for them? The answer is simple - they see this as a benefit, which they try not to miss, since every day many programs based on open source software appear, some of which can later become strong commercial products.

There are several major licenses currently used for free software distribution: AROS Public License, BSD License, CDDL, Common Public License, GNU Free Documentation License, GNU General Public License, GNU Lesser General Public License, MIT License, Mozilla Public License , Open Directory License, etc. All free licenses, one way or another, are characterized by compliance with the principles of copyleft (copyleft is a pun on the word copyright). In contrast The traditional approach to copyright that restricts the freedom to copy works, the copyleft principle uses copyright laws to ensure that it is impossible for anyone to restrict the right to use, modify and distribute both the work itself and works based on it. The idea of ​​copyleft is that anyone who distributes a program, with or without changes, has no right to restrict the freedom of its further distribution or modification. Copyleft guarantees that each user is free in their actions.

The number of licenses that comply with the Definition of open source (open software), at the moment, there are more than fifty. Open Source is a trademark of the Open Source Initiative. There is a special committee that decides whether a license can be called open source. One of the world's largest websites for open source developers is the well-known portal SourceForge.net. On this site, developers can post and co-develop their software projects. There are currently several hundred thousand projects hosted on SourceForge.net, and the number of registered users exceeds one million.

Of course, open and free software is increasingly capturing the audience. Open source programs are used quite successfully by both private users and and commercial state and public organizations. Software based on open source and free software is already used as a pre-installation for some models of laptops and netbooks from various manufacturers. In addition, open source software is gradually conquering the market for automation systems for small and medium-sized enterprises.

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 software update
  • 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 Windows applications are available on the Internet at developer 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 distribution package, which 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) falls into 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 publicly available 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. The open source project is constantly being 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 information necessary for the language is available on the swift.org website and in the GitHub cloud storage. 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. To get rid of the advertising banner, you 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 a more complete version of 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 learning 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. You do not need to purchase a license, but you will need to pay for the work of programmers who will create software products based on it for a specific task.

conclusions

By purchasing licensed paid software, you automatically get the opportunity to contact the developer for technical support 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 different 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 limiting factor in the implementation of open source is some uncertainty associated with information security: there may be problems when passing certification in the FSTEC.


Most of the software used is distributed in compiled form. This suggests that the source code of such programs passes through a special compiler that converts it into a language understandable to the computer. In turn, software that uses open source, is the complete opposite.

Such code, as a rule, is distributed along with the compiled version of the program, which makes it possible to modify or improve it in every way to be able to perform a wider range of tasks. The developers of such programs believe that over time, open source will allow the software product to become more useful and rid it of a large number of errors.

There are several eligibility criteria for open source programs:

  • free distribution of the software package, but at the same time it can be part of a commercial project;
  • mandatory application of the source code;
  • the ability for anyone to edit the source code;
  • the ability to distribute modified versions of programs;
  • there should be no requirement to exclude other software or interfere with its operation.

Consider one of the most striking examples of software that accompanies open source code that has gained worldwide distribution. In the early 1990s, Finnish student Linus Torvalds developed a completely new operating system based on Unix, which is known today as linux. The system was released under a license agreement GNU General Public License, which contained a definition of open source from a legal point of view. A fairly large number of programmers began to use and improve this operating system. Having collected improvements from programmers around the world into a single whole, in 1994 Linus Torvalds releases Linux version 1.0. Prior to this, version numbering was carried out starting at zero.

Over time, there was some general consumer concern regarding the lack of warranty, as well as technical support for such software. So Red Hat Software creates an Official Red Hat Linux software package that they manage to sell. The most significant feature of such a marketed operating system was warranty and technical support, what is not less important.

Several other companies were also developing new versions of Linux for sale, and these packages were additionally equipped with various software, among which: the Mozilla Internet browser, created on the Netscape core, the Apache web server, the Perl web scripting language, the PNG image file format, and many others. In addition, there are versions of the listed software packages developed for the Windows and Android operating systems. This suggests that open source programs are available not only for computers, but also for mobile devices.

Summing up, it is worth saying that the programs that come with their open source code have a number of disadvantages. First of all, this variety of versions, as a result of which the refinement of one program may cause the creation of a new independent software package. The second thing to emphasize is use of outdated programs by users, in which some errors may not be fixed, it is not possible to work with new file formats, and so on. An example of such a case is Microsoft Word and Open Office. If some complex formula is written in the first package, then the second one simply cannot read it.

Also among the open source software there are no so-called special packages for bookkeeping and reporting. Another disadvantage is directly related to the hardware, the fact is that when switching from Windows to Linux, it must be taken into account that Linux drivers do not exist for all models of computer devices, which will cause the system to malfunction.

However, let's not forget about the positive aspects of such software, because open source has a lot of benefits. First, all open source software is distributed is free. Secondly, such programs appear much faster sometimes commercial due to the fact that several thousand people are involved in the development at once and not every company is able to pay for the work of several thousand programmers. The last thing to note concerns quick troubleshooting options, thanks to which open source programs work more stable than commercial ones.

Top Related Articles