Open source is a software development method in which source code (computer programs) is open to the public and programs are developed by an unspecified number of volunteer developers .
Software developed by open source is called OSS (Open Source Software) .
Since the source code of software is the crystallization of technical capabilities and know-how, it is usually kept secret by companies. For example, many of Apple’s software source coats aren’t open.
OSS, on the other hand, is often free to use, and programs are allowed to be modified and redistributed. And it is being improved day by day by volunteer developers, and typical examples are Linux and Android as OS, Firefox as browser, and Ruby and Python as programming languages.
The idea of open source became popular in the book “The Cathedral and the Bazaar” by Eric Raymond, who was inspired by Linux. Later, he led the establishment of the non-profit organization “OSI (Open Source Initiative)” to raise awareness of open source.
- 1 Difference between free software and open source
- 2 Conditions for being open source
- 3 Three types of open source licenses
- 4 Benefits for open source creators
- 5 Advantages for open source users
- 6 Disadvantages on the side of open source users
- 7 Open source example
- 8 Social significance of open source
Difference between free software and open source
There are “free software” that can be used free of charge in the world, but be aware that OSS and free software are different. The source code of free software may not be open, and other than the basic functions may be charged. On the other hand, OSS is, in principle, “source code is open to the public” and “redistributable”. Furthermore, OSS is intended for corporate use such as OS and databases, and has the performance, functions, and quality that can withstand the usage environment required by users.
In addition, while free software can only be developers for vulnerability countermeasures, bug fixes, function additions / extensions, etc., OSS provides vulnerability countermeasures, bug fixes, function additions / extensions, etc. In order to maintain and maintain it at all times, we are developing in a community and developer company in which many developers from all over the world participate .
As you can see, OSS and freeware are completely different software.
Conditions for being open source
OSS with the cooperation of volunteer developers and users
OSS is a project whose development is left to the autonomy of developers and users. Therefore, companies need to design incentives to get their cooperation. In particular, it is important for users to have psychological commitments such as motivation for using software and interaction with other developers. At that time, it is also important to have an OSS with a wide range of applications.
Clarify the scope of consent to use
Although OSS is public, it does not give users unlimited rights. Normally, when using OSS, it is necessary to comply with a usage agreement called open license . Linux, for example, is based on a license called the GPL (GNU Public License). Also, Tensorflow is based on the Apache license. OSS providers need to clarify the scope of such usage consent and provide it to users.
Three types of open source licenses
There are some caveats when dealing with OSS. First of all, when introducing OSS, it is important to confirm the license form. Users are required to use the license in compliance with the license, so be sure to check the OSS license before using it.
There are many licenses, and the handling differs depending on the software. Some of them have restrictions on the purpose of use, so it is necessary to check the contents before use.
Open source is roughly divided into three licenses, which are “GPL”, “MPL”, and “BSD” .
“GPL” is a license mainly used in WordPress and Linux, and is a license commonly used in open source software. There are rules such as “copyright notice”, “freedom of copying, modification, and distribution”, and “when providing a program using GPL software, it must be GPL”, but basically GPL is “free software”. Not only in the simple sense that it can be distributed regardless of whether it is paid or free, but also in the sense that it has made the general public aware of the idea that “ software should be free “. It’s a very important license.
The “BSD License” is a license born from the University of California, Berkeley. It can be used only with the rule “copyright notice at the time of redistributing” with the license adopted for PHP and Apache. There are several types of BSD licenses, which are categorized by the terms of the license text, but the license is subject to the redistribution condition of “no warranty” and the copyright and the display of the license text itself. It is a regulation. If this condition is met, the object code created by duplicating or modifying the BSD license source code can be published without publishing the source code.
“MPL” is an abbreviation of “Mozilla Public License” and is a license adopted by Mozila software such as “Firefox” and “Thunderbird”. You can freely redistribute it, and you can get the source code freely. Under the MPL, the developers of the software have a basic GPL-like character, such as guaranteeing freedom of redistribution, guaranteeing the availability of source code, and prohibiting restrictions on derived versions. It can be said that you have.
On the other hand, if it is difficult to comply with the license terms due to restrictions such as laws and regulations, you can relicense by stating in a document that the scope of compliance is limited after making efforts to comply with the terms as much as possible. It is designed to give you more flexibility in applying the license than the GPL.
Benefits for open source creators
At first glance, it seems that there is no merit for companies to publish source code for free, but there are the following merits for involving external developers with open source.
Software development and function improvement based on user needs can be performed
In open source OSS, freedom of customization is one of the big advantages. Normally, commercial software cannot be customized to modify the source code, but open source software can.
Open source software has the advantage of being able to freely modify the source code and customize the software in this way, and it can be modified to meet the system requirements of the company or to the specifications required by the user, so it is commercially available software. It can be used when it cannot be handled by the number of users and companies that develop it .
OSS is equipped with international standard protocols and APIs, and it is possible to easily realize cooperation between systems and development of plug-ins, and it is also possible to modify the source code itself, so software based on user needs. You can develop and improve functions.
You can enter fields that your company does not specialize in
As the number of users developing open source increases, so does the possibility of developing in new fields. Therefore, if the developing user or company develops a new field, the open source developer will also strengthen support for that field or add new source code to advance into the new field. I can. Therefore, the more users you develop, the more likely you are to establish a business in a new field, and even if you create a business opportunity in a field that your company does not specialize in .
Can be monetized with user support for using OSS
Support for open source OSS includes “Community version support service ( free version )” and “Commercial version subscription support ( paid version )” There are two types. The community version is at your own risk from installation to operation, but it is the support of the community version that supports and supports it. Like commercial software, subscriptions (commercial versions) are committed to bugs and vulnerabilities, legal guarantees, support levels, etc., where open source developers can make money. The user can select “community version” or “commercial version” according to the importance of the system and the purpose of use.
Advantages for open source users
Since the source code is open to the public in open source, malicious programs and vulnerabilities can always be checked, so it is highly reliable . In addition, even if a vulnerability is discovered, it is characterized by quick correction, and since open sources can be viewed by anyone, malicious programs and vulnerabilities can be audited. In addition, if you find a vulnerable program or bug, you can fix it immediately, and since the service is not provided by a specific company, the risk of becoming unusable due to bankruptcy or closure is small. It is one.
Proprietary code updates, patching, and maintaining behavior will rely on the authors and companies that control the code, while open source is constantly updated through the active open source community. So you don’t have to rely on the original author.
As a result, proprietary software may be subject to service termination or support discontinuation due to the circumstances of the provider, but OSS can continue maintenance as long as there are users. Therefore, stable use and continuation over a long period of time can be expected.
Cost reduction possible
OSS has no license costs, so you can expect overall cost savings . This is a great advantage in software development because it can reduce not only the initial cost but also the license management after installation and the regular replacement cost. Since open source can use licenses free of charge, it is possible to reduce the cost of managing licenses and strengthening security against unauthorized use of licenses, resulting in a significant reduction in total costs. Can be expected.
In open source OSS, the degree of freedom of customization is one of the great merits. Normally, commercially available OSS cannot be customized to modify the source code, but open source can be customized.
Due to the merit that anyone can use OSS for secondary use, high-quality OSS with excellent reliability and stability has been developed and is used by many people.
In addition, one of the merits of OSS is that it is more versatile than existing software because it can be freely customized according to its own services. In recent years, companies have also developed their own products based on commercially available OSS. doing.
Vendor lock-in not possible
Open source OSS is often implemented by utilizing other open source, as well as the source code of the OSS itself being open. By using open technology to keep the source code open, it is less likely that users and businesses will be subject to the detrimental vendor lock-in that has been done in the past.
Disadvantages on the side of open source users
Must comply with license
When installing OSS, it is necessary to confirm the target license type. OSS is licensed individually for each software, and users are required to use it in compliance with the license, so you must check the OSS license type before using it . Must be.
However, there are various types of licenses, and there are more than 70 types of licenses. For example, when redistributing software, whether to require the release of the source code or to indicate that the source code has been changed. There are differences depending on the software. Some licenses limit the purpose of use in the form of “free for research purposes, paid for commercial use”, so it is necessary to get an accurate overview of the license before using it.
Not “free = OSS”
OSS is basically released free of charge, but not all software available for free is OSS, unless specifically stated as “OSS”. If it is not OSS, you cannot freely modify or redistribute it even if it is free of charge, so you need to be careful when using it. In particular, it is important to have an accurate understanding based on the license, not the image of “open source = free, free, and you can use it as you like”.
Derivatives also become OSS
Derivative works that improve or redistribute OSS are called “derivatives”. Open sources are basically free and free to use, but they also have copyright holders. Basically, it is only licensed as an open source at the will of the copyright holder, so there may be certain restrictions.
For example, licenses granted to open source have a clause often called “ copyleft clause “, and copyleft is a “secondary work while retaining copyright”. It should be available, modified, and redistributed by everyone, including. ” Typical copyleft licenses include licenses such as “GPL”, “LGPL”, and “CPL”.
The copyleft OSS license states that “improved and redistributed derivatives must be distributed under the same conditions as the original work”. For example, when an engineer improves software based on OSS. However, you cannot freely change to other licenses or conditions, and if you modify the OSS with a copyleft license, you are obliged to publish the source code.
Requires a knowledgeable engineer
The disadvantage of OSS is that it is difficult to use without programming knowledge. Also, the developer and the development community are not responsible for the bug, so you may have to fix the problem yourself.
OSS maintenance is performed daily, but since usage is the responsibility of the user, bugs may not be fixed. Also, manuals are often not available because you don’t know when and what changes will be made, and the development community doesn’t always fix code deficiencies right away. Therefore, you need to have the knowledge to find and fix code deficiencies yourself.
Since open source is basically free, there is basically no support for services . Paid software such as Microsoft can utilize the manuals that are available, but most open source OSSs do not have manuals, so you need to find out how to use them yourself.
Also, since the development community is not responsible for the service, it is basically difficult to get a response even if a problem occurs, and you have to solve it all by yourself.
However, you may be able to solve the problem through information published in the open source community or by asking the community questions. However, sometimes you can’t find the information you’re looking for, or when you ask a question, support is slow to answer, or you don’t get the answer itself.
Open source example
Linux is the OS of a computer and is one of the representative OSS. Linux was developed by Linus Benedict Torvalds and was published in 1991. Originally developed as an OS for personal computers such as Windows and macOS, it is now mainly used in various systems such as OSs for servers and supercomputers and embedded systems such as mobile phones and televisions.
Almost all versions of Linux were available for free and for commercial use, making it easy for users to adjust and customize to suit their intended use, and it has become popular with developers around the world. To date, Linux has been developed by more than 15,000 developers from more than 1,500 companies.
Software developed and distributed by companies using Linux is called “Linux distribution”. For example, Red Hat Enterprise Linux used in corporate data centers and Amazon Linux for Amazon Web Services are such. This is a typical example. Red Hat Enterprise Linux is a model that obtains a license fee for technical support and security management, and is a typical example of commercial use of Linux, which is a free OSS.
Tensorflow is a machine learning OSS that is the basic technology of AI (artificial intelligence) . (Released in 2015)
By using this OSS, users can perform image recognition, voice recognition, image search, translation, generation of artworks, and so on.
Tensorflow is published by Google, a for-profit company. Tensorflow is also used in the smart reply function (automatic reply function) installed in the company’s mail service “Gmail” and Google Translate.
Tensorflow is also provided as OSS to other companies. For example, French game software company “UBISOFT” is using Tensorflow to challenge “The Hieroglyphics Initiative”, a project to decipher ancient hieroglyphs in Egypt.
In addition, Google is offering a paid version called TensorFloe Enterprise based on this Tensorflow for enterprises.
In the future, it is expected that AI utilization will progress not only in the Internet business but also in each industry such as the restaurant industry and the autonomous driving field, and the background of Google’s provision of Tensorflow as an open source is By cooperating with leading projects in each industry through Tensorflow, we will aim for technological evolution of AI (artificial intelligence), and by taking the initiative in this field, we will try to monetize around AI in the future. It seems to be aimed .
WordPress is the most used open source CMS (Content Management System) in the world. WordPress is a CMS developed in the programming language PHP, which makes it easy to build dynamic sites with excellent usability, and is a service that focuses on the user’s better experience and has no knowledge of websites. It is a service that can be easily created by humans and is now widely used from personal blogs to corporate sites.
Born in 2003, taking advantage of the characteristics of open source development, engineers around the world have created and updated the attached plugins.
It is also widely used all over the world, and data has been published that 40% of all CMS sites in the world are made by WordPress . In Japan, more than 80% of CMS is WordPress, and it has abundant usage records such as being used on sites such as New York Times and CNN.
Social significance of open source
Utilizing open source has various merits and significance from the perspective of companies, but on the other hand, users and companies that do not have sufficient financial and development capabilities can build systems by using OSS. Open source has a social significance, such as being able to avoid being locked in by specific commercial software.