国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng)

這篇具有很好參考價值的文章主要介紹了【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
??你好,我是 RO-BERRY
?? 致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫等等一系列知識
??感謝你的陪伴與支持 ,故事既有了開頭,就要畫上一個完美的句號,讓我們一起加油

【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器



前言

我們所有的文件都是與進程相關(guān)的文件–進程打開的文件

系統(tǒng)中是不是所有的文件都被打開了呢?如果沒有被打開呢?那么沒有被打開的文件在哪里保存起來呢?

  • 在宏觀上,大部分文件是沒有被打開的。沒有被打開的文件保存在磁盤,SSD中。

文件被打開后會在內(nèi)存里,也會像進程一般,OS會有一定的數(shù)據(jù)結(jié)構(gòu)對其進行管理,那么OS要不要管理一下磁盤上的文件呢?

  • 操作系統(tǒng)OS本身是在內(nèi)存里的,打開文件也是在內(nèi)存里的,本質(zhì)上OS是管理內(nèi)存即可,但是磁盤是一個很重要的設(shè)備,里面存儲著我們很多重要的數(shù)據(jù)以及程序等等,磁盤是一個大的存儲設(shè)備,那么如何保證我們在磁盤里面準(zhǔn)確的找到我們想要的文件并打開呢?OS就會在磁盤里做一個工作–快速定位一個文件

例如:我們?nèi)粘I钪械牟锁B驛站,你在網(wǎng)上買了幾個快遞到了菜鳥驛站,每日會菜鳥驛站會到很多個快遞,當(dāng)快遞到站了其工作人員會將快遞按照快遞單號都分門別類的放好,也便于人們?nèi)ト】爝f,其核心工作就是為了讓用戶快速定位快遞進行提取,這也就是相當(dāng)于我們的OS所做的工作。
菜鳥驛站的老板不僅會做這些工作,還需要知道菜鳥驛站今天會到多少快遞,已經(jīng)存儲了多少快遞,還有預(yù)估還能存儲多少快遞等等信息,為讓菜鳥驛站好好的運作下去,要讓這些包裹都好好存儲起來。

整個菜鳥驛站就是我們的磁盤,菜鳥驛站的包裹就是我們一個個沒有被打開的文件,菜鳥驛站的老板就相當(dāng)于我們OS內(nèi)的一個文件管理模塊–我們稱為文件系統(tǒng)

  • 其主要工作是幫我們把磁盤空間好好管理起來,將眾多文件分門別類的放好,給用戶輸出一種統(tǒng)一的服務(wù),快速定位到文件,定位文件的方式就是我們的路徑

1.磁盤物理結(jié)構(gòu)

為了好好理解文件系統(tǒng),我們先來認識一下磁盤

  • 磁盤我們大部分人都不理解,只是清晰其概念,是一個很大的存儲設(shè)備。
  • 筆記本一般是不裝磁盤了,一般都是SSD(固態(tài)硬盤),臺式電腦可能還會有磁盤。
  • 磁盤一般按照功能劃分會分成桌面級磁盤和企業(yè)級磁盤,退回到2012年,那個時候的電腦大部分裝的都是磁盤,SSD(固態(tài)硬盤)在那個時候比較貴。

我們今天談?wù)摰拇疟P是企業(yè)級磁盤。磁盤在今天是并沒有被淘汰,SSD在今天比磁盤依然是要貴的,磁盤存儲的數(shù)據(jù)量比較大,又便宜,性價比比較高

