软件大致可分为:自由软件和非自由软件

  自由软件及非自由软件的种类。
 
  下面是一些在讨论自由软件时会经常提及的术语,它解释了哪些种类是和别的相交迭或者是别的种类的一部分。
  阅读其它文章曾有 | “自由软件(Free software)” | “开放源码(Open source)” | “公共软件(Public domain software)” | “Copylefted软件(Copylefted software)” | “非copylefted软件(Non-copylefted free software)” | “GPL软件(GPL-covered software)” | “GNU系统(The GNU system)” | “GNU软件(GNU software)” | “准自由软件(Semi-free software)” | “私有软件(Proprietary software)” | “共享软件(Shareware)” | “免费软件(Freeware)” | “商业软件(Commercial software)” | 等。
  同时请参考:Confusing Words which You Might Want to Avoid。

自由软件(Free software)

  自由软件是指允许任何人使用、拷贝、修改、分发(免费/少许收费)的软件。尤其是这种软件的源代码必须是可得到的。从某种意义上说,“没有源代码,就称不上是(自由)软件。”

  如果一个程序是自由的,则它可以被像GNU/Linux这样的自由操作系统所包含。

  有许多方法可以使一个程序变成自由的。具体而言,有许多决定性的因素,下面列出了一些:

  自由软件实质上是免费的,不标价出售。但有时软件公司在提及价格时使用“free software”这个字眼,他们的意思可能是你可以免费获得一份二进制代码的拷贝,也可能是在你所购买的机器中已经包含了一份拷贝。但是,这种说法与我们在GNU计划中“free software”的意义是不同的。

  由于在操作中极易混淆,因此一旦软件公司说他们的软件是自由软件,您一定要检查您是否得到了自由软件所应包括的一切。有时,您得到的是自由软件,有时不是。

  在许多语言中,“free”一词有两种意义:一是自由,二是免费。如法语的“libre”和“gratuit”,英语的“gratis”都明白无误地指价格(免费),但没有明白无误地说明“自由”的意义。这是不幸的,因为如果有这个词,在此处它将非常有用。

  通常自由软件都比非自由软件更加可靠。
 
开放源代码软件(Open Source software)

  “开放源代码”软件或多或少有些自由软件的味道,但我们更赞成自由软件这种说法(这个连接解释了个中原由)。
 
公共软件(Public domain software)

  公共软件就是没有版权的软件。它是非copyleft自由软件(non-copylefted free software)的一种特殊情况,意味着某些拷贝或修改版不再是自由的。

  有时人们很随便地使用“公共(public domain)”这个字眼来表示“自由(free)”或“免费获得(available gratis)”。然而,“公共(public domain)”本身有非常精确的含义——“无版权(not copyrighted)”。为清楚起见,我们推荐“公共(public domain)”一词只使用这个含义;至于其他含义,我们再用其他词来表达。
 
Copylefted软件(Copylefted software)

  Copyleft软件是一种自由软件,它的分发条款不允许分销商在分发或修改软件时增加任何额外的限制。这意味着,无论是否修改过,该软件的每个拷贝都是自由软件。

  在GNU计划中,我们对所写的所有软件都实行copyleft,因为我们的目标就是使每个用户得到“自由软件”所体现的自由。Copyleft连接更详细地解释Copyleft如何运作以及我们为什么使用它。

  Copyleft是一个通用的概念,实际上它也是一个程序,你需要一套具体的分发条款。有很多方法来著述免费分发条款。
 
非Copylefted自由软件(Non-copylefted free software)

  非Copyleft自由软件是指作者允许对其进行分发、修改、及增加一些附加限制的软件。

  如果程序是自由的但非Copyleft的,那么它的拷贝或修改版本可能就不再是自由的了。软件公司可能对该程序进行了修改,也可能没有,但都可以将它进行编译,然后作为私有软件产品进行分发。

  X Window系统阐明了这一点。X 联盟在发布X11时的分发条款中指明该软件是一非Copylefted自由软件。只要你想要,你就可以免费得到带有分发条款的拷贝。然而,它还有一个付费版本,主要用于流行的工作站及PC。如果你正使用这种硬件,那么对你来说,X11就不是自由软件的。
 
GPL软件(GPL-covered software)

  GNU GPL (General Public License)是一个针对免费分发程序的具体分发条款。GNU工程使用她作为分发大部分GNU软件的分发条款。
 
GNU系统(The GNU system)

  GNU系统是一个完全免费的、类Unix操作系统。

  一个类Unix操作系统有许多程序组成。我们从1984年开始为这个系统累积构件;“完整GNU系统”的第一个测试版本在1996年发布。我们希望这个系统在一年左右的时间就可以完全成熟以推荐给普通用户使用。

  GNU系统包括所有的GNU软件,也包括如X Window和TeX等非GNU软件。

  由于GNU的目的是自由,因此在GNU系统中每一个构件都是自由软件。然而它们并不都是免费分发的,任何一种自由软件都可以被吸收进来,只要它们能帮助系统达到技术目标。我们能够也确实在使用一些非Copyleft软件,如X Windows 系统。
 
