開放源代碼軟件(Open Source Software),簡稱:OSS或開源軟件。linux
這種「公開」正是促令人們使用它的緣由,由於這意味着用戶能夠自由的使用、複製、散發以及修改源碼(補充漏洞,按具體需求定製功能)。與其相對是私有/專屬軟件,如:來自微軟和蘋果的軟件,這類軟件的源代碼是保密的,只有公司的開發人員才能夠改動代碼。程序員
廣義上講,開源軟件指全部公開源代碼的軟件,包括某些商業軟件也多是開源的。但咱們一般所說的開源軟件,是狹義上的,指任何人能夠經過極低的成本 (如僅僅訪問互聯網而無需其它額外費用)得到該軟件源代碼的軟件,也就是其源代碼向公衆開放。和狹義上的開源軟件相對應的,就是那些不向公衆公開源代碼的軟件,一般就是商業軟件。數據庫
實質上,在計算機出現的最初年代,幾乎全部的軟件都是開源的。那時的計算機企業,主要是以銷售硬件產品爲主,軟件幾乎都是附送的,加上那時的軟件規模都不大,以源代碼形式提供給用戶還能夠緩解必定的技術支持壓力 - 有問題由用戶本身修改解決。因此,最初的軟件幾乎都是以開源的方式提供的。所以,對着迷於計算機編程的工程師來說,得到軟件的源代碼幾乎是天經地義的事情。這樣,當以微軟爲表明的企業開始實踐純軟件產品的商業模式(核心思想是提供二進制可執行程序的使用許可,而不提供源代碼),就引發了許多計算機編程愛好者的不滿:給我一堆二進制程序,我如何才能按我本身的想法改進程序?在這種背景下,真 正意義上的開源軟件就天然而然地產生了。編程
開源軟件的發展,和互聯網的發展密不可分。真正有規模的開源軟件,應該是從上個世紀90年代開始進入公衆視線,也就是互聯網開始興起的年代。咱們大體能夠將開源軟件的發展分爲以下三個階段:windows
不得不說Linux,包括很大多數軟件爲什麼得以流行,乃至飛速發展,說白了,通俗點就是:花錢少、免費,這是其中很重要的一個因素。瀏覽器
可是須要注意,雖說絕大多數開源軟件是免費的,可是開源和免費並非等同的。也就是說開源軟件能夠賣錢,固然,並是否是把編譯以後的代碼給你,而是源代碼。安全
下面,咱們列舉開源軟件的一些特色:服務器
使用的自由
絕大多數開源軟件免費 markdown
研究的自由
能夠得到軟件源代碼架構
散步及改良的自由
能夠自由傳播、改良甚至銷售
若是不瞭解開源運動的發展史,也許真的沒法領略到它給當今計算機科學所帶來的影響有多大。
上圖只表明了開源軟件的冰山一角。。。下面,咱們J簡單介紹幾種最多見的開源軟件:
Linux是一種自由和開放源碼的類Unix操做系統,存在着許多不一樣的Linux版本,但它們都使用了Linux內核。Linux可安裝在各類計算機硬件設備中,好比手機、平板電腦、路由器、視頻遊戲控制檯、臺式計算機、大型機和超級計算機。
Mozilla Firefox,中文名一般稱爲「火狐」,是一個開源網頁瀏覽器,使用Gecko引擎(即非ie內核),能夠在多種操做系統如Windows,Mac和linux上運行。Firefox由Mozilla基金會與數百個志願者所開發,原名「Phoenix」(鳳凰),以後更名「Mozilla Firebird」(火鳥),再改成如今的名字。到2012年8月,在世界範圍內,Firefox佔據着23%的使用份額。
Eclipse 是一個開放源代碼的、基於Java的可擴展開發平臺。就其自己而言,它只是一個框架和一組服務,用於經過插件組件構建開發環境。Eclipse 附帶了一個標準的插件集,包括Java開發工具(Java Development Kit,JDK)。
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
PHP是一種通用開源腳本語言。獨特的語法混合了C、Java、Perl以及PHP自創的語法,利於學習,使用普遍,主要適用於Web開發領域。它能夠比CGI或者Perl更快速地執行動態網頁。用PHP作出的動態頁面與其它的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比徹底生成HTML標記的CGI要高許多;PHP還能夠執行編譯後代碼,編譯能夠達到加密和優化代碼運行,使代碼運行更快。
MySQL是全球使用範圍最廣的數據庫系統。2009年,全球的MySQL安裝數量已達1千1百萬。它是LAMP架構(Linux, Apache, MySQL, PHP)中的M。衆多知名網站和產品均使用MySQL,好比:維基百科、Facebook、Google和Wordpress。(Google和Facebook均改造了MySQL,以知足自身需求)。
BIND是一款開放源碼的DNS服務器軟件,Bind由美國加州大學Berkeley分校開發和維護的,全名爲Berkeley Internet Name Domain它是目前世界上使用最爲普遍的DNS服務器軟件,支持各類unix平臺和windows平臺。
不少人可能還沒有意識到,咱們使用的電腦中運行有開源軟件,手機中運行有開源軟件,家裏的電視也運行有開源軟件,甚至小小的數碼產品(如電子相框)中也運行有開源軟件,尤爲是互聯網服務器端軟件,幾乎所有是開源軟件。絕不誇張地說,開源軟件已經滲透到了咱們平常生活的方方面面。
你訪問的網站,大部分是使用Apache的Web服務器;你訪問的網站,大部分操做系統是Linux或BSD;你訪問的網站,大部分都是使用MySQL;你提交DNS查詢請求由BIND服務器分析處理;你訪問的博客極可能就是Wordpress的;你用的手機操做系統大部分是Android的;甚至你如今就是用Firefox在閱讀個人的這篇文章。
開源是將來新IT的發展方向,開源讓業界更多的優秀人才一塊兒參與到共同的項目中,經過開放促進了技術的創新,經過共享解決了複雜性的問題。
除了你們比較熟悉的GPL協議以外,開源界還有不少許可證,如:LGPL許可證、BSD許可證等。
無規矩不成方圓。在使用開源產品的時候咱們必須嚴格遵照相應的開源協議,要麼和下面幾位同樣就尷尬了。
FFmpeg恥辱柱名單:
因爲FFmpeg是在LGPL/GPL協議下發布的(若是使用了其中一些使用GPL協議發佈的模塊則必須使用GPL協議),任何人均可以自由使用,但必須嚴格遵照LGPL/GPL協議。目前有不少播放軟件都使用了FFmpeg的代碼,但它們並無遵照LGPL/GPL協議,沒有公開任何源代碼,因此被列入FFmpeg恥辱名單。