【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器

  • 盤片:白色的盤像光盤一樣的就是盤片,我們的數(shù)據(jù)就是存儲在上面,我們平時見到的光盤是只讀的,只能被寫入一次,盤片是可以不限次數(shù)被寫入的,光盤一般只有一面是光的,也就是只有一面有我們的數(shù)據(jù),而盤片兩面都是光的,沒有正反,或者正反兩面都可以存儲數(shù)據(jù),家用的桌面級磁盤,這個盤片只有一片兩面,很薄;企業(yè)級磁盤拆開的就是一摞的。
  • 磁頭:磁盤上一個像指針的東西,一個尖尖的就是我們的磁頭,一面一個磁頭,不是一個盤片一個磁頭,加點后磁頭就會移動到盤面區(qū)。【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
  • 音圈馬達:盤片中央的位置就是我們的音圈馬達,馬達就是充電了就會轉(zhuǎn),盤片就是被音圈馬達帶動著旋轉(zhuǎn),盤片轉(zhuǎn)動的時候,我們的磁頭就會來回左右搖擺,磁頭的擺動就是在盤片上進行尋址。
    【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
  • 伺服系統(tǒng):在硬盤的背面,有磁盤對應(yīng)的硬件電路,叫做伺服系統(tǒng),用來控制我們的磁盤,磁盤內(nèi)部的二進制指令通過伺服系統(tǒng)進行識別,比如開機關(guān)機尋址讀寫等等,控制盤片和磁頭進行尋址。
    【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
  1. 每一個盤片的轉(zhuǎn)動速度取決于錢越多轉(zhuǎn)動速度越快,磁頭擺的也就越快,對應(yīng)的速度也越快。
  2. 磁頭貼在盤片上,好像是挨在一起,但是是沒有挨在一起的,如果挨在一起就會刮花盤片,就會丟失數(shù)據(jù)。
  3. 在剛開機的時候一定是盤片高速旋轉(zhuǎn),然后磁頭懸浮在盤面之上,幫我們找到數(shù)據(jù),這個時候臺式機最怕的就是突然斷電或者強制關(guān)機,磁頭失去動力就會落下來,由于慣性盤片會持續(xù)旋轉(zhuǎn),那么就會刮花盤片。這也是磁盤為什么被淘汰的原因之一
  4. 我們聽到過很多說計算機只認識二進制01,這是沒問題的,但是電腦上真正存的是01二進制數(shù)據(jù)嗎?早期發(fā)明計算機的人發(fā)明了一種硬件電路,這個硬件電路可以短暫進行存儲數(shù)據(jù),存一個高低點位,我們叫做觸發(fā)器,有一個觸發(fā)器就存一個高電平,兩個觸發(fā)器就能存兩個,一個高電平一個低電平,所以這就是有和無,也就是1和0。計算機里面存的根本就不是0和1這樣的二進制數(shù)字,這是被人為規(guī)定出來的,根據(jù)不同的介質(zhì)0和1也會被賦予不同的含義,有的是以信號的強弱表示0和1,有的是以信號的有無表示0和1,所以主要我們對應(yīng)的計算機設(shè)備能夠找出對應(yīng)兩態(tài)的就可以用0和1進行表示。
  5. 磁盤能存數(shù)據(jù),我們可以將其想象成由無數(shù)個磁鐵構(gòu)成,磁鐵是具有南北兩極的,在磁盤當(dāng)中每一塊小磁鐵可以看做南極為1,北極為0,這樣盤片上連續(xù)寫一二十個字節(jié)也就是在改變小磁鐵的朝向,我們想改寫全1,就是將小磁鐵南極朝上即可。
  6. 一塊磁鐵扔到家里不管,如果很久不管依然會有磁性,這也就是磁盤為什么能長久存儲數(shù)據(jù)的原因,所以我們將磁盤叫為永久存儲設(shè)備

[總結(jié)]

1. 磁盤是有多個盤片和磁頭組成的,盤片和磁頭是1:1的
2. 磁頭和盤片經(jīng)過旋轉(zhuǎn)移動進行定位尋址
3. 磁盤是機械設(shè)備,不允許我們在其開機時進行移動、搬遷等等,出現(xiàn)物理上的損失
4. 盤片和磁頭離得比較近,所以要求我們的磁盤要防震,以及內(nèi)部要是無塵的,磁盤是很需要高精度的技術(shù)的,國外走的比較早,所以國外的技術(shù)是非常領(lǐng)先的
5. 企業(yè)磁盤的數(shù)據(jù)失去其價值的時候,是不會將磁盤隨便扔掉的,但是對于磁盤需要去銷毀,有人說可以消磁也有人說可以丟進火里燒毀,當(dāng)然了這兩種辦法都是可行的,但是這費人費力消耗太大,所以我們的企業(yè)通過和另一些企業(yè)通力合作,通過一定的指令技術(shù),將磁盤數(shù)據(jù)全部寫0或者1,來達到消除數(shù)據(jù)的功效,進行集中報廢