GNU 软件(GNU software)

  GNU软件是在GNU计划赞助下发行的软件。大多数GNU软件是免费分发的(copyleft),但不是所有的都这样;然而,所有的GNU软件必须是自由软件。

  有一些GNU软件是由自由软件基金(Free Software Foundation)成员编写的,但大多数GNU软件是志愿者捐献的。有些捐献软件是由自由软件基金免费分发,但有一些软件由作者享有版权。
 
准自由软件(Semi-free software)

  准自由软件不是免费的,但允许个人出于非盈利性地使用、拷贝、分发、及修改(包括分发修改版本)。PGP是一个准自由程序的例子。

  准自由软件比私有软件好得多;但是还有问题,我们不能在自由操作系统中使用它。

  copyleft中所做限制的目的是为了保护所有用户的自由。对我们来说,对使用程序加上的限制的目的是防止其他人附加上其他的限制。准自由程序存在一些限制,决非单纯出于自私的目的。
不可能在自由操作系统中包含准自由软件,其原因在于操作系统的分发条款是其中所有程序分发条款的总和。增加一个准自由程序到操作系统中就使整个系统变成准自由的。我们不想那样做出于以下两个理由:
  ●我们坚信自由软件是为了每一个人——不仅为了学校和业余爱好者们,也包括商业。我们想邀请商业使用GNU系统,因此我们不能在里面包含准自由软件。
  ●商业分发自由操作系统,包括基于Linux的GNU系统,是非常重要的;而且用户也乐于能买到商业CD-ROM分发软件。在操作系统中包含准自由软件会剥夺商业分发的权利。
  自由软件基金本身是非商业性的,因此我们获准“在内部”合法使用准自由软件。但我们并没有那样做,因为我们可以获得一个程序并把它包含在GNU中,而那样做会破坏我们的努力。

  如果有一个工作需要某软件来完成,而我们并没有一个自由程序来完成它,因此我们有一个缺口,我们不得不对志愿者说,“GNU计划中没有一个程序来做这件事,因此希望你们能写一个。”如果我们使用了一个自由程序来做这件事,则我们自食其言,也(使我们和听信于我们的人)丧失了编写一个自由替代软件的动力。因此,我们不能这样做。

私有软件(Proprietary software)

  私有软件不是自由及非自由软件,对它的使用、传播、或修改是禁止的,要么需要你申请许可,要么它限制你不能充分自由地使用它。
  自由软件基金遵守规定,不在计算机中安装任何私有软件,除非为了编写那个程序的替代品而暂时安装到计算机上。除此之外,我们找不到其他借口要安装私有程序。
  例如,在80年代,我们认为在计算机安装Unix是正当的,因为我们要编写一个Unix的免费替代品。现在,由于有了自由操作系统,因此这个借口就不再使用了;我们消除了所有的非自由操作系统,任何新计算机上安装的都是自由操作系统。
  我们不能强迫GNU的用户或GNU的贡献者必须依此规则行事;它只是给我们自己制定的规则,但我们希望你能下决心遵从它。

免费软件(Freeware)

  “freeware”没有一个清晰的定义,但是它通常指那些允许分发不允许修改的软件包(不提供源代码)。这些包不是自由软件,因此不要用“freeware”来指自由软件(自由软件)。
 
共享软件(Shareware)

  共享软件允许用户分发该软件,但是任何人想继续使用它需要支付一笔许可费。
  共享软件不是自由软件,也不是准自由软件。有两个原因:
  ●对大多数共享软件而言,不提供源代码,因此,你不可能修改程序。
  ●共享软件不允许在不支付许可费的情况下进行拷贝和分发,即使出于个人的非盈利性的目的。(实际上,用户经常忽视分发条款而这样做;当然,分发条款是不允许这样做的)。

商业软件(Commercial Software)

  商业软件由商业公司开发,通过收取使用费而牟利。“商业”和“私有”不是一回事!大多数商业软件是“私有的”,但也有商业自由软件,也有非商业、非自由的软件。
  例如,GNU Ada 永远在GNU GPL条款下进行分发,而且,每一个拷贝都是免费的,但它的开发者却有付费支持合同。当推销员对用户这样说,有时用户回说,“我们觉得商业编译器比较安全一些。”,推销员则回答,“GNU Ada是商业软件,只不过碰巧它也是一个自由软件。”
  对GNU计划来说,它的重点是另一个顺序:重要的是GNU Ada是一自由软件;至于它是否是一商业软件不是至关重要的。然而,商业公司在此基础上进行的额外开发则有明显的牟利目的。

转载于:https://www.cnblogs.com/spdevelop/archive/2005/11/02/266865.html

