How to set up smartphones and PCs. Informational portal

Open source software file. Top Hundred Useful Open Source Programs

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

Our company has been participating in open source projects since 2005 - and thanks to the development of our own open source solutions (OpenVZ, CRIU projects), participating in other open source projects (QEMU, OpenStack, libvirt, libcontainer, etc.). Over the past 10 years, we have collected some of the most common myths about open source software. I will go over 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".


The 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. 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 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, and, therefore, will not cheat. 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 original kernel. An attempt to add low-quality changes will be rejected, the second attempt is fraught with loss of reputation for the person or company contributing.

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

Separately, it is worth mentioning that companies that develop products based on open source projects, during testing, are interested in improving the code of open source projects that they use. Therefore, all discovered problems must be fixed and ensured that this fix was 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 source 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 updates to the RHEL6 kernel (the second problem, by the way, was found using one of our automated tests, using the Linux Test Project). Vasily Averin received gratitude for finding error CVE-2014-5045, Dmitry Monakhov for CVE-2012-4508. The fact of good testing of the Linux kernel was even noted by Andrew Morton (who is this?): “I'm interested. Over the past few months, the folks at @ openvz.org have found (and fixed) a bunch of obscure but serious and fairly ancient bugs. How did you find these bugs? "

Outcome

In fact, all of these myths arise for the most part among users who are either just starting to work with OpenSource software, or have not tried it at all. The best way to get rid of prejudice is to start working closely with such solutions.
We recently announced an open development process for the next version of our Virtuozzo 7 product. If you are also interested in creating the best container virtualization technology, then

With the help of open source projects, you can improve your skills, correct other people's mistakes and create something new. You can find a project that will be useful for your own business, for example, in medicine or e-commerce. Also, as practicing programmers, one of the best ways to motivate yourself to take up programming is by working with open source projects. Especially for the readers of the Geekbrains blog, we have compiled a list of such projects from different fields of activity:

Medical imaging software package. 3D Slicer is available on multiple platforms including Windows, Linux and OS X.

A tool that allows you to distribute the processing of large amounts of data across clusters of computers using simple programming models.

Popular software package for word processing, spreadsheet creation, presentations, graphics, databases, and more. A completely open development process means anyone can report bugs, request new features, or improve the software. It is written in the international open standard format, therefore it accepts files from other open office software packages.

A content management platform powered by millions of websites and applications.

A media manager for building large, centralized media libraries.

Free operating system like Unix.

Office suite for collaborative development with functionality like Microsoft Office or OpenOffice.org.

System for creating courses. A free web application that educators can use to create effective learning websites. Moodle has become very popular with educators around the world as a tool for creating dynamic websites for their students.

Software for creating and managing educational audio and video content.

A multi-platform enterprise content management system written in Java. Works with multiple databases (including MySQL, Oracle, PostgreSQL, SQLLite, and others) and supports multiple authentication methods.

Software for creating private and public clouds.

The service allows you to create polls and share with contacts on the site. A convenient way to collect data for further analysis.

DICOM server for healthcare and medical research. Designed to facilitate the management of medical imaging data. A good tool for automating medical imaging tasks specific to each healthcare facility.

Powered by the open source community, the project is designed to provide the best solutions for enterprises through business intelligence.
Main areas of application:

  • reporting
  • analysis
  • data collection
  • business intelligence platform

Java ™ developers can use project components to quickly create their own business intelligence solutions.

Modular open source digital data management system.

Free software for e-commerce.

Library for quickly filtering and sorting large collections - up to 100,000 items in a browser.

Open source languages

An open source programming language and development environment for people who want to create images and animations.

R is an open programming language and software environment for statistical calculations and graphics. The R language is widely used among statisticians for statistical software development and data analysis.

Where can I find more open source projects?

One of the largest web services for the joint development of IT projects. Completely free for open source projects. The service motto “Social coding” can be translated as “Code together”.

