开源软件
开源软件(英語:Open source software,英文缩写:OSS,中文也称:开放源代码软件)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。开源协议通常符合開放原始碼的定義的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容(user-generated content)做比较[1]。 开源软件的英文“open-source software”一词出自free software(自由软件)的营销活动中[2]。
开源软件同时也是一種軟體散佈模式。一般的軟體僅可取得已經過編譯的二進位可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的原始碼。
有些軟體的作者只將原始碼公開,卻不符合「開放原始碼」的定義及條件,因為作者可能設定公開原始碼的條件限制,諸如限制可閱讀原始碼的對象、限制衍生產品等,此稱之為開放原始碼軟體(例如知名的模擬器軟體MAME),因此公開原始碼的軟體並不一定可稱之為開放原始碼軟體。
開放原始碼的定義
開放原始碼的定義由Bruce Perens(曾是Debian的創始人之一)定義如下:
- 自由再散布(Free Distribution):允許獲得原始碼的人可自由再將此原始碼散佈。
- 原始碼(Source Code):程式的可執行檔在散佈時,必需以隨附完整原始碼或是可讓人方便的事後取得原始碼。
- 衍生著作(Derived Works):讓人可依此原始碼修改後,在依照同一授權條款的情形下再散佈。
- 原創作者程式原始碼的完整性(Integrity of The Author’s Source Code):意即修改後的版本,需以不同的版本號碼以與原始的程式碼做分別,保障原始的程式碼完整性。
- 不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):開放原始碼軟體不得因性別、團體、國家、族群等設定限制,但若是因為法律規定的情形則為例外(如:美國政府限制高加密軟體的出口)。
- 對程式在任何領域內的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):意即不得限制商業使用。
- 散布授權條款(Distribution of License):若軟體再散佈,必需以同一條款散佈之。
- 授權條款不得專屬於特定產品(License Must Not Be Specific to a Product):若多個程式組合成一套軟體,則當某一開放原始碼的程式單獨散佈時,也必需要符合開放原始碼的條件。
- 授權條款不得限制其他軟體(License Must Not Restrict Other Software):當某一開放原始碼軟體與其他非開放原始碼軟體一起散佈時(例如放在同一光碟片),不得限制其他軟體的授權條件也要遵照開放原始碼的授權。
- 授權條款必須技術中立(License Must Be Technology-Neutral):意即授權條款不得限制為電子格式才有效,若是紙本的授權條款也應視為有效。
開放原始碼與自由軟體
許多人將開放原始碼與自由軟體(free Software)視為相同,但若以定義條件而言,自由軟體僅是開放原始碼的一種,也就是自由軟體的定義較開放原始碼更為嚴格,並非開放原始碼的軟體就可稱為自由軟體,要視該軟體的授權條件是否合乎自由軟體基金會對自由軟件所下的定義:
开放源代码软件就是在GNU通用公共许可证(GPL)下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简而言之:所有公布软件源代码的程序,都可以称为开放源代码软件。
开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。使用开放源代码开放模式的软件代表就有Linux操作系统。开放源代码开放模式的名字及其特点最早是由美国电脑黑客埃里克·斯蒂芬·雷蒙在他的著作《大教堂和市集》(The Cathedral and the Bazaar)等一系列论文集中提出并探讨的。
严格地说来,开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件(开源软件)。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的并且是自由的。
开放源代码软件运动是一个主要由程序工程师及其它电脑用户参与的声势浩大的运动。它是自由软件运动的一个分支,但两者的差别并不明显。一般而言,自由软件运动是基于政治及哲学思想(有时被称为所谓黑客文化)的理想主义运动,而开放源代码运动则主要注重程序本身的质量提升。
重要人物
- Richard Stallman——自由软件运动的精神领袖。
- 林納斯·托瓦茲——Linux核心的创造者。
- Eric Steven Raymond——开放源代码运动理论家,Fetchmail软件的创造者,《大教堂与市集》的作者。
组织及协作计划
- Linux——第一个采用开放源代码软件开放模式的软件协作计划
- Debian——开放源代码开放模式下的Linux套件
- Mozilla Firefox——开放源代码的浏览器
- OpenOffice.org——开放源代码的办公软件
- OpenBSD、FreeBSD、NetBSD和OpenSolaris——四个相近的开放源代码4BSD UNIX版本
- 开源人——以宣传开源人物和开源项目为主的开源社区
- 开放源代码促进会(Open Source Initiative)——促进开放源代码运动发展的组织
- OSDN——专门发布与开放源代码运动有关新闻的网站
- GPAI——一开放源代码方式进行协作的人工智能开发网站
介入开源运动发展的企业
- 红帽公司(Red Hat)—— 最大的Linux套件发行商
- 红旗Linux—— 中国最大的Linux发行商
- 苹果电脑(Apple)—— 开放了该公司操作系统Mac OS的内核Darwin的源代码(但不包括圖形用戶界面)。[來源請求]
- IBM—— 协助发展多项开放源代码计划
- 网景公司(Netscape)—— 协助发展Mozilla计划
- 昇陽電腦(Sun)—— 发表了Java语言、OpenSolaris、Sun Grid Engine源代码,并发展OpenOffice.org和MySQL计划
- 欧赛克信息技术公司(OSIC)——开发了Corncart,全新的开源电子商务软件
- 恩信科技(nseerglobal)——来自中国的开源ERP软件提供商,目前已为近200万家下载用户贡献了原创的开源ERP
- 金山网络——中国优秀网络安全产品供应商的金山卫士开源计划。
开源模型的应用
wiki就是开源模型应用的实例之一。其他开源的应用还可以在政策法规方面。
漏洞
雖然开放源代码的堡壘看似嚴謹,但其實大部份的程式開發員都弄不清各種許可證之間的差別,導致成為了小部份別有用心人士所利用的對象,較著名的例子有DivX,早期DivX雛形是一個LGPL的自由軟體,由大部份優秀的軟體高手義務地開發,但當軟體漸漸成形時,DivX的公司DXN利用LGPL的漏洞對DivX進行了閉源,大部分義工都感到被出賣,所以著手開發了XviD。雖然XviD在軟體方面明顯比DivX優秀,但市場占有率卻不如DivX。
开源软件基础
- 操作系统
- 协议基础
- 开源软件语言
部分开源软件
- Linux——操作系统核心
- Eclipse——软件开发平台,尤其是对 Java 开发
- GNU Emacs——文本编辑软件
- XFree86, X.Org服务器——用于UNIX/Linux系统的图形用户软件
- Apache——HTTP服务器
- GNU GCC、Open64——多种语言编译器
- Zope——应用服务器
- Plone——内容管理系统
- OpenOffice.org——办公软件套装
- Mozilla Firefox——网络浏览器
- GIMP——GNU圖像處理軟件
- eMule——P2P文件交换软件
更详细的列表请参见开放源代码软件列表。
- Corncart--电子商务软件
参见
参考
- ^ Verts, William T. Open source software. World Book Online Reference Center. 2008-01-13.
- ^ Frequently Asked Questions. Open Source Initiative. [2008-09-08]. (原始内容存档于2006-04-23).