Free and open source software. Using open source software to create successful commercial products

All software on the LiveCD and DVD is free and open source software (free and open source), with some exceptions (Flash, Opera, Acrobat Reader and others) located in the non-oss repository. When we talk about free software, We mean freedom, not price.

What is free software

The free software movement was started by Richard M. Stallman, who founded the GNU Project (recursive acronym: GNU's Not Unix) in 1984. A year later, he founded the Free Software Foundation, also known as FSF. .

Free software can be divided into 4 main "degrees of freedom":

  • Liberty use programs in any way.(freedom 0)
  • Liberty studying the principles of work program, as well as adapting it to your needs. (freedom 1) This requires access to the source code.
  • Liberty distribution of copies programs. You can share with a neighbor. (freedom 2)
  • Liberty improve the program and publish the improvements you make for the benefit of the entire community (freedom 3). This requires access to the source code.

Non-free software is called proprietary software. It is important not to confuse shareware and freeware with free software, they are different things.

What is Open Source Software

The free and open source software movement began in the early 1990s with people emphasizing the technical and economic benefits of open source and the open source development model of free software. However, there is a small amount of software code that is recognized as free by the open source society, so the term FOSS (free and open source software) is often used. Because, strictly speaking, the concepts of “free software” and “open source software” are not at all identical, as one might think. For example, a software product's license agreement may allow you to examine its source code, but prohibit you from making changes to it and/or distributing copies of it. In this case, the product is Open Source, but not free.

Benefits of using free software

Free software is beneficial for a number of reasons, the main ones are listed below.

Error correction

If a software product is free, this gives you the right to correct errors found in it, as well as modify it to suit your needs. If the program is proprietary, then you cannot independently correct errors found in it or expand functionality. In this case, you will be forced to contact the owner of the software product with a request to make the necessary corrections and add the features you need. However, there is no guarantee that the owner will do this.

Sharing

Free software gives you the right to distribute copies of it, thereby helping your friends use free software without obtaining licenses.

Know and control what the program does and how it does it

In the vast majority of cases, you have no way of knowing what exactly a proprietary program does. Thus, you cannot be sure that the program does only what you ask it to do, because it may do some things without your knowledge (for example, send information about you as a user to its creators, or have undocumented capabilities for various character). Of course, if you use a free program, you are completely insured against such troubles. After all, you have the source code of the program at your disposal, which allows you to know exactly what the program does and how it does it. If you are not satisfied with certain of its capabilities and/or operating features, you can make the changes you need to the code.

Technical benefits

The open source code of a free software product is available to a large number of people, which gives them the opportunity to correct errors found in it; this contributes to the development and improvement of the product. This system of “expert assessment” can be compared to the scientific method of research. In contrast, a proprietary product's proprietary code is kept secret, and is almost never seen by anyone outside the development company.

Economic benefits

Free software gives companies the opportunity to share the cost of the software they develop. For example, Novell and RedHat compete in developing the same programs, but thereby help each other. IBM and HP are also competitors, but they also made significant contributions to the development of the Linux kernel, thereby sharing the development costs. Free software allows for a competitive market for technical support, and therefore the quality is usually very high. With proprietary software, the situation is exactly the opposite: only the development company has access to the source code and is able to offer appropriate technical support, and this represents a degree of monopoly. In addition, the economic benefits include the cost of purchasing a software product. If it is free, you can download a copy of it once from the Internet (or purchase it on hard drive), install it on any number of computers and use it for an unlimited time. If the product is proprietary, then the terms of the license agreement may greatly restrict the use of the product (for example, limiting the number of installations and/or time of use).

I'm not a programmer. Why should I care about the above?

Indeed, most of the freedoms and opportunities listed above can only be used by programmers who can read and write program code. However, you should not think that free software products are intended exclusively for programmers. If you, not being one, want to change the free program you are using in one way or another to expand its functionality, you can (either alone or teaming up with other users) hire a programmer who can do this for you. This practice is very common. In addition, you don't have to be a programmer yourself to distribute free software.

In the 1990s, free software was considered exotic in the corporate environment, and the only noticeable competitor of the proprietary giants led by Microsoft for a long time was Red Hat, but since the second half of the 2000s, the situation began to change rapidly. Open source software has become mainstream for many large companies, and dozens of trusted open source software vendors have emerged who have achieved the appropriate high level of expertise and experience to serve large and demanding enterprise clients.

As of 2014, there are many players who are successfully competing with commercial software providers in a number of areas. In addition to Red Hat, these are open software-oriented organizations such as Google, Apache Software, Novell, SUSE, Acquia, etc. More and more OpenSource analogues of existing proprietary solutions are appearing on the market. Open source communities are becoming stronger and improving the quality and functionality of products.

As a rule, the development itself is offered free of charge, and it is commercialized through support and customization. This creates additional competition and, as a result, promotes the development of open software products.

In almost all industries and areas of activity, it is possible to use software based on open source code. Almost every proprietary software has a working open source counterpart:

  • Cisco VPN – OpenVPN,
  • Oracle Database – PostgreSQL,
  • Microsoft Hyper-V – OpenVZ,
  • MS Active Directory - Samba,
  • Avaya IP Office – Asterisk, etc.)