Designed to popularize open source projects. With the tools provided there, the developers have created powerful software in over 430,000 projects; the resource has more than 3.7 million registered users. The popular directory brings together over 41.8 million clients with open source projects and serves over 4,800,000 downloads per day.

Fossdroid's goal is to promote open source Android apps through the F-Droid project. Fossdroid takes its data from F-Droid and organizes apps in a Google Play-like manner, with the option to view them by popularity.

How do you know if software is open source and what are the rules for its use?

It is necessary to understand that not all open source projects can be used for commercial purposes or freely modified. To find out if the software is open source and what are the rules for its use, you need to look at its license. Usually its full text is located directly in the code.

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

annotation

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

The QNX Momentics IDE as a Case Study for Using Open Source Software

Back in 2001, when many software firms were struggling to cope with the general collapse of the IT stock market, especially those related to e-business on the Internet, QNX Software Systems made the strategic decision to start developing a new integrated development environment (IDE) for the market. embedded systems. The company already had a solid track record of developing a series of tools used in the development of embedded devices, but the company realized that creating an IDE would help to stay on the crest of the wave in the face of fierce competition. The decision to create an IDE was also driven by a shift in focus in customer requirements. During the downturn, budget-constrained 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" as the cost and effort of developing a project was out of the reach of most embedded system tool vendors at the time. Fortunately, QNX has worked closely with IBM across various segments of the embedded device market. Through close collaboration, IBM has shared with QNX its plans to release an open source IDE that would later become the foundation for the Eclipse platform.

IBM offered to leverage QNX expertise to adapt IDE technology to the needs of developers building C / C ++ embedded applications. Almost immediately, QNX pointed out the compelling benefits of using an open source 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 the window platform;
  • offer the source code for customization to the needs of the customer;
  • engage major industry players to support and build an ecosystem of complementary technologies and plug-ins;
  • provide customers with a stable architecture that can support product differentiation;
  • to enable embedded device developers to use standard workstations as a development platform suitable for working with information technology applications (in the widest range of applications).

Finally, the separate possibility was considered that the IDE could gain popularity and become the de facto standard, which would allow QNX to use such a platform to capture the marketplace of large ecosystems of third-party developers and tools.

Founding the open source project Eclipse.org

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

From the 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. Thus, this technology turned out to be a universal platform for integrating all types of development tools. It is based on an open, extensible architecture and is clearly licensed as a royalty-free free redistributable product. Community contributions to the Eclipse project are based on the Open Source Software (OSS) standard development model, but most members also offer commercial development based on the Eclipse platform.

Tool repository creation project

In December 2001, QNX began building its QNX® Neutrino® RTOS, based on the Eclipse IDE. In the company's view, the IDE should have great functionality, focus on working with C / C ++ languages, have deeply integrated tools for debugging, profiling, analysis, and building embedded applications. From the outset, the QNX team intended it to be a multipurpose and multilingual IDE that supports multiple tooling platforms. This included:

  • several tool platforms: Windows, Solaris, QNX Neutrino RTOS (self-hosted development);
  • several 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 project was launched in the "extreme programming" style. A team of 12 best engineers was selected in the company. They were given a special room, isolated from all distractions, and placed at their complete disposal.

The group was given the necessary authority in the field of decision-making, a tough work schedule was drawn up for them, on the verge of risk, with the release of the beta version of the product in 16 weeks, and the commercial version by July 4, 2002. The group met all the set deadlines and released a new product - dubbed the QNX Momentics® IDE - exactly on schedule, a testament to the potential in 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 across multiple tool 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 command line tools for cross-development;
  • support third-party plug-ins such as IBM WebSphere for embedded Java and Rational ClearCase for model-driven development;
  • create additional tools for building systems, managing target devices, analyzing memory, profiling systems and applications, etc.

