技術 > 開放源代碼軟件
目錄
No. 1
  開放源碼軟件《open-source》是一個新名詞,它被定義為描述其源碼可以被公衆使用的軟件,並且此軟件的使用,修改和分發也不受許可證的限製。開放源碼軟件通常是有copyright的,它的許可證可能包含這樣一些限製: 著意的保護它的開放源碼狀態,著者身份的公告,或者
  開發的控製。“開放源碼”正在被公衆利益軟件組織註册為認證標記,這也是創立正式的開放源碼定義的一種手段。
  開放源碼軟件主要被散布在全世界的編程者隊伍所開發,但是同時一些大學,政府機構承包商,協會和商業公司也開發它。開放源碼軟件在歷史上曾經與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:通常是由個人開發的,一般沒有支持且沒有公開的源碼,它希望得到使用者的資助。
  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産品被廣泛使用。這而是一些最著名的:
  bsd unix: 由california大學berkeley分校開發的基於"bsd"許可證的軟件。許多unix商業版本是直接基於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産品的開發者提高價格,增加了難以接收的限製,或者使用了一些使顧客不滿意的方法,另一個不同的組織將使用該源代碼開始開發新的産品以解决原來機構的問題。顧客也能自己維護或找別人改進它以達到自己的要求。顧客控製軟件,這在傳統私有軟件模式下是聞所未聞的事情。即使是一些財大氣粗的顧客也可能緩解由於傳統軟件商自己內部的問題而導致嚴重的金融危機或公司被別的公司收購的風險。
  質量:一些研究已經顯示了open-source軟件與別的可比商業軟件具有可靠性上的極大優勢。更加有效的開發模式,更多的獨立同行對代碼和設計的雙重審查,以及大部分作者對自己作品的極大榮譽感,都對其優良的質量有所貢獻。一些公司甚至給予發現bug者以物質奬勵。
  透明度:私有軟件有很多“陰暗的死角”,隱藏著許多bug。源碼對於查錯和理解産品工作原理來說是很重要的。在大的軟件公司,衹有極少數人能接觸到源碼,而這些能接觸源碼的人通常用戶都無法直接接觸。能接觸源碼對於修補安全漏洞來說,也是非常重要的。
  正確的特性:一些開放源碼的産品--包括上面列舉的一些産品--是如此成功,以至於其商業競爭者無法存活。
  剪裁:開放源碼給用戶極大自由,使他們能夠按照自己的業務需求定製軟件。大型組織能從即使很小的定製行為中削減大量開支和人力成本。用戶的挑錯和改進反過來對標準開放源碼軟件包也是個貢獻。這在傳統的私有軟件開發中是不可能得到的。
  有利的版權許可和價格:定義為開放源碼使得軟件在版權許可方面比私有軟件具有更大的靈活性。這可以大大削減更多安裝帶來的花費和時間,對那些採購過程費時費力的機構更加有利。它也能給用戶安裝軟件以更大的自由度。
  什麽時候不使用開放源碼軟件
  錯誤的特性:如果一個開放源碼産品不能很好地滿足一個組織的需求,而另外的一個私有軟件卻可以,並且得到一個滿足特性的私有軟件的成本比再開發修改一個開放源碼産品的成本高的話,最好不使用開放源碼軟件。但參考上面的“剪裁”。
  支持: 一些open-source軟件傳統的付費支持和電話支持。事實上,無論怎樣,這都沒有一個既沒有源代碼且無支持的産品嚴重。請看支持和open source軟件一節。
  錯誤的平臺:大部分open-source軟件主要是支持unix和linux係統的,有時也支持windows nt。另一些平臺,例如大型機,對於移植開放源碼軟件是個巨大挑戰。移植軟件從unix到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。許多市場商業銷售支持人員把註意力集中在幫助初學者上手上,無法回答使用手册上沒有包括的問題。許多軟件公司認為傳統的電話支持是很昂貴的代價,而因此消減它,這就導致了質量下降。
  netscape的發展趨勢
  一個著名的計算機工業雜志報道netscape是“受大量免費和共享軟件許可的啓發”。事實上,netscape正在與許多著名的unix自由軟件開發者互通信息,現在看起來已經非常接近bsd和gpl許可證了。nescape public license和gpl有所不同,它使得nescape對源碼的開發和商標上有更多的控製。
  netscape的棄子戰術是很聰明的。首先,瀏覽器的銷售在netscape的業務中已經衹占很少一部分了。瀏覽器的開放源碼狀態不會對它有太大的衝擊,另外有些想要正式技術支持的買傢仍然願意付錢。第二,它真正按照某個開放源碼的許可證發放,從而完全改變了microsoft免費派送explorer造成的被動局面。這將有助於提高nescape瀏覽器的市場份額。最後,netscape的立場從開放源碼社群中獲得了友誼,信任度和潛在的巨大革新。netscape的未來還不能讓人放心,尤其是在nt的web服務器上;但它為communicator采用的勇敢的、戲劇性的許可證政策不會帶來任何損失。
相關詞
軟件開發bugfree