自由的Debian
原文:http://www.debian.org/intro/free
许多人在刚开始接触自由软件时都会很困惑,原因是自由软件中的自由一词并不是他们所期望的那样。对他们而言自由
意味着免费
。一本英文字典几乎能列出 Free
的二十种不同含义。其中只有一个是免费
的意思,其余都与自由和不强制有关。当我们说自由软件的时候,我们想传达的是自由,而不是免费。
仅仅意味着您不用付钱就能使用的免费软件根本谈不上自由。它们会禁止您传播,而且几乎可以肯定,它们会阻止您改善它们。软件标榜免费,在市场营销中通常是作为推销 相关产品以及打击竞争对手的一种武器,它们没有承诺不会中止免费。
真正的自由软件永远都是自由的。被放在公共领域中的软件可能被引用到一个非自由软件中,此时它的任何改进就不再被公开,无法造福社区 。要保持软件自由,必须遵循一定的著作权规定,并受许可证保护。
对于新手来说,一个软件要么自由,要么不自由。现实生活要比那个复杂的多。要理解人们在标榜自由软件时蕴涵了哪些信息,我们必须绕道去软件许可証的世界看一看。
著作权是一种手段,用来保护某些类型工作的作者的权利。在大部分国家,您所写的软件都是自动受著作权保护的。许可証是作者对别人使用他的作品 (在这里指软件) 的一种许可,是用户可以接受的条款。是否包含一个声明该软件使用方式的许可証,这一点取决于作者。要彻底弄请何谓著作权,请参考 http://www.copyright.gov/。
当然,许可证会视不同的情况而有所不同。软件公司为了保护它们的资产,通常只会 发行已编译过的程序,让人们无法读取源代码 ,并且在使用上做出很多限制。相反的,自由软件的作者们通常会提出以下这些要求:
- 不允许将他们的源代码用于非自由软件。既然他们发布了他们的源代码,就不希望有人将它占为己有。在这种情况下,源代码的使用就是一种信任: 您可以使用这些源代码,只要您遵循相同的规则。
- 保护源代码中作者的声明。这些人对他们做出来的成果感到十分骄傲,所以不希望有人将他们的名字删除之后冒称是自己写出来的。
- 源代码要能自由传播。大部份商业软件最大的问题就是在于,当遇到错误或者需要做定制的时候,因为没有源代码而无法除错或修改。而且,商业公司有可能决定不再 支持您使用的硬件。大部份自由软件的许可证都要求能自由传播源代码,这样能保护用户定制的权利。
- 任何包含他们工作成果的软件 (在著作权讨论中这被称为衍生软件) 也必须使用与他们工作成果相同的自由软件许可证。
许多人会写他们自定义的许可证。不过要写出一个您真正想表达的许可证是一件很麻烦的事。有太多人写出用词不精确或是内容有矛 盾的许可证。要写出一个可以在法庭上有效的许可证就更困难了。所幸的是,有一些已经写好的许可证可能就是您想要的。
目前三种最常使用的许可证是:
- GNU General Public License (GPL)。一些有关软件许可证的背景资料以及一份该许可証的副本可以在 GNU 网站 得到 。这是世界上最通用的自由许可証。
- Artistic License (艺术家的许可証)。
- BSD License。
这些许可证有以下的共通点:
- 您想在几台机器上安装该软件就可以在几台机器上安装该软件。
- 同一时刻可以有任意多的人使用该软件。
- 你想将该软件复制几份就可以复制几份,把它们送给任何你想送的人 (自由或开放地重新传播)。
- 不限制您对该软的改动 (除了一些完整的声明)。
- 不限制您的传播,甚至销售该软件。
最后一条,说您可以销售自由软件,听起来似乎跟自由软件的理念有冲突。事实上这是自由软件的一股重要力量。既然许可证允许软件的自由传播 ,某个人就可以在得到软件之后自行重新传播,甚至是尝试销售它们。实际上,软件的数字拷贝从本质上来说是零成本的 。另外供求关系也可以控制成本。为了方便用户,销售商可以把大量软件集中在一种介质上 (例如光盘),统一发 售并随意定价。如果有人想抬高价格牟取暴利,就会有其他竞争者进来压低价格。因此,您可以只用几块钱的价格买到由多张光盘组成的完 整的 Debian 发行版。
虽然自由软件并非完全没有约束 (只有公共领域的软件不受任何约束),它仍然提供给用户很大的弹性完成他们感兴趣的工作。同时,它也保护了作者的权利。这才称得上是 真正的自由。
Debian 项目是自由软件的鼎力支持者。因为有许多不同的软件许可证,所以用一份 Debian 自由软件指导方针 (DFSG) 来定义何谓自由软件。只有遵循这份指导方针的软件才能放在 Debian 发行版的 main 软件 仓库中。
自由的Debian的更多相关文章
- linux(raspbian)下mysql的安装,权限设置和用户管理
一 MySQL安装:(1) 使用apt-get安装, 由于raspbian是基于Debian的自由操作系统,debian默认自带apt-get指令安装应用因此可以使用来安装 sudo apt-get ...
- Building OpenCASCADE on Debian
Building OpenCASCADE on Debian eryar@163.com Abstract. When you are familiar with OpenCASCADE on Win ...
- X200s,Debian 8(Jessie) 安装流水帐
1. U盘启动安装 a. 因为无线网卡驱动是non-free,需要另外下载,对应X200s,文件是iwlwifi-5000-5.ucode,下完放到安装U盘的根目录下,安装时就不会再提示而是直接安装 ...
- 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?
来自 http://www.zhihu.com/question/19599986 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS? 想选择一个 Linux 发行版作为服务器. ...
- debian 学习记录-3 -关于linux -1
来源:<Debian标准教程>王旭 著 芬兰人Linus Trovalds 1991年1月2日···· 2006年初发布内核2.6.15 使用Andrew Tanenbaum < ...
- Debian、Ubuntu常用命令大全
注:本人是用的Debian,个别命令可能有问题. 原文:http://www.jb51.net/os/Ubuntu/56362.html 一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ...
- Unix/Linux环境C编程入门教程(4) Debian Linux环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 1.广义的Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Deb ...
- CentOS,Ubuntu,Gentoo,Freebsd,RedHat,Debian的区别及选择
Linux最早由Linus Benedict Torvalds在1991年开始编写.在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及G ...
- Ubuntu和Redhat(Debian)的差别
这两个最大的区别在包管理模式上. 都是用的Linux核心构架的. Redhat主要集中在 企业级服务器版的制作 是推动LINUX商业化最成功的公司 Redhat对应的桌面版制作 都是由Fedora社区 ...
随机推荐
- RabbitHub开源
RabbitHub开源情况及计划 之前写过一篇”.NET 平台下的插件化开发内核(Rabbit Kernel)”,已经过去三个月了,期间RabbitHub并不是没有了发展更不是放弃了发展,在Rab ...
- e.target 和 e.srcElement 的使用问题
ie 下的event.srcElement从字面上可以看出来有以下关键字:事件.源(它的意思就是:当前事件的源), 我们可以调用他的各种属性就像:document.getElementById(&qu ...
- lua学习笔记10:lua简单的命令行
前面反复使用的命令行,好学喜欢命令行: 一 格公式 lua [options][script][args] 两 详细命令 -e 直接命令传递一个lua -l 加载文件 -i 进入交互模式 比例如.端子 ...
- crm操作安全角色
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using System.Co ...
- 【百度地图API】如何用圆形搜索获取中心点周围100米内全部关键点?如天安门附近所有的餐厅、加油站、宾馆、大厦等
原文:[百度地图API]如何用圆形搜索获取中心点周围100米内全部关键点?如天安门附近所有的餐厅.加油站.宾馆.大厦等 摘要: 在LBS上有这样一个常用的功能,查找附近所有的关键点(POI点,比如标志 ...
- Java数据结构与算法(4) - ch04队列(Queue和PriorityQ)
队列: 先进先出(FIFO). 优先级队列: 在优先级队列中,数据项按照关键字的值有序,关键字最小的数据项总在对头,数据项插入的时候会按照顺序插入到合适的位置以确保队列的顺序,从后往前将小于插入项的数 ...
- cocos2d-x 3.0 rapidJson 解析操作应该注意的细节
Size visibleSize = Director::getInstance()->getVisibleSize(); Point origin = Director::getInstanc ...
- 通过Web Api 和 Angular.js 构建单页面的web 程序
通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的 ...
- MVC5 + EF6 + Bootstrap3 (8) HtmlHelper
MVC5 + EF6 + Bootstrap3 (8) HtmlHelper用法大全(上) 上一节:MVC5 + EF6 + Bootstrap3 (7) Bootstrap的栅格系统 源码下载:点我 ...
- openwrt驱动与应用程序的联系
应用程序与驱动之间需要进行命令的传递,因而它们之间需要共同定义一套双方都可以识别的数据结构,实际使用时它们include的是名字和内容相同但位置不同的头文件. 比如spi_gpio_ad7193.h这 ...