In fig. Figure 1 provides an example of how the Eclipse platform reduces the cost of creating an IDE, allowing companies to focus on the upper tiers of development, where real innovation is actually created. For example, using the Eclipse platform, QNX was able to easily create several innovative visualization tools that allow you to penetrate deeply into the embedded system and display its behavior.

Contributing back to the community

The strength of a successful open source project lies in the collaboration of the developer community and in the continuous improvement of the codebase. If a company adopts and makes use of open source, then it simply has a responsibility to contribute to the community. To this end, QNX took over 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 ++ development tools for the Eclipse platform. The Eclipse CDT has been marketed as an open source project, with management rights from the Eclipse Corporation. To launch the CDT project, QNX donated its development resources and source code to the QNX Momentics IDE project. Rational and Red Hat as community members also provided significant support to the project.

Rice. 1. Using the Eclipse platform, tool vendors can focus on the top level of the work stack, where 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 Progress Log was an estimated 52% of QNX's contribution. Next came IBM with a 36% contribution. 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 "donating" your code means doing something contrary to common sense. However, if the functionality of your product turns out to be useful to apply, then why not contribute as a contribution to the open source community. By taking this step, you can benefit from this “standard” implementation offering along with the expertise to support the product. You will be able to benefit from the work of the entire community to improve the codebase. Such a strategy can free up your own resources to conduct additional research, focused on innovation, on adding additional functionality to your products.

Moreover, you could gain some control over the direction of the "standard" platform - earned, of course, thanks to your contributions to the community! If you support a project, behave like a good citizen of the community, respect other people's opinions, appreciate the input and advice of other members. Do not think that someone will try to "clean your pockets" as a result of using the code and intercept your leadership over the direction of the platform development.

For example, QNX Software Systems' strategy is to capitalize on the benefits of being a part of Eclipse while developing new functionality that plugs in through the standardized extension points that are already available 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 expertise (plug-ins), helping to meet the real needs of customers by creating proprietary extensions. The described strategy is illustrated in Fig. 2.

Rice. 2. You can contribute to the work of the community with your own experience.

Benefits summary

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

Developers benefit from less time to market and the ability to benefit from other people's research (at a low cost). These results may include high quality "clean IP" code provided by reputable vendors 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 gets the ability to work on multiple OS platforms supported by Eclipse, as well as the extensibility points well-defined in the Eclipse project.

Customers buying an Eclipse-based IDE benefit from a tooling platform dedicated to embedded development, powerful 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 little time required for additional training, the good performance of the product, and a reliable platform to handle large projects. The client can also usefully leverage the Eclipse framework in their own applications (eg RCP, eRCP, etc.).

The future of Eclipse Corporation

