A. linux操作系統文件的物理結構是什麼結構
一個磁碟容量的大小(即它的物理結構)由柱面、磁軌數、扇區數組成
B. linux操作系統文件的物理結構是什麼結構
Linux操作系統的文件的物理結構是索引結構
C. linux文件系統基礎知識
linux文件系統基礎知識匯總
1、linux文件系統分配策略
塊分配( block allocation ) 和 擴展分配 ( extent allocation )
塊分配:磁碟上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁碟尋道時間。
每一次文件擴展時,塊分配演算法就需要寫入文件塊的結構信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成後才能進行,
因此,meta-data的操作會明顯降低整個文件系統的性能。
擴展分配: 文件創建時,一次性分配一連串連續的塊,當文件擴展時,也一次分配很多塊。meta-data在文件創建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
擴展分配採用成組分配塊的方式,減少了SCSI設備寫數據的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
文件塊的組或塊簇 ( block cluster) 的大小是在編譯時確定的。簇的大小對文件系統的性能有很大的影響。
註: meta-data 元信息:和文件有關的信息,比如許可權、所有者以及創建、訪問或更改時間等。
2、文件的記錄形式
linux文家系統使用索引節點(inode)來記錄文件信息。索引節點是一種數據結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關系、磁碟中的位置等信息。
一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引號,稱為索引節點號。
linux文件系統將文件索引節點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
對於一個文件來說,有一個索引節點號與之對應;而對於一個索引節點號,卻可以對應多個文件名。
連接分為軟連接和硬連接,其中軟連接又叫符號連接。
硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(不能跨越不同的分區),文件在磁碟中只有一個拷貝。
由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
軟連接: 用 ln -s 命令建立文件的符號連接。符號連接是linux特殊文件的.一種,作為一個文件,它的數據是它所連接的文件的路徑名。沒有防止誤刪除的功能。
3、文件系統類型:
ext2 : 早期linux中常用的文件系統
ext3 : ext2的升級版,帶日誌功能
RAMFS : 內存文件系統,速度很快
NFS : 網路文件系統,由SUN發明,主要用於遠程文件共享
MS-DOS : MS-DOS文件系統
VFAT : Windows 95/98 操作系統採用的文件系統
FAT : Windows XP 操作系統採用的文件系統
NTFS : Windows NT/XP 操作系統採用的文件系統
HPFS : OS/2 操作系統採用的文件系統
PROC : 虛擬的進程文件系統
ISO9660 : 大部分光碟所採用的文件系統
ufsSun : OS 所採用的文件系統
NCPFS : Novell 伺服器所採用的文件系統
SMBFS : Samba 的共享文件系統
XFS : 由SGI開發的先進的日誌文件系統,支持超大容量文件
JFS :IBM的AIX使用的日誌文件系統
ReiserFS : 基於平衡樹結構的文件系統
udf: 可擦寫的數據光碟文件系統
4、虛擬文件系統VFS
linux支持的所有文件系統稱為邏輯文件系統,而linux在傳統的邏輯文件系統的基礎上增加料一個蓄念文件系統( Vitual File System ,VFS) 的介面層。
虛擬文件系統(VFS) 位於文件系統的最上層,管理各種邏輯文件系統,並可以屏蔽各種邏輯文件系統之間的差異,提供統一文件和設備的訪問介面。
5、文件的邏輯結構
文件的邏輯結構可分為兩大類: 位元組流式的無結構文件 和 記錄式的有結構文件。
由位元組流(位元組序列)組成的文件是一種無結構文件或流式文件 ,不考慮文件內部的邏輯結構,只是簡單地看作是一系列位元組的序列,便於在文件的任意位置添加內容。
由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類型的基本信息單位,記錄式文件通用於信息管理。
6、文件類型
普通文件 : 通常是流式文件
目錄文件 : 用於表示和管理系統中的全部文件
連接文件 : 用於不同目錄下文件的共享
設備文件 : 包括塊設備文件和字元設備文件,塊設備文件表示磁碟文件、光碟等,字元設備文件按照字元操作終端、鍵盤等設備。
管道(FIFO)文件 : 提供進程建通信的一種方式
套接字(socket) 文件: 該文件類型與網路通信有關
7、文件結構: 包括索引節點和數據
索引節點 : 又稱 I 節點,在文件系統結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件許可權、文件名、文件大小、存放位置、建立日期等。文件系統中所有文件的索引節點保存在索引節點表中。
數據 : 文件的實際內容。可以是空的,也可以非常大,並且擁有自己的結構。
8、ext2文件系統
ext2文件系統的數據塊大小一般為 1024B、2048B 或 4096B
ext2文件系統採用的索引節點(inode):
索引節點採用了多重索引結構,主要體現在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含文件數據的數據塊,緊接在後面的3個間接指針是為了適應文件的大小變化而設計的。
e.g: 假設數據塊大小為1024B ,利用12個直接指針,可以保存最大為12KB的文件,當文件超過12KB時,則要利用單級間接指針,該指針指向的數據塊保存有一組數據塊指針,這些指針依次指向包含有實際數據的數據塊,
假如每個指針佔用4B,則每個單級指針數據塊可保存 1024/4=256 個數據指針,因此利用直接指針和單級間接指針可保存 1024*12+1024*256=268 KB的文件。當文件超過268KB時,再利用二級間接指針,直到使用三級間接指針。
利用直接指針、單級間接指針、二級間接指針、三級間接指針可保存的最大文件大小為:
1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約 16GB
若數據塊大小為2048B,指針佔4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 約 268GB
若數據塊大小為4096B,指針佔4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約 4TB
註: 命令 tune2fs -l /dev/sda5 可查看文件系統
ext2文件系統最大文件名長度: 255個字元
ext2文件系統的缺點:
ext2在寫入文件內容的同時並沒有同時寫入文件meta-data, 其工作順序是先寫入文件的內容,然後等空閑時候才寫入文件的meta-data。若發生意外,則文件系統就會處於不一致狀態。
在重新啟動系統的時候,linux會啟動 fsk ( file system check) 的程序,掃描整個文件系統並試圖修復,但不提供保證。
9、ext3文件系統:
ext3基於ext2的代碼,所以磁碟格式與ext2相同,使用相同的元數據。
ext2文件系統無損轉化為ext3文件系統: tune2fs -j /dev/sda6
日誌塊設備( Journaling block device layer,JBD)完成ext3文件系統日誌功能。JBD不是ext3文件系統所特有的,它的設計目標是為了向一個塊設備添加日誌功能。
當一個文件修改執行時,ext3文件系統代碼將通知JBD,稱為一個事務(transaction)。發生意外時,日誌功能具有的重放功能,能重新執行中斷的事務。
日誌中的3種數據模式:
1)、data=writeback :不處理任何形式的日誌數據,給用戶整體上的最高性能
2)、data=odered :只記錄元數據日誌,但將元數據和數據組成一個單元稱為事務(transaction) 。此模式保持所句句的可靠性與文件系統的一致性,性能遠低於data=writeback模式,但比data=journal模式快
3)、data=journal :提供完整的數據及元數據日誌,所有新數據首先被寫入日誌,然後才被定位。意外發生過後,日誌可以被重放,將數據與元數據帶回一致狀態。這種模式整體性能最慢,但數據需要從磁碟讀取和寫入磁碟時卻是3種模式中最快的。
ext3文件系統最大文件名長度: 255個字元
ext3文件系統的優點:可用性、數據完整性、速度、兼容性
10、ReiserFS文件系統
ReiserFS文件系統是由Hans Reiser和他領導的開發小組共同開發的,整個文件系統完全是從頭設計的,是一個非常優秀的文件系統。也是最早用於Linux的日誌文件系統之一。
ReiserFS的特點
先進的日誌機制
ReiserFS有先進的日誌(Journaling/logging)功能 機制。日誌機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬碟。文件與數據的安全性有了很大提高。
高效的磁碟空間利用
Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁碟分塊中。而其它文件系統則為每個小文件分別放置到一個磁碟分塊中。
獨特的搜尋方式
ReiserFS基於快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的演算法。ReiserFS搜索大量文件時,搜索速度要比ext2快得多。Reiserfs文件 系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常 快。
在實際運用中,ReiserFS 在處理小於 4k 的文件時,比ext2 快 5 倍;帶尾文件壓縮功能(默認)的ReiserFS 比ext2文件系統多存儲6%的數據。
支持海量磁碟
ReiserFS是一個非常優秀的文件系統,一直被用在高端UNIX系統上,可輕松管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
優異的性能
由於它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一台機器上使用ext2文 件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型資料庫系統在linux上的應用提供了更好的選擇。
;D. Linux文件組織結構是什麼
一切從「/」開始
在Linux系統中,目錄、字元設備、塊設備、套接字、列印機等都被抽象成了文件,即劉遄老師所一直強調的「Linux系統中一切都是文件」。既然平時我們打交道的都是文件,那麼又應該如何找到它們呢?在Windows操作系統中,想要找到一個文件,我們要依次進入該文件所在的磁碟分區(假設這里是D盤),然後在進入該分區下的具體目錄,最終找到這個文件。但是在Linux系統中並不存在C/D/E/F等盤符,Linux系統中的一切文件都是從「根(/)」目錄開始的,並按照文件系統層次化標准(FHS)採用樹形結構來存放文件,以及定義了常見目錄的用途。另外,Linux系統中的文件和目錄名稱是嚴格區分大小寫的。例如,root、rOOt、Root、rooT均代表不同的目錄,並且文件名稱中不得包含斜杠(/)。Linux系統中的文件存儲結構如圖6-1所示。
前文提到的FHS是根據以往無數Linux系統用戶和開發者的經驗而總結出來的,是用戶在Linux系統中存儲文件時需要遵守的規則,用於指導我們應該把文件保存到什麼位置,以及告訴用戶應該在何處找到所需的文件。但是,FHS對於用戶來講只能算是一種道德上的約束,有些用戶就是懶得遵守,依然會把文件到處亂放,有些甚至從來沒有聽說過它。這里並不是號召各位讀者去譴責他們,而是建議大家要靈活運用所學的知識,千萬不要認准這個FHS協定只講死道理,不然吃虧的可就是自己了。《Linux就該這么學》一起學習linux, 在Linux系統中,最常見的目錄以及所對應的存放內容如表所示。
Linux系統中常見的目錄名稱以及相應內容
目錄名稱 應放置文件的內容
/boot 開機所需文件—內核、開機菜單以及所需配置文件等
/dev 以文件形式存放任何設備與介面
/etc 配置文件
/home 用戶主目錄
/bin 存放單用戶模式下還可以操作的命令
/lib 開機時用到的函數庫,以及/bin與/sbin下面的命令要調用的函數
/sbin 開機過程中需要的命令
/media 用於掛載設備文件的目錄
/opt 放置第三方的軟體
/root 系統管理員的家目錄
/srv 一些網路服務的數據文件目錄
/tmp 任何人均可使用的「共享」臨時目錄
/proc 虛擬文件系統,例如系統內核、進程、外部設備及網路狀態等
/usr/local 用戶自行安裝的軟體
/usr/sbin Linux系統開機時不會使用到的軟體/命令/腳本
/usr/share 幫助與說明文件,也可放置共享文件
/var 主要存放經常變化的文件,如日誌
/lost+found 當文件系統發生錯誤時,將一些丟失的文件片段存放在這里
E. 簡述Linux 文件系統通過i 節點把文件的邏輯結構和物理結構轉換的工作過程
Linux 通過i 節點表將文件的邏輯結構和物理結構進行轉換。i 節點是一個64 位元組長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在i 節點表中最重要 的內容是磁碟地址表 。在磁碟地址表中有13 個塊號,文件將以塊號在磁碟地址表中出現的順序依次讀取相應的塊。Linux 文件系統通過把i 節點和文件名進行 連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的i 節點號,通過該i 節點的磁碟地址表把分散存放的文件物 理塊連接成文件的邏輯結構。---以上內容均來自傳智播客社區,對話框可以直接領取相關內容解析。
F. Linux裡面文件系統有哪些
Linux系統是現在非常受歡迎的操作系統,在Linux之中,一切都是文件,因為有很多操作都是依靠文件系統才可以完成的,而且文件系統可以滿足用戶正常的使用,那麼Linux中常見的文件系統有哪些?為大家介紹一下。
總體來說,在Linux之中,系統能夠支持的文件系統要比Windows系統多很多,達到數十種,所以說Linux系統也是非常出色的操作系統。Linux中常見的文件系統介紹:
1、Ext3:是一款日誌文件系統,能夠在系統異常的情況下避免文件系統資料丟失,並且能夠修復數據的不一致以及錯誤,同時,當硬碟容量較大的時候,所需要的修復時間也會增長,無法保證百分之百資料不會丟失,將整體磁碟的每個寫入動作細節預先記錄,避免發生異常的時候可追蹤到被中斷的部分,嘗試修補。
2、Ext4:是上一個的改進版本,是RHEL
6系統中的默認文件管理系統,支持存儲容量達到了1EB,同時還能夠無限多的子目錄,另外文件系統能夠批量分配block塊,從而極大地提高了讀寫效率。
3、XFS:是一個高性能的日誌文件系統,而且是RHEL
7中默認的文件管理系統,優勢就是在於發生意外可以快速回復可能被破壞的文件,強大的日誌功能只需要花費較低的計算和存儲性能,最大支持存儲容量18EB,幾乎滿足多種需求。
G. Linux通過i節點表將文件的邏輯結構和物理結構進行轉換
i 節點是一個64位元組長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在i節點表中最重要 的內容是磁碟地址表。在磁碟地址表中有13個塊號,文件將以塊號在磁碟地址表中出現的順序依次讀取相應的塊。Linux文件系統通過把i節點和文件名進行 連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的i節點號,通過該i節點的磁碟地址表把分散存放的文件物 理塊連接成文件的邏輯結構。
H. linux的文件系統採用的是哪一種目錄結構有什麼優點
目錄結構及主要內容 「/」根目錄部分有以下子目錄:/usr 目錄包含所有的命令、程序庫、文檔和其它文件。這些文件在正常操作中不會被改變的。這個目錄也包含你的Linux發行版本的主要的應用程序,譬如,Netscape。/var 目錄包含在正常操作中被改變的文件:假離線文件、記錄文件、加鎖文件、臨時文件和頁格式化文件等。/home 目錄包含用戶的文件:參數設置文件、個性化文件、文檔、數據、EMAIL、緩存數據等。這個目錄在系統省級時應該保留。/proc 目錄整個包含虛幻的文件。它們實際上並不存在磁碟上,也不佔用任何空間。(用ls –l 可以顯示它們的大小)當查看這些文件時,實際上是在訪問存在內存中的信息,這些信息用於訪問系統/bin 系統啟動時需要的執行文件(二進制),這些文件可以被普通用戶使用。/sbin 系統執行文件(二進制),這些文件不打算被普通用戶使用。(普通用戶仍然可以使用它們,但要指定目錄。)/etc 操作系統的配置文件目錄。/root 系統管理員(也叫超級用戶或根用戶)的Home目錄。/dev 設備文件目錄。LINUX下設備被當成文件,這樣一來硬體被抽象化,便於讀寫、網路共享以及需要臨時裝載到文件系統中。正常情況下,設備會有一個獨立的子目 錄。這些設備的內容會出現在獨立的子目錄下。LINUX沒有所謂的驅動符。/lib 根文件系統目錄下程序和核心模塊的共享庫。/boot 用於自舉載入程序(LILO或GRUB)的文件。當計算機啟動時(如果有多個操作系統,有可能允許你選擇啟動哪一個操作系統),這些文件首先被裝載。這個目錄也會包含LINUX核(壓縮文件vmlinuz),但LINUX核也可以存在別處,只要配置LILO並且LILO知道LINUX核在哪兒。/opt 可選的應用程序,譬如,REDHAT 5.2下的KDE (REDHAT 6.0下,KDE放在其它的XWINDOWS應用程序中,主執行程序在/usr/bin目錄下)/tmp 臨時文件。該目錄會被自動清理干凈。/lost+found 在文件系統修復時恢復的文件 「/usr」目錄下比較重要的部分有:/usr/X11R6 X-WINDOWS系統(version 11, release 6)/usr/X11 同/usr/X11R6 (/usr/X11R6的符號連接)/usr/X11R6/bin 大量的小X-WINDOWS應用程序(也可能是一些在其它子目錄下大執行文件的符號連接)。 /usr/doc LINUX的文檔資料(在更新的系統中,這個目錄移到/usr/share/doc)。/usr/share 獨立與你計算機結構的數據,譬如,字典中的詞。/usr/bin和/usr/sbin 類似與「/」根目錄下對應的目錄(/bin和/sbin),但不用於基本的啟動(譬如,在緊急維護中)。大多數命令在這個目錄下。/usr/local 本地管理員安裝的應用程序(也可能每個應用程序有單獨的子目錄)。在「main」安裝後,這個目錄可能是空的。這個目錄下的內容在重安裝或升級操作系統後應該存在。/usr/local/bin 可能是用戶安裝的小的應用程序,和一些在/usr/local目錄下大應用程序的符號連接。/proc目錄的內容:/proc/cpuinfo 關於處理器的信息,如類型、廠家、型號和性能等。/proc/devices 當前運行內核所配置的所有設備清單。/proc/dma 當前正在使用的DMA通道。/proc/filesystems 當前運行內核所配置的文件系統。/proc/interrupts 正在使用的中斷,和曾經有多少個中斷。/proc/ioports 當前正在使用的I/O埠。舉例,使用下面的命令能讀出系統的CPU信息。cat /proc/cpuinfo/bin bin是binary的縮寫。這個目錄沿襲了UNIX系統的結構,存放著使用者最經常使用的命令。例如cp、ls、cat,等等。 /boot 這里存放的是啟動Linux時使用的一些核心文件。 /dev dev是device(設備)的縮寫。這個目錄下是所有Linux的外部設備,其功能類似DOS下的.sys和Win下的.vxd。在Linux中設備和文件是用同種方法訪問的。例如:/dev/hda代表第一個物理IDE硬碟。 /etc 這個目錄用來存放系統管理所需要的配置文件和子目錄。 /home 用戶的主目錄,比如說有個用戶叫wang,那他的主目錄就是/home/wang也可以用~wang表示。 /lib 這個目錄里存放著系統最基本的動態鏈接共享庫,其作用類似於Windows里的.dll文件。幾乎所有的應用程序都須要用到這些共享庫。 /lost+found 這個目錄平時是空的,當系統不正常關機後,這里就成了一些無家可歸的文件的避難所。對了,有點類似於DOS下的.chk文件。 /mnt 這個目錄是空的,系統提供這個目錄是讓用戶臨時掛載別的文件系統。 /proc 這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。也就是說,這個目錄的內容不在硬碟上而是在內存里。 /root 系統管理員(也叫超級用戶)的主目錄。作為系統的擁有者,總要有些特權啊!比如單獨擁有一個目錄。 /sbin s就是Super User的意思,也就是說這里存放的是系統管理員使用的管理程序。 /tmp 這個目錄不用說,一定是用來存放一些臨時文件的地方了。 /usr 這是最龐大的目錄,我們要用到的應用程序和文件幾乎都存放在這個目錄下。其中包含以下子目錄; /usr/X11R6 存放X-Window的目錄; /usr/bin 存放著許多應用程序; /usr/sbin 給超級用戶使用的一些管理程序就放在這里; /usr/doc 這是Linux文檔的大本營; /usr/include Linux下開發和編譯應用程序需要的頭文件,在這里查找; /usr/lib 存放一些常用的動態鏈接共享庫和靜態檔案庫; /usr/local 這是提供給一般用戶的/usr目錄,在這里安裝軟體最適合; /usr/man man在Linux中是幫助的同義詞,這里就是幫助文檔的存放目錄; /usr/src Linux開放的源代碼就存在這個目錄,愛好者們別放過哦! /var 這個目錄中存放著那些不斷在擴充著的東西,為了保持/usr的相對穩定,那些經常被修改的目錄可以放在這個目錄下,實際上許多系統管理員都是這樣乾的。順帶說一下系統的日誌文件就在/var/log目錄中。 總結來說:· 用戶應該將文件存在/home/user_login_name目錄下(及其子目錄下)。· 本地管理員大多數情況下將額外的軟體安裝在/usr/local目錄下並符號連接在/usr/local/bin下的主執行程序。· 系統的所有設置在/etc目錄下。· 不要修改根目錄(「/」)或/usr目錄下的任何內容,除非真的清楚要做什麼。這些目錄最好和LINUX發布時保持一致。· 大多數工具和應用程序安裝在目錄:/bin, /usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin。· 所有的文件在單一的目錄樹下。沒有所謂的「驅動符」。
I. Linux文件系統採用什麼樣的邏輯結構和物理結構
Linux就是類Unix,即Unix的分支,從文件系統的結構、命令等方面比較相似。UNIX文件系統的主要特點是:文件系統組織是分級樹形結構;文件的物理結構為混合索引式文件結構;採用成組鏈接法管理磁碟空閑盤塊。
J. 簡述Linux文件系統通過i節點把文件的邏輯結構和物理結構轉換的工作過程。
Linux通過i節點表將文件的邏輯結構和物理結構進行轉換。
i 節點是一個64位元組長的表,表中包含了文件的相關信息,其中有文件的大小、文件所有者、文件的存取許可方式以及文件的類型等重要信息。在i節點表中最重要 的內容是磁碟地址表。在磁碟地址表中有13個塊號,文件將以塊號在磁碟地址表中出現的順序依次讀取相應的塊。Linux文件系統通過把i節點和文件名進行 連接,當需要讀取該文件時,文件系統在當前目錄表中查找該文件名對應的項,由此得到該文件相對應的i節點號,通過該i節點的磁碟地址表把分散存放的文件物 理塊連接成文件的邏輯結構。