歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統如何管理文件

Linux系統如何管理文件

日期:2017/2/28 13:46:53   编辑:Linux教程

硬盤中的靜態文件和inode(i節點)

(1)文件平時都在存放在硬盤中的,硬盤中存儲的文件以一種固定的形式存放的,我們叫靜態文件。

(2)一塊硬盤中可以分為兩大區域:一個是硬盤內容管理表項,另一個是真正存儲內容的區域。操作系統訪問硬盤時是先去讀取硬盤內容管理表,從中找到我們要訪問的那個文件的扇區級別的信息,然後再用這個信息去查詢真正存儲內容的區域,最後得到我們要的文件。

(3)操作系統最初拿到的信息是文件名,最終得到的是文件內容。第一步就是去查詢硬盤內容管理表,這個管理表中以文件為單位記錄了各個文件的各種信息,每一個文件有一個信息列表(我們叫inode,i節點,其實質是一個結構體,這個結構體有很多元素,每個元素記錄了這個文件的一些信息,其中就包括文件名、文件在硬盤上對應的扇區號、塊號等)

強調:硬盤管理的時候是以文件為單位的,每個文件一個inode,每個inode有一個數字編號,對應一個結構體,結構體中記錄了各種信息。

(4)聯系平時實踐,格式化硬盤(U盤)時發現有:快速格式化和底層格式化。快速格式化非常快,格式化一個32GB的U盤只要1秒鐘,普通格式化格式化速度慢。這兩個的差異?其實快速格式化就是只刪除了U盤中的硬盤內容管理表(其實就是inode),真正存儲的內容沒有動。這種格式化的內容是有可能被找回的。

內存中被打開的文件和vnode(v節點)

(1)一個程序的運行就是一個進程,我們在程序中打開的文件就屬於某個進程。每個進程都有一個數據結構用來記錄這個進程的所有信息(叫進程信息表),表中有一個指針會指向一個文件管理表,文件管理表中記錄了當前進程打開的所有文件及其相關信息。文件管理表中用來索引各個打開的文件的index就是文件描述符fd,我們最終找到的就是一個已經被打開的文件的管理結構體vnode

(2)一個vnode中就記錄了一個被打開的文件的各種信息,而且我們只要知道這個文件的fd,就可以很容易的找到這個文件的vnode進而對這個文件進行各種操作。

Copyright © Linux教程網 All Rights Reserved