opensource - a complete explanation

What is open source?

If you are using the Internet, and you have a little knowledge of the software world, there is a high possibility that you have heard before the term open source or open-source, and of course you ask what is the meaning of the word open source? And why are there some programs, programming languages, or operating systems that only others are called open source?

In this article I will explain to you the concept of Open-source in a simple and easy way, and I will deal with many other aspects related to this topic, so that in the end I leave you and I understood the idea of ​​open source in a way that you can explain to others.

Open source

What is the meaning of open source?
An open source or open source is a feature or feature that is launched on a program, programming language, or operating system, whose owner or inventor provides the basic codes, the original source, and their algorithms, for reprogramming, modification, redistribution, and sharing according to the requirements of each user.

Open source software or languages ​​open the way for their users to participate in improving and refining codes, and solving problems related to them, and also opening the way for their users to modify and adapt them according to the nature of use specific to each user.

Open source software or languages ​​get a faster pace and multiple ideas for improvement, because by opening the source the inventor allows others to verify that the program is free of spyware, viruses, a security vulnerability, or the like.

The open source program also allows other programmers to make modifications to the original code, so new programs are removed from the original code, and so we do not have to reinvent new programs from scratch.

What are the ten conditions for an open source program?

The internationally recognized Open Source definition provides ten basic standards. These ten standards must apply to any software or programming language license to be called an open source software.

The program licensed under the Open Source License must be accredited and compatible with the Open Source Initiative for the Promotion and Protection of Open Source Initiative (OSI) projects.
These are the ten conditions for granting an open source license:

1- Free Redistribution
Any party can sell or distribute the open source program, and any person or organization can sell the program as part of another set of programs, and does not require paying any fees for this sale.

2- Source Code
The program or programming language must include the Source Code, and the source code must be available to everyone. In cases where the program is not distributed with the source code, there must be a well known method of obtaining the source code, and the cost of copying must be at a reasonable price, preferably downloading it online without charge.

3- Derived Works Derivative works and derivative works are
permitted on the source code, to produce new sub-programs, and their distribution must be permitted under the same original software license terms.

4- Integrity of the Author's Source Code The
distribution of the source code may be restricted in a modified form only, if the license permits the distribution of Patch Files with the source code, for the purpose of modifying the program during reprogramming. The license must explicitly allow the distribution of embedded software from the modified source code, and the license may require derivative works to have a different name or version number from the original software.

5- No Discrimination Against Individuals or Groups.
The license must not discriminate against any person or group of persons. Everyone who decides to obtain the license and work to amend, share, and publish it is equal, whether it is one person or group of persons.

6. No discrimination in employment against specific areas No Discrimination Against Fields of Endeavor
must not restrict the license of any person to benefit from the program or programming language in a particular area, but to take advantage of them available in all areas without discrimination.

7- Distribution of License Distribution of
license attached to the program or programming language must apply to all persons to whom the program is redistributed, without the need to implement an additional license by these parties.

8- The license must not be specific to a specific product. License
rights must not be specific to a product. The rights associated with the program should not depend on the fact that the program or the programming language is part of the distribution of another program. In the event that the program is extracted from this distribution and used, or distributed under license terms Associated program.

All parties to whom the software is redistributed must have the same rights, such as those granted in conjunction with the original software distribution.

9- The license must not restrict other programs. License Must Not Restrict Other Software.
The license must not place restrictions on other programs that are distributed with the licensed program. For example, the license must not insist that all other programs distributed on the same media be open source programs. .

10- The license must be neutral. License Must Be Technology-Neutral.
No license conditions may be based on any individual technology or use of a specific User Interface. The license must operate under any circumstances normally.

What is the difference between open source software and closed source software?
In this section we will explain the difference between open source software and closed source software.

Closed Source Software
In closed source programs, only the original authors of proprietary software can copy the program, examine it, and change it legally. In order to use proprietary programs, the user must usually agree to accept the license terms when using the program the first time, and if the user does not agree to the terms of the license, authors will not allow him The program using it explicitly.

Among the most famous closed source and proprietary programs:

Ios is the operating system for Apple's smartphones and tablets. No person or any developer can legally amend the basic codes of the system, and if the amendment occurs in the codes, this is considered illegal by Apple. The modified operating system illegally comes out from under the umbrella of Apple, and the company itself is not responsible for it.

Microsoft Office Software Package.

Adobe Photoshop is a
program for creating and editing graphics and digital photography, which is produced by Adobe.

Open source software
In open source programs, the matter is completely different, as its authors make the Source Code available to others who want to view, copy, learn from, change, or share this code.
Among the most famous open source programs and systems:

Android
is the most widely used smart phone operating system in the world, which is used by most smartphone manufacturers. Android is developed by the Open Handset Alliance, which is managed by Google.

It is a grouping of eighty-four telecom companies, component companies, phone manufacturers and software developers, who are committed to developing open standards for mobile phones such as:
HTC, Dell, Motorola, INTEL, NVIDIA, Vodafone, Samsung, Huawei, Toshiba.

LibreOffice
is a free and open source office software package, the program works on most most operating platforms such as Windows, Macintosh and Linux, LibreOffice provides six programs to meet all the office needs of document editing, data processing, presentations, drawing, database building, and other simple office uses The Complex is produced by many of the nonprofit contributors and developers called The Document Foundation.

WordPress
WordPress is an open source content management system that can be installed on web hosting , and through it an integrated website can be created. Anyone can download and modify the basic WordPress files according to their specific website requirements.

