色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > linux文件系統(tǒng)基礎(chǔ)知識(shí)

          linux文件系統(tǒng)基礎(chǔ)知識(shí)

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

          這兩天看了一本fedora 6的實(shí)踐教程,下面是有關(guān)linux文件系統(tǒng)知識(shí)的學(xué)習(xí)筆記:

          本文引用地址:http://cafeforensic.com/article/201610/305665.htm

          1、linux文件系統(tǒng)分配策略:

          塊分配( block allocation ) 和 擴(kuò)展分配 ( extent allocation )

          塊分配:磁盤(pán)上的文件塊根據(jù)需要分配給文件,避免了存儲(chǔ)空間的浪費(fèi)。但當(dāng)文件擴(kuò)充時(shí),會(huì)造成文件中文件塊的不連續(xù),從而導(dǎo)致過(guò)多的磁盤(pán)尋道時(shí)間。

          每一次文件擴(kuò)展時(shí),塊分配算法就需要寫(xiě)入文件塊的結(jié)構(gòu)信息,也就是 meta-dada 。meta-data總是與文件一起寫(xiě)入存儲(chǔ)設(shè)備,改變文件的操作要等到所有meta-data的操作都完成后才能進(jìn)行,

          因此,meta-data的操作會(huì)明顯降低整個(gè)文件系統(tǒng)的性能。

          擴(kuò)展分配: 文件創(chuàng)建時(shí),一次性分配一連串連續(xù)的塊,當(dāng)文件擴(kuò)展時(shí),也一次分配很多塊。meta-data在文件創(chuàng)建時(shí)寫(xiě)入,當(dāng)文件大小沒(méi)有超過(guò)所有已分配文件塊大小時(shí),就不用寫(xiě)入meta-data,直到需要再分配文件塊的時(shí)候。

          擴(kuò)展分配采用成組分配塊的方式,減少了SCSI設(shè)備寫(xiě)數(shù)據(jù)的時(shí)間,在讀取順序文件時(shí)具有良好的性能,但隨機(jī)讀取文件時(shí),就和塊分配類(lèi)似了。

          文件塊的組或塊簇 ( block cluster) 的大小是在編譯時(shí)確定的。簇的大小對(duì)文件系統(tǒng)的性能有很大的影響。

          注: meta-data 元信息:和文件有關(guān)的信息,比如權(quán)限、所有者以及創(chuàng)建、訪問(wèn)或更改時(shí)間等。

          2、文件的記錄形式

          linux文家系統(tǒng)使用索引節(jié)點(diǎn)(inode)來(lái)記錄文件信息。索引節(jié)點(diǎn)是一種數(shù)據(jù)結(jié)構(gòu),它包含了一個(gè)文件的長(zhǎng)度、創(chuàng)建及修改時(shí)間、權(quán)限、所屬關(guān)系、磁盤(pán)中的位置等信息。

          一個(gè)文件系統(tǒng)維護(hù)了一個(gè)索引節(jié)點(diǎn)的數(shù)組,每個(gè)文件或目錄都與索引節(jié)點(diǎn)數(shù)組中的唯一的元素對(duì)應(yīng)。每個(gè)索引節(jié)點(diǎn)在數(shù)組中的索引號(hào),稱為索引節(jié)點(diǎn)號(hào)。

          linux文件系統(tǒng)將文件索引節(jié)點(diǎn)號(hào)和文件名同時(shí)保存在目錄中,所以,目錄只是將文件的名稱和它的索引節(jié)點(diǎn)號(hào)結(jié)合在一起的一張表,目錄中每一對(duì)文件名稱和索引節(jié)點(diǎn)號(hào)稱為一個(gè)連接。

          對(duì)于一個(gè)文件來(lái)說(shuō),有一個(gè)索引節(jié)點(diǎn)號(hào)與之對(duì)應(yīng);而對(duì)于一個(gè)索引節(jié)點(diǎn)號(hào),卻可以對(duì)應(yīng)多個(gè)文件名。

          連接分為軟連接和硬連接,其中軟連接又叫符號(hào)連接。

          硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(tǒng)(不能跨越不同的分區(qū)),文件在磁盤(pán)中只有一個(gè)拷貝。

          由于刪除文件要在同一個(gè)索引節(jié)點(diǎn)屬于唯一的連接時(shí)才能成功,因此硬連接可以防止不必要的誤刪除。

          軟連接: 用 ln -s 命令建立文件的符號(hào)連接。符號(hào)連接是linux特殊文件的一種,作為一個(gè)文件,它的數(shù)據(jù)是它所連接的文件的路徑名。沒(méi)有防止誤刪除的功能。

          3、文件系統(tǒng)類(lèi)型:

          ext2 : 早期linux中常用的文件系統(tǒng)

          ext3 : ext2的升級(jí)版,帶日志功能

          RAMFS : 內(nèi)存文件系統(tǒng),速度很快

          NFS : 網(wǎng)絡(luò)文件系統(tǒng),由SUN發(fā)明,主要用于遠(yuǎn)程文件共享

          MS-DOS : MS-DOS文件系統(tǒng)

          VFAT : Windows 95/98 操作系統(tǒng)采用的文件系統(tǒng)

          FAT : Windows XP 操作系統(tǒng)采用的文件系統(tǒng)

          NTFS : Windows NT/XP 操作系統(tǒng)采用的文件系統(tǒng)

          HPFS : OS/2 操作系統(tǒng)采用的文件系統(tǒng)

          PROC : 虛擬的進(jìn)程文件系統(tǒng)

          ISO9660 : 大部分光盤(pán)所采用的文件系統(tǒng)

          ufsSun : OS 所采用的文件系統(tǒng)

          NCPFS : Novell 服務(wù)器所采用的文件系統(tǒng)

          SMBFS : Samba 的共享文件系統(tǒng)

          XFS : 由SGI開(kāi)發(fā)的先進(jìn)的日志文件系統(tǒng),支持超大容量文件

          JFS :IBM的AIX使用的日志文件系統(tǒng)

          ReiserFS : 基于平衡樹(shù)結(jié)構(gòu)的文件系統(tǒng)

          udf: 可擦寫(xiě)的數(shù)據(jù)光盤(pán)文件系統(tǒng)

          4、虛擬文件系統(tǒng)VFS

          linux支持的所有文件系統(tǒng)稱為邏輯文件系統(tǒng),而linux在傳統(tǒng)的邏輯文件系統(tǒng)的基礎(chǔ)上增加料一個(gè)蓄念文件系統(tǒng)( Vitual File System ,VFS) 的接口層。

          虛擬文件系統(tǒng)(VFS) 位于文件系統(tǒng)的最上層,管理各種邏輯文件系統(tǒng),并可以屏蔽各種邏輯文件系統(tǒng)之間的差異,提供統(tǒng)一文件和設(shè)備的訪問(wèn)接口。

          5、文件的邏輯結(jié)構(gòu)

          文件的邏輯結(jié)構(gòu)可分為兩大類(lèi): 字節(jié)流式的無(wú)結(jié)構(gòu)文件 和 記錄式的有結(jié)構(gòu)文件。

          由字節(jié)流(字節(jié)序列)組成的文件是一種無(wú)結(jié)構(gòu)文件或流式文件 ,不考慮文件內(nèi)部的邏輯結(jié)構(gòu),只是簡(jiǎn)單地看作是一系列字節(jié)的序列,便于在文件的任意位置添加內(nèi)容。

          由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類(lèi)型的基本信息單位,記錄式文件通用于信息管理。

          6、文件類(lèi)型

          普通文件 : 通常是流式文件

          目錄文件 : 用于表示和管理系統(tǒng)中的全部文件

          連接文件 : 用于不同目錄下文件的共享

          設(shè)備文件 : 包括塊設(shè)備文件和字符設(shè)備文件,塊設(shè)備文件表示磁盤(pán)文件、光盤(pán)等,字符設(shè)備文件按照字符操作終端、鍵盤(pán)等設(shè)備。

          管道(FIFO)文件 : 提供進(jìn)程建通信的一種方式

          套接字(socket) 文件: 該文件類(lèi)型與網(wǎng)絡(luò)通信有關(guān)

          7、文件結(jié)構(gòu): 包括索引節(jié)點(diǎn)和數(shù)據(jù)

          索引節(jié)點(diǎn) : 又稱 I 節(jié)點(diǎn),在文件系統(tǒng)結(jié)構(gòu)中,包含有關(guān)相應(yīng)文件的信息的一個(gè)記錄,這些信息包括文件權(quán)限、文件名、文件大小、存放位置、建立日期等。文件系統(tǒng)中所有文件的索引節(jié)點(diǎn)保存在索引節(jié)點(diǎn)表中。

          數(shù)據(jù) : 文件的實(shí)際內(nèi)容。可以是空的,也可以非常大,并且擁有自己的結(jié)構(gòu)。

          8、ext2文件系統(tǒng)

          ext2文件系統(tǒng)的數(shù)據(jù)塊大小一般為 1024B、2048B 或 4096B

          ext2文件系統(tǒng)采用的索引節(jié)點(diǎn)(inode):

          索引節(jié)點(diǎn)采用了多重索引結(jié)構(gòu),主要體現(xiàn)在直接指針和3個(gè)間接指針。直接指針包含12個(gè)直接指針塊,它們直接指向包含文件數(shù)據(jù)的數(shù)據(jù)塊,緊接在后面的3個(gè)間接指針是為了適應(yīng)文件的大小變化而設(shè)計(jì)的。

          e.g: 假設(shè)數(shù)據(jù)塊大小為1024B ,利用12個(gè)直接指針,可以保存最大為12KB的文件,當(dāng)文件超過(guò)12KB時(shí),則要利用單級(jí)間接指針,該指針指向的數(shù)據(jù)塊保存有一組數(shù)據(jù)塊指針,這些指針依次指向包含有實(shí)際數(shù)據(jù)的數(shù)據(jù)塊,

          假如每個(gè)指針占用4B,則每個(gè)單級(jí)指針數(shù)據(jù)塊可保存 1024/4=256 個(gè)數(shù)據(jù)指針,因此利用直接指針和單級(jí)間接指針可保存 1024*12+1024*256=268 KB的文件。當(dāng)文件超過(guò)268KB時(shí),再利用二級(jí)間接指針,直到使用三級(jí)間接指針。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