软件分类(自由软件、开放源代码软件、公共软件......)相关推荐

  1. 开源软件和自由软件_自由和开源软件的经济学

    开源软件和自由软件 零边际成本 (Zero Marginal Cost) At the core of the financial aspects of Free and Open Source is ...

  2. 软件分类:自由软件、开放源代码软件、公共软件、私有软件、版权所无软件...

    自由软件(free software) "Free software" means software that respects users' freedom and commun ...

  3. Linux4种常用软件安装方法(源代码,二进制,rpm,yum)

    1.软件安装 软件安装即为Linux包安装,相当于Windows中的软件安装.主要包括源码编译安装.bin二进制执行文件安装.rpm包安装.yum在线安装4种方式. ● 源码安装适用于开放源代码包的软 ...

  4. 三门问题代码_三门专业专业课程旨在弥合企业对开放源代码的使用与理解之间的鸿沟

    三门问题代码 尽管开放源代码软件(OSS)在IT中无处不在,但许多业务人员仍不了解开放源代码是什么以及开放源代码与专有软件有何不同. 根据布兰代斯大学的说法 ,"开源软件现在占所有核心数字基 ...

  5. 边缘计算与开放源代码的完美结合

    随着人工智能.大数据和物联网等技术的快速发展,边缘计算已经成为一种普遍使用的计算方式,尤其是在物联网领域.与此同时,越来越多的开放源代码项目也在不断涌现,这些项目为边缘计算提供了更多的选择和灵活性.那 ...

  6. [机器翻译]参与 Microsoft 开放源代码软件项目的方式

    下面是一个事实:Microsoft 托管在 GitHub,包括.NET 编译器平台,也称为"Roslyn"具有多达 4 万行代码等一些相当大的大约 2,000 开放源代码软件 (O ...

  7. python是自由开放源代码软件_开放源代码定义之历史篇

    引言 本文节选自<开源之声--开放源代码运动文集>一书中由著名开源领袖 Bruce Perens 所执笔的<开放源代码定义>一文,开源之道尝试以开放源代码原作者的视野,从而看看 ...

  8. 科技部马颂德:中国积极支持开放源代码软件发展

    1月22日,"2004中国开源软件竞赛"在京落下惟幕,这是国内首次举行的大规模的开放源代码竞赛,也是迄今为止国内最高规格和最大规模的开源软件竞赛,国防科技大学获团体冠军,西北工业大 ...

  9. 商业软件、开源软件与自由软件开发模式的区别

    程序代码一般情况下有两种形式:目标代码和源代码.人们根据开发公司对源代码的"态度"(是否公开)将软件分为商业软件和开源软件.现在我们来看看各种软件的开发模式有何不同. ○1商业软件 ...

最新文章

  1. 字符设备驱动程序之异步通知
  2. 实验二:用机器指令和汇编指令编程
  3. python中改变参数值的方法_Python实现partial改变方法默认参数
  4. css3帮你轻松实现圆角效果,不一样的前端页面。
  5. wordpress 怎么获取站点标题
  6. linux支持ppp网卡,linux和安卓上(ppp widget)使用3g网卡的方法
  7. HUSTOJ随笔3-配置文件
  8. oppoa5降级教程_OPPO A5官方出厂rom系统刷机包下载_卡刷升级包降级回退包
  9. space-evenly的兼容性问题
  10. 模拟量开环控制系统的组成
  11. 机器指令与微指令的关系
  12. 音频输出设备是如何决定的
  13. pasa_example
  14. 数值分析--matlab迭代求根式
  15. “数学界的诺贝尔奖”出炉,4人获奖
  16. 马上消费金融基于 KubeSphere 的 AI 平台开发实践
  17. 由移动价值链到知识价值链─裕隆日产汽车案例
  18. 实践数据湖iceberg 第二十四课 iceberg元数据详细解析
  19. 基于at89c51单片机的led数字倒计时器设计c语言,基于AT89C51单片机的LED数字倒计时器设计1.docx...
  20. win10输入法看不见选字框_win10系统玩LOL打字看不到候选框的解决方法

热门文章

  1. 深耕MySQL - 如何使用联合索引执行查询
  2. 什么是次世代游戏?次世代游戏前景怎么样?
  3. [java基础入门]java期末常考题。定义一个父类person,该类中有两个私有的属性姓名name和age,实现两个属性的封装 定义构造等等来初始化成员变量name和age,在定义显示show方法将
  4. VMware网络NAT模式无法连接解决方法
  5. IDEA中使用properties连接mysql8.0.13
  6. 公考复盘(二)——第五季第六季
  7. 如果你是iPhone用户,要学会这样清理手机垃圾,减缓卡顿小妙招
  8. oracle character set mismatch,EntityFramework查询oracle数据库时报ora-12704: character set mismatch...
  9. google的RateLimiter限流器的使用
  10. SAE助力南瓜电影7天内全面Severless