成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 內核 3.3 和 3.4的重要更改

系統 Linux
Linux 內核 3.3 版本于 2012 年 3 月正式發布(緊接著,版本 3.4 也于 5 月份發布了)。除了針對大量小功能和 bug 進行修復之外,這兩個版本也進行了一些很重要的更改,以及各種文件系統、內存管理和虛擬化的更新。探討版本 3.3 和 3.4 中的重要更改,并提前了解未來 3.5 版本中將進行的更改。

Linux內核版本 3.3 和 3.4 包括一個令人印象深刻的特性集,但是在某種意義上它們也是不詳預兆的里程碑。版本 3.3 是第一個超過 1500 萬行代碼的 Linux 版本(采用了一種確實存在缺陷的測量方法測量的)。如果減去 Linux 內核的變體部分(比如驅動程序、架構相關代碼和各種工具),數量可能會下降到 400 萬以下(仍然是一個龐然大物)。

關于這個里程碑潛在的不詳預兆有兩個方面,Linux 內核的增長速度(自 2008 年以來增長了 50%)以及這種增長速度是否會對 Linux 內核效率(功率和性能)產生負面影響。功率和性能通常不是以每個補丁為基礎進行測量,所以一個 bug 可能很容易蔓延到已發布內核中,并存留一段時間(例如,在版本 3.3 中修復的 PCI Express [PCIe] Active State Power Management 功率問題,在內核中已經存在一年了)。

 

Linux 內核版本控制

 

內核使用一個由 3 部分組成的數字組合進行版本控制,該數字組合是由一個內核版本、一個主要修訂和微小修訂(例如,3.3.4)構成。候選發布版本內核包括一個 rc#"后綴,該后綴中包含一個數字,代表具體候選版本(例如,當前版本是 3.5rc1)。

 

 

在不到 21 年的時間內,Linux 已經從 10,000 多行代碼增長到超過 1500 萬行代碼。盡管大多數代碼駐留于驅動程序子樹中,但內核的復雜性隨著代碼的增多在不斷增加。很快有一天,這種擴大可能會導致修改內核來消除復雜性并提高其可維護性。

如 圖 1 所示,版本 2.4 自 2001 年發布以來,Linux 內核增長迅速(從 3,377,902 行增加到 2012 的 14,998,651 行)。這段時期內,每年幾乎有大約 100 萬行新代碼被添加到內核中。這是一個驚人的數字,會讓每個軟件開發人員都感到恐懼。


圖 1. 版本 2.2(2001 年)到版本 3.3(2012 年)的內核大小 
圖表顯示從版本 2.2(2001 年)到版本 3.3(2012 年)的內核大小 
 

引用 Torvalds 自己的話,隨著內核的增長他很擔心未來的維護。內核中大約有 400 萬行代碼,當前內核管理方法可能需要提高。#p#

Android 集成

內核版本 3.3 中最大的新聞是將 Google Android 引入到主線內核中。這一集成將繼續存在于版本 3.4 中,但是有足夠的 Android 分支位于主線上以支持引導 Android 用戶空間(參見 圖 2)。Android 內核是 Linux 內核的一個分支,擁有幾個電源和資源節約型操作(根據功率限制移動設備需要)所需的附加特性。盡管重點是 ARM 架構,但是也支持 x86(用于 Google TV 項目)。


圖 2. 在 Oracle VM VirtualBox 上使用 Android x86 引導到 Android 用戶空間
屏幕載圖顯示在 Oracle VM VirtualBox 上如何使用 Android x86 引導到 Android 用戶空間 
 

Linux 維護人員和 Google 之間的協作問題導致了兩年前的 Android 的獨立開發。終于在 2011-2012 冬天,人們迎來了 Android Mainlining Project 的創建,Android Mainlining Project 旨在將 Android 驅動程序和特性集成到主線 Linux 內核。這項工作已引入版本 3.3 中,并將在版本 3.5 中看到更進一步的集成。

Android 為 Linux 創建了一些維護移動環境競爭性所需的增強功能。示例包括快速進程間通信 (IPC)、改進的應用程序內存管理和一個大型連續物理內存管理問題的解決方案。

