誰寫了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 21:59
下一篇 2015-04-03 22:07

相關推薦

  • Linux用戶和組管理

    Linux用戶和組管理 Username / UID 管理員:root,0 普通用戶 : 1–65535 系統用戶 :系統已經已經存在專門用來對系統服務或者系統資源進行管理的 1–499(CentOS 6.X) 1–999 (CentOS 7.X) 登錄用戶:平時專門做系統管理的用戶 500+ (CentOS 6.X) 1000+ (CeentOS 7.X)…

    Linux干貨 2017-04-01
  • 對ssh的簡單理解

    ssh:secure shell,protocol,22、tcp安全的遠程登錄 具體的軟件實現:openssh:ssh協議的開源實現,centos默認安裝dropbear:另一個開源實現ssh協議版本v1:基于crc-32做MAC,不安全;man-in-middle 已淘汰v2:雙方主機協議選擇安全的MAC方式基于DH算法做密鑰交換,基于RSA或DSA實現身…

    2017-09-29
  • 馬哥教育網絡班21期+第11周課程練習

    1、請描述一次完整的加密通訊過程,結合圖示最佳。 Bob先利用單向加密算法提取當前數據的指紋(特征碼),再用自己的私鑰加密數據指紋并附加于數據尾部,然后利用對稱加密將整個文件加密,之后用對方的公鑰加密對稱加密密鑰附加于尾部。 Alice收到數據后,先用自己的私鑰解密,得到對稱加密密鑰,之后用對稱加密密鑰解密,然后用Bob的公鑰解密得到數據指紋,并且驗證了Bo…

    Linux干貨 2016-09-26
  • Shell腳本編程(上)

        Shell腳本編程基礎 Shell 腳本基礎:包含一些命令或聲明并符合一定格式的文本文件Shell 腳本用途:        1. 自動化常用命令        2. 執行系統管理和故障排除        3. …

    2017-04-16
  • 內鍵命令和外部命令

    命令的基本格式 COMMAND  [OPTIONS…]  [ARGUMENTS…]        命令 (COMMAND)       OPTIONS(選項):用于啟用或關閉命令的某個或某些功能      …

    2017-05-23
  • 馬哥教育網絡21期+第十三周練習博客

        馬哥教育網絡21期+第十三周練習博客 1、建立samba共享,共享目錄為/data,要求:(描述完整的過程) 1)共享名為shared,工作組為magedu; 在服務器上安裝samba ]# yum install samba 創建共享目錄/data 啟動samba的nmb和smb…

    Linux干貨 2016-10-31
欧美性久久久久