一.Linux核心簡介
Linux是最受歡迎的自由電腦作業系統核心。它是一個用C語言寫成,符合POSIX標準的類Unix作業系統。Linux最早是由芬蘭駭客 Linus Torvalds為嘗試在英特爾x86架構上提供自由免費的類Unix作業系統而開發的。該計劃開始於1991年,這裡有一份Linus Torvalds當時在Usenet新聞群組comp.os.minix所登載的貼子,這份著名的貼子標誌著Linux計劃的正式開始。
在計劃的早期有一些Minix 駭客提供了協助,而今天全球無數程式員正在為該計劃無償提供協助。
技術上說Linux是一個核心。“核心”指的是一個提供硬體抽象層、磁碟及檔案系統控制、多任務等功能的系統軟體。一個核心不是一套完整的作業系統。一套基於Linux核心的完整作業系統叫作Linux作業系統,或是GNU/Linux。
Linux是一個宏核心(monolithic kernel)系統。裝置驅動程式可以完全訪問硬體。Linux內的裝置驅動程式可以方便地以模組化(modularize)的形式設定,並在系統運行期間可直接裝載或卸載。
Linux核心組成部分:
進程管理(process management)、定時器(timer)、中斷管理(interrupt management)、記憶體管理(memory management)、模組管理(module management)、虛擬檔案系統介面(VFS layer)、檔案系統(file system)、裝置驅動程式(device driver)、處理序間通訊(inter-process communication)、網路管理(network management)、系統啟動(system init)等作業系統功能的實現。
二.Linux核心版本號碼
第一種方式:
核心是一個用來和硬體打交道並為使用者程式提供一個有限服務集的低級支撐軟體。一個電腦系統是一個硬體和軟體的共生體,它們互相依賴,不可分割。
Linux的版本號碼分為兩部分,即核心版本與發行版本。核心版本號碼由3 個數字組成:r.x.y。
r:目前發布的核心主要版本。
x:偶數表示穩定版本;奇數表示開發中版本。
y:錯誤修補的次數。
一般來說,x位為偶數的版本是一個可以使用的穩定版本,如2.4.4;x位為奇數的版本一般加入了一些新的內容,不一定很穩定,是測試版本,如2.1.111。
第二種方式:
major.minor.patch-build.desc
2.26.35-rc5
1、major:表示主要版本號,有結構性變化時才變更。
2、minor:表示次版本號碼,新增功能時才發生變化;一般奇數表示測試版,偶數表示生產版。
3、patch:表示對次版本的修訂次數或補丁包數。
4、build:表示編譯(或構建)的次數,每次編譯可能對少配量序做最佳化或修改,但一般沒有大的(可控的)功能變化。
5、desc:用來描述當前的版本特殊資訊;其資訊由編譯時間指定,具有較大的隨意性,但也有一些描述標識是常用的,比如:
<1>rc(有時也用一個字母r),表示候選版本(release candidate),rc後的數字表示該正式版本的第幾個候選版本,多數情況下,各候選版本之間數字越大越接近正式版。
<2>smp,表示對稱式多處理器(Symmetric MultiProcessing)。
<3>pp,在Red Hat Linux中常用來表示測試版本(pre-patch)。
<4>EL,在Red Hat Linux中用來表示企業版Linux(Enterprise Linux)。
<5>mm,表示專門用來測試新的技術或新功能的版本。
<6>fc,在Red Hat Linux中表示Fedora Core。
如果在生產機上,最好不要安裝小版本號碼是奇數的核心。同樣,pre-patch的核心版本也不建議安裝在生產機上。
三.Linux核心的發布曆史
核心是Linux系統的重要組成部分,每一次核心新版本的發布都受到Linux愛好者的關注,下面表格中列出了Linux核心的重要發展事件。
核心版本號碼 |
時間 |
核心發展史 |
0.00 |
1991.2-4 |
兩個進程分別顯示AAA BBB |
0.01 |
1991.9 |
第一個正式向外公布的Linux核心版本 |
0.02 |
1991.10.5 |
Linus Torvalds將當時最初的0.02核心版本發布到了Minix新聞群組,很快就得到了反應。Linus Torvalds在這種簡單的任務切換機制上進行擴充,並在很多熱心支援者的協助下開發和推出了Linux的第一個穩定的工作版本。 |
0.03 |
1991.10.5 |
|
0.10 |
1991.10 |
Linux0.10版本核心發布,0.11版本隨後在1991年12月推出,當時它被發布在Internet上,供人們免費使用。 |
0.11 |
1991.12.8 |
基本可以正常啟動並執行核心版本 |
0.12 |
1992.1.15 |
主要加入對數學副處理器的軟體類比程式 |
0.95(0.13) |
1992.3.8 |
開始加入虛擬檔案系統思想的核心版本 |
0.96 |
1992.5.12 |
開始加入網路支援和虛擬檔案系統 |
0.97 |
1992.8.1 |
|
0.98 |
1992.9.29 |
|
0.99 |
1992.12.13 |
|
1.0 |
1994.3.14 |
Linux1.0版本核心發布,使用它的使用者越來越多,而且Linux系統的核心開發隊伍也建起來了。 |
1.2 |
1995.3.7 |
|
2.0 |
1996.2.9 |
|
2.2 |
1999.1.26 |
|
2.4 |
2001.1.4 |
Linux2.4.0版本核心發布。 |
2.6 |
2003.12.17 |
Linux2.6版本核心發布,與2.4核心版本相比,它在很多方面進行了改進,如支援多處理器配置和64位計算,它還支援實現高效率線和處理的本機POSIX線程庫(NPTL)。實際上,效能、安全性和驅動程式的改進是整個2.6.x核心的關鍵。 |
2.6.15 |
2006 |
Linux2.6.15版本核心發布。它對IPv6的支援在這個核心中有了很大的改進。PowerPC使用者現在有了一個用於64位和32位PowerPC的泛型樹,它使這兩種架構上的核心編輯成為可能。 |
2.6.30 |
2009.6 |
改善了檔案系統、加入了完整性檢驗補丁、TOMOYO Linux 安全模組、可靠的資料通訊端(datagram socket)協議支援、Object Storage Service裝置支援、FS-Cache 檔案系統快取層、nilfs 檔案系統、線程中斷處理支援等等。 |
2.6.32 |
2009.12 |
增添了虛擬化記憶體 de-duplicacion、重寫了 writeback 代碼、改進了 Btrfs 檔案系統、添加了 ATI R600/R700 3D 和 KMS 支援、CFQ 低傳輸延遲時間模式、perf timechart 工具、記憶體控制器支援 soft limits、支援 S+Core 架構、支援 Intel Moorestown 及其新的韌體介面、支援運行時電源管理、以及新的驅動。 |
2.6.34 |
2010.5 |
添加了 Ceph 和 LogFS 兩個新的檔案系統,其中前者為分布式的檔案系統,後者是適用於 Flash 裝置的檔案系統。Linux Kernel 2.6.34 的其他特性包括新的 Vhost net、改進了 Btrfs 檔案系統、對 Kprobes jump 進行了最佳化、新的 perf 功能、RCU lockdep、Generalized TTL Security Mechanism (RFC 5082) 及 private VLAN proxy arp (RFC 3069) 支援、asynchronous 掛起恢複等等。 |
2.6.36 |
2010.10 |
Tilera 處理器架構支援、新的檔案通知介面 fanotify、Intel 顯卡上實現 KMS 和 KDB 的整合、並行管理工作隊列、Intel i3/5 平台上內建顯卡和 CPU 的智能電源管理、CIFS 檔案系統本機快取、改善虛擬記憶體的層級結構,提升案頭操作響應速度、改善虛擬記憶體溢出終結器的演算法、整合了 AppArmor 安全模型(註:與 SELinux 基於檔案的標註不同, AppArmor 是基於路徑的)。 |