Jollen's email: jollen # jollen.org

more: Jollen's Consulting | Jollen's Wiki

« Jollen 的 Android 教學,#14: 什麼是對話盒 (Dialog)?如何建立對話盒? | Home | Garmin-Asus的nuvifone G60改用Android作業系統 »

Linux 2.6.30 釋出

jollen 發表於 June 16, 2009 10:56 AM

Linux 2.6.30於2009年6月9日釋出,Linux kernel的發展進入了Linux 2.6.3x的時代。最近一年的 Linux 2.6核心發展有相當重大的進展,除了幾個知名大廠不斷貢獻程式碼外,新產品的開發,也帶動Linux kernel的快速發展。

Linux 2.6.30加入了新的filesystem:

1. NILFS2

一種log-structured filesystem,由John K. Ousterhout與Fred Douglis於1988年提出的設計,主要針對high write throughput的應用。

2. POHMELFS (Parallel Optimized Host Message Exchange Layered File System)

一個分散式平行處理的檔案系統,在讀寫操作方面,根據[POHMELFS]官方的數據指出,POHMELFS的效能比NFS還好。

3. DST(Distributed STorage)

一個具高效能與可信賴的網路儲存檔案系統。

4. EXOFS(Object-Based Storage Devices)

支援OSD protocol的檔案系統。

5. FS-Cache

這是一個網路檔案系統(networking filesystem)的cache layer,FS-Cache可以將網路檔案系統的資料 cache 在磁碟裡。

其他更新

另外,Intel也貢獻了fastboot(快速開機)程式碼,過去kernel在開機時花費許多時間在處理 I/O 上,例如:儲存裝置的I/O,由Intel貢獻的fastboot以asynchronous function call的觀念解決此問題。其原理在kernel/async.c裡的註解有很清楚的說明:

14 /*
15
16 Goals and Theory of Operation
17
18 The primary goal of this feature is to reduce the kernel boot time,
19 by doing various independent hardware delays and discovery operations
20 decoupled and not strictly serialized.
21
22 More specifically, the asynchronous function call concept allows
23 certain operations (primarily during system boot) to happen
24 asynchronously, out of order, while these operations still
25 have their externally visible parts happen sequentially and in-order.
26 (not unlike how out-of-order CPUs retire their instructions in order)
27
28 Key to the asynchronous function call implementation is the concept of
29 a "sequence cookie" (which, although it has an abstracted type, can be
30 thought of as a monotonically incrementing number).
31
32 The async core will assign each scheduled event such a sequence cookie and
33 pass this to the called functions.
34
35 The asynchronously called function should before doing a globally visible
36 operation, such as registering device numbers, call the
37 async_synchronize_cookie() function and pass in its own cookie. The
38 async_synchronize_cookie() function will make sure that all asynchronous
39 operations that were scheduled prior to the operation corresponding with the
40 cookie have completed.
41
42 Subsystem/driver initialization code that scheduled asynchronous probe
43 functions, but which shares global resources with other drivers/subsystems
44 that do not use the asynchronous call feature, need to do a full
45 synchronization with the async_synchronize_full() function, before returning
46 from their init function. This is to maintain strict ordering between the
47 asynchronous and synchronous parts of the kernel.
48
49 */

關於 fastboot 的做法,在LWN上的一篇文章[An asynchronous function call infrastructure]有很不錯的介紹。

Red Hat也貢獻了二個新的system call:preadv()與pwritev()。其他更多Linux 2.6.30的變更,可參考[kernelnewbies]上的說明。

--jollen

引用通告

如果您想引用這篇文章到您的Blog,
請複製下面的鏈接,並放置到您發表文章的相應界面中。

http://www.jollen.org/cgi-bin/mt3/mt-tb.cgi/638

發表一個評論

(您發表的意見將被立即接受,但需要一點時間與後端伺服器做同步,您的留言才會顯示在網站上。為避免 spam 攻撃,按「發表」後請輸入帳號密碼。使用者帳號:「nospam」、密碼:「nospam」。)

[Top] Copyright (C) 2006,2010 www.jollen.org.
All rights reserved. All content licensed under Creative Commons License.