Linux 核心已經 30 歲了

25 年 1991 月 21 日,經過五個月的開發,1.08 歲的學生 Linus Torvalds 在 comp.os.minix 電話會議上宣布,新 Linux 操作系統的工作原型已經完成,移植了 bash 1.40 和 gcc 17已完成。 Linux 內核的第一個公開版本於 0.0.1 月 62 日發布。 10 內核壓縮後為 28 KB,包含大約​​ 2010 行源代碼。 現代 Linux 內核有超過 13 萬行代碼。 根據歐盟在 3 年委託進行的一項研究,從頭開發一個類似於現代 Linux 內核的項目的成本大約在 XNUMX 億美元以上(在內核有 XNUMX 萬行代碼時計算) ,根據其他估計 - 超過 XNUMX 億。

Linux 內核的靈感來自 MINIX 操作系統,該操作系統不適合 Linus 的有限許可證。 隨後,當 Linux 成為一個知名項目時,批評者試圖指責 Linus 直接複製了一些 MINIX 子系統的代碼。 這次攻擊被 MINIX 的作者 Andrew Tanenbaum 擊退,他委託一名學生對 Minix 代碼和 Linux 的第一個公開版本進行詳細比較。 研究結果顯示,由於 POSIX 和 ANSI C 的要求,僅存在四個次要的代碼塊匹配。

Linus 最初想到將內核命名為 Freax,來自“free”、“freak”和 X (Unix) 等詞。 但是“Linux”這個名字是由 Ari Lemmke 給內核起的,在 Linus 的要求下,他將內核放在大學的 FTP 服務器上,將帶有存檔的目錄命名為“freax”,而不是 Torvalds 所要求的,而是“linux” ”。 值得注意的是,有進取心的商人威廉·德拉·克羅齊(William Della Croce)成功註冊了Linux商標,並想隨著時間的推移收取使用費,但後來改變主意,將商標的所有權利轉讓給了Linus。 正式的 Linux 內核吉祥物 Tux 企鵝是從 1996 年舉行的比賽中選出的。 Tux 這個名字代表 Torvalds UniX。

內核代碼庫(源代碼行數)的增長動態:

  • 0.0.1 - 1991 年 10 月,XNUMX 萬行代碼;
  • 1.0.0 - 1994 年 176 月,XNUMX 萬行代碼;
  • 1.2.0 - 1995 年 311 月,XNUMX 萬行代碼;
  • 2.0.0 - 1996 年 778 月,XNUMX 萬行代碼;
  • 2.2.0——1999 年 1.8 月,XNUMX 萬行代碼;
  • 2.4.0——2001 年 3.4 月,XNUMX 萬行代碼;
  • 2.6.0——2003 年 5.9 月,XNUMX 萬行代碼;
  • 2.6.28——2008 年 10.2 月,XNUMX 萬行代碼;
  • 2.6.35 - 2010 年 13.4 月,XNUMX 萬行代碼;
  • 3.0 - 2011 年 14.6 月,XNUMX 萬行代碼。
  • 3.5 - 2012 年 15.5 月,XNUMX 萬行代碼。
  • 3.10 - 2013 年 15.8 月,XNUMX 萬行代碼;
  • 3.16 - 2014 年 17.5 月,XNUMX 萬行代碼;
  • 4.1 - 2015 年 19.5 月,XNUMX 萬行代碼;
  • 4.7 - 2016 年 21.7 月,XNUMX 萬行代碼;
  • 4.12 - 2017 年 24.1 月,XNUMX 萬行代碼;
  • 4.18 - 2018 年 25.3 月,XNUMX 萬行代碼。
  • 5.2 - 2019 年 26.55 月,XNUMX 萬行代碼。
  • 5.8 - 2020 年 28.4 月,XNUMX 萬行代碼。
  • 5.13 - 2021 年 29.2 月,XNUMX 萬行代碼。

