CAT Filesystem
Linux 下的目錄與標籤式檔案系統
        Draft 0.2


   墳墓( Brian Hsu )

                     1
授權聲明
► 本文以 『 Creative
             Commons 姓名標示 - 非
  商業性 - 禁止改作 2.0 台灣』 進行授權
► 您可以在下列的條件下自由重製、散布、展
  示及演出本著作。
     姓名標示:您必須保留原作者的姓名標示。
     非商業性:您不得為商業目的而使用本著作。
     禁止改作: 您不得改變、轉變或改作本著作。
► 詳情請見
  
      ttp://creativecommons.org/licenses/by-nc-nd/2.0/tw/
                                                      2
Outline
► 階層式檔案系統架構
► 階層式檔案系統的問題
► 解決方案
    Link ( 捷徑 )
    Application
    全文檢索
    Label (Tag)


                             3
Outline
► 是否需要發展一套               FS
     Application 的問題
     Extendend File Attributes
► CatFS Approach
► CatFS 系統特色
► 系統架構
► 待討論事項
► 要解決的問題
► TODO List                       4
階層式檔案系統
► 樹狀節構
► 所有資料都可分為兩種基本型態
  目錄
  檔案
► 檔案一定在某一個目錄之下




                   5
階層式檔案系統的問題
► 階層式檔案系統的基本特性
  一個檔案只能在一個目錄之中
► 現實的生活中
  一個檔案可能同時屬於好幾個分類
  ►與『一個檔案只能在一個目錄』相扺觸




                       6
階層式檔案系統的問題:
        Example
            ~
            +--Photo
                          | +-- 社團
                          | | +--- 園遊會
►   我所規劃的檔案架構如 | | +--- 迎新茶會
    右                     | | +--- 社遊
                          | +-- 奶茶
►   社團照片以活動為分類 |               +--- 桌布
►   每個檔案都有特定的目 |               +--- 聽說宣傳照
                          |
    錄可以存放                 +--MP3
     Ex:                 | +-- 奶茶
     奶茶的歌放在 ~/MP3/ 奶 | | +--- 很愛很愛妳
                          | | +--- 單身日誌演唱會
      茶 /[ 專輯名稱 ] 中
                          | | +--- 聽說
     奶茶的照片放在             | +-- 陳昇
      ~/Photo/ 奶茶 /[ 分類 ] |    +--- 美麗寶島跨年演唱會
      中                   +--MTV
                            +-- 奶茶
►   世界一片美好?                                     7
                            +-- 陳昇
階層式檔案系統的問題:
       Example
► 我要如何在所有的社團照片中,找到特定主
題的照片?
  Ex: cosplay 、木偶、社團合照,特定社員… etc




                                    8
階層式檔案系統的問題:
    Example
► 我的檔案以檔案類型分類
    音樂   => ~/MP3
    照片   => ~/Photo
    影片   => ~/MTV
► 如何做到下面的事情?
    找出奶茶聽說專輯的所有檔案 (MP3,MTV,Photo)
    找出奶茶很愛很愛你的照片和音樂
    找出奶茶或南方二重唱的所有 MTV 和奶茶的照片
► 在目錄的架構下,以上的所有都是癡心妄想!
                                 9
解決的方式
► Link ( 捷徑 )
► Application
► 全文搜尋
► Label
   Mac OS X
   Gmail/Picasa2



                        10
解決方法: Link

► 把我希望放在一起的檔案,建立一個目
錄,並將原始檔 link 在那個目錄內。
  Ex:
  建一個『聽說照片 MV 』的資料夾,再把所
   有相關檔案在該目錄中建立捷俓。
► 幾乎所有作業系統都有提供
    Windows => 捷徑
    Un*x => Soft Link
                         11
Link 的問題
► Soft   link
   原始檔案刪除, soft link 隨之無效
► Hard   link
   把主目錄裡的檔案刪除,卻無法釋放磁碟空間
