Linux發(fā)展到現(xiàn)今,在fs目錄下我們可以看到形形色色的文件系統(tǒng),眼花繚亂的同時(shí)首先需要回答的問題是,為什么會(huì)有文件系統(tǒng)這個(gè)東西呢?我想如果能搞清楚這個(gè)問題,會(huì)幫助大家更好的理解文件系統(tǒng),那么我就嘗試著來模擬一次文件系統(tǒng)的演進(jìn)過程,于是,我們來到了那一天,那天之前,人們還沒有文件系統(tǒng)的概念。
友情提示 : 下面將在荒誕的場景下演進(jìn)人類合理的訴求
神說,要有光,于是,光照大地
神說,要有風(fēng),于是,風(fēng)動(dòng)四方
神說,人類要記住神,于是,有了傳說
神說,怕你們忘了,得記下來,于是,有了文字,信息被存儲(chǔ)在石板上,竹片上,紙張上,硬盤里,flash中
當(dāng)信息能存在硬盤中的時(shí)候,人類如獲至寶,如此大的存儲(chǔ)量,我們能裝下全世界圖書館的館藏,于是,我們想先放一套盜墓筆記進(jìn)去。
好嘞,于是,我一個(gè)字一個(gè)字的將精彩的內(nèi)容順序存儲(chǔ)在硬盤中,終于,全套的盜墓筆記被存儲(chǔ)在硬盤中了,還沒來得及高興,就傻眼了,我不想看秦嶺神樹,怎么辦,這并難不倒我,略加思索,就能想到解決方案,因?yàn)槭琼樞虼鎯?chǔ)的,從開始的地方一直讀下去,當(dāng)恰好跳過秦嶺神樹章節(jié)內(nèi)容的時(shí)候,就做一個(gè)標(biāo)記,記錄已經(jīng)跳過的字節(jié)數(shù),下次再看的時(shí)候,就直接讀到硬盤對(duì)應(yīng)的位置即可,經(jīng)過一番努力,我找到了并把這個(gè)字節(jié)數(shù)寫在了一張紙條上,以便下次可以直接讀取,避免一次次的遍歷。
后來,我開始有點(diǎn)不耐煩了,因?yàn)檫@張紙條里面的內(nèi)容越來越多,比如最后一章的位置,終極第一次出現(xiàn)的位置等等,有時(shí)我甚至記不住我需要尋找的標(biāo)記是否在紙條中了,終于有一天,這張紙條丟了,我只能呵呵并且從心底認(rèn)為,僅僅是順序存儲(chǔ)無法滿足我的需求,我需要管理這些內(nèi)容。
我想,最起碼我需要能把全套的盜墓筆記分為8本書吧,只要根據(jù)書名,比如邛樓石影,我就立刻能找到對(duì)應(yīng)的內(nèi)容,我立刻想到了最簡單的解決方案,仍然使用順序存儲(chǔ),只不過在內(nèi)容錄入的時(shí)候,給每本書分100MB的存儲(chǔ)空間,這樣我如果想看第7本,那么直接從600MB偏移開始即可,那么一套盜墓筆記只需要800MB就可以存儲(chǔ),但是,我很快又有了一個(gè)更優(yōu)的方案,在每本書的100MB可用空間內(nèi),再進(jìn)行細(xì)分,給每章節(jié)進(jìn)行劃分,假設(shè)每本書有50章,那么每章節(jié)就是2MB空間,這樣每章節(jié)按照2MB對(duì)齊,我要找第6本書的第30章節(jié),就是(500 + 29 * 2)MB 偏移,我甚至都有點(diǎn)洋洋自得了,簡單的設(shè)計(jì)一下就可以再也不用依賴那張小紙條(已遺失)了。
但是,很快我又遇到了新的挑戰(zhàn),因?yàn)檫@塊硬盤不是我的,開始說好的800MB沒有了,我被要求只能使用8MB來存儲(chǔ)全套的盜墓筆記,原先的設(shè)計(jì)繼續(xù)使用,每章只能分到20KB,這樣有些內(nèi)容多的章節(jié)會(huì)越界,而有些內(nèi)容少的章節(jié)又不夠飽滿,那些沒有被利用起來的空間此時(shí)顯得的是那么的珍貴,于是我開始了小心翼翼字斟句酌的重新設(shè)計(jì)。
看起來,順序存儲(chǔ)是最節(jié)約空間的,那么只有將小紙條(已遺失)的內(nèi)容也存儲(chǔ)在硬盤中了。于是,喝下一罐可樂后,我發(fā)覺將章節(jié)抽象成一個(gè)章節(jié)類是一個(gè)不錯(cuò)的注意,每個(gè)章節(jié)是該類的一個(gè)對(duì)象實(shí)例,類成員包括章節(jié)名稱,章節(jié)起始位置,章節(jié)字?jǐn)?shù),每個(gè)對(duì)象都64字節(jié)對(duì)齊,這樣400章的索引信息只需要25KB即可完成存儲(chǔ),我大大方方的將全部的章節(jié)類對(duì)象存儲(chǔ)在8MB的前32KB區(qū)域,后面剩余的全部順序存儲(chǔ)內(nèi)容,就這樣,隨著需求的不斷增加,我的設(shè)計(jì)也漸漸開始有文件系統(tǒng)的影子了,盡管我并不知道,但是一切就這樣發(fā)生了,是那么的自然。
-
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219039 -
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
302瀏覽量
20979
發(fā)布評(píng)論請(qǐng)先 登錄
轉(zhuǎn)載[紅塵有約]之完整版《DSP之SD卡與文件系統(tǒng)徹底研究
FAT32文件系統(tǒng)淺析
XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思
FAT32文件系統(tǒng)是什么意思
fat32_fat32文件系統(tǒng)
debian安裝zfs文件系統(tǒng)
文件系統(tǒng)是什么?淺談EXT文件系統(tǒng)歷史
Ext4文件系統(tǒng)新特性
詳細(xì)解讀NFS 文件系統(tǒng)源代碼
FAT32文件系統(tǒng)說明
FATFS文件系統(tǒng)詳解
如何完善根文件系統(tǒng)
服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被誤格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例
一文解讀文件系統(tǒng)的作用性(二)
評(píng)論