(1) contributors and recipients
Contributors
It refers to the provision Code (Including the original or modified ones) released by the people or entities (teams, companies, organizations, etc.), contributors according to participation in a soft
The time sequence of open-source parts can be divided into an initial contributor and subsequent contributors.
Recipients refers to the accessors of open-source software or projects. Obviously, subsequent contributors also belongs to the recipients column.
(2) source code and object code
Source code is written in various languages.Source codeBy using the source code and documentation, you can understand the architecture of the entire software and the implementation methods of a specific function.
Object Code refers to the code generated after the source code is compiled, similar to the "class library", which provides various interfaces for others.UseAccording to my understanding, it is something like common DLL, ativex, OCX controls. (I don't know if this is correct)
The purpose of these two concepts is to make it clear that some open-source systems only release object code. Of course, most of them release source code. Many protocols also have explicit constraints on "What code should you publish.
(3) deriv ATI Ve module and separate module
Derivative module refers to the code generated based on or containing the "initial" or "obtained from others" open source code, which is an enhancement of the original "source code" (not equal to the increase), improve and continue the module, meaning "derivative module ".
The separate module refers to an independent module developed by referring to or using the original "source code", which does not contain or depend on the original "Source code module", meaning "independent module ".
The purpose of understanding these two concepts is that many protocols have clear commercial release regulations regarding what is derivative and independent when it comes to commercial release.
Next, let's talk about several common protocols. In fact, I have provided several articles above. Article Links to some common Open source Protocol I already have a clear description. I am just adding some personal understanding here. I hope it will be helpful to people who have little contact with me.
GPL (GUN General Public License) vesion 2.0 1991
The most common open-source protocol, which is used as the authorization protocol for a well-known Linux. Two of the most notable characteristics of GPL are known on the Internet as "virus sexual transmission" and "commercial release of closed source is not allowed ".
The so-called "virus transmission" means that GPL requires that all sources derived from the GPL protocol authorization (that is, the derivativemodule mentioned above), or
The source code of the right must be followed by the GPL protocol. Just like a virus, it is "poisoned" when the relationship is attached. The purpose of GPL is to ensure the production under the protection of GPL protocol.
Product, and will not be subject to any other agreement or authorization constraints. That is, the source code related to GPL can be Free Obtain
. For example, if your improved Linux system uses the open-source module authorized by GPL (which must also be used, you cannot re-build the kernel by yourself. If so, you do not have to call
Linux .), In this case, your entire Linux product must follow the GPL protocol to open source, and cannot be released in other ways. In this way, such
Linux-this function is authorized by the GPL protocol. Free Obtain the source code. The other function is under other protocols and cannot obtain the source code. This provision is a great convenience for those who use or study the product.
"Closed-source commercial release is not allowed" means that, under the GPL authorization, your software products can be commercially released and sold for money. However, at the same time, you must also open-source the source code of the product using the GPL protocol.
Publish it for free. Some people may be confused, sell, and open source at the same time. Who will buy it? How can this product make money ?? This involves the business model of open-source products.
If you have some information, you can refer to some of the above articles on the link. Later, I may write an article about the business model of open-source projects.
A key point of commercial release under the GPL protocol, as Robbin of the Java sight Forum said, GPL is the copyright of the software source code, rather than the binary
Copyright of the current version. You have the right to obtain the source code of the software for free, but you do not have the right to obtain the binary release version of the software for free. The only restriction of GPL on the software release version is that your release version must be complete
The source code is provided together.
BSD (Berkeley Software Distribution)
Unlike GPL, BSD is an open-source protocol that gives people great freedom. Its biggest feature is that recipients can "Do whatever you want" the source code is almost free
Modify, use it freely, and then release it in other ways (commercial or open-source ). However, when you do these things, you must follow the following rules:
1. If the re-release product contains the original "source code", the original "source code" must contain the BSD Protocol in the original code.
2. If only binary class libraries/software (object code/product) are released, you must include the BSD Protocol in the original code in the Library/software documentation and copyright statement.
3. Open-source author/organization name and original product name cannot be used for marketing.
In fact, the purpose of these rules is only to achieve one goal: it is something of others. If someone else is open-source with BSD, you cannot make any declaration and take possession of yourself, it cannot be used for commercial promotion in the name of another person. You only have absolute control over your own things.
For example, after you use open source code (A) to modify or add other products, product B is generated. At this time, your control over B is determined by yourself, you can use any protocol to make it open-source, or close the source for commercial release.
However, if B contains a part of A or a (not included at all), then in the copyright statement of product B, it must be mentioned that you have used a and attached with
Source protocol. In addition, B cannot be named as the original open-source author to promote commercial promotion.
BSD Code encourages code sharing, but it must respect the copyright of the Code author. BSD allows users to modify and re-release code, and can also use or develop commercial software release and sales on BSD code,
Therefore, it is a friendly protocol for commercial integration. Many companies prefer the BSD Protocol when selecting open-source products, because they have full control over these third-party code and can modify or
Secondary Development.
Apache licence vesion 2.0
Apache licence is a well-known non-profit open-source Apache protocol. Similar to BSD, this Protocol also encourages code sharing and respect for the work of the original author.
Permission, which also allows code modification and re-release (as open source or commercial software ). The conditions to be met are similar to those of BSD: (the original English text is provided to facilitate more accurate understanding)
1. A copy of Apache licence is required for the recipients.
(You must give any other recipients of the work or derivativeworks a copy of this License)
2. If you have modified the code, you must describe it in the modified file.
(You must cause any modified files to carry prominent noticesstating that you changed the files)
3. In the derivative module (Code derived from modification and inclusion of source code), the protocols, trademarks, patent statements and other instructions required by the original author must be included.
(You must retain, in the source form of any derivativeworks that you distribute,
All copyright, patent, trademark, and attribution noticesfrom the source form of the work,
Excluding those notices that do not pertain to anypart of the derivative works)
4. If the product to be released contains a notice file, Apache licence must be included in the notice file. You can add your own license to notice, but it cannot be expressed as a change to the composition of apachelicence.
Apache licence is also a friendly license for commercial applications. Users can also modify the code as needed to meet their needs and release/sell as open-source or commercial products.
Lgpl
Lgpl is an open-source protocol designed mainly for class libraries. Unlike GPL, any software that uses/Modifies/derives the GPL class library must use the GPL protocol.
Lgpl allows commercial software to use the lgpl class library through class library reference (Link) without the need for open source commercial software code. This allows open source code using the lgpl protocol to be used by commercial software as a class.
Database reference concurrency distribution and sales.
However, if you modify or derive the lgpl protocol code, all the modified Code, the additional code involved in the modification part, and the derived code must adopt the lgpl protocol. Therefore, the open-source lgpl Protocol
Code can be referenced by commercial software as a third-party class library, but it is not suitable for commercial software that requires second-development based on lgpl protocol code.
Cpl (common public liecense) vesion 1.0
CPL
It is an open source protocol proposed by IBM and approved by OSI (Open Source Initiative. Mainly used for some IBM or IBM
Related Open Source Software/projects. Such as the well-known Java Development Environment eclipse and the RIA development platform open Laszlo.
CPL is also a friendly protocol for commercial applications. It allows recipients to use, copy, distribute, disseminate, present, modify source code, and implement secondary commercial release of closed source after modification. This is similar to BSD, it is also an open-source protocol with high degrees of freedom. However, you must follow the following steps:
1. When a contributors releases the entire or part of the source code again, it must continue to follow the CPL open-source protocol for release, rather than using other protocols for release. Unless you are authorized by the original "source code" Owner.
2. Under the CPL protocol, you can release the source code without any modification. However, if you want to open the source code after modification, and when you release objectcode again, you must declare that its source code can be obtained, and inform the retrieval method.
3. when you need to mix the source code under CPL as a part with other private source codes into a project for release, you can publish the entire project/product in a private protocol, however, you need to declare which part of the Code is under CPL, and declare that the part of the Code continues to follow Cpl.
4. independent modules (separate module), no need for Open Source