Based on specific business objectives, you can compare the cost and time frame for implementing a solution based on proprietary software and OpenSource.

Open source software in countries around the world

USA

In March 2016, the US Presidential Administration presented a preliminary version of the bill on use by government departments. Market participants supported the initiative.

According to a document released by the White House, American government agencies can share the source code for certain projects with each other in order to increase their efficiency and eliminate the need to develop the product from scratch. Read more about this.

India

In October 2011, it was reported that the Punjab government had decided to purchase software from Microsoft, reversing a 2008 decision to install free software on 46,000 computers in 4,956 schools. "We have decided to reconsider the previous decision," said Baldeo Purushartha, the state's school education minister.

The Punjab government launched an IT program for students of classes 6 to 12 in 2004-2005. The Punjab ICT Education Department is implementing a project under which computer labs with the necessary equipment, software and broadband Internet connection are being set up in all primary schools. At the same time, the Bharat Operating System Solutions (BOSS), tested and certified by the Linux Foundation for use in schools, received wide support at the government level due to its affordability.

According to the Punjab State President, as of 2008, the minimum cost for upgrading Microsoft-licensed software - covering 16,578 computers at Rs 1,375 per computer - was Rs 23 million over five years. For this reason, in September 2008, the Government of Punjab decided to purchase and install BOSS in all government primary schools and stated that from 2011, all primary school students will be trained in the use of BOSS. Work was completed in April 2011, including the training of 6,600 teachers.

But on August 8, 2011, after a comprehensive review of the results of the project, the head of the Punjab state school education department announced that `the school education department will return to using Microsoft software... for teaching children in the primary classes of government schools.' The cost of updating the licenses will be around Rs 7 million, of which Rs 3.77 million has already been allocated by the government.

Moreover, around 90,000 computers will be installed in government schools connected to the EDUASAT network through which students will be able to watch live broadcasts of various lectures. According to preliminary calculations, the initial price of the Microsoft software and license will be 30 million rupees. This amount does not include the price of equipment, etc.

Earlier, in February 2011, it was decided to use BOSS to work in the EDUASAT network. But now, according to Purushart: `In order to make full use of the installed computers on which students will learn Microsoft software, we want to use Microsoft in EDUASAT too.'

Note that Punjab was the first state to actively implement Linux in schools. Currently, BOSS is still used in the Indian states of Haryana, Gujarat, Kerala and Uttar Pradesh.

Germany

According to a recent study by the Georgia Institute of Technology (USA), Germany ranks fourth in the world in terms of open source software penetration in the public sector. In 2001, the German Ministry of Foreign Affairs (and with it all embassies and consulates) switched to Linux. The consulting company McKinsey has confirmed several times that the foreign policy department saves significantly by using Linux, OpenOffice and Thunderbird instead of the Microsoft suite of Windows, Office and Outlook. It was even said that diplomats spend less on IT than employees of any other government agency.

But the trick is that shareware software is sometimes more expensive to operate than unconditionally paid software. Dinosaurs like Microsoft can provide better and cheaper support than small Linux support companies. And sometimes it is more profitable to buy a license. Therefore, for example, the same German foreign policy department is returning to Microsoft software this year. Officials valued the permanent problems with technical support in terms of money, as well as the difficulty in mastering open software (many employees complained about this) and spoke in the spirit that the stingy pays twice.

Russia

Decisions of the government and the President of the Russian Federation Dmitry Medvedev, domestic open source software was introduced in all schools of the Russian Federation in 2008 and will be installed in all government and budget organizations to ensure national security in the IT field.

Project "Penguin" - implementation of Open Source Software

Project "Penguin" is a project for introducing Linux Technologies and Open Source Software into schools and universities in Russia in 2009-2010. funded by FAO - Federal Education Agency of the Russian Federation. According to the contract for Project Penguin, three stages must be completed:

  1. Finalization of textbooks and methodological support
  2. Development of technical support and Internet portals
  3. Training 60 thousand teachers in Linux technologies and Open Source

