開放源代碼軟件
開放源碼軟件《open-source》是一個新名詞,它被定義為描述其源碼可以被公眾使用的軟件,并且此軟件的使用,修改和分發(fā)也不受許可證的限制。開放源碼軟件通常是有copyright的,它的許可證可能包含這樣一些限制: 著意的保護它的開放源碼狀態(tài),著者身份的公告,或者開發(fā)的控制?!伴_放源碼”正在被公眾利益軟件組織注冊為認證標記,這也是創(chuàng)立正式的開放源碼定義的一種手段。
歷史介紹 編輯本段
開放源碼軟件主要被散布在全世界的編程者隊伍所開發(fā),但是同時一些大學,政府機構承包商,協(xié)會和商業(yè)公司也開發(fā)它。開放源碼軟件在歷史上曾經與UNIX,Internet聯(lián)系得非常緊密。在這些系統(tǒng)中許多不同的硬件需要支持,而且源碼分發(fā)是實現(xiàn)交叉平臺可移植性的唯一實際可行的辦法。在DOS,Windows,Macintosh平臺上僅僅有很少的用戶有可用的編譯器,開放源碼軟件更加不普遍。對開放源碼開發(fā)模式的更詳細的討論請看Eric Raymond寫的“The Cathedral and the Bazaar”。
軟件市場 編輯本段
傳統(tǒng)的商業(yè)軟件有巨大的廣告和商標預算,在這些背后給了它太多的關注,已經遠遠超出了它的重要性。傳統(tǒng)的商業(yè)軟件事實上只是所有軟件的很小的一部分。Lion(獅子)是被各種組織開發(fā),并且是為了它們自己內部的需要。內部開發(fā)源碼,特別是被美國政府所命令的重要源碼的共享是具有開發(fā)源碼牌照的。這實際上是由于絕大多數(shù)軟件專家不編寫商業(yè)軟件。
要去定量的描述開放源碼軟件的整個影響和平均利益是困難的,但是很明顯這兩者都被公眾廣泛傳播又低估其價值?,F(xiàn)在,許多開放源碼軟件由商業(yè)開發(fā)支持。同時,開放源碼經營模式的成功和開放源碼開發(fā)的高生產效率及高質量都說服Netscape(公司名)在1998年年初決定要將它的瀏覽器開發(fā)在開放源碼許可之下。
現(xiàn)在有巨大的動力推動著開放源碼的運動??吹饺绱硕嗟膫鹘y(tǒng)商業(yè)開發(fā)者們?yōu)榱伺c他同步不得不謀取發(fā)展是很有趣的。計算機工業(yè)早已看到了幾個激動人心的發(fā)展和革新的浪潮,例如,二十世紀七十年代的第一臺微機,以及八十年代中期到現(xiàn)在對日用微機的大量生產,還有同一時期Internet(互聯(lián)網(wǎng))的崛起。使用開放源碼模式的商業(yè)軟件可能是下一個重要的新潮流。
區(qū)別軟件 編輯本段
歷史上許多人開發(fā)過這樣一種軟件(也就是免費軟件基礎)簡稱為“free software”,而媒介一般稱它為“freeware”。不幸的是這兩種術語都被證明是不明確的且含糊的。
對于大多數(shù)人來說“free”僅僅用于購買的費用。比這個初始花費更重要的是由于缺乏許可證限制而帶來的費用。這些是幾種有可能是免費的軟件類型,但是明顯不是open-source software,因為它們具有某些限制或是缺乏公開的源碼:
主要種類 編輯本段
Shareware
共享軟件。允許他人自由拷貝并收取合理注冊費用。使用者可在軟件規(guī)定的試用期限內免費試用,再決定注冊購買與否。大部分共享版軟件都有功能和時間限制,試用期通常分為7天、21天、30天不等。而有的共享軟件還限制用戶只能安裝一次,若刪除后重新安裝將會失效。像Winzip、ACDSee等軟件就是共享軟件。
Demos/"Crippleware"
免費或低費用試用的軟件,是商業(yè)軟件的一部分,它沒有自由可用的源碼,沒有支持,通常缺乏關鍵特征。
Bundled Software
它由商業(yè)軟件攜帶并且不用增加額外的費用,但是它一般具有很有限的使用許可,沒有自由可用的源碼。例如:Microsoft Internet Explore. "Consortium-Ware": 源碼由公司內部人員共享,但是對公眾沒有自由可用的源碼。例如:Motif. "Non-commercial use only": 這是可以免費從Internet網(wǎng)下載的典型軟件,甚至連同源碼,但是同時它有嚴格的許可證限制它的使用。例如:1998年以前的Netscape的瀏覽器一些Open-source許可證類型
BSD(Berkeley Source Distribution)許可證:它要求版權和著者身份申明
GPL
通用公共許可證("CopyLeft")禁止派生或分發(fā)產品的限制。
LGPL
庫通用許可證,它不同于GPL許可證,在這個許可證下,庫(函數(shù)庫)可以自由的聯(lián)接到私有軟件。
Artistic License
使作者保持對進一步開發(fā)的控制。
NPL(Netscape Public Lincense)
基于GPL精神的新的許可證,但是保持了對源碼更多的控制和所有權(請看下面的“Netscape發(fā)展什么”這一節(jié))
Public Domain/Not Copyrighted/No Restrictions: 通常用于決定性的算法以鼓勵廣泛使用,通常由美國政府使用。
Open-source 軟件的一些例子
現(xiàn)在有幾百種成熟的open-source產品被廣泛使用。這而是一些最著名的:
Corncart
由OSIC信息技術有限公司最新開發(fā)的開源電子軟件,集合之前所有電子開源軟件的所有優(yōu)點。目前尚處于二次開發(fā)階段。
BSD UNⅨ
由California大學Berkeley分校開發(fā)的基于"BSD"許可證的軟件。許多UNⅨ商業(yè)版本是直接基于BSD源碼或者大多從它的設計中借用來的。
Linux: 它從一個芬蘭的大學生的研究項目成長為近六年最流行的非Microsoft操作系統(tǒng)。最初它僅僅是為PCs機設計的,可現(xiàn)在它支持Palm Pilots(小型掌中平臺),大型的64位Digital Alphas芯片的超級計算機,和在這兩者之間的幾乎任何事物。與傳統(tǒng)操作系統(tǒng)相比它的效率更高,更可靠,更先進。它包括編譯程序,庫,和來自于FreeSoftware Foundation的各種工具,還有成千上萬的open-source產品,Linux平臺是一個小的但是卻在快速成長的商業(yè)產業(yè)的基礎,還是軟件革新的溫床。它由商業(yè)公司和散布在全世界的自由編程人員基于GPL所開發(fā)。
Perl語言
"Internet的傳輸帶”,大多數(shù)web服務器的動態(tài)內容的基礎,廣泛用于腳本語言編程和自動化文檔處理。它由Perl研究所基于Artistic 許可協(xié)議開發(fā)。
GCC
GNU C編譯器是許多Unix平臺上首選的C/C++編譯器,也可以在其他平臺上運行;因為支持幾乎每種處理器,所以它也被作為一個跨平臺的工具而廣為流行;它由FSF基于GPL維護、開發(fā)。
X Window 系統(tǒng)
使用最廣的非microsoft窗口系統(tǒng),具有先進的跨平臺遠程執(zhí)行特性,性能優(yōu)良,靈活度高;由MIT和X Consortium在類BSD許可協(xié)議下開發(fā);其他的增強功能由The XFree86 Project公司開發(fā)。
Internet 主干:
BIND: Berkeley Internet Name Daemon; 為幾乎所有的Internet域名解析服務器使用,其行為如同一個分散全球的分布式數(shù)據(jù)庫;由ISC(Internet Software Consortium)維護。
BSD SendMail: 郵件傳輸代理的最高標準。沒有任何一家商業(yè)競爭者能和它匹敵,絕對安全、健壯;負責處理Internet上超過75%的郵件傳輸任務,包括象AOL這樣的巨型站點---每天有數(shù)百萬的消息。由SendMail公司基于BSD許可協(xié)議維護。
INN:InterNet新聞服務器,操縱Internet上的決大多數(shù)Usenet新聞還包括許多企業(yè)網(wǎng)。被ISC(BSD)所維護(BSD許可協(xié)議)。
Apache: 超過半數(shù)的web服務器的動力(遠遠超出Microsoft和Netscape加起來的數(shù)量),早在1998年用于超過百萬的web服務器。由Apache組織開發(fā)(類BSD許可證維護)。
WU-FTPD: 在Internet網(wǎng)上最流行的FTP服務器,幾乎使用于所有的FTP站點。最初是由Bryan O'Connor在Washington大學Louis大街開發(fā)的,現(xiàn)在被Academ Consulting Services和許多自愿者維護(BSD許可)。
主要特點 編輯本段
降低風險:擁有源代碼使顧客們可以控制那些他們的業(yè)務所賴以生存的工具。當一個open-source產品的開發(fā)者提高價格,增加了難以接收的限制,或者使用了一些使顧客不滿意的方法,另一個不同的組織將使用該源代碼開始開發(fā)新的產品以解決原來機構的問題。顧客也能自己維護或找別人改進它以達到自己的要求。顧客控制軟件,這在傳統(tǒng)私有軟件模式下是聞所未聞的事情。即使是一些財大氣粗的顧客也可能緩解由于傳統(tǒng)軟件商自己內部的問題而導致嚴重的金融危機或公司被別的公司收購的風險。
質量
一些研究已經顯示了open-source軟件與別的可比商業(yè)軟件具有可靠性上的極大優(yōu)勢。更加有效的開發(fā)模式,更多的獨立同行對代碼和設計的雙重審查,以及大部分作者對自己作品的極大榮譽感,都對其優(yōu)良的質量有所貢獻。一些公司甚至給予發(fā)現(xiàn)Bug者以物質獎勵。
透明
私有軟件有很多“陰暗的死角”,隱藏著許多Bug。源碼對于查錯和理解產品工作原理來說是很重要的。在大的軟件公司,只有極少數(shù)人能接觸到源碼,而這些能接觸源碼的人通常用戶都無法直接接觸。能接觸源碼對于修補安全漏洞來說,也是非常重要的。一些開放源碼的產品--包括上面列舉的一些產品--是如此成功,以至于其商業(yè)競爭者無法存活。
剪裁
開放源碼給用戶極大自由,使他們能夠按照自己的業(yè)務需求定制軟件。大型組織能從即使很小的定制行為中削減大量開支和人力成本。用戶的挑錯和改進反過來對標準開放源碼軟件包也是個貢獻。這在傳統(tǒng)的私有軟件開發(fā)中是不可能得到的。
有利的版權許可和價格:定義為開放源碼使得軟件在版權許可方面比私有軟件具有更大的靈活性。這可以大大削減更多安裝帶來的花費和時間,對那些采購過程費時費力的機構更加有利。它也能給用戶安裝軟件以更大的自由度。
什么時候不使用開放源碼軟件
如果一個開放源碼產品不能很好地滿足一個組織的需求,而另外的一個私有軟件卻可以,并且得到一個滿足特性的私有軟件的成本比再開發(fā)修改一個開放源碼產品的成本高的話,最好不使用開放源碼軟件。但參考上面的“剪裁”。
支持
一些open-source軟件傳統(tǒng)的付費支持和電話支持。事實上,無論怎樣,這都沒有一個既沒有源代碼且無支持的產品嚴重。請看支持和open source軟件一節(jié)。
大部分open-source軟件主要是支持UNⅨ和Linux系統(tǒng)的,有時也支持Windows NT。另一些平臺,例如大型機,對于移植開放源碼軟件是個巨大挑戰(zhàn)。移植軟件從UNⅨ到Windows NT上要付出很大代價。然而。開放源碼的優(yōu)點幾乎可以使平臺轉換顯得更劃算。
主要問題 編輯本段
安裝open-source軟件有時需要一些更多的技術經驗,例如,可以配置或編譯源代碼的能力。有源代碼的優(yōu)點在一些沒有軟件開發(fā)專家的公司被降低了。open-source的定制也要求有配置管理經驗。無論如何,那些充分具有上述技術能力的任何組織都會很好地享受open-source的優(yōu)點。
如果現(xiàn)存的所有系統(tǒng)都被很好的支持并完成,就沒有必要去改變它們。然而,時常的去檢討這個決定是很重要,因為新技術經常會使它們變得過時。
值得懷疑的避免open-source軟件的原因
這些論據(jù)常被作為避免使用open-source軟件的借口,但是通常經不起推敲。
---對未知的恐懼。
正如你在上面的“open-source軟件的例子”一節(jié)所看到的,許多的組織已經嚴重的依賴open-source軟件,不管他們的決策者是否意識到這一點。這個問題由于open-source開發(fā)者宣傳和使用市場的增加,以及更多的擁護者的出現(xiàn)變得比較容易解決。
---在購買商業(yè)軟件包上我們已經擁有巨大的投資。
這僅僅是“必然花費謬誤”的一種形式。軟件許可證,好像為寫字樓付的租金,是一些消費,但不是投資。如果別的產品能很好的以較低的成本實現(xiàn)你的組織的需要,那么過去把錢花費在低級的軟件上對
決策不應該產生影響。記住,你可能面臨嚴重的政治上的反對,它來自于那些選擇了贊成使用昂貴的,低級的產品,而不愿意承認他們的錯誤的守舊者。同時,考慮到它們可能被再次擴展,在訓練職員和相關基礎設施上的投資是完全合理的。
---如果出了問題,我們需要有人負責。
盡管理論上這聽起來很合理,但如果我們一開始就使用可信賴的軟件產品,遠比在遭受經濟損失之后才去控告軟件供應商要好的多。幾乎所有的主要軟件公司都利用最終用戶許可證的支持來解決一些由于他們軟件的問題而帶來的可能要負責的困擾。Microsoft和IBM公司有著龐大的,一流的法律職員,使得顧客的控訴不可能成功。在將來法律可能會越來越偏向軟件供應商。
open-source和軟件技術支持
商業(yè)支持和同幾乎是那些正在使用open-source軟件的公司最關心的問題了。付費支持是正當?shù)膯栴},但是這對于open-source產品通常是可用的,而且一般都過高估計了它的重要性。
---許多主要的open-source產品都有可用的技術支持合同。
例如,Red Hat 和Caldera公司對他們銷售的linux有電話支持?!ygnus,Collective Technologies和許多小的顧問公司靠支持和增強open-source軟件,生意也做的不錯。而且越來越多的open-source軟件在保持其開放源碼狀態(tài)的同時,也獲得了大量商業(yè)維護和支持。
---電子郵件和Usenet新聞支持時非常有效的。
幾乎所有開發(fā)open-source軟件的組織都提供免費的電子郵件支持,提供郵件列表和Usenet新聞組。這些機制比電話支持更加實際有效。在一個有許多軟件供應商所支持的調查中,“Linux用戶協(xié)會”在1997年獲得“最好的技術支持獎”,同時也暴露了許多對傳統(tǒng)的軟件開發(fā)商的服務質量的大量不滿意見。
---對傳統(tǒng)商業(yè)軟件的支持經常是有限的并且是低質量的。
例如Microsoft公司僅僅提供了為它的所有產品僅僅提供了一個技術支持電話號碼:900。許多市場商業(yè)銷售支持人員把注意力集中在幫助初學者上手上,無法回答使用手冊上沒有包括的問題。許多軟件公司認為傳統(tǒng)的電話支持是很昂貴的代價,而因此消減它,這就導致了質量下降。
應用平臺 編輯本段
web服務器
WEB服務器也稱為WWW(WORLD WIDE WEB)服務器,主要功能是提供網(wǎng)上信息瀏覽服務。WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發(fā)展起來的服務,也是發(fā)展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發(fā)展,且用戶數(shù)量飛速增長。
開源的web服務器軟件包括apache、kangle、nginx等。
Blog
Blog 全名Web log,中文意思是“網(wǎng)絡日志”,后來縮寫為Blog。它是繼Email、BBS、IM之后出現(xiàn)的第四種網(wǎng)絡交流方式,是網(wǎng)絡時代的個人“讀者文摘”,是以超級鏈接為武器的網(wǎng)絡日記,是代表著新的生活方式和新的工作方式,更代表著新的學習方式。簡言之,Blog 就是以網(wǎng)絡作為載體,簡易迅速便捷地發(fā)布自己的心得,及時有效輕松地與他人進行交流,再集豐富多彩的個性化展示于一體的綜合性平臺。
開源的Blog軟件有b2evolution(PHP+MySQL)、BLOG:CMS (PHP、基于Nucleus CMS)、BLOG:CMS (PHP、基于Nucleus CMS)等。
論壇
論壇又名網(wǎng)絡論壇BBS,全稱為Bulletin Board System(電子公告板)或者Bulletin Board Service(公告板服務)。是Internet上的一種電子信息服務系統(tǒng)。它提供一塊公共電子白板,每個用戶都可以在上面書寫,可發(fā)布信息或提出看法。它是一種交互性強,內容豐富而即使的Internet電子信息服務系統(tǒng)。用戶在BBS站點上可以獲得各種信息服務,發(fā)布信息,進行討論,聊天等等。
開源的論壇應用軟件包括phpbb、BMForum、phpwind[等。
應用服務器
應用服務器定是指通過各種協(xié)議把商業(yè)邏輯曝露給客戶端的程序。它提供了訪問商業(yè)邏輯的途徑以供客戶端應用程序使用。應用服務器使用此商業(yè)邏輯就像調用對象的一個方法一樣。簡單的說能實現(xiàn)動態(tài)網(wǎng)頁技術的服務器叫做應用服務器。
開源的應用服務器軟件包括Enhydra (Java)、JBoss (Java)、Open3 (XML)等。
消息服務器
消息服務器作為網(wǎng)絡的節(jié)點,專門用來存儲、轉發(fā)網(wǎng)絡上的數(shù)據(jù)、信息(例如:聊天信息)。做一個形象的比喻:消息服務器就像是郵局的交換機,而微機、筆記本、PDA、手機等固定或移動的網(wǎng)絡終端,就如散落在家庭、各種辦公場所、公共場所等處的電話機。我們與外界日常的生活、工作中的電話交流、溝通,必須經過交換機,才能到達目標電話;同樣如此,我們利用個人電腦,PDA,手機等,發(fā)送消息,也必須經過消息服務器,因此也可以說是消息服務器在“組織”和“領導”這些接收消息設備。
開源的消息服務器軟件包括ArsDigita (Tcl & Java)、Exolab Group (J2EE,整合OpenEJB,OpenJMS,OpenORA,Tyrex)、Zend (PHP)等。
企業(yè)程序
企業(yè)應用程序是一個泛指的概念,細分下來可分為企業(yè)資源計劃(ERP)、客戶關聯(lián)管理、項目管理、內容管理、人力資源管理、自動化采購軟件、信息倉庫(CIW)、生產計劃、庫存管理、群組軟體、B2B和圖書館資源整合系統(tǒng)(ILS)。
開源的企業(yè)應用程序包括Compiere (ERP+CRM)、Compiere、Gnome Planner 、ArsDigita、phpgroupware、J2EE、Akopia、Compiere (ERP+CRM)、openapplications、OpenBiblio等。
無線網(wǎng)絡
所謂無線網(wǎng)絡,既包括允許用戶建立遠距離無線連接的全球語音和數(shù)據(jù)網(wǎng)絡,也包括為近距離無線連接進行優(yōu)化的紅外線技術及射頻技術,與有線網(wǎng)絡的用途十分類似,最大的不同在于傳輸媒介的不同,利用無線電技術取代網(wǎng)線,可以和有線網(wǎng)絡互為備份。
開源的無線應用程序有kannel、Jwap、Ophelia等。
數(shù)據(jù)庫
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫,它產生于距今五十年前,隨著信息技術和市場的發(fā)展,特別是二十世紀九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應用。
開源的數(shù)據(jù)庫軟件有BerkelayDB、MySQL、SQLite等。
桌面環(huán)境
“桌面環(huán)境”可能僅僅是一個簡單的窗口管理器,也可能是一個像 KDE 或者 GNOME這樣的完整桌面應用程序套件。
開源的桌面環(huán)境類軟件包括GNOME、GNUstep、KDE等。
窗口管理類
窗口管理,又名用戶界面,電子計算機系統(tǒng)中實現(xiàn)用戶與計算機信息交換的軟件、硬件部分。軟件部分包括用戶與計算機信息交換的約定、操作命令等處理軟件,硬件部分包括輸入裝置和輸出裝置。目前常用的是圖形用戶界面,它采用多窗口系統(tǒng),顯示直接形象,操作簡便。
開源的窗口管理類軟件有Afterstep、Twm、fvwm、Window Maker等。
CD刻錄類
CD刻錄機的功能是:可以刻錄CD,讀取CD,但是卻無法讀取/寫入DVD,功能上次于COMBO,又次于DVD刻錄機?,F(xiàn)在多數(shù)人使用的是DVDROM,COMBO,DVD刻錄機。性能方面:讀取——CDROM=CD刻錄機<DVDROM=COMBO=DVD刻錄機;寫入——CD刻錄機<COMBO<DVD刻錄機。
開源的CD刻錄軟件有CD Record、Freeburn、Xfburn等。
文件編輯類
文件編輯類軟件是一個泛指的概念,細分下來包括辦公軟件套件、記事本、PDF相關軟件、科技文本編輯器、文本編輯器、WYSIWYG和文件處理。
開源的文件編輯類軟件包括Gnome Office、KeyNote、FPDF、GNU TeXmacs、FreeDOS edlin、HTMLarea、AbiWord等。
教育類軟件
教育類軟件是一個泛指的概念,細分下來包括學習支持軟件、語言相關軟件、數(shù)學相關軟件、科學研究軟件、打字軟件和其他教育軟件。
開源的教育類軟件包括ILIAS、FlashKard、KBruch、BioJava、GNU Typist、KEduca等。
金融相關軟件
從廣義上說,政府、個人、組織等市場主體通過募集、配置和使用資金而產生的所有資本流動都可稱之為金融。因此,不僅是金融業(yè)者,有關政府的財政,行業(yè)企業(yè)的行為、以及個人的理財都是金融的一部分。
開源的金融相關軟件有GnuCash、JCash、JMoney等。
游戲類軟件
游戲有很多種,在不同的媒體會以不同型式出現(xiàn),使用的道具或參與的人數(shù)不一樣也會衍生出不同類型的游戲。其中包括:人手游戲、桌上游戲、版圖游戲、紙上游戲、紙牌游戲、群體游戲、電子游戲、角色扮演游戲、益智類游戲和其他。
開源的游戲類軟件有Abuse、Falcon's Eye、Java Risk、UFO2000、XulMine等。
網(wǎng)絡軟件
網(wǎng)絡及因特網(wǎng)類軟件是一個泛指的概念,細分下來包括電子郵件、即時通訊軟件、通訊相關軟件、文件傳輸軟件、P2P文件共享軟件、遠程登錄、網(wǎng)頁瀏覽器、Webcam、Webgrabber、網(wǎng)絡相關軟件和其他網(wǎng)絡軟件。
絡及因特網(wǎng)類軟件有Magic Mail Monitor 3、AMSN、Slrn、Samba、eMule、RealVNC、Galeon、Dorgem、HTTrack、Apache Tomcat、OpenLDAP等。
數(shù)學軟件類
是專門用來進行數(shù)學運算、數(shù)學規(guī)劃、統(tǒng)計運算、工程運算、繪制數(shù)學圖形或制作數(shù)學動畫的軟件。
開源的數(shù)學類軟件包括GAP、MAⅪMA、SINGULAR等。
媒體類
體類軟件是一個泛指的概念,細分下來包括音頻編輯軟件/音頻管理軟件、圖形類/圖片瀏覽類、媒體播放器類、視頻剪輯類。
源的媒體類軟件包括CD-DA X-Tractor、GOCR/JOCR、JCDSee、CoolPlayer、GNU VCDImager等。
操作系統(tǒng)類
操作系統(tǒng)(英語:Operating System,簡稱OS)是一管理電腦硬件與電腦軟件資源的程序,同時也是計算機系統(tǒng)的核心與基石。操作系統(tǒng)身負諸如管理與配置內存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設備、操作網(wǎng)上與管理文件系統(tǒng)等基本事務。操作系統(tǒng)也提供一個讓用戶與系統(tǒng)交互的操作接口。
開源的操作系統(tǒng)類軟件有開源Unix(System V/BSD)、FreeDOS、Linux、Menuet等。
密碼管理類
圍繞用戶賬號密碼安全和管理的軟件或者硬件的集合。
開源的密碼管理類軟件包括Password Safe、PINs等。
個人信息管理類
個人信息管理系統(tǒng)是一種提供個人信息組織管理功能的應用軟件。其目的是為了便于記錄、跟蹤和管理各種個人信息。
開源的個人信息管理類軟件有Elephant Memory、KAddressbook、KOrganizer等。
編程語言類
計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。如果按語種分,可以分為英文符號語言和漢語符號語言兩類。(典型的如:易語言、易語言。飛揚)電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執(zhí)行的,程序是計算機要執(zhí)行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發(fā)出命令。目前通用的編程語言有兩種形式:匯編語言和高級語言。
開源的編程語言類軟件包括DJGPP、GCC、Open64、Objective CAML、PHP等。
屏幕保護軟件
屏幕保護程序是電腦程序,原意是通過將畫面空白,或在畫面上填滿移動的圖像,避免電腦顯示器在靜止的情況下產生磷質烙印,從而減低其壽命?,F(xiàn)在,屏幕保護程序被用作娛樂或保安用途。
開源的屏幕保護軟件有Flurry、KISS Image Screen Saver、Really Slick Screensavers、xmatrix等。
安全軟件
安全軟件是一個泛指的概念,細分下來包括殺毒軟件、加密軟件、防火墻、SSH、其他安全軟件。
開源的安全軟件包括Open Antivirus、GnuPG、Coyote Linux、OpenSSH、Stunnel等。
其他軟件
下面列舉一些難于分類的開源軟件:
Active2
AstroGrep — 有GUI圖形界面的Grep
Autopackage — Linux上的軟件包管理系統(tǒng)
BibleTime — 圣經學習軟件
Bochs — PC積累器
Cygwin — Win32的開源Unix模擬環(huán)境
Link Checker — 檢查HTML文檔的壞連接
Memtest86 — 內存檢查軟件
Open Scene Graph
Sun Grid Engine —計算機集群軟件
TeX — 排版系統(tǒng)
Vitrite — Windows 2000/XP 上使窗口透明的軟件
WINE — 在Linux/BSD上運行Windows軟件
XFree86 — 視窗系統(tǒng)
gEDA自動化電器設計工具
GPAI 通用公共人工智能平臺
發(fā)展趨勢 編輯本段
一個著名的計算機工業(yè)雜志報道Netscape是“受大量免費和共享軟件許可的啟發(fā)”。事實上,Netscape正在與許多著名的UNⅨ自由軟件開發(fā)者互通信息,現(xiàn)在看起來已經非常接近BSD和GPL許可證了。Nescape Public License和GPL有所不同,它使得Nescape對源碼的開發(fā)和商標上有更多的控制。
Netscape的棄子戰(zhàn)術是很聰明的。首先,瀏覽器的銷售在Netscape的業(yè)務中已經只占很少一部分了。瀏覽器的開放源碼狀態(tài)不會對它有太大的沖擊,另外有些想要正式技術支持的買家仍然愿意付錢。第二,它真正按照某個開放源碼的許可證發(fā)放,從而完全改變了Microsoft免費派送Explorer造成的被動局面。這將有助于提高Nescape瀏覽器的市場份額。最后,Netscape的立場從開放源碼社群中獲得了友誼,信任度和潛在的巨大革新。Netscape的未來還不能讓人放心,尤其是在NT的Web服務器上;但它為Communicator采用的勇敢的、戲劇性的許可證政策不會帶來任何損失。
互聯(lián)網(wǎng)的普及,將原來分散開發(fā)人員聚合在一起,只要有一個合適的基礎和好的框架,他們就可以開發(fā)出產品級的工具軟件(以Eclipse,JBoss,MySQL,Subversion,GLASSFISH為例),從而開源成為了一種趨勢。開源軟件大量出現(xiàn),軟件外包將更加普及,主要特點如下:[1]
1計算能力的增強,集成開發(fā)環(huán)境更加智能,獲取現(xiàn)成的類庫更加方便,應用軟件開發(fā)變得更加容易。[1]
2加上軟件本身一次性投資的特點,很多的場合甚至用軟件替代硬件,是的軟件開發(fā)需求增加。[1]
3.消費類電子與人們的生活更加息息相關,小的免費軟件,小型桌面游戲的出現(xiàn)。等各方面需要的軟件開發(fā)人員數(shù)量急劇增長(組織形態(tài)是大量的小規(guī)模開發(fā)團隊);在這一因素以及降低成本的壓力下,開發(fā)外包變得非常普及;[1]
4.項目構建工具,資源依賴更加自動化,系統(tǒng)開發(fā)也不需要從0開始,而是利用業(yè)內的免費框架進行二次開發(fā)。
常見協(xié)議 編輯本段
LGPL許可證
LGPL許可證是LESSER GENERAL PUBLIC LICENSE的簡寫,也叫LIBRARY GENERAL PUBLIC LICENSE,中文譯為“較寬松公共許可證”或者“函數(shù)庫公共許可證”。該許可證適用于一些由自由軟件基金會與其它決定使用此許可證的軟件作者所特殊設計的軟件軟件包─比如函數(shù)庫(即Library)。
LGPL許可證,也是自由軟件聯(lián)盟GNU開源軟件許可證的一種,大部分的 GNU軟件,包括一些函數(shù)庫,是受到原來的 GPL許可證保護的。而LGPL許可證,適用于特殊設計的函數(shù)庫,且與原來的通用公共許可證有很大的不同,給予了被許可人較為寬松的權利,所以叫“較寬松公共許可證”。在特定的函數(shù)庫中使用它,以準許非自由的程序可以與這些函數(shù)庫連結。
當一個程序與一個函數(shù)庫連結,不論是靜態(tài)連結或使用共享函數(shù)庫,二者的結合可以合理地說是結合的作品,一個原來的函數(shù)庫的衍生品。因此,原來的通用公共許可證只有在整個結合品滿足其自由的標準時,才允許連結。較寬松通用公共許可則以更寬松的標準允許其它程序代碼與本函數(shù)庫連結。例如,在少數(shù)情況下,可能會有特殊的需要而鼓勵大家盡可能廣泛地使用特定的函數(shù)庫,因而使它成為實際上的標準。為了達到此目標,必須允許非自由的程序使用此函數(shù)庫。一個較常發(fā)生的情況是,一個自由的函數(shù)庫與一個被廣泛使用的非自由函數(shù)庫做相同的工作,在此情況下,限制只有自由軟件可以使用此自由函數(shù)庫不會有多少好處,故我們使用了LGPL許可證。
在其他情況下,允許非自由程序使用特定的函數(shù)庫,可以讓更多的人們使用自由軟件的大部分。例如,允許非自由程序使用GNU C函數(shù)庫,可以讓更多的人們使用整個GNU作業(yè)系統(tǒng),以及它的變形,GNU/Linux操作系統(tǒng)。
盡管LGPL許可證對使用者的自由保護是較少的,但它卻能確保與此函數(shù)庫連結的程序的使用者擁有自由,而且具有使用修改過的函數(shù)庫版本來執(zhí)行該程序的必要方法。
MPL許可證
MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組為其開源軟件項目設計的軟件許可證。MPL許可證出現(xiàn)的最重要原因就是,Netscape公司認為GPL許可證沒有很好地平衡開發(fā)者對源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與它們相同(因為都是符合OSIA認定的開源軟件許可證)。但是,相比而言MPL還有以下幾個顯著的不同之處:
MPL雖然要求對于經MPL許可證發(fā)布的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL許可證中對“發(fā)布”的定義是“以源代碼方式發(fā)布的文件”,這就意味著MPL允許一個企業(yè)在自己已有的源代碼庫上加一個接口,除了接口程序的源代碼以MPL許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就為借鑒別人的源代碼用做自己商業(yè)軟件開發(fā)的行為留了一個豁口。
MPL許可證第三條第7款中允許被許可人將經過MPL許可證獲得的源代碼同自己其他類型的代碼混合得到自己的軟件程序。
對軟件專利的態(tài)度,MPL許可證不像GPL許可證那樣明確表示反對軟件專利,但是卻明確要求源代碼的提供者不能提供已經受專利保護的源代碼(除非他本人是專利權人,并書面向公眾免費許可這些源代碼),也不能在將這些源代碼以開放源代碼許可證形式許可后再去申請與這些源代碼有關的專利。
對源代碼的定義
而在MPL(1.1版本)許可證中,對源代碼的定義是:“源代碼指的是對作品進行修改最優(yōu)先擇取的形式,它包括:所有模塊的所有源程序,加上有關的接口的定義,加上控制可執(zhí)行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始源代碼顯著不同的源代碼就是被源代碼貢獻者選擇的從公共領域可以得到的程序代碼。”
MPL許可證第3條有專門的一款是關于對源代碼修改進行描述的規(guī)定,就是要求所有再發(fā)布者都得有一個專門的文件就對源代碼程序修改的時間和修改的方式有描述。
BSD許可證
BSD許可證原先是用在加州大學柏克利分校發(fā)表的各個4.4BSD/4.4BSD-Lite版本上面(BSD是Berkly Software Distribution的簡寫)的,后來也就逐漸沿用下來。1979年加州大學伯克利分校發(fā)布了BSD Unix,被稱為開放源代碼的先驅,BSD許可證就是隨著BSD Unix發(fā)展起來的。BSD許可證現(xiàn)在被Apache和BSD操作系統(tǒng)等開源軟件所采納。
相較于GPL許可證和MPL許可證的嚴格性,BSD許可證就寬松許多了,一樣是只需要附上許可證的原文,不過比較有趣的是,它還要求所有進一步開發(fā)者將自己的版權資料放上去,所以拿到以BSD許可證發(fā)行的軟件可能會遇到一個小狀況,就是這些版權資料許可證占的空間比程序還大。
QPL許可證
QPL是The Qt Public License的簡稱,是挪威一家機構創(chuàng)設的。QPL許可證的基本要求是獲得源代碼、修改源代碼,并可將修改從原始代碼中分離出來;修改可以按照作者的意愿被組合到新版本中;二進制代碼可以和原始代碼同名,這一點對于動態(tài)連接庫來說尤其重要;任何人都可以修正錯誤,這對于系統(tǒng)的發(fā)布者來說很關鍵;修改過的軟件可以按照滿足QPL許可證基本要求的任何開源軟件許可證進行發(fā)布。
QNCL許可證
QNCL許可證是Qt Non Commercial License的簡稱,是QPL許可證的“兄弟版”,就像GPL許可證與LGPL許可證的關系一樣,QNCL許可證比QPL許可證更嚴格一些。
在修改和發(fā)布方面的規(guī)定,QNCL許可證與QPL許可證是一樣的,差異就在于軟件的范圍方面,或者說在連接方面。QNCL許可證規(guī)定“假如一個應用程序給你提供了一個入口,使你有權使用QNCL許可證下的軟件的功能開發(fā)程序、重復使用程序的某一部分或其他軟件的某一部分,那么對該應用程序的使用視為是使用QNCL許可證下的軟件的行為,該應用程序應受到QNCL許可證的約束”。QNCL許可證比QPL許可證更嚴格之處在于,QNCL許可證像GPL許可證那樣,完全禁止根據(jù)本許可證得到的開放源碼軟件與其他非系統(tǒng)庫函數(shù)連接的軟件以其他許可方式一起發(fā)布。
Common許可證
Common許可證的全稱是Common Public License。在滿足OSIA開源軟件許可證認證標準的前提了后,Common許可證還有一些細節(jié)性的規(guī)定值得參考:
明確了專利授權。一般的開源軟件都有明確源代碼的版權人將自己的修改權、復制權等版權權利向公眾許可,但保留署名權,而Common許可證在此基礎上還明確假如源代碼中含有專利權,源代碼專利權人將復制、使用的專有權利向公眾許可。
規(guī)定可以將源代碼及修改過的源代碼與其他類型的不受本許可證約束的代碼結合,以新產品的形式發(fā)布,只要其中經該許可證獲得的源代碼及修改過的源代碼能按該許可證的要求發(fā)布即可。
細化了該許可證終止的情形,包括發(fā)生專利侵權訴訟。
明確了一個獨立承擔責任的原則,就是假如按該許可證使用源代碼的使用者將獲得的源代碼應用于商業(yè)使用,那么他就要對在商業(yè)應用中出現(xiàn)的由于使用該源代碼程序而產生的侵權訴訟承擔完全責任。這一條規(guī)定是比較特殊的,絕大多數(shù)開源軟件許可證都不這么要求。
IBM許可證
IBM許可證的全稱是IBM Public License。在滿足OSIA開源軟件許可證認證標準的前提下,IBM許可證還有如下一些細節(jié)性規(guī)定:
明確了專利授權。一般的開源軟件都明確源代碼的版權人將自己的修改權、復制權等版權權利向公眾許可,但保留署名權,而IBM許可證在此基礎上還明確假如源代碼中含有專利權,源代碼專利權人將復制、使用的專有權利向公眾許可。
細化了該許可證終止的情形,包括不按該許可證的要求發(fā)布和使用源代碼、發(fā)生專利侵權訴訟等。
像Common許可證一樣,IBM許可證也明確了獨立承擔責任原則,即假如按該許可證使用源代碼的使用者將獲得的源代碼應用于商業(yè)使用,那么他就要對在商業(yè)應用中出現(xiàn)的、由于使用該源代碼程序而產生的侵權訴訟承擔完全責任。
Jabber許可證
Jabber許可證的全稱是Jabber Open Source License,由美國Jabber, Inc.公司提供。Jabber許可證在源代碼的復制、發(fā)行規(guī)定方面基本上和其他許可證沒有什么特別,但有一些細節(jié)規(guī)定值得借鑒:
可以將通過該許可證獲得的源代碼及修改過的源代碼與其他類型的不受該許可證約束的代碼結合,以新產品的形式發(fā)布,只要其中經該許可證獲得的源代碼及修改過的源代碼能以與該許可證的要求類似的、符合OSI認證的其他開源軟件許可證的方式發(fā)布。
明確了需將源代碼置于公眾可以得到的狀態(tài)的時間至少應為12個月。
第三方對法定權利的聲明。假如使用者發(fā)現(xiàn)通過本許可證獲得的源代碼及應用程序接口中有一方擁有的知識產權,應單獨在源碼的發(fā)布時冠以“LEGAL”為抬頭的聲明,寫明知識產權權利要求的細節(jié),提請源代碼的接受者知道自己獲得了哪些知識產權的授權,讓源碼的接受者知道如何與知識產權權利人聯(lián)系。
細化了該許可證終止的情形,包括不按該許可證的要求發(fā)布和使用源代碼、發(fā)生專利侵權訴訟。
協(xié)議對比
BSD開源協(xié)議
BSD開源協(xié)議是一個給于使用者很大自由的協(xié)議?;旧鲜褂谜呖梢浴睘樗麨椤?,可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。
但”為所欲為”的前提當你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎做二次開發(fā)自己的產品時,需要滿足三個條件:
如果再發(fā)布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。
如果再發(fā)布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協(xié)議。
不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對 商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產品的時候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發(fā)。
MIT
MIT是和BSD一樣寬范的許可協(xié)議,作者只想保留版權,而無任何其他了限制。也就是說,你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無論你是以二進制發(fā)布的還是以源代碼發(fā)布的。MIT協(xié)議又稱麻省理工學院許可證,最初由麻省理工學院開發(fā)。被授權人權利:1、被授權人有權利使用、復制、修改、合并、出版發(fā)行、散布、再授權及販售軟件及軟件的副本。2、被授權人可根據(jù)程式的需要修改授權條款為適當?shù)膬热?。被授權人義務:在軟件和軟件的所有副本中都必須包含版權聲明和許可聲明。
GNU GPL
我們很熟悉的Linux就是采用了GPL。GPL協(xié)議和BSD, Apache Licence等鼓勵代碼重用的許可很不一樣。GPL的出發(fā)點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改后和衍生的代 碼做為閉源的商業(yè)軟件發(fā)布和銷售。這也就是為什么我們能用免費的各種linux,包括商業(yè)公司的linux和linux上各種各樣的由個人,組織,以及商 業(yè)軟件公司開發(fā)的免費軟件了。
GPL協(xié)議的主要內容是只要在一個軟件中使用(”使用”指類庫引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產品,則該軟件產品必須也采用GPL協(xié)議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL協(xié)議的產品作為一個單獨的產品使用沒有任何問題,還可以享受免費的優(yōu)勢。
由于GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協(xié)議,對于使用GPL協(xié)議的開源代碼,商業(yè)軟件或者對代碼有保密要求的部門就不適合集成/采用作為類庫和二次開發(fā)的基礎。
其它細節(jié)如再發(fā)布的時候需要伴隨GPL協(xié)議等和BSD/Apache等類似。
GUN LGPL
LGPL 是GPL的一個為主要為類庫使用設計的開源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協(xié)議不同。LGPL 允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并 發(fā)布和銷售。
但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因 此LGPL協(xié)議的開源 代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎,通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼復制并開發(fā)類似的產品。
Apache Licence 2.0
Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。需要滿足的條件也和BSD類似:
需要給代碼的用戶一份Apache Licence
如果你修改了代碼,需要再被修改的文件中說明。
在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標,專利聲明和其他原來作者規(guī)定需要包含的說明。
如果再發(fā)布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對Apache Licence構成更改。
Apache Licence也是對商業(yè)應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業(yè)產品發(fā)布/銷售。
附件列表
詞條內容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域專業(yè)人士。