GNU, Free Software and Open Source 自由软件与开源软件

https://blog.csdn.net/icycolawater/article/details/77921998

什么是自由软件 Free software

此处给出自由软件的定义,用以衡量一款软件是否为自由软件。一直以来,我们不断改进这个定义,以此澄清并解决我们遇到的各种问题。参考下方的修改历史,我们详细列出了全部的影响自由软件定义的修改记录。

“自由软件” 尊重用户的自由,并且尊重整个社区。粗略来讲,一个软件如果是自由软件,这意味着用户可以自由地运行,拷贝,分发,学习,修改并改进该软件。因此,“ 自由软件 ” 是关乎自由的问题,与价格无关,软件如何定价并不影响它是否被归类为自由软件。英文中,我们使用Free Software。由于Free一词既有自由,也有免费的意思。而Free Software中的Free是指 “ 自由言论 ” 中的自由,而非 “ 免费 ” 这一意项。为避免歧义,在使用英文时,我们也会借用法语或西班牙语的“Libre Software” 来指自由软件。

我们支持软件用户的自由,因为我们坚信这是每个用户应得的。有了这些自由,软件用户,无论是个人还是集体,都可以掌控所运行的软件,并决定这些程序如何为自己服务。如果一个软件令用户失去了这种控制权,我们则称它为 “ 非自由 ” 的,或 “ 专有 ” 的程序。与自由软件相反,非自由软件会操控它的用户,而软件的开发者则掌控着软件。 这使得非自由软件成为了非正义力量的帮凶

四项基本自由

如果一个软件是自由软件,那么它必须为用户提供以下四项基本自由:

  • 自由度0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
  • 自由度1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
  • 自由度2:用户可以自由地分发该软件的拷贝。
  • 自由度3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。

一个软件只有提供了以上所有的自由给它的用户,才可以被成为自由软件。否则,它就是非自由的。尽管我们也可以比较非自由软件为其用户提供的自由度,但是我们认为,无论如何,非自由软件本身是不道德的。

无论在哪种情况下,只有所有用户使用的代码都满足了这四项基本自由,该程序才能被视作自由软件。例如,有两个程序,甲程序运行的时候会自动调用乙程序。发布甲程序意味着用户必须使用到乙程序,那么必须甲乙两个程序都是自由的,甲程序才是自由的。如果通过修改甲程序,使其不再依赖乙程序,那么仅仅以自由软件的形式发布甲程序即可。

“ 自由软件 ” 不等于 “ 非商业软件 ” 。一个自由软件必须允许商业用户,商业开发,和商业发布。商业开发自由软件早就司空见惯了,这样的自由软件非常重要。你可能需要花钱购买自由软件的拷贝,也可能免费拿到。但是无论你如何获得你的拷贝,作为用户,你的四大自由都会被保证,你可以自由地运行,修改,发布甚至出售你拿到的自由软件。

.。。。。。

Categories of free and nonfree software

This diagram, originally by Chao-Kuei and updated by several others since, explains the different categories of software. It's available as a Scalable Vector Graphic and as an XFig document, under the terms of any of the GNU GPL v2 or later, the GNU FDL v1.2 or later, or the Creative Commons Attribution-Share Alike v2.0 or later.

Commercial software

“Commercial” and “proprietary” are not the same! Commercial software is software developed by a business as part of its business. Most commercial software is proprietary, but there is commercial free software, and there is noncommercial nonfree software.

For example, GNU Ada is developed by a company. It is always distributed under the terms of the GNU GPL, and every copy is free software; but its developers sell support contracts. When their salesmen speak to prospective customers, sometimes the customers say, “We would feel safer with a commercial compiler.” The salesmen reply, “GNU Ada is a commercial compiler; it happens to be free software.”

For the GNU Project, the priorities are in the other order: the important thing is that GNU Ada is free software; that it is commercial is just a detail. However, the additional development of GNU Ada that results from its being commercial is definitely beneficial.

Please help spread the awareness that free commercial software is possible. You can do this by making an effort not to say “commercial” when you mean “proprietary.”