1. The development of basic Textbooks in computer science for universities and schools based on Open Source software in accordance with state standards and the requirements of the Unified State Exam in computer science and ICT was completed in 2008-09. 2. Development of Internet support with basic computer science textbooks and basic Open Source software packages for Windows and Linux was carried out in 2005-2009. 3. Trial courses for computer science teachers and school teachers on Linux Technologies and Open Source Software were conducted and tested in 2005-2007. together with the Moscow pedagogical universities Moscow State Pedagogical University and Moscow State Pedagogical University with the support of UNESCO, IBM Corporation and Linux Center.

    • Higher Attestation Commission, prof., doctor of computer sciences 16:32, October 15, 2009 (UTC)

Open source software - opinion of the President of the Russian Federation

At this meeting D.A.Medvedev said:

"...If we sit down now completely on the needle of foreign software and “mortgage” for many years, then we will not get off it. And we will develop contrary to global trends. At the same time, it is also impossible to announce that tomorrow we will transfer all computers in schools (and potentially a much more serious network of computers) to open source programs with a free license, because there are connection problems, there are technological problems. That is, there is no complete readiness here either. What to do?

We offer take a compromise path, and this path has now begun to be realized. For three years, purchase a license package of basic programs (this refers primarily to operating systems, archivers, offices, editors, photoshops - in general, everything that is usually used by users, including in schools), but at the same time it’s time not to stop, but to work on a domestic software package with open access (and now we’ll talk about this in more detail), so that later, ultimately in three years (if it happens earlier, even better),

Create such an optimal model, in which schools and, potentially, all government agencies will be able to choose what they need: either continue to use commercial products at their own expense, and not at the expense of federal funds, or switch to a system that is already completely adapted, acceptable to them, based on open access , open source..."

December 2010: Putin ordered the transfer of power to Linux

The history of the document on the transition of government authorities to free software has been going on since 2007, when the Ministry of Information and Communications began to develop the “Concept for the development of the development and use of free software in the Russian Federation,” which was published in the spring of 2008. However, the resignation of Minister Leonid Reiman and the appointment of Igor Shchegolev's appointment to his position entailed a revision of the concept.

Despite this, in the spring of 2008, a few days before the transfer of power to Dmitry Medvedev, Vladimir Putin, while still President of Russia, mentioned the plan for migration to open source software for federal institutions in the list of his instructions to the government, thus setting this task to himself.

Open Source Packages for Schools

Open Source Packages for schools are designed for installing programs in schools and home computers with Windows and Linux operating systems. The Linux Live-CD is designed to work with Open Source software on home computers with Windows without installing Linux on the computer.

Decisions of the Government of the Russian Federation domestic open source software in 2008 and 2009 was sent to all schools in the Russian Federation and will be installed in all government and budget organizations to ensure national security in the IT field.

Open Linux operating system

Open office software package

Open office suite can be freely installed and used not only on personal computers with Linux OS, but also on computers with Windows OS. At the same time, documents and files prepared in the MS Office office suite can be read and processed in the Open Office suite.

Composition of the Open Office suite:

  1. OpenOffice.org Writer- Text editor Writer with rich capabilities for creating letters, books, reports, newsletters, brochures and other documents, compatible with MS Office.
  2. OpenOffice.org Calc- Calc spreadsheets have the advanced analysis, charting and decision-making capabilities expected of a high-quality spreadsheet, compatible with MS Office.
  3. OpenOffice.org Impress- Impress presentation editor provides all common media presentation tools such as special effects, animation and drawing tools. Compatible with the Microsoft PowerPoint file format, and can also save your work in numerous graphics formats, including Macromedia Flash (SWF).
  4. OpenOffice.org Base- Base database provides tools for working with databases within a simple interface. It can create and edit forms, reports, queries, tables, views and relationships so that managing the associated database is almost the same as other popular database applications. Base includes HSQLDB as its default relational database engine. It can also use dBASE, Microsoft Access, MySQL or Oracle, or any ODBC or JDBC compatible database.
  5. Open Office Draw Draw is a vector graphics editor that lets you create everything from simple diagrams or flowcharts to 3D artwork. Draw can import graphics from many common formats and save them in more than 20 formats, including PNG, HTML, PDF and Flash.
  6. Gimp- raster graphics editor Gimp, a program for creating and processing raster graphics. Vector graphics are partially supported.

Open text editor Writer

OpenOffice.org Writer is a word processor and visual hypertext editor, part of OpenOffice.org and is free software (released under the LGPL license).

Writer is similar to Microsoft Word and the functionality of these editors is approximately equal. Provides the user with modern tools for typing, editing and formatting documents.

