Open Source (1)

Source: Internet
Author: User
Tags sql server express
Document directory
  • GNU General Public License (GPL)
  • GNU Lesser General Public License (LGPL)
  • BSD license
  • Microsoft Public License (Ms-PL)
Background

Recently, I had the honor to participate in Wang Kewei's open-source project iToday. For details, refer to a beautiful User Interface open-source project (iToday) on my Windows embedded system ). Ke Wei's appeal is Superman, and the Q group is full of 200 people. If you expand the capacity, you can add QQ Group 61284128 if you are interested. I have been working on some open-source projects for a while and I will talk about some of my ideas on open-source projects.

 

Introduction

This article describes some of my ideas about open source, including how to use open source projects, frequently used open source licenses, and how to participate in open source projects.

 

First close contact with open source

About 10 years ago, several companies in China made Linux releases, including red flags, blue dots, and surfing. At that time, the Linux boom was on the rise, in addition, a person named Fang Dongxing wrote many books that challenged Microsoft and Linux, as if to find the way to revitalize Chinese software. I joined the trend and started to access Linux. I started playing Linux as my first close contact with open source. The initial impression of open-source is that it is a masterpiece of technical arrogance. It is free of charge, but it is easy to use without commercial software. When I think of Linux, I think of Linus Torvalds. In my opinion, Linus is the world's top programming expert. I made an operating system three or two times. This system can even compete with Windows. Second, it was free. At that time, I thought that it would be possible to use a very low price or even not to pay for it. At that time, I used a 56k modem and it was impossible to download Linux from the Internet, therefore, I need to purchase Linux releases such as red flag and blue dot, but these releases are much cheaper than Windows, basically because of the price of the CD. using open-source Linux, I finally got rid of the piracy problem. However, free of charge requires a price. Initially, it seems that Linux is not easy to use. In fact, it refers to the UI, No matter GNOME or KDE, it is far from Windows 98 at that time. Because at that time, Shell was not understood, the idea is retained on the open-source layer, although free of charge is not easy to use.

In fact, many ideas were wrong at the time. Linux was not a technical cool-man, but a team was required to participate and continue to promote it for today's Linux. as mentioned below, if it is open-source. In addition, open source is not necessarily free. Free is only the form of some Open Source Licenses. Open source is not necessarily more difficult to use than commercial software. The ease of use of software is not directly related to the software license.

How to use open source and open source is free of charge?

