欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux內(nèi)核設(shè)備驅(qū)動之虛擬文件系統(tǒng)筆記整理

 更新時間:2018年12月17日 11:58:56   作者:Engineer-Bruce_Yang  
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動之虛擬文件系統(tǒng)筆記整理,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
/********************
 * 虛擬文件系統(tǒng)VFS
 ********************/

(1)VFS介紹

虛擬文件系統(tǒng)VFS作為內(nèi)核的子系統(tǒng),為用戶空間程序提供了文件系統(tǒng)的相關(guān)接口。

VFS使得用戶可以直接使用open()等系統(tǒng)調(diào)用而無需考慮具體文件系統(tǒng)和實際物理介質(zhì)。

VFS提供了一個通用的文件系統(tǒng)模型,該模型囊括了我們所能想到的文件系統(tǒng)的常用功能和行為。通過這個抽象層,就可以實現(xiàn)利用通用接口對所有類新的文件系統(tǒng)進行操作。

a.調(diào)用模型

write(): 用戶空間 -->

sys_write(): VFS -->

文件系統(tǒng)的寫方法: 文件系統(tǒng) -->

物理介質(zhì)

(2)VFS采用的主要對象

VFS采用了面向?qū)ο蟮乃悸?,采用一組數(shù)據(jù)結(jié)構(gòu)來代表通用的文件對象。

這些結(jié)構(gòu)體在包含數(shù)據(jù)的同時也包含了操作這些數(shù)據(jù)的指針。

VFS中包括了四個主要的對象類型。

a.超級塊對象super_block

所有文件系統(tǒng)都必須實現(xiàn)超級塊,該對象用于存儲特定文件系統(tǒng)的信息,通常存儲在磁盤的特定扇區(qū)中,每個文件系統(tǒng)只有一個超級塊。

對于不基于磁盤的文件系統(tǒng),比如基于內(nèi)存的文件系統(tǒng)sysfs,linux會在使用現(xiàn)場創(chuàng)建超級塊并將其保存到內(nèi)存中。

超級塊的結(jié)構(gòu)體為super_block,定義在<linux/fs.h>。

超級塊的操作方法結(jié)構(gòu)體為super_operations,也定義在fs.h中。

創(chuàng)建、管理和銷毀超級塊對象的代碼位于/fs/super.c。

在文件系統(tǒng)安裝時,內(nèi)核會調(diào)用alloc_super()函數(shù)從磁盤讀取文件系統(tǒng)超級塊,并將其信息填充到內(nèi)存中的超級塊對象中。

b.索引節(jié)點對象inode

索引節(jié)點對象包含了內(nèi)核在操作文件或目錄是需要的全部信息,如文件的訪問控制權(quán)限,大小,擁有者,創(chuàng)建時間等。

系統(tǒng)把這些信息存儲在一個單獨的數(shù)據(jù)結(jié)構(gòu)中,稱為索引節(jié)點。

一個文件在內(nèi)存中只有一個索引節(jié)點對象,特殊文件(比如管道和設(shè)備文件)也有其對應(yīng)的索引節(jié)點。

inode結(jié)構(gòu)體定義在<linux/fs.h>,其對應(yīng)的操作函數(shù)結(jié)構(gòu)體為inode_operations

c.目錄項對象dentry

每個目錄項對象代表一個路徑中的特定部分,比如路徑/bin/vi,/、bin和vi都屬于目錄項對象。

目錄項對象沒有對應(yīng)的磁盤結(jié)構(gòu),VFS根據(jù)字符串形式的路徑名現(xiàn)場創(chuàng)建。每個文件只對應(yīng)一個dentry對象。

dentry結(jié)構(gòu)體定義在<linux/dcache.h>中,對應(yīng)的目錄項操作函數(shù)結(jié)構(gòu)體dentry_operations也定義在<linux/dcache.h>中。

d.文件對象file

文件對象表示進程已經(jīng)打開的文件。這個對象在open的時候創(chuàng)建,在close的時候銷毀。

因為多個進程可以同時打開和操作一個文件,所以一個文件可能在內(nèi)存中有多個file對象。

文件對象由file結(jié)構(gòu)體表示,定義在<linux/fs.h>中。file對象的操作函數(shù)結(jié)構(gòu)體為file_operations,定義在<linux/fs.h>中。

這個函數(shù)集非常重要,其中包括了對文件的實際操作函數(shù),用戶空間調(diào)用write,最終會調(diào)用到file_operations里的write。

我們要實現(xiàn)一個char類型的字符設(shè)備,也就是要實現(xiàn)file_operations中支持的函數(shù)。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • 在Linux中為現(xiàn)有用戶創(chuàng)建主目錄:useradd問題

    在Linux中為現(xiàn)有用戶創(chuàng)建主目錄:useradd問題

    這篇文章主要介紹了在Linux中為現(xiàn)有用戶創(chuàng)建主目錄:useradd問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 在linux中設(shè)置tomcat開機自啟動的方法

    在linux中設(shè)置tomcat開機自啟動的方法

    由于各種各樣的原因,服務(wù)器有重啟的可能,這樣tomcat就需要配置成開機自動啟動,否則每次重啟后就需要連遠程手動啟動tomcat,如果服務(wù)器被迫重啟,而技術(shù)人員又不能及時運行tomcat,那么后果很嚴重,所以本文給大家介紹了在linux中設(shè)置tomcat開機自啟動的方法
    2024-02-02
  • ubuntu20.04連接wifi的方法(2種)

    ubuntu20.04連接wifi的方法(2種)

    這篇文章主要介紹了ubuntu20.04連接wifi的方法(2種),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Linux中搭建完整的samba服務(wù)器全攻略(centos版)

    Linux中搭建完整的samba服務(wù)器全攻略(centos版)

    smb是一個協(xié)議名,它能被用于Web連接和客戶端與服務(wù)器之間的信息溝通。這篇文章主要介紹了Linux中搭建samba服務(wù)器全攻略(centos版),需要的朋友可以參考下
    2018-11-11
  • Linux下一個智能重啟Apache服務(wù)器的腳本分享

    Linux下一個智能重啟Apache服務(wù)器的腳本分享

    這篇文章主要介紹了Linux下一個智能重啟Apache服務(wù)器的腳本分享,當(dāng)檢測到腳本中所設(shè)定的服務(wù)器異常情況下便可執(zhí)行自動重啟,需要的朋友可以參考下
    2015-07-07
  • Linux paste命令的使用方法

    Linux paste命令的使用方法

    這篇文章主要介紹了Linux paste命令的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • linux允許端口遠程訪問開放端口的方法

    linux允許端口遠程訪問開放端口的方法

    今天小編就為大家分享一篇linux允許端口遠程訪問開放端口的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Linux系統(tǒng)下多版本php共存的解決方案(超簡單)

    Linux系統(tǒng)下多版本php共存的解決方案(超簡單)

    如何在Linux系統(tǒng)下使多版本php共存,今天為大家介紹一種簡單方案
    2018-10-10
  • Linux下幾種并發(fā)服務(wù)器的實現(xiàn)模式(詳解)

    Linux下幾種并發(fā)服務(wù)器的實現(xiàn)模式(詳解)

    下面小編就為大家分享一篇Linux下幾種并發(fā)服務(wù)器的實現(xiàn)模式詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • linux cpu如何開啟性能模式

    linux cpu如何開啟性能模式

    這篇文章主要介紹了linux cpu如何開啟性能模式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論