Along with the familiar interface and functionality:

* creating and designing paragraphs of text and pages, * adding sections and footers, * inserting images and multimedia objects, * previewing and printing documents, * recording changes and reviewing texts, * automatically creating tables of contents, indexes and footnotes, * adding macros and elements controls, * working with tables, * spell checking and much more,

The concept of applying styles is a great solution that makes it easier to create and format documents. Working with styles is supported in all components of the office suite, but it is in OpenOffice.org Writer that it is most fully implemented.

Five groups of styles: paragraphs, characters, pages, frames and lists provide the user with many options for easily formatting documents. A special “Styles and Formatting” panel allows you to manage styles, changing existing ones and creating new ones. And the more complex the document, the more often it has to be changed, the more obvious the advantage of styling becomes.

Another tool, Navigator, provides the ability to quickly navigate through a document by selecting headings, footnotes, sidebars, or other objects as reference points.

As with other components, Writer has a large number of add-ons (extensions) that improve the basic functionality of the component or provide additional functions, such as grammar checking or publishing to MediaWiki.

Writer supports a wide range of formats for importing and exporting files, including saving to PDF and importing docx. And sending a file by email is done with one click of a button.

Open Calc Spreadsheets

start: OpenOffice.org Calc is an application for working with spreadsheets. With its help, you can analyze the input data, do calculations, make forecasts, summarize data from different sheets and tables, build charts and graphs.

Calc is a current and popular OpenOffice.org component for working with spreadsheets in the business environment. A favorite tool for accountants and managers for creating reports.

Step-by-step input of formulas into spreadsheet cells using the Wizard facilitates the formation of complex and nested formulas, demonstrates descriptions of each parameter and the final result at any input stage.

Conditional formatting and cell styles help you organize your data, while pivot tables and graphs show you the results of your work.

More than two dozen file import and export formats, including text import functions, allow you to operate with almost any data. You can also use a special tool to import data from other sources, such as databases, and you can create an updated range so that the imported data is always up to date.

Links between different spreadsheets and joint editing of data are supported (starting with OpenOffice.org version 3.0).

Various settings are available for printing finished sheets on a printer: scale, margins, footers. And the built-in spell check, like in a text editor, will improve the quality of the finished report.

Open vector graphics editor Draw

OpenOffice.org Draw- a vector graphics editor, comparable in functionality to CorelDRAW, part of OpenOffice.org.

Vector graphic editor Draw is a drawing tool that uses vector graphics. It contains a number of services that allow you to quickly create all types of drawings. Vector graphics allow you to save and display images as vectors (two dots and a line) rather than as a series of pixels (dots on the screen). Vector graphics make it easy to save and resize images.

graphic editor Draw ideally integrated into the OpenOffice.org system, which makes it very easy to exchange drawings between any modules of the system. For example, if you create a drawing in Draw, you can easily use it in a Writer document by copying and pasting. You can also work with graphics directly in the Writer and Impress modules, using a subset of the functions and tools from Draw.

The package includes fully functional "connectors" between shapes that can use a variety of line styles and allow you to draw drawings such as flowcharts.

The need for a vector editor as part of an office suite is beyond doubt. The scope of application of such an editor is quite wide: from the simplest drawings and advertisements to diagrams, diagrams and drawings.

In addition to your own objects, you can insert diagrams, formulas, and other elements created in other OpenOffice.org components into your drawings. Draw also supports exporting raster images in most formats, both common and specialized.

Draw has all the necessary tools inherent in vector editors:

* Connecting lines, dimension lines, tables. * Working with text and text effects; * Change color fill, shadow, transparency; * Placing, linking and managing objects using slides, layers and guides; * Various operations on objects are supported: addition, subtraction, grouping and transformation of shapes; * Drawing three-dimensional objects; * Drawing using graphic primitives, Bezier curves; * Effects: lighting, morphing and duplication;

In addition to your own objects, you can insert diagrams, formulas, and other elements created in other OpenOffice.org components into your drawings. Draw also supports exporting raster images in most formats, both common and specialized.

Using the Gallery (object storage) allows you to organize existing images, and support for text styles saves time when creating objects of the same type.

The finished drawing or drawing can be printed on a printer or exported to a raster image or, for example, to PDF.

The maximum size of a drawing in Draw is 300x300 cm.

Starting with version 3.0 of OpenOffice.org, Draw supports not only export, but also PDF import (installation of a special OpenOffice.org extension is required).

Open relational database Base

Base is an open relational database that allows you to create, edit and process tabular data.