2.磁盤的物理存儲

【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
磁盤各個面的展開圖如下:
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器

  • 磁道/柱面:這里面的扇區(qū)是我們磁盤IO的基本單位—不一定是系統(tǒng)和磁盤IO的基本單位,每一個扇區(qū)都有唯一的編號
    【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
  • 磁頭、盤面:盤片的每一個面叫做盤面,每一個盤面都有唯一的編號

如果我們想訪問磁盤里的一個扇區(qū):
通過磁頭定位:磁道/柱面(cylinder),確認使用哪一個磁頭(head),再進行確認哪一個扇區(qū)(sector)
這種定位方案叫做CHS定位法
了解了這些,那么文件不就是多個扇區(qū)承載的數(shù)據(jù)嗎?

3.磁盤的邏輯存儲

我們先來認識一下磁帶
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
磁帶存儲的數(shù)據(jù)就在這一條帶子上面,它是圈起來通過馬達將其一點一點移動的,通過技術(shù)讀取帶子數(shù)據(jù),這一整個帶子圈起來就相當(dāng)于盤片里的一面,全部抽出來拉直了不就是一惡搞線性存儲結(jié)構(gòu)嗎?

在我看來,磁盤也就是一個非常巨大的線性空間,而扇區(qū)就是其中一塊一塊的連續(xù)空間,可以理解為磁盤是這一整個線性空間,而磁道和扇區(qū)就是這其中一個一個的子空間,也就是說,我們對磁盤的管理也就是對數(shù)組的增刪查改!我們就可以通過一個磁道有多少個扇區(qū)來訪問到目標(biāo)扇區(qū)

  1. 磁盤是會自己轉(zhuǎn)化成為線性地址供我們訪問的

  2. 操作系統(tǒng)認為,一次和磁盤IO一個扇區(qū)單位太小了,訪問速度太慢了,OS文件系統(tǒng)認為:IO的基本單位是4KB,如果一個扇區(qū)是512B,那么OS會一次訪問8個扇區(qū)去進行IO。

  3. 在OS內(nèi)部就會重新形成一個8個扇區(qū)為一個子數(shù)組的線性結(jié)構(gòu),這樣每8個扇區(qū)就會對應(yīng)一個數(shù)組下標(biāo)。這每一塊數(shù)組的地址就是邏輯區(qū)塊地址(Logical Block Address, LBA)

  4. 邏輯區(qū)塊地址(Logical Block Address, LBA)是描述計算機存儲設(shè)備上數(shù)據(jù)所在區(qū)塊的通用機制,一般用在像硬盤這樣的輔助記憶設(shè)備。LBA可以意指某個數(shù)據(jù)區(qū)塊的地址或是某個地址所指向的數(shù)據(jù)區(qū)塊?,F(xiàn)今計算機上所謂一個邏輯區(qū)塊通常是512或1024位組。ISO-9660格式的標(biāo)準(zhǔn)CD則以2048位組為一個邏輯區(qū)塊大小。

  5. LBA是非常單純的一種定址模式﹔從0開始編號來定位區(qū)塊,第一區(qū)塊LBA=0,第二區(qū)塊LBA=1,依此類推。這種定址模式取代了原先操作系統(tǒng)必須面對存儲設(shè)備硬件構(gòu)造的方式。最具代表性的首推CHS(cylinders-heads-sectors,磁柱-磁頭-扇區(qū))定址模式,區(qū)塊必須以硬盤上某個磁柱、磁頭、扇區(qū)的硬件位置所合成的地址來指定。CHS模式對硬盤以外的設(shè)備來說沒什么作用(例如磁帶或是網(wǎng)絡(luò)存儲設(shè)備),所以通常也不會用在這些地方。過去MFM(Modified Frequency Modulation, 改良調(diào)頻式)和RLL(Run Length Limited)存儲設(shè)備都曾使用CHS模式,ATA-1設(shè)備更將延伸CHS(Extended Cylinders-Heads-Sectors, ECHS)也派上了用場。

  6. SCSI采用LBA抽象定址。實際上硬件控制器還是以CHS來定址區(qū)塊,但無論驅(qū)動程序還是任何以低級訪問磁盤的應(yīng)用程序(例如數(shù)據(jù)庫軟件)通常都不再需要這個參數(shù)。各種要求區(qū)塊低級訪問的系統(tǒng)調(diào)用把定義好的LBA傳給驅(qū)動程序﹔最直接的情況下(邏輯器件與實體設(shè)備單一對應(yīng))驅(qū)動程序只是將LBA再傳給硬件控制器。

