当前位置:网站首页>The real definition of open source software
The real definition of open source software
2022-07-02 06:06:00 【Teacher Liu Trent】
If you think open source software is shareware 、 Free software and public domain software , Then you are not the only one who has this view .
When you hear “ Open source software open source” When the word , Do you think it has something to do with sharing software shareware、 Freeware freeware Or public domain software public domain Such terms are synonymous ? If so , You are not the only one who has this view . Many people inside and outside the software industry believe that these terms are the same . This article explains the differences between these terms , Open source is a revolutionary licensing and development model . Share my experience with the above software , May be the best way to explore differences .
Shareware and freeware
As early as 1982 year , When I was there Apple II Plus On the use of BASIC When writing code , I started working as a computer programmer . I recall going to the local computer store in my hometown , And find the expensive floppy disk containing game and utility software in the plastic bag . please remember , This is from the perspective of a middle school student .
however , Some software can be obtained for free or at the lowest price . According to the specific license mode , It is called shareware or freeware . In shared software mode , You can only use the software for a certain period of time , If you find it useful , You are required to send the check to the author of the software .
however , Some sharing software actually encourages you to copy and provide it to your friends . This model is often called free software . in other words , The difference between the exact definition of shareware and freeware is very small , Therefore, it is easy to simply call the two together “ shareware ”. Although I'm not sure , But I don't remember whether I ever offered any software author the cost of using shared software , Mainly because I had no money when I was a teenager , But I definitely like using these software programs , And I learned a lot about computers .
Review the past , I now realize , If the software is provided under open source license terms rather than shared software terms , So as a new programmer , I could have learned a lot from growing up , And can achieve more . This is because few shareware will provide source code ( namely , Human readable software form ). Shareware also includes license restrictions , The recipient is prohibited from trying to disclose its source code . If you cannot access the source code , It is difficult to understand the actual working mode of the software , Thus, it is difficult to expand or change its functions . This makes the end user completely rely on the original author of the shared software to make any changes or improvements .
Use shared software mode , It is almost impossible for any community of developers to influence code , And further innovate around the code . Redistribution and commercial use may also be further restricted . Although shareware may be free in terms of price ( At least it was free at first ), But it is not free in terms of freedom , And you are not allowed to learn and innovate by exploring the internal principles of the code .
This leads to a big problem : How is it different from open source software ?
The foundation of open source licensing
First , We need to understand “ Open source ” It refers to license mode and software development mode , Both are very different from shareware . In a way called non “ Left version ”copyleft Under the open source form of Open Source License , Provide users with key freedom rights , For example, there are no restrictions on accessing source code ; Can be sold for any purpose 、 Use or give away the software ; You can modify the software .
This form of license does not require payment of any royalties or license fees . Because the license is highly relaxed , It can be used without negotiation , A surprising result of this licensing model is its unique capabilities , It can make countless software developers work together to make new changes to the code 、 Useful changes and innovations . Even though technically , In this license mode, there is no need to provide source code , But almost everyone can use it to view 、 Study 、 Modify and distribute to others .
Not “ Left version ” Another aspect of open source licensing is , Any recipient of such software can add other license restrictions . This means the original author who licensed the code in this form , There is no way to prevent the recipient from further licensing to others under more restrictive terms . for example :
Suppose the author Noah Wrote some software , And according to non “ Left version ” The open source license distributes it to the recipients Aviva. then ,Aviva Modified and improved Noah Software for , She has the right to rely on non “ Left version ” Open source license terms use the software . then ,Aviva You can decide to impose further restrictions on any recipients who may restrict the use of the software , For example, where or how to use it ( for example ,Aviva A limitation can be added , It is stipulated that the software can only be used in the following regions : California , And it is not allowed to be used in any nuclear power plant ). Even if Aviva You can access the source code , You can also choose never to publish the modified source code to others .
Unfortunately , Countless proprietary software companies use non “ Left version ” Open source licensed software . actually , Shared software programs can be restricted by adding shared software types ( for example , Cannot access source code or exclude commercial use ) To use non “ Left version ” Open source licensed software , Thus non “ Left version ” Open source license code is converted into shared software license mode .
Fortunately, , Many use non “ Left version ” Proprietary software companies that license open source software see the benefits of releasing source code . These organizations are generally organized through, for example GitHub Such software storage platforms provide modified source code to their recipients or the wider open source community , So as to continue to maintain the persistence of the open source model , Realize a virtuous circle of innovation . This is not entirely for charitable purposes ( Or at least not usually ): These companies want to encourage community innovation and further improvement , So that they also benefit .
meanwhile , Many proprietary software companies do not choose to do this , This is also completely in line with non “ Left version ” Provisions of the open source license terms .
“ Left version ” Licensed open source software
1989 year , A new kind is called GNU General public permit ( Also known as GPL license ) The open source license of has been developed , Its purpose is to ensure that the software “ Born Free ”( Like freedom of speech ), And can always maintain this freedom , This and non “ Left version ” Open source licensed software sometimes happens differently . As a unique application of copyright law , Just follow these rules ( I will introduce it later ),GPL Licenses ensure continuous software freedom . This unique application of copyright is called “ Left version ”copyleft.
And non “ Left version ” Like open source software ,“ Left version ” The license allows the recipient to use the software without restriction 、 Check the source code 、 Modify software , And further distribute the original or modified software to other recipients . And non “ Left version ” Open source licenses are different ,“ Left version ” Open source licenses require all recipients to have these same freedoms . Unless you don't follow the rules , Otherwise, these freedom rights can never be taken back .
send “ Left version ” Open source licenses can be enforced , And the reason for people to comply with the law is the application of copyright law . If “ Left version ” The recipient of the code does not comply with the license terms ( for example , Add any other restrictions on the use of the software or do not provide source code ), Its license will be terminated , And because he no longer enjoys the legal license to use the software , He will become a copyright infringer . therefore , The “ Left version ” The free rights of any downstream recipient of the licensed software are guaranteed .
Beyond the basics : Other software licensing modes
I mentioned public domain software earlier , Although it is often confused with open source software , But this model is different . Public domain software refers to the software that has taken steps to check and learned that there is no copyright corresponding to the software , The most common situation is that the software copyright expires or is abandoned by the author .( In many countries / region , The copyright protection mechanism is not clear , This is why some public domain software may choose the open source license mode as an alternative .) No license is required to use public domain software . Although if the source code is available , Many people will think that public domain software is a form of open source software , But whether the public domain software becomes without a license “ Open source software ”, Is the subject of a lot of controversy .
Interestingly , There are many open source projects that use small modules of public domain software to achieve certain functions . There are even software that claims that the whole program belongs to the public domain , For example, the SQL Database engine is used in many applications and devices SQLite. Software without license terms is also very common .
Many people mistakenly believe that this unlicensed software is open source software , It belongs to the public domain , Or unlimited free use . In most countries ( Including the U.S. ), The copyright of the software existed at the time of its creation . This means that you cannot use it without a license , Unless it gives up the copyright in some way , And put it in the public domain . There are some exceptions to this general rule , For example, implied license or reasonable use at the legal level . But in terms of how to apply them to specific situations , The situation is very complicated . With the intention of making it comply with the open source license terms , I don't recommend providing software without license terms , Because it leads to confusion and potential abuse .
The benefits of open source software
Like I said before , Open source is an efficient software development model , And has the great ability to promote innovation . But what does that mean ?
One of the benefits of the open source licensing model is that it greatly reduces the friction of innovation , Especially the innovation made by users other than the original author . This friction is limited , Because using open source software usually does not need to negotiate license terms , Thus greatly simplifying and reducing the use cost . In turn, , This creates an open source ecosystem , It encourages rapid modification and combination of existing technologies to form new things . These changes can usually be fed back into the open source ecosystem , Thus, an innovation cycle is constructed .
Drive a lot of things ( From your toaster to the Mars spacecraft ) Countless kinds of software running , It is the direct result of this ability to easily combine various programs —— Open source development mode makes all these software come true .
边栏推荐
- 使用HBuilderX的一些常用功能
- 神机百炼3.52-Prim
- Linkage between esp8266 and stc8h8k single chip microcomputer - Weather Clock
- 神机百炼3.53-Kruskal
- 如何使用MITMPROXy
- 如何使用MITMPROXy
- The official zero foundation introduction jetpack compose Chinese course is coming!
- Format check JS
- [C language] simple implementation of mine sweeping game
- 经典文献阅读之--SuMa++
猜你喜欢
Comment utiliser mitmproxy
Compte à rebours de 3 jours pour l'inscription à l'accélérateur de démarrage Google Sea, Guide de démarrage collecté à l'avance!
AttributeError: ‘str‘ object has no attribute ‘decode‘
500. 键盘行
Replace Django database with MySQL (attributeerror: 'STR' object has no attribute 'decode')
The official zero foundation introduction jetpack compose Chinese course is coming!
PHP 开发与测试 Webservice(SOAP)-Win
Test case
Regular expression summary
51 single chip microcomputer - ADC explanation (a/d conversion, d/a conversion)
随机推荐
PHP gets CPU usage, hard disk usage, and memory usage
Deep learning classification network -- Network in network
Stick to the big screen UI, finereport development diary
Google play academy team PK competition, official start!
ROS2----LifecycleNode生命周期节点总结
No subject alternative DNS name matching updates. jenkins. IO found, the reason for the error and how to solve it
Addchild() and addattribute() functions in PHP
Unity shader learning notes (3) URP rendering pipeline shaded PBR shader template (ASE optimized version)
网络相关知识(硬件工程师)
Happy Lantern Festival | Qiming cloud invites you to guess lantern riddles
深度学习分类网络--Network in Network
Keepalived installation, use and quick start
来自读者们的 I/O 观后感|有奖征集获奖名单
Flutter hybrid development: develop a simple quick start framework | developers say · dtalk
CNN visualization technology -- detailed explanation of cam & grad cam and concise implementation of pytorch
ESP8266与STC8H8K单片机联动——天气时钟
JS determines whether the mobile terminal or the PC terminal
Redis Key-Value数据库 【高级】
External interrupts cannot be accessed. Just delete the code and restore it Record this unexpected bug
How to use mitmproxy