成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

理解Linux操作系統中的塊設備

系統 Linux
塊設備也就是存儲以“塊”為單位存儲數據的設備,比較典型的如磁盤設備、光盤或者優盤。本文首先集中在磁盤設備的相關內容的分析,其他設備類型很類似,暫時不做介紹。

塊設備也就是存儲以“塊”為單位存儲數據的設備,比較典型的如磁盤設備、光盤或者優盤。本文首先集中在磁盤設備的相關內容的分析,其他設備類型很類似,暫時不做介紹。

在Windows操作系統下磁盤設備似乎是一個實實在在的設備,我們可以通過圖形界面對磁盤設備進行管理。如圖1是Windows下的磁盤管理界面,可以通過這個界面清晰的看到磁盤設備,并且可以對其進行格式化等操作。

理解Linux操作系統中的塊設備

圖1 Windows磁盤設備

Linux操作系統的磁盤設備并不直觀,在LInux系統中“一切皆文件”的理念下,磁盤設備其實是一個文件,只不過是一個比較特殊的文件。如圖2是某些磁盤和分區的文件路徑,其中黃色字體部分是磁盤的路徑(類似文件路徑),而前面紅色方框內的b表示這個文件是磁盤設備文件,而非普通文件。

理解Linux操作系統中的塊設備

圖2 Linux系統下磁盤設備

磁盤設備文件也是位于VFS(虛擬文件系統)下面,與Ext4等文件系統類似(參考圖3)。用戶層面可以用訪問普通文件的接口(API)訪問磁盤。如下代碼是用Python實現的一個向磁盤寫入字符串的程序。代碼很簡單,就是打開磁盤所在的路徑(path),然后調用write函數寫數據。

理解Linux操作系統中的塊設備

Linux系統中磁盤的本質

通過上面的描述我們知道對于Linux操作系統來說,磁盤就是一個文件。而磁盤本身就是一個線性存儲空間(可以理解為一個大數組),這種方式與文件也是非常類似的。鑒于上述相似性,Linux將磁盤設備抽象為一個文件并沒有任何不妥之處。

實質上,在Linux操作系統磁盤設備是基于一個稱為bdev的偽文件系統來管理的,bdev文件系統是一個在內存中的偽文件系統(在內存的文件系統,無持久化的數據),位置與Ext4等文件系統相同。如圖3所示,bdev文件系統的位置為圖中紅色區域。

理解Linux操作系統中的塊設備

圖3 bdev文件系統位置

理解了塊設備的管理方式,再結合我們之前對文件系統的相關介紹,這樣就很容易理解后續的內容了。在文件系統相關文章介紹中我們知道,不同文件系統數據處理的關鍵是其提供的函數集,而這個函數集是在打開文件的時候確定的。磁盤設備也是如此,當我們打開磁盤設備時,操作系統根據磁盤設備的特性,會初始化inode中的函數集。而后續對該磁盤設備的讀寫操作就能通過該函數集完成。如下代碼所示 ,塊設備連同字符設備和管道都作為特殊的文件進行處理,并初始化對應的函數集。

理解Linux操作系統中的塊設備

完成函數集的初始化后,當用戶調用VFS層的接口時,VFS層就可以找到具體的處理函數,進而完成用戶的操作。這里的函數集與本地文件系統的函數集別無二致,差異在于普通文件系統需要管理目錄和文件,而bdev偽文件系統是將磁盤看作一個大文件,更簡單一些。

磁盤的緩存

既然磁盤偽文件系統bdev本身也是一個文件系統,因此自然也可以有緩存。這個緩存就是用于提升磁盤性能的緩存系統。磁盤的緩存系統與文件系統的緩存系統類似,也是通過頁緩存來實現的。當然,Linux磁盤的緩存是可以關閉的,此時將調用另外一套函數集。

這樣說起來可能比較抽象,下面我們以一個具體的例子來看一下磁盤緩存的具體實現。如下是磁盤偽文件系統的函數集,我們以寫數據為例進行介紹。

理解Linux操作系統中的塊設備

圖4 磁盤函數集

寫數據的函數為blkdev_write_iter,該函數會調用generic_perform_write函數。如果大家閱讀過本號關于文件系統的文件的話,很清楚后者就是VFS中向頁緩存寫數據的函數。也就是說塊設備偽文件系統的邏輯與本地文件系統完全一致。緩存部分點到為止,具體代碼請大家自行閱讀。

好了,今天我們主要對Linux的磁盤設備的原理及其緩存進行了介紹。后續我們再逐步進行各種特性的細節。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2009-09-01 09:20:24

Linux操作系統聲音設備編程實例

2009-10-22 12:27:30

linux塊設備

2010-04-19 17:47:59

Unix操作系統

2009-09-01 09:14:42

2009-12-23 16:16:57

Linux操作系統

2023-05-15 08:58:41

塊設備驅動Linux

2010-04-22 15:27:40

Aix操作系統

2009-12-09 17:25:19

Linux操作系統

2023-03-28 10:39:28

2009-12-22 13:44:33

Linux操作系統

2010-04-27 11:38:14

OpenSUSE 11

2013-11-15 17:23:50

Linux技巧文件管理

2009-12-25 14:32:30

Linux操作系統

2010-03-16 14:25:48

Linux操作系統

2011-01-10 16:34:13

linux安裝

2009-09-11 08:36:16

linux塊字符設備linux操作系統

2023-03-13 14:08:00

系統抽象操作系統大型系統

2010-04-22 15:53:46

Aix操作系統設備

2009-02-20 19:56:26

WindowsLinux雙系統

2020-12-29 16:39:01

Linux代碼命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91av入口| 美国av毛片| 国产一区二区视频免费在线观看 | 最新国产在线 | 综合二区 | 日韩在线中文字幕 | 欧美三级三级三级爽爽爽 | 成人福利网 | 一区二区成人 | 国产精品视频一区二区三区四区国 | 欧美综合在线观看 | 日韩欧美国产精品一区二区 | 毛片毛片毛片毛片毛片 | 中文字幕一区在线 | 成人免费影院 | 精品欧美乱码久久久久久 | 国产精品久久99 | 成人欧美一区二区三区黑人孕妇 | 久久国产精品一区二区 | 天天影视网天天综合色在线播放 | 精品日韩电影 | 欧美一区二区在线观看 | 亚洲视频一区在线观看 | 一区二区福利视频 | 国产不卡在线 | 久久一热 | 久久综合久色欧美综合狠狠 | 亚洲精品一区二区 | 91精品国产一区二区三区 | 久久伊人久久 | 一区二区三区四区日韩 | 老头搡老女人毛片视频在线看 | 久草色视频 | 婷婷综合色 | 九九精品久久久 | 欧美天堂 | 成人在线电影网站 | 国产91在线观看 | 九七午夜剧场福利写真 | 黄视频在线网站 | 激情五月婷婷综合 |