一個磁盤整體空間是非常大的,我們OS會將其劃分成一個一個小塊。會對這個空間進行分區(qū)操作,分完區(qū)又會對其進行分組,將每一個小塊進行管理就會將整個空間管理好了

大部分筆記本都只有一塊磁盤,我們電腦里的C盤D盤是我們系統(tǒng)對其進行了分區(qū)的。


4.文件系統(tǒng)

Linux磁盤文件特性:

文件=內(nèi)容+屬性
內(nèi)容和屬性分開存儲
內(nèi)容是大小不確定,可能很大,也可能很小,這是可變的
屬性是固定大小的,屬性的類別是一樣的,只不過每個類別內(nèi)容不一樣

我們所有的文件的屬性對應(yīng)的結(jié)構(gòu)體存儲都叫inode
注: 文件名不屬于文件屬性!

為了能解釋清楚inode我們先簡單了解一下文件系統(tǒng)
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器

Linux ext2文件系統(tǒng),上圖為磁盤文件系統(tǒng)圖(內(nèi)核內(nèi)存映像肯定有所不同),磁盤是典型的塊設(shè)備硬盤分區(qū)被劃分為一個個的block。一個block的大小是由格式化的時候確定的,并且不可以更改。例如mke2fs的-b選項可以設(shè)定block大小為1024、2048或4096字節(jié)。而上圖中啟動塊(Boot Block)的大小是確定的

  • Block Group:ext2文件系統(tǒng)會根據(jù)分區(qū)的大小劃分為數(shù)個Block Group。而每個Block Group都有著相同的結(jié)構(gòu)組成。政府管理各區(qū)的例子

  • 超級塊(Super Block):存放文件系統(tǒng)本身的結(jié)構(gòu)信息。記錄的信息主要有:bolck 和 inode的總量,未使用的block和inode的數(shù)量,一個block和inode的大小,最近一次掛載的時間,最近一次寫入數(shù)據(jù)的時間,最近一次檢驗磁盤的時間等其他文件系統(tǒng)的相關(guān)信息。Super Block的信息被破壞,可以說整個文件系統(tǒng)結(jié)構(gòu)就被破壞了

  • GDT,Group Descriptor Table:塊組描述符,描述塊組屬性信息,有興趣的同學(xué)可以在了解一下塊位圖(Block Bitmap):Block Bitmap中記錄著Data Block中哪個數(shù)據(jù)塊已經(jīng)被占用,哪個數(shù)據(jù)塊沒有被占用

  • inode位圖(inode Bitmap):每個bit表示一個inode是否空閑可用。

  • i節(jié)點表(inode table):存放文件屬性 如 文件大小,所有者,最近修改時間等

  • 數(shù)據(jù)區(qū):存放文件內(nèi)容

使用指令ls -i就可以看到文件的inode
位于文件最前面的數(shù)字編號就是inode編號
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器

系統(tǒng)中,標(biāo)識一個文件,用的不直接是文件名,而是inode

將屬性和數(shù)據(jù)分開存放的想法看起來很簡單,但實際上是如何工作的呢?我們通過touch一個新文件來看看如何工作。
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
為了說明問題,我們將上圖簡化:
【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng),linux學(xué)習(xí),linux,運維,服務(wù)器
創(chuàng)建一個新文件主要有一下4個操作:

  1. 存儲屬性

