Linux 文件系統結構介紹

2018-12-26

https://www.blackmoreops.com/2015/06/18/linux-file-system-hierarchy-v2-0/


微信圖片_20181226163450.jpg


Linux中的文件是什麼(me)?它的文件系統又是什麼(me)?那些配置文件又在哪裡(lǐ)?我下載好(hǎo)的程序保存在哪裡(lǐ)了?在 Linux 中文件系統是标準結構的嗎?好(hǎo)了,上圖簡明地闡釋了Linux


的文件系統的層次關系。當你苦于尋找配置文件或者二進(jìn)制文件的時候,這(zhè)便顯得十分有用了。我在下方添加了一些解釋以及例子,不過(guò)“篇幅較長(cháng),可以有空再看”。


另外一種(zhǒng)情況便是當你在系統中獲取配置以及二進(jìn)制文件時,出現了不一緻性問題,如果你是在一個大型組織中,或者隻是一個終端用戶,這(zhè)也有可能(néng)會破壞你的系統(比如,二


進(jìn)制文件運行在舊的庫文件上了)。若然你在你的Linux系統上做安全審計的話

https://www.blackmoreops.com/2015/02/15/in-light-of-recent-linux-exploits-linux-security-audit-is-a-must/

你將(jiāng)會發(fā)現它很容易遭到各種(zhǒng)攻擊。所以,保持一個清潔的操作系統(無論是Windows還(hái)是Linux)都(dōu)顯得十分重要。


Linux的文件是什麼(me)?


對(duì)于UNIX系統來說(同樣适用于Linux),以下便是對(duì)文件簡單的描述:


在UNIX系統中,一切皆爲文件;若非文件,則爲進(jìn)程


這(zhè)種(zhǒng)定義是比較正确的,因爲有些特殊的文件不僅僅是普通文件(比如命名管道(dào)和套接字),不過(guò)爲了讓事(shì)情變的簡單,“一切皆爲文件”也是一個可以讓人接受的說法。Linux


系統也像UNIX系統一樣,將(jiāng)文件和目錄視如同物,因爲目錄隻是一個包含了其他文件名的文件而已。程序、服務、文本、圖片等等,都(dōu)是文件。對(duì)于系統來說,輸入和輸出設備,


基本上所有的設備,都(dōu)被當做是文件。


題圖版本曆史:


微信圖片_20181226163455.png


下載鏈接


以下是大圖的下載地址。如果你需要其他格式,請跟原作者聯系,他會嘗試制作并且上傳到某個地方以供下載


大圖 (PNG 格式)  – 2480×1755 px – 184KB


最大圖 (PDF 格式)  – 9919x7019 px – 1686KB


注意: PDF格式文件是打印的最好(hǎo)選擇,因爲它畫質很高。


Linux 文件系統描述


爲了有序地管理那些文件,人們習慣把這(zhè)些文件當做是硬盤上的有序的樹狀結構,正如我們熟悉的'MS-DOS'(磁盤操作系統)就是一個例子。大的分枝包括更多的分枝,分枝的末梢


是樹的葉子或者普通的文件。現在我們將(jiāng)會以這(zhè)樹形圖爲例,但晚點我們會發(fā)現爲什麼(me)這(zhè)不是一個完全準确的一幅圖。


微信圖片_20181226163458.jpg

微信圖片_20181226163500.jpg

微信圖片_20181226163501.jpg


Linux的文件類型


大多數文件僅僅是普通文件,他們被稱爲regular文件;他們包含普通數據,比如,文本、可執行文件、或者程序、程序的輸入或輸出等等


雖然你可以認爲“在Linux中,一切你看到的皆爲文件”這(zhè)個觀點相當保險,但這(zhè)裡(lǐ)仍有着一些例外。


目錄:由其他文件組成(chéng)的文件


特殊文件:用于輸入和輸出的途徑。大多數特殊文件都(dōu)儲存在/dev中,我們將(jiāng)會在後(hòu)面(miàn)讨論這(zhè)個問題。


鏈接文件:讓文件或者目錄出現在系統文件樹結構上多個地方的機制。我們將(jiāng)詳細地讨論這(zhè)個鏈接文件。


(域)套接字:特殊的文件類型,和TCP/IP協議中的套接字有點像,提供進(jìn)程間網絡通訊,并受文件系統的訪問控制機制保護。


命名管道(dào) : 或多或少有點像sockets(套接字),提供一個進(jìn)程間的通信機制,而不用網絡套接字協議。


現實中的文件系統


對(duì)于大多數用戶和常規系統管理任務而言,“文件和目錄是一個有序的類樹結構”是可以接受的。然而,對(duì)于電腦而言,它是不會理解什麼(me)是樹,或者什麼(me)是樹結構。


每個分區都(dōu)有它自己的文件系統。想象一下,如果把那些文件系統想成(chéng)一個整體,我們可以構思一個關于整個系統的樹結構,不過(guò)這(zhè)并沒(méi)有這(zhè)麼(me)簡單。在文件系統中,一個文件代


表着一個inode(索引節點),這(zhè)是一種(zhǒng)包含着構建文件的實際數據信息的序列号:這(zhè)些數據表示文件是屬于誰的,還(hái)有它在硬盤中的位置。


每個分區都(dōu)有一套屬于他們自己的inode,在一個系統的不同分區中,可以存在有相同inode的文件。


每個inode都(dōu)表示着一種(zhǒng)在硬盤上的數據結構,保存着文件的屬性,包括文件數據的物理地址。當硬盤被格式化并用來存儲數據時(通常發(fā)生在初始系統安裝過(guò)程,或者是在一個已


經(jīng)存在的系統中添加額外的硬盤),每個分區都(dōu)會創建固定數量的inode。這(zhè)個值表示這(zhè)個分區能(néng)夠同時存儲各類文件的最大數量。我們通常用一個inode去映射2-8k的數據塊。當


一個新的文件生成(chéng)後(hòu),它就會獲得一個空閑的inode。在這(zhè)個inode裡(lǐ)面(miàn)存儲着以下信息:


文件屬主和組屬主


文件類型(常規文件,目錄文件......)


文件權限


創建、最近一次讀文件和修改文件的時間


inode裡(lǐ)該信息被修改的時間


文件的鏈接數(詳見下一章)


文件大小


文件數據的實際地址


唯一不在inode的信息是文件名和目錄。它們存儲在特殊的目錄文件。通過(guò)比較文件名和inode的數目,系統能(néng)夠構造出一個便于用戶理解的樹結構。用戶可以通過(guò)ls -i查看inode


的數目。在硬盤上,inodes有他們獨立的空間。


您的項目需求咨詢熱線:0760-88610046(國(guó)家高新技術企業)

*請認真填寫需求,我們會在24小時内與您取得聯系。