► Link無法與主目錄裡的更動自動同步
► 人是多變的,除非用窮舉,否則不可能我要
  找任何關鍵字的組合時都能馬上找到對應的
  目錄
► Example: 五個分類
   C5,1 + C5,2 + C5,3 + C5,4 + C5,5 = 31 !!   12
解決方法: Application
► 利用軟體進行檔案的管理
    iTunes
    Picasa2
► 只能進行特定檔案類型的管理
  iTunes => 音樂
  Picasa2 => 照片



                            13
解決方法: Application (Cont.)
► 如果我想用統一的方式管理我電腦上的所有
檔案?
  Ex: MP3/MPG/JPEG/TXT/PDF…etc.
► 確實有人在檔案管理員程式加入                   metadata
的功能。
  Ex: GNOME Nautilus




                                              14
解決方法:全文檢索
►   電腦是很笨的,特別在斷字、斷句、斷詞以
    及文章脈絡的判斷
►   Google Desktop Search
►   無法進行精確的搜尋
►   沒有義意的照片編號,如何搜尋
►   Example:
       內文有『奶茶』兩字的檔案,不一定就與劉若
        英有關係
       對劉若英的訪問,或許會提到陳昇或張艾嘉,
        但不應該被分到『陳昇』或『張艾嘉』的分類   15
16
17
解決方法: Label
► 替檔案加上一個特殊的屬性: Label (Tag)
► 目前使用 Label 功能的有以下兩個系統
  Mac OS X Finder
  Gmail/Picasa2




                              18
Mac OS X Label
► 以顏色區分,使用者能設定    label 名稱
► 一個檔案只能設定一個 label
   就某方面來說,這不過是從『一個檔案只能在一
    個目錄內』 => 『一個檔案只能在兩個目錄
    內』
► Label數目有限制,只能使用內建的顏色,
  無法新增
► Mac OS X 雖然有 label ,但仍無法解決
  P8,9 所提出的問題
                               19
20
Gmail/Picasa Label

► 沒有階層式的目錄架構,只有         Label
  目錄在多層次的組織上,依然很有用,但
   GMail 不支援
► 一封信可以有多個      Label
► Label 數目沒有限制
► Gmail 可以用 Label 搜尋,但無法進行
  複雜的條件判斷。
► Picasa2 只能處理 and 運算元
                                21
Gmail/Picasa Label (Cont.)




                             22
Gmail/Picasa Label (Cont.)




                             23
Gmail/Picasa Label (Cont.)




                             24
檔案系統 vs 應用程式?
► 要實作 Label (Tags) 真的需要搞到檔案系統
  嗎?畢竟大不了我寫隻什麼檔式都可以吃,
  又可以設 label 的檔案管理員嘛!
► 再不然,目前許多的檔案系統也提供使用設
  定額外的屬性,實在沒必要發展一套新的檔
  案系統。



                            25
Application 的問題
► 連續性
   在 Un*x 的世界裡,圖型界面的檔案管理員有許多種
    (Ex: KDE,GNOME…etc)
   如果使用 Application 來記錄 Tags ,會發生不連續性
    的問題。
► Example:
     在 Nautilus 中設定一個 foo 這個目錄的底色
     在 command line 下 mv foo bar
     理論:這只是改名,不應該把底色改掉
     事實:底色的資訊不見了

                                         26
Application 的問題 Example
► 請回憶剛剛的  Picasa2
► 我把原本在桌面的 Club 資料夾『剪下貼
  上』到 C:
► 理論上這個應該是兩個完全相同的資料夾,
  因此不應該有資料的流失
► 但是我再次開啟 Picasa2 後……




                           27
Application 的連續性問題 (Cont.)




                         28
Application 的連續性問題 (Cont.)
► 好,是我太笨,移動了資料夾,當然要叫應
  用程式到新的資料夾去找我的照片。