內(nèi)核先找到一個空閑的i節(jié)點(這里是263466)。內(nèi)核把文件信息記錄到其中。

  1. 存儲數(shù)據(jù)

該文件需要存儲在三個磁盤塊,內(nèi)核找到了三個空閑塊:300,500,800。將內(nèi)核緩沖區(qū)的第一塊數(shù)據(jù)復(fù)制到300,下一塊復(fù)制到500,以此類推。

  1. 記錄分配情況

文件內(nèi)容按順序300,500,800存放。內(nèi)核在inode上的磁盤分布區(qū)記錄了上述塊列表。

  1. 添加文件名到目錄

新的文件名abc。linux如何在當(dāng)前的目錄中記錄這個文件?內(nèi)核將入口(263466,abc)添加到目錄文件。文件名和inode之間的對應(yīng)關(guān)系將文件名和文件的內(nèi)容及屬性連接起來。文章來源地址http://www.zghlxwxcb.cn/news/detail-847920.html

到了這里,關(guān)于【linux深入剖析】深入理解基礎(chǔ)外設(shè)--磁盤以及理解文件系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux源碼解讀系列是一套深入剖析Linux內(nèi)核源碼的教程,旨在幫助讀者理解Linux操作系統(tǒng)的底層原理和工作機制

    Linux源碼解讀系列是一套深入剖析Linux內(nèi)核源碼的教程,旨在幫助讀者理解Linux操作系統(tǒng)的底層原理和工作機制

    Linux源碼解讀系列是一套深入剖析Linux內(nèi)核源碼的教程,旨在幫助讀者理解Linux操作系統(tǒng)的底層原理和工作機制。該系列教程從Linux內(nèi)核的各個模塊入手,逐一分析其源碼實現(xiàn),并結(jié)合實際應(yīng)用場景進行講解。通過學(xué)習(xí)本系列,讀者可以深入了解Linux操作系統(tǒng)的底層機制,掌握

    2024年01月21日
    瀏覽(26)
  • 2.【Linux】(進程的狀態(tài)||深入理解fork||底層剖析||task_struct||進程優(yōu)先級||并行和并發(fā)||詳解環(huán)境變量)

    2.【Linux】(進程的狀態(tài)||深入理解fork||底層剖析||task_struct||進程優(yōu)先級||并行和并發(fā)||詳解環(huán)境變量)

    Linux把所有進程通過雙向鏈表的方式連接起來組成任務(wù)隊列,操作系統(tǒng)和cpu通過選擇一個task_struct執(zhí)行其代碼來調(diào)度進程。 1.運行態(tài):pcb結(jié)構(gòu)體在運行或在運行隊列中排隊。 2.阻塞態(tài):等待非cpu資源就緒(硬盤,網(wǎng)卡等資源) 3.掛起態(tài):一個進程對應(yīng)的代碼和數(shù)據(jù)被操作系統(tǒng)因

    2024年01月22日
    瀏覽(23)
  • 【linux深入剖析】文件描述符 | 對比 fd 和 FILE | 緩沖區(qū)

    【linux深入剖析】文件描述符 | 對比 fd 和 FILE | 緩沖區(qū)

    ??你好,我是 RO-BERRY ?? 致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫等等一系列知識 ??感謝你的陪伴與支持 ,故事既有了開頭,就要畫上一個完美的句號,讓我們一起加油 通過對open函數(shù)的學(xué)習(xí),我們知道了文件描述符就是一個小整數(shù) 而現(xiàn)在知道,文件描述符就是從0開始的小

    2024年04月13日
    瀏覽(30)
  • 深入理解Linux文件系統(tǒng)

    深入理解Linux文件系統(tǒng)

    ??????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??????????????? ??慕斯主頁 : 修仙—別有洞天 ? ? ????????????????????????????????????????????????????????? 今日夜電波: 晴る—ヨルシカ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    2024年01月19日
    瀏覽(20)
  • 【Linux】深入理解文件系統(tǒng)

    【Linux】深入理解文件系統(tǒng)

    收錄于【Linux】文件系統(tǒng)?專欄 關(guān)于文件描述符與文件重定向的相關(guān)內(nèi)容可以移步?文件描述符與重定向操作。 可以到?淺談文件原理與操作?了解文件操作的系統(tǒng)接口。 想深入理解文件緩沖區(qū)還可以看看文件緩沖區(qū) 。 目錄 系列文章 磁盤 結(jié)構(gòu)介紹 定位數(shù)據(jù) 抽象管理 文件系

    2024年02月10日
    瀏覽(23)
  • 【Linux】深入理解文件操作

    【Linux】深入理解文件操作

    初次談?wù)撐募?開始之前先談?wù)撘幌玛P(guān)于文件的一些共識性問題。 一個文件可以分為兩部分,內(nèi)容和屬性。 基于上面的認識,空文件也要在磁盤中占據(jù)空間,因為空文件的內(nèi)容為空,但是還有屬性在,例如文件的創(chuàng)建時間… 而這部分屬性也是要存儲的。 所以對文件的操作就

    2024年02月11日
    瀏覽(17)
  • 【linux】:模擬文件基本操作以及文件在磁盤中如何存儲的學(xué)習(xí)

    【linux】:模擬文件基本操作以及文件在磁盤中如何存儲的學(xué)習(xí)

    ? ? 文章目錄 前言 一、模擬C庫文件操作 二、磁盤文件 總結(jié) ? 經(jīng)過我們上一篇對linux系統(tǒng)文件操作的學(xué)習(xí)想必我們已經(jīng)會使用系統(tǒng)文件接口了,今天我們就用系統(tǒng)文件接口來封裝一個像C語言庫那樣的文件操作函數(shù)的函數(shù)來加深我們對文件操作的學(xué)習(xí)。 ? 首先我們創(chuàng)建相應(yīng)的

    2023年04月14日
    瀏覽(24)
  • 【Linux】帶你深入理解文件系統(tǒng)

    【Linux】帶你深入理解文件系統(tǒng)

    目錄 文件系統(tǒng) 背景知識 磁盤結(jié)構(gòu) 磁盤的存儲結(jié)構(gòu) 磁盤抽象(邏輯,虛擬)結(jié)構(gòu) BootBlock: Super block Data blocks inode Table BlcokBitmap inode Bitmap Group Descriptor Table? 文件名和inode編號 硬鏈接和軟鏈接 軟鏈接 硬鏈接 取消軟硬鏈接unlink stderr 我們講解文件系統(tǒng)之前還需要說一些背景知識,

    2024年02月15日
    瀏覽(20)
  • 【Linux】深入理解文件緩沖區(qū)

    【Linux】深入理解文件緩沖區(qū)

    問題引入 首先看一段代碼: 運行代碼,結(jié)果如下: 如果此時將輸出結(jié)果重定向一下: 會發(fā)現(xiàn) printf 、 fwrite 都打印了兩次。 究其原因,就要談到緩沖區(qū)和緩沖區(qū)刷新策略的概念了。 如何理解緩沖區(qū) 假設(shè)你在青島,你要從網(wǎng)上買一件商品,商家所在地是北京。你不會跑去北

    2024年02月11日
    瀏覽(27)
  • Linux 深入理解Linux文件系統(tǒng)與日志分析

    Linux 深入理解Linux文件系統(tǒng)與日志分析

    文件數(shù)據(jù) 包含 元信息(即不包含文件名的文件屬性) ? ?和? ? 實際數(shù)據(jù) 文件元信息存儲在 inode(索引節(jié)點)里, 文件實際數(shù)據(jù)存儲在 block(塊)里; 文件名存儲在目錄塊里 stat? 文件名 ? stat? 文件名? ? ? ls -i 文件名 ? df -i Linux系統(tǒng)不使用 文件名 識別文件,而 使用 inode號 來識

    2024年04月25日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包