名為 Binder 的驅動程序是 Android 對 IPC 的回應。Android 開發人員可以很輕松地重用現有方法,但是 Binder 包括無法使用的惟一特性(包括零復制的消息傳遞和證書傳遞)。在 Android 中,應用程序無法退出,因此只能繼續執行,直到內核刪除它們。Shrinker 作為一個機制而存在,當內存利用率降低時會復制其利用率。應用程序注冊了一個可調用來最大程度地減少內存使用的函數,以便內核在內存緊張時調用這些函數。Android 的另一個新增內容是 Pmem,它提供了在需要時(比如,需要一個相機功能)分配大型物理連續緩存的功能。Pmem 為這類內存分配導出一個用戶空間驅動程序,還可以還集成其他功能,但是它們都是特定于移動領域的。

某些特性還沒尚未引入內核,比如 wakelocks,它是電源管理功能,允許使用組件阻止系統進入低功率狀態(例如,正在更新的時候)。缺少 wakelocks 并不會妨礙 Android 系統啟動,但會很快耗盡電池。

隨著 Android 被再次合并到 Linux 內核中,再一次最好地說明了 Linux 內核的靈活性(從嵌入式系統和移動設備再到最大的大型機和超級計算機)。由于有超過 3 億 Android 設備目前正在使用中,所以作為通用平臺的 Linux 需要不斷改進。

Open vSwitch

Linux 繼續成為實現虛擬化的首選平臺。除了成為世界一流的操作系統之外,Linux 同時還是一個世界一流的虛擬機監控程序。Open vSwitch 的引入進一步加強了這種狀況,它提供了一個開箱即用的虛擬化經驗和基礎架構即服務 (Infrastructure as a Service, IaaS) 用戶。

虛擬交換機只不過是物理交換機的一個軟件版本?;叵胍幌?,平臺虛擬化(由基于內核的虛擬機 [KVM] 或 Xen 實現)允許您在一個虛擬機監控程序 上運行多個操作系統實例(作為 WM),以將該物理平臺刻入各種虛擬平臺。虛擬交換機的引進擴展了這一抽象概念,其方法是引進了網絡基礎架構的虛擬形式。虛擬交換機提供一個讓 VM 在虛擬網絡上相互通信的高效方法。Open vSwitch 跨虛擬主機擴展這一抽象概念,允許一個物理主機上的 VM 與另一個物理主機上的其他 VM 進行透明地通信。

在 Open vSwitch 中,您將會發現一組豐富的虛擬網絡特性,包括服務質量、虛擬 LAN、流量過濾、隔離以及各種監控和控制協議(比如 OpenFlow 和 NetFlow)。盡管 Linux 已經擁有一個虛擬交換機實現(稱為 Linux Bridge),但 Open vSwitch 是一個功能更為豐富的解決方案(包括多主機管理),因此也是一個備受歡迎的補充。請參閱 參考資料 獲取更多相關信息。#p#

文件系統更改

內核版本 3.3 在許多文件系統中都可以對這些文件系統進行更改,以供用戶和開發人員使用。對用戶來說,通過一個 I/O 控件,可對第 4 擴展文件系統 (ext4) 進行在線調整大?。ㄔ诰€ 系統仍然保持運行)。這意味著整個調整都在內核中執行,其結果是使調整變得更快。

