资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
开源软件简介2.1 自由软件介绍斯托曼发起的“自由软件运动”是信息资本主义时代“赛博空间”里的空想社会主 义,其纲领性文献GNU宣言主张:软件应该像空气一样供人自由呼吸,软件版权对 社会有害无益。为此,软件的源代码应该共享,软件应该免费,尤其是操作系统软件不 应该成为“私有软件”。2.1.1 自由软件“自由软件”是指遵循GNU宣言(自由软件联盟宣言书)的原则发布的、用户有权对 其源代码自由拷贝、研究、改进和分发且不得限制其他用户拥有此种权利的软件,“自由 软件”受到“通用公共许可证” (GPL)即“左版”(copyleft)的保护。更精确地说,自由软 件赋予使用者四种自由:自由之零:不论目的为何,有使用该软件的自由。 自由之一:有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身 的需求。取得该软件之源码为达成此目的之前提。自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲 睦邻。自由之三:有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一 来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提。如果一软件的使用者具有上述四种权利,则该软件得以被称之为自由软件。2.1.2 自由软件和免费软件自由软件的英文为“free software”,“free” 一词有“自由”、“免费”的双重含意, 因此 要如何分辨自由软件(libre)和免费软件(gratis)呢?自由软件运动的创始人理查德马修斯托曼(Richard Matthew Stallman)提供了以下的定义:自由软件的重 点在于自由权,而非价格。要了解其所代表的概念,你应该将“自由”想成是“自由演 讲”,而不是“免费啤酒”。更精确的说,自由软件代表电脑使用者拥有选择和任何人合 作之自由、拥有掌控他们所用的软件之自由。2.1.3自由软件并不是没有版权自由软件可以免费取得,并且它的源代码可以自由修改并散布,但它并不是没有版 权。版权是当某项作品完成时就自然产生了,不需申请或注册。以本文为例,本文在写 作的同时,作者即拥用版权,任何人皆无法剥夺。而当使用者花钱购买某套软件时,所 购买的只是使用权使用者必须接受该软件的软件授权才能使用这个软件;而 软件的原作者则仍然保有其版权2.1.4知名自由软件1、LinuxLinux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但 它们都使用了 Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、 路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的 操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。Linux得名 于计算机业余爱好者Linus Torvalds。2、PHPPHP,是英文超级文本预处理语言 Hypertext Preprocessor的缩写。PHP是一种 HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的 风格有类似于C语言,被广泛的运用。图 2.1 Linux图 2.2 PHP3、MySQLMySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是 将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL语 言是用于访问数据库的最常用标准化语言。MySQL软件采用了 GPL (GNU通用公共许 可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL作为网站数据库。4、FirefoxMozilla Firefox,中文俗称为“火狐”是由 Mozilla 基金会从 Mozilla Application Suite 独立出来采用开源与社区共同开发的网页浏览器。可以在多种操作系统运行,源代码以 GPL/LGPL/MPL三种授权方式发布。MySQl?图 2.3 MySQL图 2.4 Firefox2.1.5自由软件运动的精神领袖理查德马修斯托曼(Richard Matt hew St allman, RMS), 1953年出生于美国纽 约曼哈顿地区,自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客。他的主要成就包括Emacs及后来的GNU Emacs, GNU C编译器及GNU除错器。他所写作的GNU通用公共许可证(GNU GPL)是世上最广为采 用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。他最大的影响是为自由 软件运动竖立了道德、政治以及法律框架。他被许多人誉为当今自由软件的斗士、伟大 的理想主义者,但同时也有人批评他过于固执、观点落伍。图2.5理查德马修斯托曼2.2 开源软件介绍开放源代码软件是一个新名词,它被定义为描述其源代码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyrigh t 的,它的许可证可能包含一些限制。“开放源代码”正在被公众利益软件组织注册为认 证标记,这也是创立正式的开放源代码定义的一种手段。2.2.1 开源软件的定义如果在一本公开出版的书籍上有一段程序的源代码,可供人们随意阅读、研究、改写, 甚至将其输入计算机装置加以运行使用,那这段程序算不算“源软件”?正确的答案是: 不一定。从一般意义上讲,它是公有软件,而不是开源软件。原因很简单,虽然它可以 被自由使用、自由传播、但是它未必始终能够继续保持“开源状态”,往被商业软件所吸 收。开源软件促进会即OSI (Open Source Initiative)对于开源软件有着明确的定义, 称为Open Source Definition (OSD),业界公认符合OSD的软件为开源软件。一共有 十个条款:1、自由再发布(或发行)无论个人或团体均可自由获得开源软件,并可自由再发布(包括销售、赠与),在再 发布(发行)或销售时不能要求收取有关著作权的授权或其他费用。这就是说,发行开 源软件应该是免费的(至多只能收取发行介质的成本费用)。2、源代码及其公开性开源软件的程序必须包含源代码;要保证软件程序源代码的公开性。3、允许产生派生产品开源软件允许自由修改并产生派生产品,禁止派生产品出现的做法是错误的。如果 原著程序源代码吸纳修改或与其允许的补丁文件一起发布时,因为保持了原著软件程序 源代码的完整性和发展持续性,所以这时发布的不应看作为派生产品。派生产品在不改 写原有代码条件下可能会改变软件的原有功能(如在产品化过程中原有功能因专有技术 和工程经验而改变),这时派生产品因软件程序源代码不变而开源软件许可证不变,因 产品功能改变而允许使用不同于原著软件的名称或版本号;派生产品在对原著软件修改 也可能改变软件的性质或采用多元许可证(如派生产品可能演变成私有软件)。4、原作者源代码完整性只有在允许补丁文件和原有源代码一起发布的情况下,开源软件的许可证才可以允 许或限制源代码以修改后的形式发布,以保护原有软件的完整性,不会被人无限制地篡 改;允许派生作品使用不同于原著软件的名称或版号,以区别原著软件;允许人们使用 区别于官方补丁的非官方补丁,此时也应使用不同于原著软件的名称或版号。5、不歧视任何人开源软件的许可证不能歧视任何个人或团体,使开源软件的参与和受益的群体最大化。6、不歧视或限制使用于任何领域如不得限制开源软件使用于商业目的。7、开源许可证的发布 开源软件许可证所带的权利适用于所有接受开源软件的接收方,不能因接受方的身 份不同或身份特殊,在接受时(或在执行过程中)还要增加附加条件。8、开源许可证不能只针对某个产品举例来说,软件程序(如Linux Kernel)所带的权利(如GPL规范)与程序是否成 为特定软件(如Android)或某个产品的一部分无关。如果某程序(如Kernel)从特定 软件(如Android)中抽出来并遵守程序本身的许可证(如GPL),那么该程序的所有接 收方(如Google、Motorola、HTC、三星等)获得的权利与原特定软件所赋予的对应部 分的权利相同。9、许可权不能约束其他软件开源软件许可证及其权利只能赋予及约束自己,与同处一寓(产品)中的其他软件 商业软件或私有软件)无关,这样可使开源软件和其他商业软件可以共存互通,互相协 作。10、许可权必须独立于技术开源软件许可证规定的权利(体现开源软件上述定义的精神在法律层面上的规定) 与具体的技术、应用、用户(体验)无关。开源软件必须遵循上面十条定义的规定;但总的来说开源软件比纯粹的自由软件更 宽容;开源软件首先考虑的是如何从黑客文化(自由软件)中脱颖而出(或继承改革), 如何发展软件,让更多的人来使用软件;开源软件特别对软件的派生和再发布的约束要 比较宽松一些。2.2.2 开放源代码软件与自由软件1、形式上的差异(1)开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软 件就能被称为开放源代码软件。自由软件是一个比开源软件更严格的概念,因此所有 自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上, 绝大多数开源软件也都符合自由软件的定义。比如,遵守 GPL 和 BSD 许可的软件都是 开放的并且是自由的。(2)开放源代码的规定较宽松,而自由软件的规定较严苛。很多的开放源代码所 认可的授权根本不算是自由软件,所以自由软件不得不和开放源代码划清界线了。2、内涵的差异(1)开放源代码作用是尽可能的使软件最优化;自由软件则将自由作为道德标准。(2)如果说“自由软件”会引起误解,(因为英文“Free” 一词有“自由”、“免费”的双重含意),那么“开放源代码”的名字会引起的误解则更多。开放源代码很容易让 人以为只要把源代码“公开”出来就算是开放源代码了,但是如果使用者无法自由运 用这些源代码,那么即使公开源代码也没有意义。有的软件公司只是为了想找使用者 帮它debug、吸收社区贡献的功能,这样子会破坏了自由软件的原意。(3)自由软件的原意就是要给予使用者运用软件的自由,这个自由就是自由 软件的精神所在。但是为了商业化开放源代码却故意忽略了这个最重要的精神,反而 无法让使用者体认到自由的真意,那么开放源代码这一个替代自由软件的辞句反 而把自由的原意除去了。2.2.3知名开源软件除了 Linux和My SQL以外,知名开源软件还有:1、Apache (阿帕奇)Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用 的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之 一,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、3Consortium、 Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有 一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、 Linux系统平台上)以及它的可移植性等方面。“源代码”是指用接近自然语言的高级编程语言(如LISP、PASCAL、CBASIC等)编写的程序,也称“源程序”,易于被专业人士阅读与修改,对软件厂商而言,2、 JavaJava是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推 出的Java程序设计语言和Java平(即JavaSE, JavaEE, JavaME)的总称。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号