自由的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社区 ...
随机推荐
- linux_根据关键词_路径下递归查找code
1:进入想查找的项目根目录 2:根据关键词查找 find . -name "*" |xargs grep -F '10.26'
- 教你一步一步部署.net免费空间OpenShift系列之二------创建应用
接上回书,注册完毕后需要在Openshift上创建一个应用空间,如如何创建空间呢,Openshift本身是不直接支持Mono来部署ASP.Net程序的,需要借助openshift-community- ...
- Asp.net MVC + EF + Spring.Net 项目实践(四)
这篇写一写如何使用Spring.net来解耦各个项目 1. 在接口层添加IStudentBLL文件,里面有GetStudent和GetAllStudents两个方法:然后在StudentBLL类里实现 ...
- $.each()遍历Json对象
1.遍历JavaScript数组对象: var json = [ //中括号起始 {"id":"1","tagName":"app ...
- TDD(测试驱动开发)学习一:初识TDD
首先说一下名词解释,TDD,英文名称Test-Driven Development,中文名称测试驱动开发,简单的断下句“测试/驱动/开发”,简单的理解一下,就是测试驱动着开发,大白话就是说用一边测试一 ...
- JS常用的标准函数
原文:JS常用的标准函数 1.Array类型函数 array.concat(item...) 函数功能:关联数组,实现数组相加功能,但并不影响原先数组,concat返回新数组. array.join( ...
- 红米1S Mokee4.4.4 本人编译版耳机线控改动调音量以及上下曲方法
改动的文件为,用Re管理器编辑: system/usr/keylayout/msm8226-tapan-snd-card_Button_Jack.kl 默认的耳机线控的上下键是切换上下曲功能,因此此文 ...
- Warning: Cannot modify header information - headers already sent by (output started at
一般来说在header函数前不能输出html内容,类似的还有setcookie() 和 session 函数,这些函数需要在输出流中增加消息头部信息.如果在header()执行之前有echo等语句,当 ...
- YUV格式转换RGB(基于opencv)
在编写代码将需要处理YUV格从每个视频帧中提取,然后将其保存为图片.有两种常见的方法在线,第一种是通过opencv自带cvCvtColor,可是这样的方法有bug.得到的图片会泛白.另外一种方法是公式 ...
- gtest框架
解析gtest框架运行机制 1.前言 Google test是一款开源的白盒单元测试框架,据说目前在Google内部已在几千个项目中应用了基于该框架的白盒测试. 最近的工作是在搞一个基于gtest ...