Users are provided with a fairly large set of tools for processing data and tables: editors of forms, queries, reports, database tables. With their help, you can analyze input data, do calculations, make forecasts, summarize data from different sheets and tables, build charts and graphs.

The query editor allows you to create almost the entire range of SQL queries to databases for selecting, changing, and adding data. Nested queries and queries with parameters are supported. The visual part of the editor will simplify the process of constructing queries for a novice user.

The form editor allows you to use almost any standard database content management tool. It provides controls for text, numeric, binary fields, lists, drop-down lists, tables, buttons, calendar and other elements.

a tool for working with external data sources plus a built-in HSQLDB DBMS. Using Base, you can add, delete, edit database records: MySQL, HSQLDB (usually bundled with OpenOffice.org), PostgreSQL, DB2, Oracle.

It is also possible to work with DBF tables, MS Access, address books, text files, as well as spreadsheets created in OpenOffice.org Calc or MS Excel.

External data sources are accessed using ODBC, JDBC, SDBC and other technologies. The full list of supported technologies and data sources depends on the operating system used.

More complex management and data processing is performed using macros and the OOBasic programming language.

The table editor will help you create and manage tables in the embedded HSQLDB database, as well as with some possible limitations for other databases.

Base has a built-in report wizard with basic functions for creating reports or tables or queries. But there is a better reporting tool - Sun Report Builder. This tool allows you to create reports of almost any complexity. It supports grouping, built-in custom functions, conditional formatting. The result of SRB's work is a Writer or Calc document, which can later be printed or edited.

With Base you can create data sources. For example, by organizing a connection to an external database in Base and filtering the necessary data using an SQL query, you can work with this data in OOo Calc.

Open programming systems

  1. FreePascal 2.0.4 - Free Pascal and Object Pascal Compiler - Lazarus or KDevelop is recommended as an IDE.
  2. Eclipse- An open set of open programming systems for the development of modular cross-platform applications.
  3. Gambas- free programming system 2)VISUAL BASIC IDE for creating programs based on Qt, GTK, OpenGL, SDL and CGI WEB

Minimum Open Source Package for Schools

Includes Open Source programs

  1. graphical environment XFCE;
  2. fast text editor Abiword;
  3. Gnumeric spreadsheet editor.

Minimum Open Source software package:

  1. Office package: OpenOffice.org 2.3;
  2. Web browser: Firefox 2.0;
  3. Image Editor: Gimp 2.4;

Additional disk Contains programs for schools and other educational institutions:

  1. Web page editor Bluefish;
  2. Programming languages pascal (Free Pascal and Lazarus), basic (gambas), logo (KTurtle);
  3. Mathematical calculation systems (Maxima and Scilab);
  4. Antivirus ClamAV and Squid caching server, PostgreSQL DBMS

Optimized for installation and operation on computers from 128 to 256 MB of memory and a processor from PI 233 MHz.

Linux LiveCD

Linux CD Live-CD is designed to work with Open Source software on home computers with Windows without installing Linux on the computer.

CD L Inux Live CD optimized to work with a CD for installing Linux on a computer with 128 to 256 MB of memory and a PI 233 MHz processor. Sessions are supported, allowing you to save settings and documents in your home folder between reboots.

The option with the lowest hardware requirements provides acceptable performance even on systems with 128 MB of memory.

Includes the XFCE graphical environment; This distribution includes the lightweight and fast text editor Abiword and the spreadsheet editing program Gnumeric.

In addition, the first disc contains:

  1. Office package: OpenOffice.org 2.3;
  2. Web browser: Firefox 2.0;
  3. Email: Claws Mail;
  4. Working with images: Gimp 2.4;
  5. and more than 1000 programs that allow you to solve a wide range of problems.

School server

School Server- a server operating system with wide functionality, fully customizable via a web interface through which components are managed.

Compound:

  1. web applications to help organize the educational process:
  2. Moodle - a system of distance and interactive learning, contains examples of courses;
  3. Mediawiki - a system for organizing a “knowledge base” using Wiki technology;

for organizing a local network:

  1. DHCP and DNS servers;
  2. Squid proxy server (with support for displaying access statistics);
  3. firewall;
  4. network interface management;
  5. exact time server;
  6. file servers:
  7. Samba server (for organizing access to directories accessible via the Samba protocol);
  8. FTP server;
  9. interface for creating local mirrors of repositories;
  10. CUPS print server;
  11. MySQL (for Moodle and Mediawiki);
  12. Apache2 web server;
  13. interface for system updates (including setting up updates);
  14. backup;
  15. account management (the ability to import accounts from the 1C:Chronograph system);
  16. mail server with support for anti-virus and anti-spam tools.
    • Higher Attestation Commission, prof., doctor of computer sciences 04:29, July 19, 2009 (UTC)