The Eclipse Corporation is an active and energetic community. It continually introduces new projects, provides new architectures to established innovative companies, and even small companies can commercialize the Eclipse platform by creating new plug-ins at minimal cost that extend existing functionality (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 licenses are created equal. QNX has taken a well thought-out move with the Eclipse Public License. This choice was dictated in part by the needs of its embedded customers and in part by a desire to take control of (and benefit from) technologies that differentiate products.

The nonprofit Open Source Initiative () has come up with a helpful 10-point definition of open source. There are currently over 50 OSI approved licenses listed on the website, including the Eclipse Public License. These licenses may contain significant differences that need to be clearly understood. These differences can have a significant impact on the intellectual property (IP) of developers and their ability to protect it. This is especially true when using open source code (or derivative work based on open source code) in embedded devices.

Protective and non-protective license

Under the terms of a defensive license such as GPL v2, derivative work can only be redistributed with associated source code. Under the terms of the defensive license, it is guaranteed that when the source code is released to the open category, it will remain in that category in all subsequent generations and derivative works. As we will explain later, this requirement leads to certain problems in the case of embedded systems.

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

What is meant by a "virus license"

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

Questions about receiving compensation

Recently, IP Indemnification has become the main topic of discussion for developers. In response, some open source vendors announced that they would protect customers from patent or copyright infringement lawsuits. And the newest open source licenses clarify penalties for users who try to assert their patent rights against other users of the codebase.

Top Challenges for Commercializing Open Source Software

Comparison of embedded and IT applications

The success of the open source industry has been fueled by the adoption of Linux by IT organizations. The benefits of using Linux were associated with running on relatively uniform and stable hardware (usually the x86 family) and using a flexible, resource-rich computing platform.

This is not the case with embedded software. The software runs on a wide variety of fixed-feature devices across a wide range of hardware architectures. Embedded device designers often base their competitive advantage on specific feature set, size, performance, cost, battery life, reliability, interoperability, and expandability. These distinctive 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 meet customer needs is the norm, not the exception, so developers often get the functionality they need by changing the OS kernel. The method of direct linking is also used by embedding in code fragments in order to reduce the cost of creating libraries. This practice, taken together, makes it very difficult to protect proprietary code under GPL (publicly available) licenses.

Typically, these licensing issues do not apply to IT applications because proprietary, enterprise-specific software does not extend beyond the enterprise and is used solely for internal needs. On the other hand, embedded devices always distribute derivative software that qualifies for “force open” open source licenses, which could jeopardize key aspects of valuable open source offerings.

In addition, embedded products often have long lifetimes, both during production and use. An embedded product that is subject to the Open Source Terms of Use is at greater risk, including lack of long-term technical support, potential security issues, and IP infringement.

Licensing issues

Uncertainty of legal status

Despite the comforting words of proponents of some open source licenses, many of the key issues of concern to embedded systems developers have not yet been extensively verified by forensic practice. As mentioned, the definition of derivative work is key in enforcing certain clauses of the license, although many individuals and organizations who accept the open source terms of use have little or no understanding of the concept.

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

Lack of compensation for IP infringement

In most open source use cases, there is a real possibility that you are inadvertently infringing on someone else's patent rights. Only a small fraction of open source licenses explicitly refer to patents, and no determination can be made on implied licenses. You must separately license any patents related to, for example, open source codecs that implement MP3 algorithms or other proprietary solutions. In the meantime, the bad boys (including Microsoft) are preoccupied with building a portfolio of patents that, according to many experts, can be "shot" at supporters of open source.

Some licenses explicitly refer to patents. For example, the Eclipse Public License explicitly mentions patent rights and contains a penalty clause if someone tries to assert patent rights differently. Eclipse also goes to great lengths to review the code and find out where it came from in terms of licensing, patent, or copyright law.

Additional Efforts to Preserve IP

To use open source, a company must spend considerable effort in the following areas:

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

Accepting customer requirements

Some large clients, faced with the complexity and uncertainty of open source software, refused to deal with open source products. If you do want to work with such customers, you must obtain or offer them to include terms for your code corresponding to the commercial license.

IP issues

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

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

Without patent licenses and compensation, the long-lived embedded software, the comparatively high selling price and volume of fixed-feature embedded devices make such systems an obvious target for patent infringement claims from the bad boys and major competitors.

As the QNX Momentics IDE case study illustrates, there are many immediate benefits to open source software, including faster 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 some problem for a client, then the client does not care whether you used open source software or not, he just pays for the function he needs.

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 answer for the licensing obligations of the software you have chosen. You should be aware of other IP requirements (such as patent rights) related to the software code. Be wary of a codebase that does not display an IP infringement message. Look for projects that offer compensation for possible damages and display an on-screen message about cash 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 are using is consistent with your intellectual property policy and avoid defensive licenses that could force you to reveal distinctive pieces of your code. If your product is embedded in the system, then also consider offering commercial licensing terms for your IP.

The use of open source code in embedded devices leads to more complex problems than in the case of using such software in IT applications, since the first option is fraught with more dangers. Before deciding to use any open source software, estimate its true cost of ownership (TTCO) and its suitability for your project.

Finally, join the open source community of users and developers to maximize your value and benefit!

To understand what it means for our organization to use open / closed source software, it is necessary to understand how they differ from each other. This article highlights the main differences, but remember that this is a very simplified explanation. For more information, check out Wikipedia or see specific use cases for both types of software.

First of all, open source software implies that we can modify and develop our program as long as we have the knowledge and qualifications to do so. On the contrary, it is not possible to modify the closed source program on your own, since 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 upload their creations to the Internet. The most popular programs are regularly updated as many people use them. Mozilla Firefox or Thunderbird are examples. If the program is not updated regularly, it may lack the necessary technical resources - the whole question is how many users the program has. The high frequency of updates is a definite 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, the new version of the operating system is not supported by Skype), 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 are simply used to it - as a rule, at school, at work and at home, we use Windows. In the case of closed source programs and operating systems, 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 on the program at hand, and the ability to contact technical support in case of problems. Such systems and products are released by companies, and only after several stages of testing. The user simply buys a whole software package ready to be installed on a 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 discounted rates through appropriate non-profit organizations, for example, through the extensive TechSoup partner network, whose members are 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. It should also be remembered that when we choose an operating system, we are also choosing the way we work in our organization. For example, if we chose Linux, we would not be able to use Adobe solutions, and if we chose Windows, we would have to purchase licenses by number of computers. Each case has its own pros and cons. We need to carefully consider what exactly is required by our organization, 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 isn't limited to Microsoft, Mac, or Linux. The licensing issue comes up in connection with any type of software used in an organization. As a general rule of thumb, read all licenses and service agreements carefully. There are many examples when organizations faced serious problems with software that was practically useless due to licensing terms, or when even the smallest changes to the site were very expensive.

