Each OSS license has special requirements for both the use of open source code and its modification. The “Open Source Initiative” organization contains a list of OSS licenses, which must go through the approval process, as they must comply with all open source definition requirements. There are over 70 OSS licenses, but the 10 most popular ones are applied in 90% of cases.
To utterly simplify the explanation of the OSS licenses, the rough division would be to:
- Restrictive or prohibitive (copyleft) licenses
- Permitting or permissive (non-copyleft) licenses
Restrictive or copyleft licenses guarantee all users the aforementioned four freedoms free of charge, provided that this open source code or any program that is created using this open source code guarantees the same terms to its users. In other words, if OSS is protected by a restrictive license, you cannot restrict further users from using that code or its modifications. The four freedoms are forever linked to this open source code.
The essence of restrictive licenses is that the source code is publicly available, so that other developers can study, modify and improve it, and that such improved software remains free and accessible to the entire world. If there were no copyleft, or if there would be no restrictions to such software being commercialized, the derivatives of this software would very quickly become unavailable to everyone, and users of these derivatives would have no more possibility to use such a code freely, to copy, distribute or modify it. The intention is for a restrictive license to motivate developers who are not exclusively profit-oriented, to promote various software solutions. Certain important programs (for example, the GNU C ++ compiler) were created exclusively thanks to them.
The most famous restrictive license is the GNU General Public License (GNU GPL or just GPL) compiled by Richard Stallman. For example, Linux operating systems are based on GPL licenses. For example, if you were to write the code and publish it under the GNU GPL license, another developer who modifies your code and wants to distribute it would have to do it solely under the GNU GPL license. In other words, both the original and the new code must be open source. Otherwise, another developer may be responsible for violating your copyright.
On the other hand, permissive open source licenses provide software users with the unlimited freedom to use, study, and modify software, and contain minimum redistribution requirements for this software. If OSS you use is under the permissive license, you can also use the source code as part of the closed-source software, or software protected with a proprietary software license.
The most popular permissive licenses are BSD, MIT and Apache. For example, the known software packages that use one of the MIT license versions include Expat, Ruby on Rails, Node.js, jQuery, etc.