簡易檢索 / 詳目顯示

研究生: 陳柏嘉
Chen, Po-Chia
論文名稱: 微核心系統架構之擴充型虛擬檔案系統設計與實作
EVFS: An Extensible Virtual File System in Microkernel-Based System Architecture
指導教授: 陳 敬
Chen, Jing
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 電腦與通信工程研究所
Institute of Computer & Communication Engineering
論文出版年: 2007
畢業學年度: 95
語文別: 中文
論文頁數: 66
中文關鍵詞: 過濾模組微核心作業系統虛擬檔案系統
外文關鍵詞: filter module, microkernel, virtual file system
相關次數: 點閱:78下載:5
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 本論文探討並實作一個以微核心系統架構為基礎之擴充型虛擬檔案系統,目的在於提出一個簡易架構,讓系統開發者易於將自行開發之檔案系統及檔案系統擴充功能加入系統當中。傳統之單體核心(Monolithic-Kernel)作業系統中,由於其作業系統之架構將檔案系統置於核心中,如果想要實作一個檔案系統,不僅要對作業系統核心有完整之了解,還必須處理核心內部提供給檔案系統之介面,使得開發檔案系統之複雜度相當高。有鑒於此,我們在微核心(Micro-Kernel)架構之作業系統下,提出了擴充型虛擬檔案系統(Extensible Virtual File System)之設計。在微核心架構之作業系統中,虛擬檔案系統是實作於核心外之系統服務模組,應用程式與虛擬檔案系統之間之溝通都是經由訊息傳遞。藉由虛擬檔案系統抽象層,讓檔案系統開發人員能更容易地在微核心系統架構下實作檔案系統,將開發重心放在實體檔案系統本身,以降低與作業系統整合之複雜度並可縮短開發時程。

    本研究之另一重點是提出一個檔案系統功能性擴充模組之機制。通常想要擴充檔案系統之功能,必須先全盤了解較為複雜之檔案系統內部運作,才能夠將想要擴充之功能附加進去,這種作法是相對地比較沒有效率的。因此我們設計了擴充功能模組之介面,將我們想要擴充檔案系統之功能依照制定之規格實作成模組,在作業系統執行時期動態加到系統當中,使實體檔案系統可擴充原本所未具有之功能,而不需要去深入研究檔案系統內部,即可達到擴充功能之目的。應用程式所操作之檔案只要擁有模組之功能屬性即可要求模組之服務,對於應用程式而言,模組處理過程是透通的(Transparent)。

    在虛擬檔案系統中我們定義兩種抽象資料型態: 檔案系統物件用以描述檔案系統;檔案物件用以描述已開啟之檔案。藉由虛擬函式表(Virtual Function Table)決定呼叫之函式位置,並建立過濾管理層用以攔截訊息以及管理模組之註冊。經由測試結果顯示,不同檔案系統之間的檔案操作是正確的,並且過濾模組機制的確能夠在執行時期對檔案提供擴充功能之服務。經由效能量測之結果得知,過濾模組所產生之負擔應是使用者可以接受的。

    This thesis describes the design and implementation of an extensible virtual file system (EVFS) in micro-kernel based system architecture. In traditional monolithic operating system architecture, file system is implemented as part of the kernel. To implement a file system, the developer not only needs in-depth understanding of operating system internals, but also has to handle the complicated interfaces provided by operating system. In this thesis, we design and implement an extensible virtual file system based on micro-kernel architecture. In an operating system of micro-kernel architecture, file system is a system service outside the kernel. With the advantages of virtual file system and micro-kernel architecture, developer can implement a file system more easily, and focus on the implementation of physical file system thereby reduces the complexity of integration with operating system, and shorten development time.

    This thesis also describes the extensible functional module aimed at file system functionality and extensibility. In case of expanding file system functionality, understanding thoroughly the file system internal, which is usually quite complicated, before appending the extensible functionality to file system. This is relatively less efficient. We design a filtering mechanism for extensible functionality and the interfaces for extensible modules so that the extended functionality can be implemented as modules and dynamically inserted into file system. By doing so, at the application level, all the extensible functionality is transparent, and files request module service simply by setting required file attributes.

    In this extensible virtual file system, we define two abstract data types: file-system object is used to describe a file system while file object is used to describe an opened file. In addition, we implement virtual functional table to locate the required function, and a filter management layer to intercept messages and handle the registration of filter modules. From the result of testing, file operations between file systems are correct and the filter modules can effectively provide file services at run-time. There is unavoidable overhead incurred from the filter modules. However, the overhead is acceptable.

    第1章 簡 介 1 1.1 背景知識 1 1.1.1 檔案系統 1 1.1.2 虛擬檔案系統 2 1.1.3 模組載入服務 3 1.2 研究動機 3 1.3 論文組織 4 第2章 相關研究 5 2.1 Linux虛擬檔案系統 5 2.2 堆疊式檔案系統 8 2.2.1 Usenetfs 9 2.2.2 Tracefs 10 2.2.3 Stackably Extensible Template Layer 12 第3章 EVFS系統設計與實作 14 3.1 系統架構 14 3.2 虛擬檔案系統層 16 3.2.1 檔案系統物件 16 3.2.2 檔案物件 18 3.2.3 檔案表 19 3.3 實作環境 21 3.3.1 硬體平台 21 3.3.2 軟體環境 22 3.4 裝置驅動程式 23 3.5 實體檔案系統 24 3.6 檔案系統運作流程 26 第4章 擴充型功能模組 29 4.1 系統與模組架構 30 4.2 過濾管理層 30 4.2.1 攔截訊息 31 4.2.2 過濾模組之註冊 32 4.3 運作流程 34 4.4 過濾模組 36 4.4.1 建立流程 36 4.4.2 insflt指令與rmflt指令 38 4.5 應用程式之發展 39 4.5.1 開發流程 39 4.5.2 函式庫之支援 40 4.5.3 應用程式開發範例 43 第5章 系統測試 46 5.1 測試環境 46 5.2 測試程式 46 5.3 測試結果 47 5.4 效能測試 51 5.5 討論 55 第6章 結論與未來方向 57 6.1 結論 57 6.2 未來方向 57 參考文獻 58 附錄一 測試一之應用程式原始碼列表 60 附錄二 加密模組原始碼列表 63 自 述 66

    [1]Andrew S. Tanenbaum, Albert S. Woodhull, “Operating Systems–Design and Implementation,” Prentice Hall, 1997, ISBN: 0136301959.

    [2]Aju John, “Dynamic Vnodes – Design and Implementation,” Proceedings of the USENIX Annual Technical Conference, pp. 11-23, January, 1995.

    [3]Akshat Aranya, Charles P. Wright, Erez Zadok, “Tracefs: A File System to Trace Them All,” Proceedings of the Third USENIX Conference on File and Storage Technologies (FAST), pp. 129-145, 2004.

    [4]CompactFlash Association, “Information about CompactFlash,” Revision 3.0, December, 2004, http://www.compactflash.org.

    [5]David S. H. Rosenthal, “Evolving the Vnode Interface,” Proceedings of the USENIX Technical Conference, pp. 107-118, June, 1990.

    [6]Erez Zadok, “Writing Stackable Filesystems,” Linux Journal, Issue 109, Page 8, ISSN: 1075-3583, May, 2003, http://www.linuxjournal.com/article/6485.

    [7]Erez Zadok, Ion Badulescu, “Usenetfs: A Stackable File System for Large Article Directories,” Technical Report CUCS-022-998, Computer Science Department, Columbia University, June, 1998.

    [8]Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, “Linux Device Drivers,” 2nd Edition, O’Reilly, February, 2005, ISBN: 0596000081.

    [9]Microsoft Corporation, “FAT: General Overview of On-Disk Format,” Version 1.02, May, 1999, http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx.

    [10]Muneeb Ahmed Awan, Sikandar Hayat Khiyal, “Stackably Extensible Template Layer For File System Development Under Windows NT(Family),” E-Tech, pp. 74-82, July, 2004.

    [11]Paul W. Schermerhorn, Robert J. Minerick, Peter W. Rijks, Vincent W. Freeh, “User-Level Extensibility in the Mona File System,” Proceedings of Freenix Conference, pp. 173-184, Boston, MA, June, 2001.

    [12]Robert Love, “Linux Kernel Development,” Novell Press, January, 2005, ISBN: 0672327201.

    [13]Richard Gooch, “Overview of the Virtual File System,” Linux Documentation, July, 1999, http://www.atnf.csiro.au/~rgooch/linux/vfs.txt.

    [14]SanDisk Corporation, “Secure Digital Card,” Product Manual, Revision 1.7, 2003.

    [15]S. R. Kleiman, “Vnodes: An Architecture for Multiple File System Types in Sun UNIX,” Proceedings of the USENIX, pp. 238-247, Summer, 1986.

    [16]TI TMS320DM270 Technical Reference Manual, Version 1.1, September, 2003.

    [17]林咸禮, “存取智慧卡之Linux檔案系統的設計與實作,” 碩士論文, 國立台灣大學, June, 2001.

    [18]洪文彬, “嵌入式微核心系統之設計與實作,” 碩士論文, 國立成功大學, June, 2005.

    [19]陳柏嘉, 陳敬, “微核心系統架構之擴充型虛擬檔案系統設計與實作,” Symposium on Digital Life and Internet Technologies, June, 2006.

    下載圖示 校內:2007-10-18公開
    校外:2009-10-18公開
    QR CODE