歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 內核的發展

Linux 內核的發展

日期:2017/2/28 16:47:37   编辑:Linux教程

介紹 2.6.28 和 2.6.29 版本中的新特性

生命的必然不僅包括死亡和納稅,還包括 GNU/Linux? 操作系統的發展,最新的兩個內核發布的確沒有讓人失望。2.6.28 和 2.6.29 版本包含了大量新的功能,比如先進的企業存儲協議、兩個新的文件系統、WiMAX 寬帶網絡支持以及存儲完整性檢查。通過本文了解為何現在就應該升級 Linux 內核。

2008 年底,2.6.28 版本的內核出現。隨後,通向下一版本 —2.6.29— 的通道也打開了。由於 Linux 內核采用的是一種分布式的開發過程,所以它並不總能清楚一個特定內核發布中會有什麼(或集成了什麼),但是這兩個最新發布不管是從短期還是從長期來看都是很有意思的。2.6.28 中一個有趣的裡程碑是該版本的 Linux 的源代碼首次超過 1000 萬行(參見圖 1,它使用了來自 Heise Online 的源代碼行計數數據)。

圖 1. 最新 2.6 內核內的源代碼行數

這兩個發布引入了新的文件系統(一個已經穩定,一個尚在實驗中)、對圖形和可視化的新支持,以及新的企業存儲特性。接下來,我先大致介紹 2.6.28 中的一些主要新特性,然後再介紹 2.6.29 帶來的新特性。

2.6.28 中的新特性

Linux 內核 2.6.28 在 2008 年 12 月 24 日發布(2009 年 2 月已經是第 5 個發布版)。2.6.28 第一個的發布版包括大量更改,以至於它自身的更改日志文件大小已接近 6MB。最新的這個發布版很穩定,被用作 Ubuntu 9.04 Jaunty Jackalope 的內核。

第 4 擴展文件系統

第 4 擴展文件系統(The fourth extended file system)的名字 ext4 是由 ext4dev 改變而來的,這意味著它已經足夠穩定,可以常規使用。Ext4 源自第 3 擴展文件系統(ext3),並具有更好的性能、特性和可靠性。Ext4 允許使用 exabyte 文件系統,這種系統支持的文件數量更多、體積更大、目錄結構更深。它還包括多塊和延遲塊分配,以提升性能。Ext4 既具有前向兼容性又具有後向兼容性(這意味著根據所使用的特性,ext4 文件系統可掛載在 ext3 磁盤格式之上,反之亦然)。通過大規模的改變可以逐漸將文件系統從 ext3 遷移到 ext4。有關 ext4 文件系統的更多信息,請參見 參考資料。

雖然 ext4 能夠成為未來新的標准 Linux 文件系統,但是其他的文件系統也在不斷出現,甚至能夠提供更好的伸縮性和特性。Btrfs 就是這類文件系統之一,它現在已經成為了 2.6.29 內核中的一種試驗文件系統。Btrfs 是一種兼容 Linux 的文件系統(參閱 GNU Public License [GPL]),它的特性與知名的 ZFS 不相上下。

Graphics Execution Manager 內存管理

過去一年的時間內,Linux 在圖形堆棧領域取得了實質性進展。毫不奇怪,正是在該領域內,圖形處理器(GPU)為呈現提供了有用協助。在很多情況下,GPU 比它們所協助的中央處理器(CPU)更為強大。

為了支持當前以及未來的 GPU,Linux 圖形堆棧有一個領域需要提高,即內存管理,包括緩沖管理、頁影射、放置和緩存。這一點極為必要,因為圖形應用程序(尤其是三維應用程序)能夠消耗大量內存。而借助 Graphics Execution Manager (GEM),就能夠使用現有的內核子系統(比如使用共享內存文件系統或 shmfs 來管理圖形對象)管理混入內核的圖形數據。

引導跟蹤器

雖然引導 Linux 所需的時間已經逐漸縮減,但是還是有人認為引導時間過長。因此,引導時間還需要不斷地監查。此內核包含了這樣一個新特性,即可以測量和記錄 init 調用的時間。然後可以使用它們可視化引導的流程和性能。該過程是可配置的(要求必須啟用收集數據的功能),但是一旦數據收集完畢,就可以使用離線腳本(包括圖形描述)對這些數據進行分析,而這最終會導致更短的引導時間和更為優化的引導過程。此更新還融入了調用線程的過程標識符(PID)以便可以平行查看引導過程。

凍結器

為了在暫停操作系統期間將其遷移到一個新的主機(比如虛擬機 [VM]),我們專門設計了一個稱為凍結(和解凍)的新功能。這個新特性能夠讓任務組或文件系統凍結並保持在凍結時狀態,然後再解凍並重新引入這個任務組或文件系統。

任務在容器 的上下文中被凍結,這個模式能在用戶空間級別(一個內核支持多個用戶空間)虛擬化操作系統。這種新功能能夠在主機之間遷移一組過程,這對均衡負載非常有用。也可以凍結文件系統來支持文件系統備份的快照。目前,文件系統凍結是通過具有參數 FIFREEZE 或 FITHAW 的 ioctl 來實現的。

在容器的外面,這個新凍結/解凍模式還可以用於檢查點。在這種應用中,可以以特定的間隔(檢查點)凍結一組相關的進程,然後解凍特定的時間點以回到某個已知狀態。

虛擬內存伸縮性的改進

由於 Linux 在虛擬系統中應用的增加 — 尤其是具有多處理器和大量內存的系統 — 擴展內存的使用對性能非常重要。Kernel 2.6.28 包含了與內存有關的大量的伸縮性改進。例如,這個內核維護分開的 Least Recently Used (LRU) 列表,一個用於文件支持的頁,另一個用於交換支持的頁。這就使得內核能夠更多地集中於交互支持的頁,而不是文件支持的頁,因為前者更有可能被寫入到磁盤。

另一項更改分離了可收回的頁和不可收回的頁(比如通過 mlock 鎖定的頁)。以這種方式,分頁代碼就無需迭代 LRU 內不可收回的頁,這使具有大量頁的系統的性能得到提高。

Copyright © Linux教程網 All Rights Reserved