誰寫了Linux

2009年8月,Linux軟件基金會發布了一份叫《Who Writes Linux and Who Supports It》(PDF)的報告。這份報告主要對Linux 2.6.x的開發進行了全方位的統計??戳艘院蟛胖溃瓉鞮inux的開發的生產率竟是這樣的驚人,而且相當的的令人振奮,所以,在第一時間轉過來給大家看看。讓人不得不驚嘆,這不可思議的具有非凡活力的社區。(注意,我們這里說的是Linux,不是GNU的那些東西,所謂Linux就是Linux的Kernel)

下面是一個導讀,希望每一個看到這篇文章的朋友都能看看原文的報告:《Who Writes Linux and Who Supports It》(PDF)

這份報告的一開始就對Linux的開發進行了總結:

  • 每2-3個月一個release

  • 最近的每一次release都超過10000個補丁

  • 有超過1000個開發人員進行開發,他們來自200個公司或組織。

  • 自2005年以來,超過5000個來自500個不同公司的開發人員為Linux內核做過貢獻。

  • 自2008年以來,每次release,都大約增加了10%左右的開發人員,而且,代碼碼達到了2.7百萬行。

是的,這樣的生產率真是太瘋狂了。下面是這份文檔中所涉及的一些介紹和一些具體的統計數據。

Linux開發模式

Linux的開發采用的是一種寬松的,基于時間的開發模式。每一個新的主要版本的release基本上會發生在2-3個月之內。這個開發模式是在2005年形成的,因為任何人都可以修改其內核的代碼,所以,很多補丁進入內核的時間非常的快。

其中一個有意義的事是,他們有一個叫Linux-Next的服務器,這個服務器一般來說會是下一個版本的staging,比如,如果目前的穩定版本是2.6.31,那么Linux-Next上就會運行2.6.32。這樣,所有的developer都能看到下一個版本總體的樣子,而且,這更容易發現一些集成性的問題。

在2.6的mainline代碼庫上(mailline是代碼庫的主線),有一個叫做“stable team”的團隊,他們會做短期的維護工作,他們確保所有的重要的補丁或更改都會被放入mailline中,這樣就能滾入下一個release。

然后,這份文檔中給出了大量的開發編譯數據。

統計數據

下面的統計數據是從版本2.6.11開始的,我把源文件中的表格合并成一個大表,如下所示。

1.png

從上圖我們可以看到下面這些東西:

  • Linux Kernel開發的速度越來越快,看看每個release的補丁數,每天文件增、刪、改就可以知道。

  • Linux Kernel開發的團隊是越來越大,包括人員和參與的公司。

下面是幾個統計圖表:

2.png平均每天的修改

3.png代碼修改統計

4.png開發人員

誰寫了Linux

最后我們進入主題——誰寫了Linux,首先,我們先來看一下進入代碼修改的Top 30的開發人員列表:

5.png

我們可以看到,Linus Torvalds (729 總修改,自2.6.24版來254 修改)無法進入前30名。當然,對Linux的貢獻絕對不能通過代碼行來表示,Linus對Linux就算是在今天也是至關緊要的。

好,讓我們再來看看那些公司對Linux的貢獻。根據這份報告所說,知道每個developer所在的公司,主要是通過了下面的幾種方法:

  • 使用的郵件地址有公司的名字。

  • 由贊助者提交的代碼。

  • 直接詢問得到的。

所以,這些數據只能算得上的近似,不過也能看到一個總體的樣子了。下圖中“None”代表沒有職業無業游民,“Unknown”代表無名氏或是英雄不知出處。

6.png

我們可以看到,Top 10公司,為Linux貢獻了近70%的代碼。包括了None和Unknown,而且,那些是拿著公司報酬給Linux作開發的程序員。

那么,為什么這些公司要支持Linux的內核開發呢?

  • 我們可以看到像IBM, Intel, SGI, MIPS, Freescale, HP, Fujitsu這樣的大公司,他們的目的當然是為了確保Linux能夠在他們的硬件上工作得更好。

  • 我們也可以看到像Red Hat, Novell, 和MontaVista這些Linux的Distribution公司,他們是Linux的主力,主要是為了提供給他們的客戶更好的服務。

  • 同樣,我們還能看到像Sony, Nokia, 和Samsung這樣的公司,這些公司主要是用Linux來開發數碼產品,如攝像機、手機或是電視,他們使用Linux做一些嵌入式開發,以保證他們的產品工作得更好。

  • 還有一些和IT都沒有關系的,例如:Volkswagen公司在v21.6.25中為Linux加入了PF_CAN網絡實現的協議。Quantum Controls BV公司在2.6.30時加入了一個航海導航的補丁,這些公司都會使用Linux來完善他們的產品。

看來,Linux的勢頭是越來越無法阻擋了,你也想加入這個陣營嗎?點下面的鏈接吧:http://ldn.linuxfoundation.org/book/how-participate-linux-community

轉自:http://coolshell.cn/articles/1360.html

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/2424

(0)
s19930811s19930811
上一篇 2015-04-03
下一篇 2015-04-03

相關推薦

  • sed使用方法

      sed編輯器被稱作流編輯器(stream editor)。流編輯器在處理數據之前基于預先提供的一組規則來編輯數據流。 一、命令格式   sed options '"地址""編輯命令"' file   常用選項:     -n:靜默模式,不顯示模式…

    Linux干貨 2015-12-28
  • linux用戶和組

    *** Linux用戶和組: 1.用戶:Username/UID     管理員:root, 0     系統用戶:1-499(CENTOS6), 1-999(CENTOS7)     對守護進程獲取資源進行權限分配  &nbsp…

    Linux干貨 2016-08-04
  • 【N25第四周作業】grep

    文本處理工具: Linux上文本處理三劍客: grep, egrep, fgrep:文本過濾工具(模式:pattern)工具; grep:基本正則表達式,-E,-F egrep:擴展正則表達式, -G,-F grep:不支持正則表達式, sed:stream editor, 流編輯器;文本編輯工具; awk:…

    Linux干貨 2016-12-18
  • httpd協議配置進階

    目錄 虛擬主機配置 status狀態頁面 curl命令 mod_deflate模塊 https配置 httpd自帶應用程序 虛擬主機配置 有三種實現方案:    基于IP:        為每個虛擬主機準備至少一個IP地址    基于端口:     &nbsp…

    Linux干貨 2016-10-31
  • shell腳本編程之補充知識點

    一、處理用戶輸入   shell中使用read命令來實現與用戶的交互輸入。   格式:read [options] 變量    常用選項:      -p “提示信息”:顯示提示信息;      -t #:等待用戶輸入的秒數;     &n…

    Linux干貨 2016-02-14
  • Linux進程查看及管理(2)

    Linux進程查看及管理(2) CentOS5和6的啟動流程: Liunx中的啟動:kernel和rootfs(根文件系統) kernel:進程管理,內存管理,網絡管理功能,驅動程序,文件系統,安全功能(權限模型), rootfs:glibc(lib,lib64) 庫:函數集合,function(功能模塊)有其調用接口(頭文件是對函數功能或調用參數的功能進行…

    Linux干貨 2016-08-08
欧美性久久久久