Home > Article > Backend Development > What is the open source protocol of go language?
The go language adopts the BSD open source license. The BSD open source license is a license that gives users a lot of freedom. They can use it freely, modify the source code, and re-release the modified code as open source or proprietary software. BSD code encourages code sharing, but the copyright of the code author needs to be respected.
The operating environment of this tutorial: Windows 10 system, GO 1.11.2, Dell G3 computer.
What is the open source protocol of go language?
Go language comes from Bell Labs and was developed from the Limbo language. Limbo is used to develop distributed applications on small computers. It supports modular programming, strong type detection at compile time and runtime, in-process typed communication channels, atomic garbage collection and simple abstract data types. Its purpose Because: it can run safely even on minicomputers without hardware protection. Go and Limbo were developed by the same group of people and have the same excellent features. Go was born at Google in 2007. Google supports the use of 20% of free time to develop experimental projects, and it came out in 2009. The Go language is open source and adopts the BSD license.
BSD open source agreement is an agreement that gives users great freedom. You can use it freely, modify the source code, and re-release the modified code as open source or proprietary software. When you publish code that uses the BSD protocol, or do secondary development of your own products based on the BSD protocol code, you need to meet three conditions:
If the re-released product contains If source code is included, the source code must contain the BSD license from the original code.
If you redistribute only binary class libraries/software, you need to include the BSD protocol in the original code in the documentation and copyright statement of the class library/software.
Do not use the name of the author/organization of the open source code and the name of the original product for marketing purposes.
BSD code encourages code sharing, but the copyright of the code author needs to be respected. BSD is a protocol that is friendly to commercial integration because it allows users to modify and redistribute code, and also allows commercial software to be released and sold using or developed on BSD code. Many companies prefer the BSD protocol when choosing open source products, because they can fully control these third-party codes and can modify or re-develop them when necessary.
Extended information: Comparison of five open source protocols (BSD, Apache, GPL, LGPL, MIT)
BSD open source protocol (original BSD license, FreeBSD license, Original BSD license)
BSD open source agreement is an agreement that gives users great freedom. Basically, users can "do whatever they want" and can use it freely, modify the source code, or re-release the modified code as open source or proprietary software.
But the premise of "doing whatever you want" When you publish code that uses the BSD protocol, or do secondary development of your own products based on the BSD protocol code, you need to meet three conditions:
If the re-released product contains source code, the BSD protocol in the original code must be included in the source code. If only a binary class library/software is redistributed, the BSD license in the original code needs to be included in the documentation and copyright statement of the class library/software. Do not use the name of the author/organization of the open source code or the name of the original product for marketing purposes.
BSD code encourages code sharing, but the copyright of the code author needs to be respected. BSD is a protocol friendly to commercial integration because it allows users to modify and redistribute code, and also allows commercial software to be released and sold using or developed on BSD code. Many companies prefer the BSD protocol when choosing open source products, because they can fully control these third-party codes and can modify or re-develop them when necessary.
Apache License
Apache License is a protocol adopted by Apache, a well-known non-profit open source organization. This agreement is similar to BSD. It also encourages code sharing and respects the copyright of the original author. It also allows code modification and redistribution (as open source or commercial software). The conditions that need to be met are similar to BSD:
You need to give the user of the code an Apache License. If you modify the code, it needs to be stated in the modified file. Extended code (modifications and code derived from source code) must contain the agreements, trademarks, patent statements and other instructions specified by the original author that need to be included in the original code. If the re-released product contains a Notice file, the Apache License must be included in the Notice file. You can add your own license to the Notice, but it cannot appear to be a change to the Apache License.
Apache License is also a license friendly to commercial applications. Users can also modify the code to meet their needs when needed and publish/sell it as an open source or commercial product.
GPL(GNU General Public License)
The Linux we are very familiar with adopts GPL. The GPL agreement is very different from licenses such as BSD and Apache License that encourage code reuse. The starting point of the GPL is the open source/free use of the code and the open source/free use of the reference/modification/derivative code, but the modified and derived code is not allowed to be released and sold as closed source commercial software. This is why we can use all kinds of free Linux, including Linux from commercial companies and various free software on Linux developed by individuals, organizations, and commercial software companies.
The main content of the GPL agreement is that as long as a product under the GPL agreement is used ("use" refers to class library reference, modified code or derivative code) in a software, the software product must also adopt the GPL agreement. Both must be open source and free. This is called "infectiousness". There is no problem in using GPL-licensed products as a separate product, and you can also enjoy the advantage of being free.
Since GPL strictly requires that software products that use GPL class libraries must use the GPL protocol, open source codes that use the GPL protocol, commercial software, or departments that have confidentiality requirements for the code are not suitable for integration/adoptation as class libraries. and the basis for secondary development.
Other details, such as the need to accompany the GPL agreement when re-distributing, are similar to BSD/Apache, etc.
LGPL (GNU Lesser General Public License)
LGPL is an open source license of GPL designed mainly for use with class libraries. Unlike the GPL, which requires that any software that uses/modifies/derives a GPL class library must adopt a GPL license. LGPL allows commercial software to use LGPL class libraries through class library references (links) without requiring the code of open source commercial software. This allows open source code using the LGPL license to be referenced by commercial software as a class library and released and sold.
But if you modify the code or derivatives of the LGPL agreement, all modified code, additional code involving the modified part and derivative code must adopt the LGPL agreement. Therefore, the open source code of the LGPL protocol is very suitable for being referenced by commercial software as a third-party class library, but it is not suitable for commercial software that hopes to use the LGPL protocol code as a basis for secondary development through modification and derivatives.
GPL/LGPL both protect the intellectual property rights of original authors and prevent anyone from using open source code to copy and develop similar products
MIT(MIT)
MIT is the same broad license as BSD. The author only wants to retain the copyright without any other restrictions. In other words, you must include a statement of the original license agreement in your distribution, whether you release it as a binary It is still released as source code.
Recommended learning:Golang tutorial
The above is the detailed content of What is the open source protocol of go language?. For more information, please follow other related articles on the PHP Chinese website!