核心開發進度:

  • Linux 0.0.1 - 1991 年 386 月,首次公開發布,僅支持 iXNUMX CPU 並從軟盤啟動;
  • Linux 0.12 - 1992 年 2 月,代碼開始在 GPLvXNUMX 許可下分發;
  • Linux 0.95 - 1992 年 XNUMX 月,增加了運行 X Window 系統的能力,實現了對虛擬內存和交換分區的支持。
  • Linux 0.96-0.99 - 1992-1993,網絡棧的工作開始了。 引入了 Ext2 文件系統,添加了對 ELF 文件格式的支持,引入了聲卡和 SCSI 控制器的驅動程序,加載了內核模塊並實現了 /proc 文件系統。
  • 1992 年,出現了 SLS 和 Yggdrasil 的第一個發行版。 1993 年夏天,Slackware 和 Debian 項目成立。
  • Linux 1.0 - 1994 年 XNUMX 月,第一個正式穩定版本;
  • Linux 1.2 - 1995 年 XNUMX 月,驅動程序數量顯著增加,支持 Alpha、MIPS 和 SPARC 平台,擴展網絡堆棧功能,包過濾器的出現,NFS 支持;
  • Linux 2.0——1996 年 XNUMX 月,支持多處理器系統;
  • 1997 年 XNUMX 月:LKML,Linux 內核開發者郵件列表成立;
  • 1998 年:推出第一個基於 Linux 的 Top500 集群,由 68 個節點和 Alpha CPU 組成;
  • Linux 2.2 - 1999 年 6 月,提高了內存管理系統的效率,增加了對 IPvXNUMX 的支持,實施了新的防火牆,引入了新的聲音子系統;
  • Linux 2.4 - 2001 年 8 月,支持 64 處理器系統和 3 GB RAM、ExtXNUMX 文件系統、USB 支持、ACPI;
  • Linux 2.6 - 2003 年 XNUMX 月,SELinux 支持,自動內核參數調整工具,sysfs,重新設計的內存管理系統;
  • 2005年推出Xen hypervisor,開啟虛擬化時代;
  • 2008年XNUMX月,第一版基於Linux內核的Android平台形成;
  • 2011 年 10 月,經過 2.6.x 分支的 3 年發展,過渡到 2.x 編號。 Git 存儲庫中的對像數量已達到 XNUMX 萬個;
  • 2015 年,Linux 4.0 內核發布。 倉庫中的git對像數量已經達到4萬個;
  • 2018 年 6 月,突破了核心存儲庫中 XNUMX 萬個 git 對象的里程碑。
  • 2019年5.0月,Linux 6.5內核分支成立。 該存儲庫已達到 XNUMX 萬個 git 對象的水平。
  • 2020 內核於 5.8 年 XNUMX 月發布,在整個項目生命週期內所有內核的更改次數最多。
  • 在5.13內核中,創造了開發者數量的記錄(2150人),他們的更改被包含在內核中。
  • 2021 年,用於在 Rust 中開發驅動程序的代碼被添加到 Linux-next 內核分支中。 正在進行的工作包括在核心的主要部分中支持 Rust 的組件。

68% 的核心變更是由 20 家最活躍的公司進行的。 例如,在開發內核5.13時,所有更改的10%由Intel準備,6.5%由華為準備,5.9%由Red Hat準備,5.7%由Linaro準備,4.9%由Google準備,4.8%由AMD準備,3.1%由NVIDIA準備,2.8 % 由 Facebook、2.3% - SUSE、2.1% - IBM、1.9% - Oracle、1.5% - ARM、1.4% - Canonical。 13.2% 的變更是由獨立貢獻者或開發人員準備的,他們沒有明確聲明自己為某些公司工作。 1.3%的變更是由學生、研究生和教育機構代表準備的。 從新增至核心的 5.13 行程式碼數量來看,AMD 處於領先地位,其份額為 20.2%(amdgpu 驅動程式約有 3 萬行程式碼,約佔核心總大小的 10% - 2.4 萬行)行由自動產生的頭檔(包含GPU 暫存器的資料)來計算。

來源: opennet.ru

添加評論