Open source software in Russia

Currently, open source software is beginning to become widespread in the Russian education system, one of the reasons for which is the widespread illegal distribution of commercial closed import software.

By government decisions, domestic open source software was introduced in all schools of the Russian Federation in 2008 and will be installed in all government and budget organizations to ensure national security in the IT field.

Open source software can be freely installed and used in all schools, offices, universities and on all personal computers and in all government, budgetary and commercial organizations and institutions in Russia and the CIS countries in accordance with the General Public License (GPL).

    • Higher Attestation Commission, prof., doctor of computer sciences 09:50, July 16, 2009 (UTC)

Open source software in schools and universities

Using Open Source Software and Linux Technologies in Moscow schools and universities began in 2005-2006. after holding school-seminars “Linux Technologies and Open Source Software” together with IBM Corporation and UNESCO on the basis of Moscow State Pedagogical University.

In 2007 By decisions of the Government of the Russian Federation, basic open source software packages were recommended for implementation in all schools in Russia and use for teaching computer science and information technology in all computer science classrooms in all schools in the Russian Federation.

Background of the basic packages computer science programs, their development, implementation and distribution to schools in Russia and the CIS countries began in the late 90s, when basic software packages were developed for domestic personal computers BK, Corvette and UKNC and distributed as Open and Free Software for schools.

All secondary schools in Russia in 2008-2009 received basic packages of licensed commercial and free open source software for teaching computer literacy, the basics of computer science and new information technologies with the Windows and Linux operating systems.

In four regions of Russia in 2008-2009 Work has been launched to introduce and use basic software packages for computer science and computer science classrooms in secondary schools, and training has begun for teachers and computer science instructors in the technology of working with open source software in Windows and Linux environments.

According to Doctrine of Information Security of the Russian Federation, training in computer literacy and computer science should be accompanied by legal awareness training in the protection of information in computers, protection against computer viruses, porn sites and ensuring information security in local and global computer networks based on free open source software.

In 2007, the first computer science textbooks were released for universities and schools to teach computer science in accordance with state education standards with free open commercial proprietary software in Windows and Linux.

    • Higher Attestation Commission, prof., doctor of computer sciences 09:51, July 16, 2009 (UTC)

Definition of Open Source

Definition of Open Source) is used by the Open Source Initiative to determine the extent to which a software license complies with Open Software (Open Source) standards. Based on the Debian Free Software Directives, mostly written by Bruce Perens.

The definition consists of ten license requirements to Open Software:

  1. Free distribution. This means that the license should not impose restrictions on the sale and distribution of the software.
  2. Available source texts. Even if the software does not come with source code, the source code should be easily accessible.
  3. Possibility of modification. The mere ability to read the source code does not allow experimenting with them and releasing modifications
  4. Even if the author's source code is inviolable, derivative programs and their source codes should be freely distributed.
  5. No discrimination against people or groups of people. Some countries, such as the USA, have some restrictions on software exports.
  6. No discrimination based on purpose of use. A free license should allow all types of activities, including genetic and nuclear research, commercial applications, etc.
  7. License distribution. The rights associated with Open Source Software should apply to all users of the program without entering into additional agreements, such as non-disclosure agreements.
  8. The license must not restrict other software products. With the exception of banal incompatibility, the user has the right to choose what to use.
  9. The license must be technology neutral. That is, the license must not require anything from the interface or technology used in the derivative program.
  10. The license should not be tied to a specific product. Rights to software code should not depend on whether the program is part of a product. A person who distributes a program separately from the collection or transfers part of the code to another product has the same rights as the collection gave.

Open and free software
07.07.2009 12:25

Among programmers, there are people who are willing to provide the results of their work free of charge, along with the opportunity to change and improve them. It's about about manufacturers so-called open source software, which has been the subject of debate in the global IT community for many years. 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 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 software represents, in addition to source code available for editing, also an entire philosophy, the meaning of which is the creation of an information society through the comprehensive use of open software products in all spheres of human activity.

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

  1. adjust the software product to the requirements of a specific user or group of users;
  2. eliminate mistakes of previous developers;
  3. finalize 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 currently unable to secure licenses for commercial software products. 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 lack of popularity, is practically not susceptible to virus attacks. And if a threat is nevertheless detected, it is eliminated as soon as possible, since, as a rule, many 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 through 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 making changes. Such software includes freeware and free software.