對于 B 樹文件系統 (Btrfs),已經重寫了平衡操作(用于更改元數據的底層結構,比如,添加了一個新驅動器),以支持暫停和恢復。Btrfs 增強繼續存在于版本 3.4 中,并且還有一個新的數據恢復工具,可用于從損壞的 btrfs 文件系統提取文件。除此之外,在版本 3.4 中,Btrfs 還進行一些性能改進和錯誤處理改進(包括恐慌消除,以優雅的錯誤管理替換它們)。在版本 3.4 之前,Btrfs 作為一個文件系統在 VM 中表現不佳,這是由于寫時復制機制所致??梢詧绦姓{優來將破壞降至最低。

同時還更新軟件獨立磁盤冗余整列 (redundant array of independent disks, RAID) 以支持熱替換,允許數據從一個卷(使用可替換的mdadm 進行標記)遷移到另一個卷,以便于刪除原始數據。最后,版本 3.4 為 QNX4 文件系統添加了只讀支持。

對于開發人員來說,現在,可以將錯誤注入 Network File System 以測試客戶端的恢復能力(通過 sysfs)。對于 Btrfs 開發人員而言,新增了一個用于完整性檢查的實用工具,可用于識別無效的 “寫入” 請求,有助于更快速地解決 bug。

網絡增強

隨著 Linux 逐漸處于網絡功能的前沿,內核版本 3.3 也對這方面進行了增強。

對于低延遲基礎架構(比如,高性能計算),可集成 SCSI Remote Direct Memory Access (RDMA) 協議目標驅動程序。Secure Remote Password 是一個協議,它允許使用 RDMA 作為塊存儲設備的底層傳輸。這一特定的添加功能允許 Linux 使用 SPR 暴露一個塊設備,遠程發起者可以通過它附加塊 I/O。RDMA 是由 InfiniBand 支持,這在高性能集群中是很常見的。

Random Early Detection (RED) 包調度程序可使用 Sally Floyd 的一個新算法 Ramakrishna Gummadi 進行修改,Scott Shenker 將其稱之為 Adaptive RED。RED 已被證明是一個高效的包調度程序算法(它可以根據可用隊列大小的函數丟棄無法緩存的包),但是也發現它對于網絡中的擁堵程度非常敏感。RED 將隊列大小作為丟包概率,因此在一個空的或幾乎空的隊列中,所有包都會被接受,但當隊列填滿時,所有包都被丟棄。Adaptive RED 通過測量該算法丟包時表現的積極程度動態改變丟包概率。您可在 Adaptive RED 文章中閱讀有關該算法的更多信息,參考資料 提供了相關的鏈接。

添加了一個新的組合網絡設備來替換較舊的內核連接驅動程序。該組合設備允許創建虛擬接口,從多個物理 Ethernet 設備(鏈路聚合和 802.1AX 所定義的)集合空閑帶寬。該設備可用于提高網絡性能(聚合多個物理設備)或提供冗余(透明故障恢復)。目前支持兩種模式,允許流量跨物理端口簡單地分配輪循,或者,如果主要網絡連接失敗,可定義一個端口作為活動備份來路由所有流量。

在大量網絡增強中,另一個有趣的更改是添加控制組(或 cgroups)的 TCP 緩存限制。Cgroups 可以通過各種實現方法,比如,將資源隔離到一個 VM。此更改允許跟蹤一個 cgroup 中的用戶空間內存和內核內存,實現更好的系統資源管理。#p#

其他有趣的更改

Linux 3.3 也引進了一些非特定于文件系統或網絡的更改。在新架構方面,現在直接支持 Texas Instruments C6x 處理器(而不是作為一個單獨項目)。C6x 是一個單一的多核數字信號處理器,基于 Very Long Instruction Word,但是缺少現代特性,比如對稱多進程處理和緩存一致性;它還缺乏一個內存管理單元 (MMU)。盡管有這些架構漏洞,但 C6x 系列還是很出色的,有一組豐富的外圍設備和芯片上加速器(安全性、快速和傅立葉變換等)。版本 3.4 支持最新的 GPU 處理器,比如 Nvidia 的 Kepler,以及 AMD 最新版本的 Radeon 和 Trinity。

APM 架構子樹現在使用大量物理地址擴展,并引入了在一個芯片上支持 Nvidia Tegra 3 服務,這對于 ARM 在低功率服務器領域與 Intel 的競爭,提供了有力的工具。另外,在版本 3.3 中還對于 AMD I/O MMU 實現進行了改進,提高了不同頁面大小管理和不斷增長的設備安全性(分組或設備隔離)。此外,Virtual Function I/O 提高了 KVM 將設備映射到 KVM 來賓用戶組的能力。最后,還更新 S390 架構來支持訪問高達 64TB 的 RAM(遠超過之前少于 4 TB 的限制)。

Performance Monitoring Unit (PMU) 現在進行虛擬化以供 KVM 所用,因此,來賓用戶組現在可以在其自己的虛擬平臺上訪問一個 PUM。這將為每個來賓用戶呈現一些有用的性能活動,包括退役的指令、緩存引用與差錯,以及執行的或遺漏的分支指令。Xen 的另一個有用虛擬化特性是支持安全丟棄。安全丟棄 意味著永久刪除有問題的扇區,而不再是簡單地標記為空閑。最后,各種虛擬 I/O 驅動程序(blk、net、balloon 和 console)現在支持 Advanced Configuration 和 Power Interface S4 休眠狀態,意味著來賓 VM 可以在 Xen 上休眠。

對于內存崩潰問題,調試起來非常繁瑣,因此添加了一個稱為 CONFIG_DEBUG_PAGEALLOC 的新配置項。此更改將檢查 CPU 是否訪問未分配頁面,并可能會導致一些性能損失。

展望未來

Linux 不斷向前邁進,已發布版本 3.4,候選版本 3.5 也即將在 2012 年 8 月發布。Linux 3.5 包括一些有趣的新特性。

Btrfs 不斷地增強,這次在文件系統中加入了優化的回寫處理。標準 Linux 文件系統 (ext4) 也得到了增強,能夠將校驗和添加到元數據以幫助識別數據干預。Linux 很快會越過防火墻或 USB Attached SCSI Protocol 支持 SCSI 目標。最后,用戶空間探測也將得到支持(與 SystemTap 一同使用來分析用戶空間編程行為)。期望 8 月份即將發布的候選版本能進行更多的更改。

責任編輯:黃丹 來源: developerWorks
相關推薦

2012-07-25 13:21:17

ibmdw

2012-05-25 10:00:46

Ubuntu 12.0Linux

2020-10-15 10:10:31

Linux數據中心IT

2023-03-27 09:08:11

Linux

2023-09-01 11:06:32

grubbyLinux內核

2011-01-14 15:30:44

2014-08-28 15:08:35

Linux內核

2013-11-25 17:39:17

Linux內核PCIACPI

2018-07-20 14:00:51

LinuxmacOS內核

2013-11-07 13:59:56

Linux內核

2013-11-25 14:07:11

Linux內核內核特性

2023-02-28 09:47:42

2013-11-05 09:58:39

Linux內核

2013-11-12 11:01:46

Linux內核

2013-11-06 13:03:10

Linux內核

2021-02-20 06:08:07

LinuxWindows內核

2012-11-13 10:55:00

Linux系統運維

2011-01-11 13:45:06

2009-06-19 20:32:00

Linux

2017-04-12 14:30:45

Linux內核DebugFS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 玖玖综合在线 | 成年人免费网站 | 三级视频网站 | 欧美一区二区大片 | 一区中文| 在线观看国产www | 色婷婷精品 | 久久久久免费精品国产小说色大师 | 久久国产精品一区 | 国产精品一区二区在线播放 | 97精品国产手机 | 日韩淫片免费看 | 亚洲福利在线观看 | 视频在线一区二区 | 嫩草最新网址 | 欧美一区二区三区在线看 | 99精品电影 | 五月天综合影院 | 中文字幕欧美一区 | 一区二区三区精品 | 国产亚洲精品久久久久久牛牛 | 一区二区三区四区国产 | 国产一级淫片a直接免费看 免费a网站 | 日韩视频免费在线 | 日韩中文一区二区三区 | 国产精品毛片一区二区三区 | 国产重口老太伦 | www.色.com | 欧美精品网站 | 少妇黄色 | 天天射天天干 | 久久一二| 日本精品一区二区三区四区 | 成人av一区二区三区 | 一区二区三区免费 | 国产91九色 | 日本成人中文字幕 | 久久综合爱 | 国产精品高清在线 | 国产精品欧美精品日韩精品 | 一区二区av |