自由软件与开源软件的区别:为什么开源误导了自由软件的重点

https://www.gnu.org/philosophy/open-source-misses-the-point.zh-cn.html

并非全部的自由软件用户和开发者都赞同自由软件运动的目标。1998年,自由软件阵营中的部分成员分裂出来,并以“开源”为名继续开展活动。一开始,由于“自由软件”(free software)一词可能引起歧义,这才提出开源这个说法。但是很快开源这词便开始异化,使得其背后的逻辑与自由软件运动的初衷相去甚远。

开源软件和自由软件这两个词在很大程度上描述的是同一类软件,但是它们所基于的价值观却有着本质上的区别。开源是指一套开发方法;而自由软件则是一场社会运动。对于自由软件运动而言,自由软件是一个道德底线,是对用户自由的基本尊重。开源软件则与此不同,开源哲学考虑的是怎么做把软件做得“ 更好 ” — 仅仅从实用的角度。开源的哲学里,非自由软件之所以不好,是因为他们采用了一种劣等的开发方式。开源的大多数讨论关注的不是是非,而仅仅是是否流行和是否成功;就是一个典型的例子

然而,对自由软件运动来说,非自由软件是一个社会问题,其解决方法是停止使用非自由软件并开始使用自由软件。

“自由软件”,“开源软件”,既然都指的是同类软件(或基本是同类软件),那何必在名字上这么较真呢?有这个必要的。因为不同的词汇传递着不同的思维。尽管现在看来,用另一个名字称呼自由软件可以给你同等的自由,但若要长期维护用户的自由,则必须让人们意识到自由的价值。倘若你想帮助人们做到这点,那么使用“自由软件”这一称呼则尤为重要。

作为自由软件运动的成员,我们并不将开源阵营视为敌人。我们的敌人是专有(非自由)软件。但我们希望人们至少应该知道,我们所捍卫的是用户的自由。所以我们不愿被开源支持者们贴错标签。

实践中,开源与自由软件的区别

在实践中,开源的要求比自由软件宽松一些。据我们所知,迄今发布的自由软件源代码都是开源软件。尽管大多数开源软件也同样是自由软件,但会有一些例外。首先,有些开源许可证对用户过于苛刻,它们就没有被列为自由软件。比如,“Open Watcom” 就非自由的,因为其许可证不允许修改该软件和私自使用该软件。幸运的是,很少软件会使用这些许可证。

另外,实际操作时还有更重要的一点。很多产品带有检测可执行文件签名功能的计算机,它会禁止用户安装或运行修改后的可执行文件,而只有一家特权公司才能生产可执行文件或完全控制该产品。我们把这种设备称作“tyrants”,即“专制暴君”;把这种行为称为“tivoization”,该名称来自我们首先看到TiVo公司使用该方法发布产品。在这样的产品上运行的可执行软件,哪怕是以自由软件许可证发布了源代码,但是用户却无法运行修改后的可执行文件,所以其可执行文件不是自由软件。

开源的标准没有意识到这个问题;它们只关心源代码的许可证。这样以来,这些编译自诸如Linux等开源和自由软件的可执行文件,原封未动,是开源的,但不是自由的。许多Android产品就包含这样的非自由Linux可执行文件(tivoization)。

How Free Software and Open Source Relate as Categories of Programs

https://www.gnu.org/philosophy/free-open-overlap.html

另外一个关于“开源”的误解是:开源软件意味着“不用 GNU GPL 许可证”。这个误解又常常伴随着另外一个误解:“自由软件就是使用 GPL 许可证的软件”。这显然是扭曲了自由软件和开源软件。GNU GPL 许可证也被认证为开源软件许可证。很多开源软件许可证也同时是自由软件许可证。除了GPL以外,还有很多自由软件许可证

Various Licenses and Comments about Them

https://www.gnu.org/gnu/why-gnu-linux.html

https://www.gnu.org/philosophy/java-trap.html