So, the term open source (open software) was first used in 1998 by programmers Eric Steven Raymond and Bruce Perens. They were sure that the term free software in English is ambiguous and in some sense can even scare away entrepreneurs who are potential users of such software. Currently, open source is a trademark of the Open Source Initiative, an organization that 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.

It is worth clarifying here that most open source software is also free. The definitions of open and free software, although not completely identical, are close in general terms, and most software licenses comply with both types.

The difference between open source and free software is priorities. For example, open source supporters emphasize for efficiency working with open source code as a method of developing, modernizing and maintaining 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 authorship of a specific 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 emerged at US universities in the 1970s. Stallman formulated clear criteria for free software. These criteria specify the rights that the author of a free program transfers to any user. Thus, using free software, the user receives the “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 purposes. A condition for this is the availability of the program's source code.
  • “Second Freedom” - you can distribute copies of the program to help the developer.
  • "Third Freedom" - the program can be improved and its improved version 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 to be open and accessible to the scientific community and simply to interested people and organizations. It must be emphasized that these principles only affect the availability of programs for general use, criticism and improvement, but do not stipulate in any way related with the spread monetary relations programs, including those, do not imply that they are free.

The way free software works is that the software product and its source code are by default protected by copyright, which gives the copyright holder complete power to distribute and change 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, as soon as users is not provided the right to obtain source codes of programs and change them and distribute further, the software becomes non-free - regardless of other conditions.

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

However, 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 of RAR archives. 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, it is also important that there are different categories of open source software, since they imply different degrees of freedom in relation to user actions. However, sometimes you can observe a significant difference between the definition of free and open source software. Open Source Software is a method of software development in which the source code of the programs created is open, that is, publicly available for viewing and modification. This allows anyone 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, because An open license does not require that the software always be provided free of charge. However, many of the most successful open source projects are still free.

Open access to the source code of programs 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 successful in denoting the phenomenon of free software than that proposed at the time by Stallman. free software".

Note that the benefits of free development for the user should not be exaggerated. Not all free programs are equally available for modification by the user, which, on the other hand, is completely unrelated to the license for their distribution. The size of the program plays an important role: 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. Calculate on developers, who will respond to all the user’s comments and suggestions 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 the patented program may be in a better position.

It is worth noting that all participants in the open software process usually work on a specific program out of interest or because this software is a necessary tool for them for some activity. The time 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 known 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, and along with it, software development is suspended. Unfortunately, today there are thousands of free programs 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 not be free developers for it.

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

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

For example, one of the public licenses (GNU) even has standard wording stating that there are no warranties: “This program is provided “as is.” Unless otherwise stated in writing, the author and/or other copyright holder makes no warranty of any kind, either express or express. and implied with respect to the 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 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 GNU project programs (primarily system utilities and the GNU toolchain), the Linux kernel - the part of the system responsible for running other programs, including device drivers, etc. - and many 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 level of responsibility of the developers is at a high level. Why do they do this, since 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 appear based on open source software, some of which can subsequently become strong commercial products.

There are several main licenses that are used to distribute free software today: 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 Traditional approach to copyright, in which the freedom to copy works is limited, the principle of copyleft uses copyright laws to ensure that it is impossible to limit the rights of any person to use, change and distribute both the work itself and the works based on it. The idea of ​​copyleft is that anyone who distributes a program, either with or without modifications, has no right to restrict the freedom of its further distribution or modification. Copyleft ensures that every user is free in their actions.

The number of licenses that correspond to the Definition of the concept of open source (open software) is currently more than fifty. Open Source is a trademark of the Open Source Initiative. There is a special committee that decides whether a license can bear the open source name. One of the world's largest websites for open source software developers is the well-known SourceForge.net. On this site, developers can post and collaborate on their software projects. Currently, SourceForge.net hosts several hundred thousand projects, and the number of registered users exceeds one million.

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. Software based on open source and free software is already used as 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 large selection of software. Along with applications that can be purchased for a fee, there is the opportunity to use free programs.

Free software

The term “freeware” first appeared in 1982, it was registered as a trademark by American programmer Andrew Flegleman for a communication program he developed.

You can download it for free:

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

Freeware has one advantage - you don’t have to pay money, but there are a few more disadvantages:

  • no automatic program update
  • no technical support
  • errors during operation are possible.

Almost any commercial program for Windows has its free analogues:

  • Archivers (7-Zip)
  • Software for working with FTP (FileZilla)
  • Antiviruses (CureIt, Avast!, AVZ)
  • Text editors (Notepad++)
  • Browsers (Mozilla, Firefox, Opera, GoogleChrome)
  • 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, all the directories and files in them necessary for normal operation of the application are automatically created on the computer. 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 a “Trojan horse” effect: the developer includes other programs in the freely distributed package, which are automatically placed on the computer when the package is installed. This software is not always safe!

