歷史
開放源碼軟體主要被散布在全世界的編程者隊伍所開發,但是同時一些大學,政府機構承包商,協會和商業公司也開發它。開放源碼軟體在歷史上曾經與UNIX,Internet聯繫得非常緊密。在這些系統中許多不同的硬體需要支持,而且源碼分發是實現交叉平台可移植性的唯一實際可行的辦法。在DOS,Windows,Macintosh平台上僅僅有很少的用戶有可用的編譯器,開放源碼軟體更加不普遍。對開放源碼開發模式的更詳細的討論請看Eric Raymond寫的“The Cathedral and the Bazaar”。
為什麼open-source軟體與軟體市場有關係
傳統的商業軟體有巨大的廣告和商標預算,在這些背後給了它太多的關注,已經遠遠超出了它的重要性。傳統的商業軟體事實上只是所有軟體的很小的一部分。Lion(獅子)是被各種組織開發,並且是為了它們自己內部的需要。內部開發源碼,特別是被美國政府所命令的重要源碼的共享是具有開發源碼牌照的。這實際上是由於絕大多數軟體專家不編寫商業軟體。
要去定量的描述開放源碼軟體的整個影響和平均利益是困難的,但是很明顯這兩者都被公眾廣泛傳播又低估其價值。現在,許多開放源碼軟體由商業開發支持。同時,開放源碼經營模式的成功和開放源碼開發的高生產效率及高質量都說服Netscape(公司名)在1998年年初決定要將它的瀏覽器開發在開放源碼許可之下。
現在有巨大的動力推動著開放源碼的運動。看到如此多的傳統商業開發者們為了與他同步不得不謀取發展是很有趣的。計算機工業早已看到了幾個激動人心的發展和革新的浪潮,例如,二十世紀七十年代的第一台微機,以及八十年代中期到現在對日用微機的大量生產,還有同一時期Internet(網際網路)的崛起。使用開放源碼模式的商業軟體可能是下一個重要的新潮流。
區別開放源碼軟體和免費軟體
歷史上許多人開發過這樣一種軟體(也就是免費軟體基礎)簡稱為“free software”,而媒介一般稱它為“freeware”。不幸的是這兩種術語都被證明是不明確的且含糊的。
對於大多數人來說“free”僅僅用於購買的費用。比這個初始花費更重要的是由於缺乏許可證限制而帶來的費用。這些是幾種有可能是免費的軟體類型,但是明顯不是open-source software,因為它們具有某些限制或是缺乏公開的源碼。
主要種類
Shareware
共享軟體。允許他人自由拷貝並收取合理註冊費用。使用者可在軟體規定的試用期限內免費試用,再決定註冊購買與否。大部分共享版軟體都有功能和時間限制,試用期通常分為7天、21天、30天不等。而有的共享軟體還限制用戶只能安裝一次,若刪除後重新安裝將會失效。像Winzip、ACDSee等軟體就是共享軟體。
Demos/"Crippleware"
免費或低費用試用的軟體,是商業軟體的一部分,它沒有自由可用的源碼,沒有支持,通常缺乏關鍵特徵。
Bundled Software
它由商業軟體攜帶並且不用增加額外的費用,但是它一般具有很有限的使用許可,沒有自由可用的源碼。例如:Microsoft Internet Explore. "Consortium-Ware": 源碼由公司內部人員共享,但是對公眾沒有自由可用的源碼。例如:Motif. "Non-commercial use only": 這是可以免費從Internet網下載的典型軟體,甚至連同源碼,但是同時它有嚴格的許可證限制它的使用。例如:1998年以前的Netscape的瀏覽器一些Open-source許可證類型
BSD(Berkeley Source Distribution)許可證:它要求著作權和著者身份申明
GPL
通用公共許可證("CopyLeft")禁止派生或分發產品的限制。
LGPL
庫通用許可證,它不同於GPL許可證,在這個許可證下,庫(函式館)可以自由的聯接到私有軟體。
Artistic License
使作者保持對進一步開發的控制。
NPL(Netscape Public Lincense)
基於GPL精神的新的許可證,但是保持了對源碼更多的控制和所有權(請看下面的“Netscape發展什麼”這一節)
Public Domain/Not Copyrighted/No Restrictions: 通常用於決定性的算法以鼓勵廣泛使用,通常由美國政府使用。
Open-source 軟體的一些例子
現在有幾百種成熟的open-source產品被廣泛使用。這而是一些最著名的:
Corncart
由OSIC信息技術有限公司最新開發的開源電子軟體,集合之前所有電子開源軟體的所有優點。目前尚處於二次開發階段。
BSD UNⅨ
由California大學Berkeley分校開發的基於"BSD"許可證的軟體。許多UNⅨ商業版本是直接基於BSD源碼或者大多從它的設計中借用來的。
Linux: 它從一個芬蘭的大學生的研究項目成長為近六年最流行的非Microsoft作業系統。最初它僅僅是為PCs機設計的,可現在它支持Palm Pilots(小型掌中平台),大型的64位Digital Alphas晶片的超級計算機,和在這兩者之間的幾乎任何事物。與傳統作業系統相比它的效率更高,更可靠,更先進。它包括編譯程式,庫,和來自於FreeSoftware Foundation的各種工具,還有成千上萬的open-source產品,Linux平台是一個小的但是卻在快速成長的商業產業的基礎,還是軟體革新的溫床。它由商業公司和散布在全世界的自由編程人員基於GPL所開發。
Perl語言
"Internet的傳輸帶”,大多數web伺服器的動態內容的基礎,廣泛用於腳本語言編程和自動化文檔處理。它由Perl研究所基於Artistic 許可協定開發。
GCC
GNU C編譯器是許多Unix平台上首選的C/C++編譯器,也可以在其他平台上運行;因為支持幾乎每種處理器,所以它也被作為一個跨平台的工具而廣為流行;它由FSF基於GPL維護、開發。
X Window 系統
使用最廣的非microsoft視窗系統,具有先進的跨平台遠程執行特性,性能優良,靈活度高;由MIT和X Consortium在類BSD許可協定下開發;其他的增強功能由The XFree86 Project公司開發。
Internet 主幹:
BIND: Berkeley Internet Name Daemon; 為幾乎所有的Internet域名解析伺服器使用,其行為如同一個分散全球的分散式資料庫;由ISC(Internet Software Consortium)維護。
BSD SendMail: 郵件傳輸代理的最高標準。沒有任何一家商業競爭者能和它匹敵,絕對安全、健壯;負責處理Internet上超過75%的郵件傳輸任務,包括象AOL這樣的巨型站點---每天有數百萬的訊息。由SendMail公司基於BSD許可協定維護。
INN:InterNet新聞伺服器,操縱Internet上的決大多數Usenet新聞還包括許多企業網。被ISC(BSD)所維護(BSD許可協定)。
Apache: 超過半數的web伺服器的動力(遠遠超出Microsoft和Netscape加起來的數量),早在1998年用於超過百萬的web伺服器。由Apache組織開發(類BSD許可證維護)。
WU-FTPD: 在Internet網上最流行的FTP伺服器,幾乎使用於所有的FTP站點。最初是由Bryan O'Connor在Washington大學Louis大街開發的,現在被Academ Consulting Services和許多自願者維護(BSD許可)。
主要特點
降低風險:擁有原始碼使顧客們可以控制那些他們的業務所賴以生存的工具。當一個open-source產品的開發者提高價格,增加了難以接收的限制,或者使用了一些使顧客不滿意的方法,另一個不同的組織將使用該原始碼開始開發新的產品以解決原來機構的問題。顧客也能自己維護或找別人改進它以達到自己的要求。顧客控制軟體,這在傳統私有軟體模式下是聞所未聞的事情。即使是一些財大氣粗的顧客也可能緩解由於傳統軟體商自己內部的問題而導致嚴重的金融危機或公司被別的公司收購的風險。
質量
一些研究已經顯示了open-source軟體與別的可比商業軟體具有可靠性上的極大優勢。更加有效的開發模式,更多的獨立同行對代碼和設計的雙重審查,以及大部分作者對自己作品的極大榮譽感,都對其優良的質量有所貢獻。一些公司甚至給予發現Bug者以物質獎勵。
透明
私有軟體有很多“陰暗的死角”,隱藏著許多Bug。源碼對於查錯和理解產品工作原理來說是很重要的。在大的軟體公司,只有極少數人能接觸到源碼,而這些能接觸源碼的人通常用戶都無法直接接觸。能接觸源碼對於修補安全漏洞來說,也是非常重要的。一些開放源碼的產品--包括上面列舉的一些產品--是如此成功,以至於其商業競爭者無法存活。
剪裁
開放源碼給用戶極大自由,使他們能夠按照自己的業務需求定製軟體。大型組織能從即使很小的定製行為中削減大量開支和人力成本。用戶的挑錯和改進反過來對標準開放源碼軟體包也是個貢獻。這在傳統的私有軟體開發中是不可能得到的。
有利的著作權許可和價格:定義為開放源碼使得軟體在著作權許可方面比私有軟體具有更大的靈活性。這可以大大削減更多安裝帶來的花費和時間,對那些採購過程費時費力的機構更加有利。它也能給用戶安裝軟體以更大的自由度。
什麼時候不使用開放源碼軟體
如果一個開放源碼產品不能很好地滿足一個組織的需求,而另外的一個私有軟體卻可以,並且得到一個滿足特性的私有軟體的成本比再開發修改一個開放源碼產品的成本高的話,最好不使用開放源碼軟體。但參考上面的“剪裁”。
支持
一些open-source軟體傳統的付費支持和電話支持。事實上,無論怎樣,這都沒有一個既沒有原始碼且無支持的產品嚴重。請看支持和open source軟體一節。
大部分open-source軟體主要是支持UNⅨ和Linux系統的,有時也支持Windows NT。另一些平台,例如大型機,對於移植開放源碼軟體是個巨大挑戰。移植軟體從UNⅨ到Windows NT上要付出很大代價。然而。開放源碼的優點幾乎可以使平台轉換顯得更划算。
主要問題
安裝open-source軟體有時需要一些更多的技術經驗,例如,可以配置或編譯原始碼的能力。有原始碼的優點在一些沒有軟體開發專家的公司被降低了。open-source的定製也要求有配置管理經驗。無論如何,那些充分具有上述技術能力的任何組織都會很好地享受open-source的優點。
如果現存的所有系統都被很好的支持並完成,就沒有必要去改變它們。然而,時常的去檢討這個決定是很重要,因為新技術經常會使它們變得過時。
值得懷疑的避免open-source軟體的原因
這些論據常被作為避免使用open-source軟體的藉口,但是通常經不起推敲。
---對未知的恐懼。
正如你在上面的“open-source軟體的例子”一節所看到的,許多的組織已經嚴重的依賴open-source軟體,不管他們的決策者是否意識到這一點。這個問題由於open-source開發者宣傳和使用市場的增加,以及更多的擁護者的出現變得比較容易解決。
---在購買商業軟體包上我們已經擁有巨大的投資。
這僅僅是“必然花費謬誤”的一種形式。軟體許可證,好像為寫字樓付的租金,是一些消費,但不是投資。如果別的產品能很好的以較低的成本實現你的組織的需要,那么過去把錢花費在低級的軟體上對
決策不應該產生影響。記住,你可能面臨嚴重的政治上的反對,它來自於那些選擇了贊成使用昂貴的,低級的產品,而不願意承認他們的錯誤的守舊者。同時,考慮到它們可能被再次擴展,在訓練職員和相關基礎設施上的投資是完全合理的。
---如果出了問題,我們需要有人負責。
儘管理論上這聽起來很合理,但如果我們一開始就使用可信賴的軟體產品,遠比在遭受經濟損失之後才去控告軟體供應商要好的多。幾乎所有的主要軟體公司都利用最終用戶許可證的支持來解決一些由於他們軟體的問題而帶來的可能要負責的困擾。Microsoft和IBM公司有著龐大的,一流的法律職員,使得顧客的控訴不可能成功。在將來法律可能會越來越偏向軟體供應商。
open-source和軟體技術支持
商業支持和同幾乎是那些正在使用open-source軟體的公司最關心的問題了。付費支持是正當的問題,但是這對於open-source產品通常是可用的,而且一般都過高估計了它的重要性。
---許多主要的open-source產品都有可用的技術支持契約。
例如,Red Hat 和Caldera公司對他們銷售的linux有電話支持。 Cygnus,Collective Technologies和許多小的顧問公司靠支持和增強open-source軟體,生意也做的不錯。而且越來越多的open-source軟體在保持其開放源碼狀態的同時,也獲得了大量商業維護和支持。
---電子郵件和Usenet新聞支持時非常有效的。
幾乎所有開發open-source軟體的組織都提供免費的電子郵件支持,提供郵件列表和Usenet新聞組。這些機制比電話支持更加實際有效。在一個有許多軟體供應商所支持的調查中,“Linux用戶協會”在1997年獲得“最好的技術支持獎”,同時也暴露了許多對傳統的軟體開發商的服務質量的大量不滿意見。
---對傳統商業軟體的支持經常是有限的並且是低質量的。
例如Microsoft公司僅僅提供了為它的所有產品僅僅提供了一個技術支持電話號碼:900。許多市場商業銷售支持人員把注意力集中在幫助初學者上手上,無法回答使用手冊上沒有包括的問題。許多軟體公司認為傳統的電話支持是很昂貴的代價,而因此消減它,這就導致了質量下降。
套用平台
web伺服器
WEB伺服器也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務。WWW 是 Internet 的多媒體信息查詢工具,是 Internet 上近年才發展起來的服務,也是發展最快和目前用的最廣泛的服務。正是因為有了WWW工具,才使得近年來 Internet 迅速發展,且用戶數量飛速增長。
開源的web伺服器軟體包括apache、kangle、nginx等。
Blog
Blog 全名Web log,中文意思是“網路日誌”,後來縮寫為Blog。它是繼Email、BBS、IM之後出現的第四種網路交流方式,是網路時代的個人“讀者文摘”,是以超級連結為武器的網路日記,是代表著新的生活方式和新的工作方式,更代表著新的學習方式。簡言之,Blog 就是以網路作為載體,簡易迅速便捷地發布自己的心得,及時有效輕鬆地與他人進行交流,再集豐富多彩的個性化展示於一體的綜合性平台。
開源的Blog軟體有b2evolution(PHP+MySQL)、BLOG:CMS (PHP、基於Nucleus CMS)、BLOG:CMS (PHP、基於Nucleus CMS)等。
論壇
論壇又名網路論壇BBS,全稱為Bulletin Board System(電子公告板)或者Bulletin Board Service(公告板服務)。是Internet上的一種電子信息服務系統。它提供一塊公共電子白板,每個用戶都可以在上面書寫,可發布信息或提出看法。它是一種互動性強,內容豐富而即使的Internet電子信息服務系統。用戶在BBS站點上可以獲得各種信息服務,發布信息,進行討論,聊天等等。
開源的論壇套用軟體包括phpbb、BMForum、phpwind[等。
套用伺服器
套用伺服器定是指通過各種協定把商業邏輯曝露給客戶端的程式。它提供了訪問商業邏輯的途徑以供客戶端應用程式使用。套用伺服器使用此商業邏輯就像調用對象的一個方法一樣。簡單的說能實現動態網頁技術的伺服器叫做套用伺服器。
開源的套用伺服器軟體包括Enhydra (Java)、JBoss (Java)、Open3 (XML)等。
訊息伺服器
訊息伺服器作為網路的節點,專門用來存儲、轉發網路上的數據、信息(例如:聊天信息)。做一個形象的比喻:訊息伺服器就像是郵局的交換機,而微機、筆記本、PDA、手機等固定或移動的網路終端,就如散落在家庭、各種辦公場所、公共場所等處的電話機。我們與外界日常的生活、工作中的電話交流、溝通,必須經過交換機,才能到達目標電話;同樣如此,我們利用個人電腦,PDA,手機等,傳送訊息,也必須經過訊息伺服器,因此也可以說是訊息伺服器在“組織”和“領導”這些接收訊息設備。
開源的訊息伺服器軟體包括ArsDigita (Tcl & Java)、Exolab Group (J2EE,整合OpenEJB,OpenJMS,OpenORA,Tyrex)、Zend (PHP)等。
企業程式
企業應用程式是一個泛指的概念,細分下來可分為企業資源計畫(ERP)、客戶關聯管理、項目管理、內容管理、人力資源管理、自動化採購軟體、信息倉庫(CIW)、生產計畫、庫存管理、群組軟體、B2B和圖書館資源整合系統(ILS)。
開源的企業應用程式包括Compiere (ERP+CRM)、Compiere、Gnome Planner 、ArsDigita、phpgroupware、J2EE、Akopia、Compiere (ERP+CRM)、openapplications、OpenBiblio等。
無線網路
所謂無線網路,既包括允許用戶建立遠距離無線連線的全球語音和數據網路,也包括為近距離無線連線進行最佳化的紅外線技術及射頻技術,與有線網路的用途十分類似,最大的不同在於傳輸媒介的不同,利用無線電技術取代網線,可以和有線網路互為備份。
開源的無線應用程式有kannel、Jwap、Ophelia等。
資料庫
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今五十年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的套用。
開源的資料庫軟體有BerkelayDB、MySQL、SQLite等。
桌面環境
“桌面環境”可能僅僅是一個簡單的視窗管理器,也可能是一個像 KDE 或者 GNOME這樣的完整桌面應用程式套件。
開源的桌面環境類軟體包括GNOME、GNUstep、KDE等。
視窗管理類
視窗管理,又名用戶界面,電子計算機系統中實現用戶與計算機信息交換的軟體、硬體部分。軟體部分包括用戶與計算機信息交換的約定、操作命令等處理軟體,硬體部分包括輸入裝置和輸出裝置。目前常用的是圖形用戶界面,它採用多視窗系統,顯示直接形象,操作簡便。
開源的視窗管理類軟體有Afterstep、Twm、fvwm、Window Maker等。
CD刻錄類
CD刻錄機的功能是:可以刻錄CD,讀取CD,但是卻無法讀取/寫入DVD,功能上次於COMBO,又次於DVD刻錄機。現在多數人使用的是DVDROM,COMBO,DVD刻錄機。性能方面:讀取——CDROM=CD刻錄機