► 老天保佑,我辛苦建立起來的 label 還在。
► 可是事實上……




                            29
Application 的連續性問題 (Cont.)




                         30
Extended File Attributes
► 不過是加個          Tag 屬性,有必要動到檔案系統嗎?
   現在的 ReiserFS 都有提供 Extended file attributes 啦
    !
► Extendend    File Attributes
     Key = Value
     ~/MP3/ 劉若英 / 聽說 / 幸福的路 .mp3
      ►   tags = 奶茶 | 聽說 | 音樂
► 架構在原本的   inode 上,如何進行快速搜尋?這樣
 速度會與直接搜尋檔名差不多,甚至更慢,因為要
 再將 tags 的內容拆開分析。
   為什麼要浪費時間在使用者不感興趣的檔案上?
                                                   31
CAT Filesystem
► CAT
     CAT: 貓, Catlog 之縮寫
     CAT And Tags Filesystem
► 一個具備階層及標籤管理方式的檔案系統
► 提供使用者一個快速搜尋的系統
   以搜尋速度做為實作的最重要考量



                                32
CatFS’s Approach
► 以目錄為主要分類架構,標籤搜尋為輔
► 使用者可以自行設定檔案的標籤屬性
► 找出奶茶聽說專輯的所有檔案
  Search Tag: 聽說
► 找出奶茶很愛很愛你的照片和音樂
  Search Tag: ( 照片 OR 音樂 ) AND 很愛很愛你
► 找出奶茶或南方二重唱的所有             MTV 和奶茶的照片
  Search Tag: ( ( 南方二重唱 OR 奶茶 ) AND MTV ) OR
                          ( 奶茶 AND 照片 )

                                                33
CatFS 系統特色
► 與現有   Linux 檔案系統向下相容
  Ex: Ext3/ReiserFS…
► 使用者可以自由對任何檔案設定任何標籤
  當使用者對目錄進行設定標籤的動作時,不論哪一個
► 虛擬目錄
► 資源回收筒
► 備份、回存標籤相關資訊


                         34
虛擬目錄
► 在不更動使用者的習慣下,以目錄表示出標
  籤的架構
► 靜態虛擬目錄
  單一的標籤
  可新增、刪除檔案的標籤屬性
► 動態虛擬目錄
    mkdir Tag: ( 奶茶 AND MP3)
    唯讀
                                35
虛擬目錄 Example
$ cd ~/.tags
$ ls
  奶茶 南方二重唱 陳昇
$ cd 奶茶
$ ls
  很愛很愛你 .mp3 後來 .mp3 相知相守 .mp3…
$ mv 相知相守 .mp3 ../ 南方二重唱
   刪除 相知相守 .mp3 『奶茶』的標籤,加上
  『南方二重唱』的標籤

                                  36
系統架構
► Tags
     的儲存
► 資源回收筒




                  37
Tags 的儲存

► 在自己的一個檔案中,在使用         Ext3 的
  kernel 下,看起來只是一個檔案。
► 只有 kernel level 看的到這個 Tags 檔
  案,所有與檔案相關的 system call 都
  會將這個檔案當做不存在。
► For Example:
  在 Ext3 的根目錄,將某個 entry ,指到
   特定的 inode ,該 inode 所存的即是這個
   tags 檔。                   38
資源回收筒
►對  unlik() 動手角
► 只在特定的目錄下,才真的進行 unlink 的動
  作




                         39
待討論的事項
► 使用的    Kernel 版本
  2.4 or 2.6
► 架構在哪種         FS 之上
  Ext3
  ReiserFS
► 詳細的    Tags 動作
  是否需要以目錄為單位的 Tags ?
  複製檔案是否要複製 Tags 屬性
                         40
ResierFS 3.6 / 4
► ReiserFS   3.6
   Journalling file system for Linux based on
    balance tree algorithms.
   對小檔案的處理效能較高