Open source and free software
07.07.2009 12:25

Among programmers there are people who are ready to donate the results of their work together with the opportunity to change and improve them. It is about manufacturers so-called open source software, which has been the subject of controversy in the global IT community for many years. Some say that the future belongs to open software, 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, on the basis of which, are available not only for viewing, but also for modification, which allows you to use the already created code to write new versions of software, for bug fixes and improvements to the open program. It is worth noting that this definition, in the opinion of 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 source software in all spheres of human activity.

What's 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 specific user or group of users;
  2. fix bugs of previous developers;
  3. finalize and improve software.

In addition, open source software is mostly free, which is especially attractive for small and medium-sized businesses, which, for example, are currently unable to provide themselves with commercial software licenses. Also, supporters of the idea of ​​open source code highlight its security as an advantage of open source software, that is, open source software, due to its insufficient popularity, is practically not susceptible to virus attacks. And if a threat is nevertheless detected, then it is eliminated as soon as possible, since, as a rule, many professionals and amateurs have access to the source code, who keep in touch with each other. 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 a global view, open source software directly includes open source software, as well as other types of software products that can be distributed free of charge and provide the source code for making changes. Such software includes freeware and free software.

So, the term open source (open source software) was first used in 1998 by programmers Eric Steven Raymond and Bruce Perens. They were convinced that the term free software in English is ambiguous and in some sense may even scare off entrepreneurs who are potential users of such software. Open source is currently 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 named open source.

It is worth clarifying here that most open source software is also free software. The definitions of open source and free software, although they do not completely coincide with each other, are similar in general terms, and most software licenses correspond to both varieties.

The difference between open source and free software is in priorities. For example, open source advocates emphasize on efficiency work with open source code as a method of development, modernization and maintenance of programs. Supporters 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 securing the authorship for a specific software product.

The free software concept was founded by 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 the author of a free software assigns to any user. Thus, using free software, the user gains "four freedoms": to 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 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 its improved version can be published in order to benefit the entire community. A 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 open and accessible for the scientific community and simply for interested people and organizations. It should be emphasized that these principles only affect the availability of programs for general use, criticism and improvement, but do not in any way stipulate related with the spread money relations programs, including do not imply free of charge.

