[文件系统]文件系统学习笔记(十)---杂项
1,在一個系統上,比如smartphone平臺,有很多分區,比如/data和/system分區都是ext4文件系統,但是系統中還是只有一個file_system_type的成員,不過每個分區對應的ext4文件系統對應不同的super_block,fs_supers就是將這些相同文件系統不同的super block鏈接起來形成雙向循環鏈表,fs_supers是鏈表頭,鏈表元素由super_block結構體的s_instance成員表示。系統中所有的super_block由super_block結構體的s_list鏈接成雙向循環鏈表,表頭是super_blocks變量表示。
?
2,偽文件系統是不能裝載的文件系統,因而不能從用戶空間直接以文件或者目錄的方式看到。系統中所有的偽文件系統可以從/proc/filesystem中獲取
?
3,dumpe2fs命令?dumpe2fs
?
4,內存中文件系統第一個block是super block,每個group都有一個super block,后面的superblock是第一個super block的備份,group是有很多block組成的,比如32768
?
5,inode的大小是由各個文件系統本身決定,比如256B等等
?
6,查看磁盤和目錄容量的命令分別是df,du.
?
7,一個文件至少占用一個block,若文件太大則占用多個block.
?
8,當我們刪除文件的時候,只是把Inode標記為可用,文件在block中的內容是沒有被清除的,只有在有新的文件需要占用block的時候,才會被覆蓋,這也是我們刪除文件還可以恢復的原因。
?
9, stat命令查看文件的時候里面每個成員的含義?
答:stat命令的使用如以下截圖所示,每個成員的含義如下:
File:表示文件名。 ? ? ? ? ? ? ?
Blocks:表示該文件占用的塊數,通常linux一個塊大小為512Byte,而文件系統塊的大小為4096,4096/512=8,如下截圖表示f1文件占用8個塊.也就是一個文件最少占用8 block。
Device:表示的是存放文件的設備。
Inode:表示的是該文件對應的inode的號。
Size:表示的是文件的大小。
Links:表示的是硬鏈接的個數。
IO Block:系統格式化block的大小,文件系統塊的大小。
Accesss:表示的是最后一次訪問文件時間,讀一次該文件,該時間就會改變。
Modify:表示的是最后一次修改文件的時間,對文件修改一次該時間就會更新,比如用VI命令后保存文件。
Change:表示的是最后一次修改文件熟悉信息(inode節點)的時間,比如使用chmod命令更新該文件的權限。
?
10,每個進程最多打開32個文件,如果一個進程同時打開32個文件的話是否可以擴展?
答:在linux內核里分配文件描述符的時候,系統默認每個進程同時打開的文件個數是32,如果超過的話會在alps/kernel/fs/File.c文件里的alloc_fd()函數里的expand_files()函數里進行擴展。但是最大擴展個數的限制是1024,也就是即使擴展,一個進程同時打開文件個數為1024.不過這個1024用戶還是可以通過命令去修改。
?
11,linux編程如何查看文件系統相關信息statfs函數。
查看文件系統相關信息
?
[cpp]?view plaincopy
參數: ??
path: 位于需要查詢信息的文件系統的文件路徑名。 ? ??
fd: 位于需要查詢信息的文件系統的文件描述詞。?
buf:以下結構體的指針變量,用于儲存文件系統相關的信息?
?
?
[cpp]?view plaincopy
?
轉載于:https://www.cnblogs.com/zhiliao112/p/4067850.html
總結
以上是生活随笔為你收集整理的[文件系统]文件系统学习笔记(十)---杂项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql myisam
- 下一篇: 电脑黑屏u盘启动怎么做 电脑如何通过U盘