► ReiserFS   4
   號稱是最快的檔案系統,但個人感覺比 ResierFS
    3.6 差了一點,而且很吃 CPU
   Atomic filesystem
   Reiser4 uses dancing trees

                                                 41
需要解決的問題
►解   Muti-User 環境下造成的混淆
   brianhsu 有個 Photo 標籤
   mission 也有個 Photo 標籤
► Permission
   是否該讓使用者以標籤做為分享檔案的媒介?
► 如何備份複原       Tag 資料
   提供相關工具,可以 export/import Tags 檔案
   如何在 import 後進行正確性的檢查,或是
    inode 對應的修改?
                                      42
需要解決的問題 (Count.)
► 如何不讓一般檔案操作的速度降低
► 搜尋速度
   要如何設計我們的資料結構,才能讓複雜的條件式搜尋
    ,能夠在短時間內找出結果。
► Cache
   如何讓虛擬目錄的速度不致於和 Native 相差過多?
► Tags   的連續性
   在使用者 cp/mv/rm 檔案時,如何能夠維持檔案與 tag
    的一致性,並且不致於拖累這些操作的時間。

                                      43
需要解決的問題 (Count.)
► Tags   正確性的檢查 (fsck 的處理 )
     感謝   SayYA BBS 上的 anton 提出這個問題
     如果   label 與檔案不一致,如何處理?
      ►正確的  Tag 對到存在但已損壞的檔案 => 不理他,
       就像一個檔名可能對到一個損壞的檔案。
      ►Tag 對應到一個不存在的檔案 => 應該要將該 tag
       中的那個 entry 清掉,不過在正常的情況下不應該發
       生,因為理論上在刪掉一個檔案時, kernel 就應該要
       把那 Tag 清掉。
      ►Tag 對應到不是當初使用者指定的檔案 => ……

                                       44
需要解決的問題 (Count.)
► 與現有指令以及應用程式的整合
  Kernel 與 User level 的切割




                             45
TODO List
► 弄清楚  VFS/Ext3/Kernel Module 的架構
► 在原有的基礎下設計我們的相關資料結構
► 實作 Kernel 層
► 實作 User Application 層




                                    46