The mechanism of operation of free software is that the software product and its source code are protected by copyright by default, which gives the copyright holder complete power over distribution and modification of the program, even when the source code is publicly available. That is, the author has the right, among other things, to sell his product. However, once users is not provided the right to receive source codes of programs, modify them and distribute further, 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 development, modification, redistribution are stipulated in the license agreement.

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

Of course, it is also important that the categories of open source software are different, since they imply different degrees of freedom in relation to the actions of users. At the same time, you 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 the programs is open, that is, publicly available for viewing and modification. This allows everyone to use the already created code for their own needs and, possibly, help in the development of an open source program. Free software is the right of the user, but not the obligation of the manufacturer. an open source license does not require software to always be provided free of charge. However, many of the most successful open source projects are still free.

Open source access is also a key feature of free software, so the term "Open Source Software", later proposed by Eric Raymond, seems to some to be even more apt to denote the phenomenon of free software than was proposed by Stallman at the time. free software ".

Note that the benefits of free development to the user should not be overstated. Not all free software is equally available for modification by the user, which, on the other hand, is completely unrelated to the license for their distribution. An important role in this is played by the size of the program: if there are tens of thousands of lines in it (as, for example, in OpenOffice.org - an analogue of Microsoft Office), then even a qualified specialist will take quite a long time to find and eliminate the error. Calculate on developers, who will react to all comments and suggestions of the user and immediately correct the program, it 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 the patented program may be in a better position.

It is worth noting that all participants in the open source software process usually engage in a specific program out of interest or because this software is a necessary tool for them for any activity. The time that was spent on finalizing 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 a program began thanks to one enthusiastic author who attracts many to participate in it, then the leader's enthusiasm fades away, and software development stops with it. Unfortunately, today there are thousands of free software that have never been able to reach a full working version. In addition, the program may be necessary, but not arouse interest, which means that there will be 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 Bind program, which provides a DNS service. In addition, many organizations (in particular, those providing services through the World Wide Web) use the free Apache web server, on the work of which the profit of the enterprise can directly depend, not to mention the servers on the Linux platform.

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

For example, in one of the public licenses (GNU) there is even a standard wording stating the absence of guarantees: “This program is provided 'as is'. Unless otherwise stated in writing, the author and / or other copyright holder does not assume any warranty obligations, either explicitly expressed or and implied in relation to the program, including the implied warranty of merchantability and fitness for a particular purpose, and any other warranties. "

By the way, at present the GNU system, more widely known as GNU / Linux or simply Linux, is quite widespread, especially in the server market, and is a completely complete software product. It consists of a large number of programs from the GNU project (primarily the system utilities and the GNU toolchain), the Linux kernel - the part of the system responsible for executing other programs, including device drivers, etc. - and many other free software.

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 employees of these projects so that the degree of developer responsibility is at a high level. Why do they do this, because open source and free software is competitive for them? The answer is simple - they see this as a benefit, which they try not to neglect, since every day a lot of programs appear on the basis of open source software, some of which can later become strong commercial products.

There are several main licenses that are currently used to distribute free software: 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. For all free licenses, one way or another, compliance with the principles of copyleft is characteristic (copyleft is a pun from the word copyright). As opposed to traditional approach to copyright, in which freedom of copying works is limited, the copyleft principle uses copyright laws to ensure that it is impossible to restrict anyone's rights to use, modify and distribute, both the work itself and the works based on it. The idea of ​​copyleft is that everyone who distributes the program, both with and without changes, has no right to restrict the freedom of its further distribution or modification. Copyleft guarantees that each user is free to do their own thing.

The number of licenses that meet the Definition of open source (open source), at the moment, there are more than fifty. Open Source is a trademark of the Open Source Initiative. There is a special committee to decide if the license can be named 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 host and jointly develop their software projects. SourceForge.net currently hosts several hundred thousand projects and has over one million registered users.

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

Top related articles