[转帖]GNU, Free Software and Open Source 自由软件与开源软件的更多相关文章

  1. sed 手册 http://www.gnu.org/software/sed/manual/sed.html

    http://www.gnu.org/software/sed/manual/sed.html

  2. [转帖]GNU/Linux与开源文化的那些人和事

    GNU/Linux与开源文化的那些人和事 时间:2015-09-24   作者:admin 分类:新手入门 阅读:167次 http://embeddedlinux.org.cn/emb-linux/ ...

  3. 为什么使用开源软件(Open Source Software)

    国产软件的流氓化看起来已经蔚然成风,在安装到电脑之后,它们就不想再离开,甚至它们还想将同一家族的产品通过后台下载全部推送给你.搜狗输入法最近就被发现悄悄推送了搜狗浏览器. 一位用户用 debugvie ...

  4. 虚拟化(四):vsphere高可用功能前提-共享存储搭建(使用微软提供的iscsi software target,也可以使用免费开源的openfiler)

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  5. 【转帖】龙芯将两款 CPU 核开源,这意味着什么?

    龙芯将两款 CPU 核开源,这意味着什么? https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core 文章挺不错的 也讲 ...

  6. GNU 是什么?

    https://www.gnu.org/ GNU 是什么? GNU is a Unix-like operating system that is free software—it respects ...

  7. Jabber Software:Jabber-NET、agsXMPP与Wilefire[转]

    本篇介绍两个使用.NET技术,确切的说是使用C#写的Jabber Code Libraries – Jabber.NET.agsXMPP,以及一个Java写的跨平台Jabber Server – Wi ...

  8. Open Source v.s. Open Core

    摘要 本文翻译自 CMSWire 网站的<Open Source vs. Open Core: What's the Difference?>,主要介绍 Open Source 和 Ope ...

  9. [转帖]linux基础知识大纲

    linux基础知识大纲 https://blog.csdn.net/CSDN___LYY/article/details/80810403 1.Linux操作系统概述Linux操作系统的发展过程.创始 ...

随机推荐

  1. 堆内存腐败异常(STATUS_HEAP_CORRUPTION---0xC0000374)

    什么是内存腐败 当堆内存位置的内容由于编程行为而被修改,超出了原始程序构造的意图时,计算机程序就会发生内存腐败,也可以叫内存破坏:这被称为违反内存安全.内存腐败的最可能原因是编程错误.当腐败的内存内容 ...

  2. 7kyu kata

    https://www.codewars.com/kata/isograms/train/java CW 大神 solution: public class isogram { public stat ...

  3. A simple dispiction of dijkstra

    前言 \(SPFA\)算法由于它上限 \(O(NM) = O(VE)\)的时间复杂度,被卡掉的几率很大.在算法竞赛中,我们需要一个更稳定的算法:\(dijkstra\). 什么是\(dijkstra\ ...

  4. mysql 组合聚集函数

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

  5. Servlet使用反射机制

    传统servlet存在的问题 每一个不同的请求都要写Servlet,导致整个项目servlet过多,不易维护 解决方案 同一个模块只写一个Servlet,然后每一个请求传一个参数,后台根据参数取调用不 ...

  6. NoSql数据库Redis系列(6)——Redis数据过期策略详解

    本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存sessi ...

  7. 第2课第7节_Java面向对象编程_内部类_P【学习笔记】

    摘要:韦东山android视频学习笔记  1.什么是内部类:在类的内部定义一个类,内部类可以访问类的私有属性 class Outer{ ; class Inner{ public void print ...

  8. Netty回调与Channel执行流程分析

    在上一篇的基础上修改代码 1.TestHttpServerHandle  类 package com.example.firstexample; import io.netty.buffer.Byte ...

  9. powshell 输出字符编码的问题,设置为utf-8

    https://blog.csdn.net/qianxiao_1/article/details/79463409 $PSDefaultParameterValues['Out-File:Encodi ...

  10. android -------- 解决RecyclerView显示不全只显示一条item的问题

    布局文件1 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android= ...