日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux vfs 根节点名称,Linux:文件,目录项,索引节点,超级块,VFS,具体文件系统...

發布時間:2025/3/12 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux vfs 根节点名称,Linux:文件,目录项,索引节点,超级块,VFS,具体文件系统... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【筆記:http://m.blog.csdn.net/blog/zhouzhou135】

在了解文件系統之前,先了解磁盤格式化的知識。

所以要理解文件系統的數據結構,要從兩個方向來理解:

1:磁盤中的數據結構:因為在磁盤格式化的時候,操作系統將初始的文件系統數據結構寫到磁盤上。這些數據結構包括空閑和已分配的空間(FAT或者iNode)和一個初始為空的目錄。

2:內存中的數據結構:

文件管理是操作系統的主要任務之一,也是平常編程中經常涉及的一個知識點。

先參考維基百科了解什么是文件系統,引入文件系統的目的是什么,文件系統的職責是什么。

簡言之:文件系統是為了方便用戶管理硬盤和光盤等物理設備中的數據而引入的這么一個邏輯上的概念。

假設沒有文件系統,那么對用戶而言:

讀數據的時候:必須要知道這個數據塊保存在光盤或者磁盤的具體哪個扇區上,然后要讀取多長的記錄。

寫數據的時候:必須要知道哪些磁盤塊是空閑的以便寫入數據。

同時用戶必須自己保存數據和磁盤塊之間的映射信息,以便讀寫的時候知道從哪個磁盤地址開始讀寫。

于是用戶就幻想說要是有這樣一個中間者就好了:

讀的時候,我把數據名給中間者,中間者直接給我具體的磁盤數據,而不是我自己去磁盤上找。

寫的時候,我把要寫的數據給中間者,中間者具體負責寫到磁盤上的某個位置。

這樣的話,這個中間者必須維護某個數據名與磁盤位置的映射關系。而用戶只需要和某個數據名(邏輯名字)打交道,而不用關心這個邏輯名字代表的數據在物理上的具體存儲位置。

用戶 ——> 具體的磁盤或光盤

用戶 ——> 中間者提供的接口 ——> 具體的磁盤或者光盤

也就是說,有了中間者,用戶只需要和中間者提供的接口打交道,而不再與具體的物理設備耦合。

最后為了方便,大家說咱們取一個統一的名字吧,于是出現了一下稱呼:

文件系統:代表這個中間者。最終映射到計算機上,這個文件系統的實現會表現為具體的程序代碼。

文件:代表存儲在某種長期儲存設備或臨時存儲設備中的一段數據流。雖然一個文件表現為一個單一的流,但它經常在磁盤不同的位置存儲為多個數據碎片(甚至是多個磁盤)。

一個代表數據名的結構 ——> 一個封裝了磁盤塊信息的結構。

比如說數據名dataone在硬盤的a分區的b位置開始,長度為3個磁盤塊。

如果不引入樹形結構的這個方式的話,那么數據a,數據b,數據c,數據d, 數據abc就很容易重名。于是就映入了樹形結構的命名空間。

在文件系統中,文件名是提供給用戶標志他存放在磁盤上的某個數據的。

APUE:p56 文件共享 打開文件的內核數據結構。

APUE:p86 文件系統

Linux高級程序設計:

進程打開文件的內核數據結構。p101

VFS虛擬文件系統 p129

概述

VFS中的數據結構

超級塊

VFS的索引節點

目錄項對象

與進程相關的文件結構

主要數據結構間的關系

有關操作的數據結構

如何實現一個文件系統

struct stat、struct inode 、struct file?的關系

===========================================

參考《操作系統概念(第七版)》第四部分 存儲管理,先弄清文件、目錄的概念。

文件:

目錄:可以實現為一張表,里面保存了數條文件名和該文件名對應的索引信息的映射關系。其中的每一項叫做目錄項。

打開文件表:因為每次對文件讀、寫等操作都要涉及到去目錄中搜索對應的文件名對應的所有信息,因此非常耗時,為避免該問題,系統維護了一個包含所有打開文件的信息表。參考P323

多個進程打開同一文件的處理方法?p324?系統范圍內的系統打開文件表 vs 每個進程的進程打開文件表

a,b,...進程的進程打開文件表→系統打開文件表(保存進程無關的信息)→目錄→具體的物理設備

這些內容在《現代操作系統(原書第3版)》p446有詳細描述。

===========================================

參考《現代操作系統(原書第3版)》第4章 文件系統:★★★★★

文件:是為了解決進程存儲信息時遇到的一些問題而建立的一種抽象。文件時進程創建的信息邏輯單元。

p153 文件系統在磁盤上的布局

p156:物理inode

p161 : 虛擬文件系統,open系統調用在VFS中的過程。

p179 :Unix v7文件系統:open系統調用時查找iNode的過程。

p440:Linux文件系統

p445 :SuperBlock、Dentry、Inode、File對象

p448:文件描述符表、打開文件描述符表、INode表之間的關系

深入理解磁盤文件系統之inode:http://www.cnblogs.com/thinksasa/archive/2013/04/10/3013445.html

一天一點學習Linux之認識文件系統:http://www.opsers.org/base/the-knowledge-that-one-day-learn-linux-file-system.html

一天一點學習Linux之Inode詳解:http://www.opsers.org/base/one-day-the-little-learning-linux-inode-detailed.html

===========

VFS中的超級塊、VFS的索引節點、目錄項這三個對象的理解,結合視頻12.10中00:06:08處的那張圖,并結合以下鏈接:

超級塊

VFS的索引節點

目錄項對象

或者《linux內核設計與實現》對應部分一起理解。

總結

以上是生活随笔為你收集整理的linux vfs 根节点名称,Linux:文件,目录项,索引节点,超级块,VFS,具体文件系统...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。