Cat Fs Draft

  • 1.
  • 2.
    授權聲明 ► 本文以 『Creative Commons 姓名標示 - 非 商業性 - 禁止改作 2.0 台灣』 進行授權 ► 您可以在下列的條件下自由重製、散布、展 示及演出本著作。  姓名標示:您必須保留原作者的姓名標示。  非商業性:您不得為商業目的而使用本著作。  禁止改作: 您不得改變、轉變或改作本著作。 ► 詳情請見  ttp://creativecommons.org/licenses/by-nc-nd/2.0/tw/ 2
  • 3.
    Outline ► 階層式檔案系統架構 ► 階層式檔案系統的問題 ►解決方案  Link ( 捷徑 )  Application  全文檢索  Label (Tag) 3
  • 4.
    Outline ► 是否需要發展一套 FS  Application 的問題  Extendend File Attributes ► CatFS Approach ► CatFS 系統特色 ► 系統架構 ► 待討論事項 ► 要解決的問題 ► TODO List 4
  • 5.
    階層式檔案系統 ► 樹狀節構 ► 所有資料都可分為兩種基本型態  目錄  檔案 ► 檔案一定在某一個目錄之下 5
  • 6.
    階層式檔案系統的問題 ► 階層式檔案系統的基本特性 一個檔案只能在一個目錄之中 ► 現實的生活中  一個檔案可能同時屬於好幾個分類 ►與『一個檔案只能在一個目錄』相扺觸 6
  • 7.
    階層式檔案系統的問題: Example ~ +--Photo | +-- 社團 | | +--- 園遊會 ► 我所規劃的檔案架構如 | | +--- 迎新茶會 右 | | +--- 社遊 | +-- 奶茶 ► 社團照片以活動為分類 | +--- 桌布 ► 每個檔案都有特定的目 | +--- 聽說宣傳照 | 錄可以存放 +--MP3  Ex: | +-- 奶茶  奶茶的歌放在 ~/MP3/ 奶 | | +--- 很愛很愛妳 | | +--- 單身日誌演唱會 茶 /[ 專輯名稱 ] 中 | | +--- 聽說  奶茶的照片放在 | +-- 陳昇 ~/Photo/ 奶茶 /[ 分類 ] | +--- 美麗寶島跨年演唱會 中 +--MTV +-- 奶茶 ► 世界一片美好? 7 +-- 陳昇
  • 8.
    階層式檔案系統的問題: Example ► 我要如何在所有的社團照片中,找到特定主 題的照片?  Ex: cosplay 、木偶、社團合照,特定社員… etc 8
  • 9.
    階層式檔案系統的問題: Example ► 我的檔案以檔案類型分類  音樂 => ~/MP3  照片 => ~/Photo  影片 => ~/MTV ► 如何做到下面的事情?  找出奶茶聽說專輯的所有檔案 (MP3,MTV,Photo)  找出奶茶很愛很愛你的照片和音樂  找出奶茶或南方二重唱的所有 MTV 和奶茶的照片 ► 在目錄的架構下,以上的所有都是癡心妄想! 9
  • 10.
    解決的方式 ► Link (捷徑 ) ► Application ► 全文搜尋 ► Label  Mac OS X  Gmail/Picasa2 10
  • 11.
    解決方法: Link ► 把我希望放在一起的檔案,建立一個目 錄,並將原始檔link 在那個目錄內。  Ex:  建一個『聽說照片 MV 』的資料夾,再把所 有相關檔案在該目錄中建立捷俓。 ► 幾乎所有作業系統都有提供  Windows => 捷徑  Un*x => Soft Link 11
  • 12.
    Link 的問題 ► Soft link  原始檔案刪除, soft link 隨之無效 ► Hard link  把主目錄裡的檔案刪除,卻無法釋放磁碟空間 ► Link無法與主目錄裡的更動自動同步 ► 人是多變的,除非用窮舉,否則不可能我要 找任何關鍵字的組合時都能馬上找到對應的 目錄 ► Example: 五個分類  C5,1 + C5,2 + C5,3 + C5,4 + C5,5 = 31 !! 12
  • 13.
    解決方法: Application ► 利用軟體進行檔案的管理  iTunes  Picasa2 ► 只能進行特定檔案類型的管理  iTunes => 音樂  Picasa2 => 照片 13
  • 14.
    解決方法: Application (Cont.) ►如果我想用統一的方式管理我電腦上的所有 檔案?  Ex: MP3/MPG/JPEG/TXT/PDF…etc. ► 確實有人在檔案管理員程式加入 metadata 的功能。  Ex: GNOME Nautilus 14
  • 15.
    解決方法:全文檢索 ► 電腦是很笨的,特別在斷字、斷句、斷詞以 及文章脈絡的判斷 ► Google Desktop Search ► 無法進行精確的搜尋 ► 沒有義意的照片編號,如何搜尋 ► Example:  內文有『奶茶』兩字的檔案,不一定就與劉若 英有關係  對劉若英的訪問,或許會提到陳昇或張艾嘉, 但不應該被分到『陳昇』或『張艾嘉』的分類 15
  • 16.
  • 17.
  • 18.
    解決方法: Label ► 替檔案加上一個特殊的屬性:Label (Tag) ► 目前使用 Label 功能的有以下兩個系統  Mac OS X Finder  Gmail/Picasa2 18
  • 19.
    Mac OS XLabel ► 以顏色區分,使用者能設定 label 名稱 ► 一個檔案只能設定一個 label  就某方面來說,這不過是從『一個檔案只能在一 個目錄內』 => 『一個檔案只能在兩個目錄 內』 ► Label數目有限制,只能使用內建的顏色, 無法新增 ► Mac OS X 雖然有 label ,但仍無法解決 P8,9 所提出的問題 19
  • 20.
  • 21.
    Gmail/Picasa Label ► 沒有階層式的目錄架構,只有 Label  目錄在多層次的組織上,依然很有用,但 GMail 不支援 ► 一封信可以有多個 Label ► Label 數目沒有限制 ► Gmail 可以用 Label 搜尋,但無法進行 複雜的條件判斷。 ► Picasa2 只能處理 and 運算元 21
  • 22.
  • 23.
  • 24.
  • 25.
    檔案系統 vs 應用程式? ►要實作 Label (Tags) 真的需要搞到檔案系統 嗎?畢竟大不了我寫隻什麼檔式都可以吃, 又可以設 label 的檔案管理員嘛! ► 再不然,目前許多的檔案系統也提供使用設 定額外的屬性,實在沒必要發展一套新的檔 案系統。 25
  • 26.
    Application 的問題 ► 連續性  在 Un*x 的世界裡,圖型界面的檔案管理員有許多種 (Ex: KDE,GNOME…etc)  如果使用 Application 來記錄 Tags ,會發生不連續性 的問題。 ► Example:  在 Nautilus 中設定一個 foo 這個目錄的底色  在 command line 下 mv foo bar  理論:這只是改名,不應該把底色改掉  事實:底色的資訊不見了 26
  • 27.
    Application 的問題 Example ►請回憶剛剛的 Picasa2 ► 我把原本在桌面的 Club 資料夾『剪下貼 上』到 C: ► 理論上這個應該是兩個完全相同的資料夾, 因此不應該有資料的流失 ► 但是我再次開啟 Picasa2 後…… 27
  • 28.
  • 29.
    Application 的連續性問題 (Cont.) ►好,是我太笨,移動了資料夾,當然要叫應 用程式到新的資料夾去找我的照片。 ► 老天保佑,我辛苦建立起來的 label 還在。 ► 可是事實上…… 29
  • 30.
  • 31.
    Extended File Attributes ►不過是加個 Tag 屬性,有必要動到檔案系統嗎?  現在的 ReiserFS 都有提供 Extended file attributes 啦 ! ► Extendend File Attributes  Key = Value  ~/MP3/ 劉若英 / 聽說 / 幸福的路 .mp3 ► tags = 奶茶 | 聽說 | 音樂 ► 架構在原本的 inode 上,如何進行快速搜尋?這樣 速度會與直接搜尋檔名差不多,甚至更慢,因為要 再將 tags 的內容拆開分析。  為什麼要浪費時間在使用者不感興趣的檔案上? 31
  • 32.
    CAT Filesystem ► CAT  CAT: 貓, Catlog 之縮寫  CAT And Tags Filesystem ► 一個具備階層及標籤管理方式的檔案系統 ► 提供使用者一個快速搜尋的系統  以搜尋速度做為實作的最重要考量 32
  • 33.
    CatFS’s Approach ► 以目錄為主要分類架構,標籤搜尋為輔 ►使用者可以自行設定檔案的標籤屬性 ► 找出奶茶聽說專輯的所有檔案  Search Tag: 聽說 ► 找出奶茶很愛很愛你的照片和音樂  Search Tag: ( 照片 OR 音樂 ) AND 很愛很愛你 ► 找出奶茶或南方二重唱的所有 MTV 和奶茶的照片  Search Tag: ( ( 南方二重唱 OR 奶茶 ) AND MTV ) OR ( 奶茶 AND 照片 ) 33
  • 34.
    CatFS 系統特色 ► 與現有 Linux 檔案系統向下相容  Ex: Ext3/ReiserFS… ► 使用者可以自由對任何檔案設定任何標籤  當使用者對目錄進行設定標籤的動作時,不論哪一個 ► 虛擬目錄 ► 資源回收筒 ► 備份、回存標籤相關資訊 34
  • 35.
    虛擬目錄 ► 在不更動使用者的習慣下,以目錄表示出標 籤的架構 ► 靜態虛擬目錄  單一的標籤  可新增、刪除檔案的標籤屬性 ► 動態虛擬目錄  mkdir Tag: ( 奶茶 AND MP3)  唯讀 35
  • 36.
    虛擬目錄 Example $ cd~/.tags $ ls 奶茶 南方二重唱 陳昇 $ cd 奶茶 $ ls 很愛很愛你 .mp3 後來 .mp3 相知相守 .mp3… $ mv 相知相守 .mp3 ../ 南方二重唱  刪除 相知相守 .mp3 『奶茶』的標籤,加上 『南方二重唱』的標籤 36
  • 37.
    系統架構 ► Tags 的儲存 ► 資源回收筒 37
  • 38.
    Tags 的儲存 ► 在自己的一個檔案中,在使用 Ext3 的 kernel 下,看起來只是一個檔案。 ► 只有 kernel level 看的到這個 Tags 檔 案,所有與檔案相關的 system call 都 會將這個檔案當做不存在。 ► For Example:  在 Ext3 的根目錄,將某個 entry ,指到 特定的 inode ,該 inode 所存的即是這個 tags 檔。 38
  • 39.
    資源回收筒 ►對 unlik()動手角 ► 只在特定的目錄下,才真的進行 unlink 的動 作 39
  • 40.
    待討論的事項 ► 使用的 Kernel 版本  2.4 or 2.6 ► 架構在哪種 FS 之上  Ext3  ReiserFS ► 詳細的 Tags 動作  是否需要以目錄為單位的 Tags ?  複製檔案是否要複製 Tags 屬性 40
  • 41.
    ResierFS 3.6 /4 ► ReiserFS 3.6  Journalling file system for Linux based on balance tree algorithms.  對小檔案的處理效能較高 ► ReiserFS 4  號稱是最快的檔案系統,但個人感覺比 ResierFS 3.6 差了一點,而且很吃 CPU  Atomic filesystem  Reiser4 uses dancing trees 41
  • 42.
    需要解決的問題 ►解 Muti-User 環境下造成的混淆  brianhsu 有個 Photo 標籤  mission 也有個 Photo 標籤 ► Permission  是否該讓使用者以標籤做為分享檔案的媒介? ► 如何備份複原 Tag 資料  提供相關工具,可以 export/import Tags 檔案  如何在 import 後進行正確性的檢查,或是 inode 對應的修改? 42
  • 43.
    需要解決的問題 (Count.) ► 如何不讓一般檔案操作的速度降低 ►搜尋速度  要如何設計我們的資料結構,才能讓複雜的條件式搜尋 ,能夠在短時間內找出結果。 ► Cache  如何讓虛擬目錄的速度不致於和 Native 相差過多? ► Tags 的連續性  在使用者 cp/mv/rm 檔案時,如何能夠維持檔案與 tag 的一致性,並且不致於拖累這些操作的時間。 43
  • 44.
    需要解決的問題 (Count.) ► Tags 正確性的檢查 (fsck 的處理 )  感謝 SayYA BBS 上的 anton 提出這個問題  如果 label 與檔案不一致,如何處理? ►正確的 Tag 對到存在但已損壞的檔案 => 不理他, 就像一個檔名可能對到一個損壞的檔案。 ►Tag 對應到一個不存在的檔案 => 應該要將該 tag 中的那個 entry 清掉,不過在正常的情況下不應該發 生,因為理論上在刪掉一個檔案時, kernel 就應該要 把那 Tag 清掉。 ►Tag 對應到不是當初使用者指定的檔案 => …… 44
  • 45.
  • 46.
    TODO List ► 弄清楚 VFS/Ext3/Kernel Module 的架構 ► 在原有的基礎下設計我們的相關資料結構 ► 實作 Kernel 層 ► 實作 User Application 層 46