Is open source software only important for computer programmers?
Certainly, open source technology and open source thinking both benefit programmers and non-programmers, and since the first inventors have built a large portion of the Internet on open source technologies, such as Linux and the Apache web server application, anyone who uses the internet today benefits from open source software.

In fact, every time computer users view webpages, check e-mail, chat with friends, broadcast music over the Internet, or play multiplayer video games, their computers or mobile phones connect to a global network of devices. Computer, which uses open source software to direct and transfer data to their local devices.

Computers that do all of this important work are usually located in remote locations that users do not actually see, or cannot physically access, which is why some people call these computers remote computers.

People rely more and more on remote computers when performing tasks that they might do on their local devices. For example: they may use online word processing, email management, and photo editing software, which they do not install and run on their personal computers, They simply access these programs on remote computers using a web browser or a mobile application, and when they do, they participate in "remote computing".

One of the most important forms of open source software is Cloud Computing or remote computing, because it includes activities such as file storage, photo sharing or watching videos, which are not only included in local devices, but also a global network of remote computers.

Cloud Computing is an increasingly important aspect of daily life with internet-connected devices, and some cloud computing applications, such as Google Drive, are proprietary to open source users, allowing files to be shared, copied, and downloaded by anyone else.

Why do people prefer to use open source software?
People prefer open source software over proprietary software for a number of reasons, including:

Control
Many people prefer open source software, because they have more control over this type of program, and they can check the code to make sure they don't do anything they don't want to do, and they can change parts of it that they don't want, or use these programs for whatever purpose they want is not Only in a predetermined manner.

Training
Many people love open source software, because it helps them to become better programmers, because the open source code is available to everyone, and students can easily study it while they learn to create better software, and students can also share their work with others.

Security
Some people prefer open source software, because they consider it safer and more stable than proprietary programs, since anyone can view and modify open source programs, and it may discover one of the errors that the original program authors may miss, and work to correct or delete it.

Because many programmers can work on part of an open source program without asking permission from the original authors, so they can repair, update and upgrade open source software more quickly than they can use proprietary software.

Stability
Many users prefer open source programs than monopoly programs for important long-term projects, because they make sure that their tools will not disappear or get stuck in the event that the original content developers stop working on them.

What is the difference between building from top to bottom and building from bottom to top?
Top – Down Build
When Apple introduces the new version of the IOS operating system, only the company's team is responsible for developing and upgrading the operating system, and providing all of its maintenance services. This means that we will obtain a product from Apple and any details related to it require our return to Apple itself.

If we represented this thing in the form of a pyramid, then Apple itself will be at the top of the pyramid and the users at the bottom of the pyramid, meaning that all products issued by Apple will follow a single path, which is the way from the top of the pyramid to the bottom of it ie Apple to the user, and users cannot or Any person or other developer outside the company may contribute to the development of the product itself.

This type of relationship is a one-sided relationship which is known as Top-Down-Build.

Down – Top Build
Imagine that Google is releasing a new version of the Android smart phone operating system, it not only launches the operating system for smart phone manufacturers to buy, but also puts it for developers around the world to view, develop and improve, and this means a new pattern From communication and a new type of exchange of experiences, where there is an ongoing exchange of information and experiences between the company and users and manufacturers of smart phones.

In this way, a user can also put up a new version for Android phones, and it may be better than what Google itself may release, meaning that the process of obtaining a new product has not taken place on the one hand, but with the participation of many people.

Here the construction process takes place from the bottom of the pyramid, i.e. from the user base, all the way to the top of the pyramid, which is the company that exports the system, and this is called construction from the bottom to the top.

The bottom-up build strategy is completely applied to Linux operating system. Since the Linux open source operating system was launched in 1991 and has made its source code open to everyone, the Linux operating system has become one of the most successful operating systems ever, because its development and release process New versions of it are constantly being made by developer groups around the world.

And if a problem or a vulnerability is found in one of the versions, anyone around the world can try to modify and improve it, and this has made Linux one of the most powerful systems against viruses and hacking attacks, which has also made it one of the most preferred systems in the field of Network Server. What also made it the most widespread operating system around the world in the field of super computers or super computers, where 95% of super computers around the world rely on the Linux operating system.

Moral tendency to build an open source technology world
The strategy of working with programs and open source programming languages ​​is no longer just an important development in the course of modern technical development, but for many people it has become a different business philosophy and a comprehensive thought, the idea of ​​open source is based on the concept of Sharing, i.e. making all details available to anyone around the world And it's completely free.
The concept of Information Sharing has many positive effects for technical work in general, including:

Monopoly monetary breakdown by the big tech companies broke.
It opened the door for developers and creators around the world to better demonstrate their capabilities.
Make the concept of property rights more flexible, thereby facilitating the transfer and exchange of information.
From these concepts, there is what is known as the Open Source Movement, which believes in the noble goals of cooperative, participatory and free exchange of information around the world, without any monopolistic restrictions or restrictions on the transfer of information via property rights.

These wonderful concepts have become valuable to most developers working in the field of open source, and these concepts have become a spirit of work and philosophy that brings together millions of developers around the world, which led to the emergence of a wonderful ethical and philosophical concept with very impressive effects, which is the concept of “building from the bottom up” -Build ”.

 share your thoughts on open source programming and programming languages, how they might contribute to shaping a new, more sophisticated world, and modern technology available to everyone without distinction and free of charge.

Comments