国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)

2019-11-18 11:28:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Sumit Singh, 軟件工程師, IBM

2006 年 4 月 10 日

使用用戶(hù)空間的文件系統(tǒng)(FUSE),您無(wú)需理解文件系統(tǒng)的內(nèi)幕,也不用學(xué)習(xí)內(nèi)核模塊編程的知識(shí),就可以開(kāi)發(fā)用戶(hù)空間的文件系統(tǒng)框架。本文是一篇簡(jiǎn)單的逐步介紹的指南,內(nèi)容包括安裝、定制和啟用 FUSE 和 AFS,這樣您就可以在 linux® 的用戶(hù)空間中創(chuàng)建自己的功能完備的文件系統(tǒng)了。

文件系統(tǒng)是一種用來(lái)存儲(chǔ)和組織計(jì)算機(jī)文件、目錄及其包含的數(shù)據(jù)的方法,它使文件、目錄以及數(shù)據(jù)的查找和訪問(wèn)得到簡(jiǎn)化。假如您正在使用一臺(tái)計(jì)算機(jī),很可能使用了多個(gè)文件系統(tǒng)。文件系統(tǒng)能提供豐富的擴(kuò)展能力。它可以編寫(xiě)成底層文件系統(tǒng)的一個(gè)封裝程序,從而對(duì)其中的數(shù)據(jù)進(jìn)行治理,并提供一個(gè)增強(qiáng)的、具有豐富特性的文件系統(tǒng)(例如 cvsfs-fuse,它為 CVS 提供了一個(gè)文件系統(tǒng)的接口;或 Wayback 文件系統(tǒng),它提供了一種用于保留原始數(shù)據(jù)文件的文件備份機(jī)制)。

在用戶(hù)空間的文件系統(tǒng)出現(xiàn)之前,文件系統(tǒng)的開(kāi)發(fā)曾是內(nèi)核開(kāi)發(fā)人員的工作。創(chuàng)建文件系統(tǒng)需要了解內(nèi)核編程和內(nèi)核技術(shù)(例如 vfs)方面的知識(shí)。調(diào)試則需要 C 和 C++ 方面的專(zhuān)業(yè)技能。但是其他開(kāi)發(fā)人員需要熟練地操作文件系統(tǒng)以添加個(gè)性化特性(例如添加歷史記錄或轉(zhuǎn)發(fā)緩存)及對(duì)其改進(jìn)。

FUSE 簡(jiǎn)介

使用 FUSE 您可以開(kāi)發(fā)功能完備的文件系統(tǒng):其具有簡(jiǎn)單的 API 庫(kù),可以被非特權(quán)用戶(hù)訪問(wèn),并可以安全的實(shí)施。更重要的是,F(xiàn)USE 以往的表現(xiàn)充分證實(shí)了其穩(wěn)定性。

使用 FUSE,您可以像可執(zhí)行二進(jìn)制文件一樣來(lái)開(kāi)發(fā)文件系統(tǒng),它們需要鏈接到 FUSE 庫(kù)上 —— 換言之,這個(gè)文件系統(tǒng)框架并不需要您了解文件系統(tǒng)的內(nèi)幕和內(nèi)核模塊編程的知識(shí)。

就文件系統(tǒng)來(lái)說(shuō),用戶(hù)空間的文件系統(tǒng)就不再是新奇的設(shè)計(jì)了。用戶(hù)空間文件系統(tǒng)的商業(yè)實(shí)現(xiàn)與學(xué)術(shù)實(shí)現(xiàn)的實(shí)例包括:

  • LUFS 是一個(gè)混合用戶(hù)空間的文件系統(tǒng)框架,它對(duì)用于任何應(yīng)用程序無(wú)數(shù)的文件系統(tǒng)提供透明支持。大部分LUFS 包括一個(gè)內(nèi)核模塊和一個(gè)用戶(hù)空間的守護(hù)進(jìn)程。從根本上來(lái)說(shuō),它將大部分 VFS 調(diào)用都委托給一個(gè)專(zhuān)用的守護(hù)進(jìn)程來(lái)處理。
  • UserFS 讓用戶(hù)進(jìn)程可以像普通的文件系統(tǒng)一樣進(jìn)行加載。這種概念性的原型提供了 FTPfs,這可以使用文件系統(tǒng)接口提供匿名 FTP 訪問(wèn)。
  • Ufo PRoject 是為 Solaris 提供的一個(gè)全局文件系統(tǒng),它答應(yīng)用戶(hù)將遠(yuǎn)程文件真正當(dāng)作本地文件一樣對(duì)待。
  • OpenAFS 是 Andrew FileSystem 的一個(gè)開(kāi)源版本。
  • CIFS 是 Common Internet FileSystem 的簡(jiǎn)稱(chēng)。