With my first contact, I gradually started to use some open-source products for projects, mainly using Linux, PHP, MySQL and other open-source products. I didn't pay too much attention at the beginning, open source is "Free". I don't know how many people believe that "open source is Free", but according to The GNU's Free Software Definition ), this Free refers to the Free (liberty), rather than the Free (no charge ). These permissions include the following aspects:

    The freedom to run the program, for any purpose (freedom 0 ).
    The freedom to study how the program works, and change it to make it do what you wish (freedom 1 ).
    Access to the source code is a precondition for this.
    The freedom to redistribute copies so you can help your neighbor (freedom 2 ).
    The freedom to distribute copies of your modified versions to others (freedom 3 ).
    By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

    The freedom to use the software, regardless of the purpose ).
    Have the freedom to study how the software works, and be able to rewrite the software to meet the user's own needs (one of the Freedom ). Obtain the source code of the software before achieving this goal.
    There is the freedom to re-spread the software, so everyone can come to London by spreading the free software (Freedom 2 ).
    There is a freedom to improve the reuse of the software and publish a revised version for the public, so that the entire community can benefit.
    As mentioned above, the source code of the software is provided before the software is obtained (Freedom 3 ).

     

    At the same time, open source can be used as a commercial project, and the above article will be quoted again.

    Free software does not mean non1_cial. A free program must be available for specified cial use,
    Inclucial development, and inclucial distribution. inclucial development of free software is no longer unusual;
    Such free communications cial software is very important. You may have paid money to get copies of free software,
    Or you may have obtained copies at no charge. But regardless of how you got your copies,
    You always have the freedom to copy and change the software, even to your copies.

    Free Software is therefore not "non-commercial software 」. Free software must be used for commercial purposes. The Business Development Model of free software has become very common; such a free business software is very important.
    Users can obtain GNU software at a cost, or users can obtain the software for free,
    However, no matter how the user acquires the software, She/they must always have the right to copy or rewrite it, or even sell it.

     

    Open source is not equal to free. Please refer to the following definition.

    When talking about free software, it is best to avoid using terms like give away or for free,
    Because those terms imply that the issue is about price, not freedom.
    Some common terms such as piracy embody opinions we hope you won't endorse.
    See Confusing Words and Phrases that are Worth Avoiding for a discussion of these terms.
    We also have a list of proper translations of free software into various ages.

    When talking about free software, it is best not to use words like "give" or "free, because the wording "free" means "free price,
    While ignoring the true meaning of freedom to use software. Some words have similar meanings like "piracy", and we hope that free software users will not want to be referred to as such.
    For details about the usage of these terms, see the article "confusing words, please avoid them as much as possible". We also have multiple language versions of "free software translation.

    Can open-source code be used at will?

    If you only use open-source software, do not use the source code, or change the open-source software, it is generally free to use, such as using FireFox. However, free use is not an open-source patent, and many commercial software can be used for free, such as SQL Server Express and Visual Studio Express.

     

    But what about using open-source code? At first, I thought that the world's code was a huge copy, and who got the code was who. Is that true? Open source grants users the right to freedom, while users assume the obligations to the community, and the rights and obligations coexist. The most common problem is whether the user needs to return the source code to the community after modifying the source code. This is described in the Free Software Definition (Free Software Definition.

    However, rules about how to package a modified version are acceptable, if they don't substantively limit your freedom to 
    release modified versions, or your freedom to make and use modified versions privately. Rules that if you make your version
    available in this way, you must make it available in that way also can be acceptable too, on the same condition.
    (Note that such a rule still leaves you the choice of whether to publish your version at all.) Rules that require release of
    source code to the users for versions that you put into public use are also acceptable. It is also acceptable for the license to
    require that you identify your modifications as yours, or that, if you have distributed a modified version and a previous developer
    asks for a copy of it, you must send one.

    Focus on the last sentence. If you have released your modified version, the previous developer needs you to get an updated source code, and you must give it to him/her.

     

    After the modification, whether it needs to be submitted to the community is actually related to the specific license. Different license has different provisions. For some frequently used Open Source license, see the following link http://www.gnu.org/licenses/license-list.html

     

    Common Open-Source Licenses

    The following describes the license that we often encounter. I have not studied the legal meaning of each license. The following is my personal understanding of the license, the license legal document shall prevail.

    GNU General Public License (GPL)

    GPL is a license used by many open-source software, including the well-known Linux. One feature of GPL is that developers need to feedback to the community for any changes. Therefore, commercial development cannot be modified based on GPL unless you release your software as GPL. GPL is divided into three versions: GPL, GPLv2, and GPLv3. GPLv3 was developed to a certain extent to restrict Microsoft. One advantage of writing Richard Stallman at Why Upgrade to GPLv3 is to restrict Microsoft.

    Another threat that GPLv3 resists is that of patent deals like the Novell-Microsoft pact. 
    Microsoft wants to use its thousands of patents to make users pay Microsoft for the privilege of running GNU/Linux,
    and made this pact to try to achieve that. The deal offers rather limited protection from Microsoft patents to
    Novell's customers.

    Microsoft made a few mistakes in the Novell-Microsoft deal, and GPLv3 is designed to turn them against Microsoft,
    extending that limited patent protection to the whole community. In order to take advantage of this protection,
    programs need to use GPLv3.

    Microsoft's lawyers are not stupid, and next time they may manage to avoid those mistakes.
    GPLv3 therefore says they don't get a “next time”. Releasing a program under GPL version 3 protects
    it from Microsoft's future attempts to make redistributors collect Microsoft royalties from the program's users.

    Because GPLv2 and GPLv3 are incompatible, even Linux's boss Linus does not like GPLv3, and GPLv2 has always been used as the Linux kernel license.

     

    GNU Lesser General Public License (LGPL)

    Because GPL cannot be used for commercial development, commercial software companies want to make products on Linux. For example, what should we do if Oracle needs a Linux version, oracle certainly does not want to disclose the core code of its relational database management system. A compromise scheme LGPL is generated. Some system libraries, such as CRuntime libraries, can use LGPL authorization, and commercial software can call these system libraries. Commercial software may not disclose its source code as long as it does not change the source code of these system libraries. The latest QT uses two licenses: LGPL and commercial license. If you use the LGPL version of QT without changing QT, you can use QT for free development. LGPL drives users' enthusiasm to a certain extent. For library development, LGPL has great advantages. On the one hand, it facilitates promotion, and on the other hand, it also gives feedback to the community when the user modifies the library.

     

     

    BSD license

    The BSD license can be divided into FreeBSD license, Modified BSD license, and Original BSD license. The Modified version removes the advertisement-Related Description. BSD license is a license with a high degree of freedom. Users can modify the original software without contributing to the community, or even convert open source code into commercial products for sale. The BSD code can be used with confidence.

     

    Microsoft Public License (Ms-PL)

    Including Microsoft Public License (Ms-PL) and Microsoft Reciprocal License (Ms-RL), is Microsoft's Open Source license, microsoft Public License (Ms-PL) is used in many Codeplex codes ). Many of the Code released by Microsoft is based on Ms-PL. When Ms-PL is used, the feedback to the community is not required when the code is modified, but the Ms-PL information must be included in the Code.

    Sometimes you may hear such a sound in the community, so do not use Microsoft's technology when it is open source. Windows Embedded CE is not as good as Linux because it is not open source. I feel that Microsoft is going to be a devil. Maybe 10 years ago, Microsoft was opposed to open source. But I know that Bill started from selling software, and the software is free. Where is his income. Have you ever wondered whether Bill contributes less to philanthropy than Linus. Open-source and non-open-source are not ethical issues. Commercial and open-source software can coexist peacefully. In addition, Microsoft has actively invested in open source in recent years, including the creation of CodePlex to provide free host services for open-source projects. In the Embedded field, the Windows Embedded CE kernel is also Open Source (Shared Source is not Open Source), so it cannot be said that Windows CE is superior to Windows CE because of Linux Open Source. For the Source code of Windows Embeede CE, refer to Windows Embedded CE Shared Source.

     

    There are many more open-source licenses. I will introduce these issues and I am not familiar with these laws myself. But every time I plan to use an open-source software and use the code, I will take a serious look at these licenses to see if I can use them. If you know more about open source and have research on license, please contact us. This article is written here. The next article describes how to participate in open source, how to participate in open source, and what to get.

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.