[文件系统]文件系统学习笔记(一)---基本概念以及inode
1,文件系統(tǒng)基本概念
文件系統(tǒng)是一種用來存儲(chǔ)和組織計(jì)算機(jī)文件、目錄及其包含的數(shù)據(jù)的方法,它使文件、目錄以及數(shù)據(jù)的查找和訪問得到簡(jiǎn)化。
2,硬鏈接和軟鏈接的區(qū)別
硬鏈接和軟鏈接的區(qū)別
–????????符號(hào)鏈接
–????????ln –s file1 file2
????????目錄項(xiàng),內(nèi)容為指向文件名的指針,并不存在其他數(shù)據(jù)。目標(biāo)文件刪除時(shí),符號(hào)鏈接仍然繼續(xù)保持。使用了一個(gè)獨(dú)立的inode。Inode的數(shù)據(jù)段包含了一個(gè)字符串,給出了鏈接目錄的路徑。(相當(dāng)于windows中的快捷鍵)
–????????硬鏈接
–????????ln file1 file2
????????與原文件共用一個(gè)inode,增加引用計(jì)數(shù)。新建或者刪除硬鏈接,則相應(yīng)的增加或減小該引用計(jì)數(shù)。為0時(shí),刪除源文件;
????????dentry還是不一樣,inode是一樣
?
3,struct inode結(jié)構(gòu)體
這里虛擬文件系統(tǒng)里的inode節(jié)點(diǎn)是指內(nèi)存里的inode節(jié)點(diǎn),包含了一些實(shí)際硬盤上的inode節(jié)點(diǎn)所沒有的信息。
?
[cpp]?view plaincopyi_mapping成員指向該文件所在的內(nèi)存空間,要訪問該文件的實(shí)際內(nèi)容則通過該成員訪問,address_space用于管理文件映射到內(nèi)存的頁面。
inode結(jié)構(gòu)中的i_mapping成員的目的是緩存文件的內(nèi)容,對(duì)文件的讀寫操作首先在i_mapping包含的緩存里尋找文件的內(nèi)容,如果有緩存,對(duì)文件讀寫操作可以直接從緩存中獲取,而不用再去物理硬盤讀取,寫操作也是首先寫到緩存,然后在合適時(shí)機(jī)由緩存寫到磁盤。
每個(gè)inode有一個(gè)i_list成員,用于將inode存儲(chǔ)在一個(gè)鏈表中,根據(jù)inode狀態(tài),它有三種主要情況
(1)inode在內(nèi)存中,未關(guān)聯(lián)到任何文件,處于非活動(dòng)狀態(tài)
(2)inode在內(nèi)存中,正在由一個(gè)或者多個(gè)進(jìn)程使用,通常表示一個(gè)文件,此時(shí)i_count和i_nlink都大于0。
文件內(nèi)容和底層元數(shù)據(jù)都于底層磁盤上的信息相同,
(3)inode處于活動(dòng)使用狀態(tài),其數(shù)據(jù)內(nèi)容已經(jīng)改變,與存儲(chǔ)介質(zhì)上的內(nèi)容不一樣,這種狀態(tài)的inode節(jié)點(diǎn)為臟的。
superblock是用于管理該文件系統(tǒng)中所有的inode相關(guān)信息的,比如增加inode,每個(gè)inode的起始地址等等。
如果一個(gè)分區(qū)大小為1GB,每個(gè)block為4KB,一個(gè)inode為128B,并假設(shè)平均每個(gè)文件占用2個(gè)block。那么inode的數(shù)量為1GB/(8KB+128B)=129055.5,即129055。那么inode table的大小為129055*128B=15.75MB。所以按照這樣的規(guī)劃,如果一個(gè)1GB的磁盤,那么格式化后,就已經(jīng)有15.75MB被使用了。
3,查看文件inode信息的命令
stat命令
轉(zhuǎn)載于:https://www.cnblogs.com/zhiliao112/p/4067833.html
總結(jié)
以上是生活随笔為你收集整理的[文件系统]文件系统学习笔记(一)---基本概念以及inode的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript中错误使用var造成
- 下一篇: javascript操作对象的方法