與這些商業(yè)實(shí)現(xiàn)和學(xué)術(shù)實(shí)現(xiàn)不同,F(xiàn)USE 將這種文件系統(tǒng)的設(shè)計(jì)能力帶到了 Linux 中來(lái)。由于 FUSE 使用的是可執(zhí)行程序(而不像 LUFS 一樣使用的是共享對(duì)象),因此可以簡(jiǎn)化程序的調(diào)試和開(kāi)發(fā)。FUSE 可以在 2.4.x 和 2.6.x 的內(nèi)核上使用,現(xiàn)在可以支持 java™ 綁定,因此您可以不必限定于使用 C 和 C++ 來(lái)編寫(xiě)文件系統(tǒng)了。(有關(guān)更多使用 FUSE 的用戶(hù)層的文件系統(tǒng)的內(nèi)容,請(qǐng)參閱 參考資料。)

要在 FUSE 中創(chuàng)建一個(gè)文件系統(tǒng),您需要安裝一個(gè) FUSE 內(nèi)核模塊,然后使用 FUSE 庫(kù)和 API 來(lái)創(chuàng)建自己的文件系統(tǒng)。


使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖一)
使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖二) 使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖二)
使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖三)
回頁(yè)首

展開(kāi) FUSE

要開(kāi)發(fā)一個(gè)文件系統(tǒng),首先請(qǐng)下載 FUSE 的源代碼(請(qǐng)參閱 參考資料)并展開(kāi)這個(gè)包:tar -zxvf fuse-2.2.tar.gz。這會(huì)創(chuàng)建一個(gè) FUSE 目錄,其中保存的是源代碼。fuse-2.2 目錄的內(nèi)容如下:

  • ./doc 包含了與 FUSE 有關(guān)的文檔。現(xiàn)在,這只有一個(gè)文件 how-fuse-works。
  • ./kernel 包含了 FUSE 內(nèi)核模塊的源代碼(對(duì)于使用 FUSE 開(kāi)發(fā)文件系統(tǒng)來(lái)說(shuō),您當(dāng)然不用懂得這些代碼的機(jī)制)。
  • ./include 包含了 FUSE API 頭,您需要這些文件來(lái)創(chuàng)建文件系統(tǒng)。您現(xiàn)在唯一需要的就是 fuse.h。
  • ./lib 中存放的是創(chuàng)建 FUSE 庫(kù)的源代碼,您需要將它們與您的二進(jìn)制文件鏈接在一起來(lái)創(chuàng)建文件系統(tǒng)。
  • ./util 中存放的是 FUSE 工具庫(kù)的源代碼。
  • ./example 當(dāng)然包含的是一些供您參考的例子,例如 fusexmp.null 和 hello 文件系統(tǒng)。

使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖一)
使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖二) 使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖二)
使用 FUSE 開(kāi)發(fā)自己的文件系統(tǒng)(圖三)
回頁(yè)首



發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁城县| 曲阳县| 黔西县| 行唐县| 博乐市| 双牌县| 宜都市| 昭通市| 白山市| 调兵山市| 马龙县| 孟连| 同心县| 元阳县| 库尔勒市| 连南| 蒙阴县| 琼中| 湘潭县| 绥中县| 陇南市| 溧水县| 高陵县| 宁海县| 武鸣县| 永清县| 绩溪县| 陈巴尔虎旗| 济宁市| 盘山县| 双城市| 海南省| 松滋市| 建湖县| 星座| 田阳县| 宾阳县| 桂阳县| 德令哈市| 龙岩市| 黑河市|