Open source projects occupy a special place in the category of free software. Some of the above software (Mozilla Firefox, 7-Zip, FileZilla, Notepad++, Miro, VLC, Apache OpenOffice, LibreOffice, Media Player Classic, GIMPshop, Google Chrome) belong specifically to this category.

Open Source software

The software can be distributed as closed source (Microsoft Windows, MS Office - proprietary software) or open source. Coined in 1984, the term “free software” refers to software that can be obtained for free, modified using available source code, and redistributed.

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

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

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

Advantages of working with open source projects:

  • this is a good educational material
  • the functions described in the project are not prohibited from being built into your applications
  • detected errors can be corrected and the correct code placed in the appropriate repository
  • When compiling a program, it is allowed to make changes to the text and modernize it to suit specific conditions of use.

Flaws:

  • compilation may require additional libraries that you will have to search on the Internet
  • If you have questions when using this software, you will need to look for the answer on forums on the Internet.

The Open Source concept is based on increasing the reliability and quality of software by detecting and correcting errors by many users. The 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 its projects of this type, about 200 of them (Kubernetes was originally 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 you can use openly provided code is indicated in the license, usually directly placed in the text of the program.

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

Shareware

Some programs distributed free of charge have restrictions:

  • according to work period
  • by number of launches
  • by functionality

To limit the period of operation and the number of starts, trial protection is used - special counters. As limited functionality software, a demo version or a version with limited service is provided. Sometimes the developer inserts advertising into the program code, making it difficult to work with the package. To get rid of an advertising banner, you 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 lower end 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.

Major developers provide their products free of charge for personal use for study purposes. If you plan to use their software for commercial purposes, you must purchase a license.

For example, Oracle allows you to download the DBMS distribution kit and utilities for working with it for free. In this case, restrictions are imposed on the volume of the processed data array. But for learning the principles of working with a database and practicing the skill of writing procedures, this option for working with software is suitable.

Actually, when downloading the “source code” of open source software, you must be prepared to incur certain costs in order to use it. There is no 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 seek technical support from the developer and regularly update your product as necessary. To install it on your 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 interested in programming and professionals. Usually the texts of these programs can be downloaded for free. Compiling an executable module and creating the necessary 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 becomes especially relevant for state corporations due to possible difficulties in purchasing proprietary products due to economic sanctions. A limiting factor in the implementation of open source is some uncertainty associated with information security: problems may arise when obtaining certification from the FSTEC.

Open-source software has its admirers, and recently, when it comes to the development of some “national” products, they mostly mean open-source. Paradoxically, interest in this type of software has given rise to a lot of distortions and misconceptions, which in practice prevent its spread.

Our company has been involved in open source projects since 2005 - both through the development of our own open source solutions (OpenVZ, CRIU projects), participating in other open projects (QEMU, OpenStack, libvirt, libcontainer, etc.). Over the course of 10 years, we've collected some of the most common myths about open source software. I will tell you about each of the misconceptions and explain why they are wrong. Surely, you will remember the same number, 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 a 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 accessible, and the more artifacts that are open, the more open the project is to contributors (people who want to contribute to the project). In addition, transparent processes between all community members, open communications in the project, etc. are necessary. All these measures will only contribute to the development of the project and fruitful cooperation between 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 collaborative development - in itself is a guarantee that low-quality code, crutches and patches simply cannot be hidden from other participants. A person participating in this kind of project is ready for his work to be subjected to both analysis and criticism, and, therefore, he will not cut corners. 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; a second attempt is fraught with loss of reputation for the person or company-contributor.

That is, an open project really gives anyone the opportunity 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 an insufficient level of expertise.
Most large IT companies (IBM, Google, Canonical, Parallels, etc.) have entire departments in which specialists are paid to work on open source projects and thus indirectly work on the company's products.

It is also worth mentioning that companies that develop products based on open source projects are interested in improving the code of the open source projects they use during testing. Therefore, all detected problems must be corrected 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 code from other open source projects, so we fix problems found in the code of these projects and send them to 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 Linux Test Project). Vasily Averin received thanks for discovering the 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, people from @openvz.org have found (and fixed) a bunch of incomprehensible, but serious and rather ancient bugs. How did you discover these bugs?”

Bottom line

In fact, all of the myths listed above arise mostly 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 prejudices is to start working closely with such decisions.
We recently announced the open development process for a new version of our product Virtuozzo 7. If you are also interested in creating the best container virtualization technology, then