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

【Linux】15. 文件系統(tǒng)與軟硬鏈接

這篇具有很好參考價(jià)值的文章主要介紹了【Linux】15. 文件系統(tǒng)與軟硬鏈接。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 文件系統(tǒng)的引出

在之前的學(xué)習(xí)過程當(dāng)中,我們知道當(dāng)文件被打開后需要加載進(jìn)內(nèi)存,第一步為其創(chuàng)建struct file結(jié)構(gòu)體描述其結(jié)構(gòu)(操作系統(tǒng)需要管理被打開的文件:先描述再組織),在通過進(jìn)程當(dāng)中的文件描述符指針指向文件描述符表,根據(jù)文件描述符的分配規(guī)則給新打開的文件分配文件描述符,那么此時(shí)進(jìn)程就通過文件描述符和文件建立起聯(lián)系。
進(jìn)程與文件關(guān)系的博客鏈接
當(dāng)我們進(jìn)行文件操作時(shí),例如寫入文件就需要先將數(shù)據(jù)拷貝進(jìn)C語言封裝的文件緩沖區(qū),再拷貝進(jìn)內(nèi)核緩沖區(qū),最后再寫入到外設(shè)(磁盤)當(dāng)中…
文件緩沖區(qū)的博客鏈接
而以上這些操作都是進(jìn)程與被打開文件之間的關(guān)系,那么對于未打開的文件,操作系統(tǒng)是不是也需要進(jìn)行管理操作呢?
沒有被打開的文件都只能安靜的在磁盤上存放著,磁盤上存在大量文件需要被OS靜態(tài)管理起來,方便我們隨時(shí)打開 – 這就是文件系統(tǒng)的作用

2. 硬件結(jié)構(gòu)的學(xué)習(xí)

在詳細(xì)描述文件系統(tǒng)之前,需要我們對硬件有一定程度的了解,下面咱們就來簡單認(rèn)識(shí)一下吧?。?!

2.1 磁盤的物理結(jié)構(gòu)

目前在筆記本當(dāng)中已經(jīng)很少見到使用磁盤來作為存儲(chǔ)結(jié)構(gòu)了,大多數(shù)都是固態(tài)硬盤(同等存儲(chǔ)量固態(tài)硬盤的價(jià)格要高于機(jī)械硬盤,固態(tài)硬盤的訪問速度更快)
但是在企業(yè)當(dāng)中還是通常使用磁盤來作為數(shù)據(jù)存儲(chǔ)的主流,因?yàn)楣虘B(tài)硬盤還存在訪問次數(shù)的限制(訪問次數(shù)過多可能會(huì)造成擊穿現(xiàn)象)
而且磁盤的造價(jià)更低
磁盤是屬于計(jì)算機(jī)結(jié)構(gòu)當(dāng)中的唯一一個(gè)機(jī)械結(jié)構(gòu)?。?!
而且磁盤是外設(shè),這二者結(jié)合起來導(dǎo)致硬盤的訪問速度非常低(跟CPU相較而言)

【Linux】15. 文件系統(tǒng)與軟硬鏈接
盤面此時(shí)在高速旋轉(zhuǎn),磁頭也在不停擺動(dòng)
但是盤面和磁頭不接觸(盤面上存儲(chǔ)的就是大量的數(shù)據(jù),一旦磁頭和盤面進(jìn)行接觸,可能會(huì)刮花盤面,導(dǎo)致數(shù)據(jù)丟失)
可以通過小時(shí)候使用的光盤來理解,光盤只有一面有數(shù)據(jù),一旦刮花光盤播放起來就很卡(掉幀 – 數(shù)據(jù)丟失)
所以,磁盤對無塵環(huán)境的要求很高,一旦出現(xiàn)灰塵與盤面或者磁頭發(fā)生碰撞,都可能導(dǎo)致磁盤的損壞

2.2 磁盤的存儲(chǔ)結(jié)構(gòu)

【Linux】15. 文件系統(tǒng)與軟硬鏈接
磁盤的盤面的轉(zhuǎn)速很快,通常可能達(dá)到1w轉(zhuǎn)1s,這么快的標(biāo)準(zhǔn)是什么,需要讓磁頭快速定位到磁道和扇區(qū),在單位時(shí)間內(nèi)(非常短:1s/1w)將該扇區(qū)的數(shù)據(jù)全部讀出

2.3 磁盤的邏輯結(jié)構(gòu)

【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接

為何OS要對磁盤進(jìn)行邏輯抽象呢?直接用CHS尋址不行嗎?

  1. 方便管理
  2. 不想讓操作系統(tǒng)的代碼和硬件強(qiáng)耦合(當(dāng)磁盤切換成固態(tài)硬盤,這套管理方法也能適用,但是CHS就不行啦!)

雖然對應(yīng)的磁盤訪問的基本單位(扇區(qū))是512字節(jié),但是依舊很小,OS內(nèi)的文件系統(tǒng)定制的進(jìn)行多個(gè)扇區(qū)的讀取都是以1KB或者2KB或者4KB(通常是以4KB)為基本單位。即便你只是單純的想要讀取或者修改1個(gè)比特位,也必須將4KB的空間加載進(jìn)內(nèi)存進(jìn)行讀取或者修改,再重新將這些數(shù)據(jù)寫回磁盤
那么這種寫入方式不是非常浪費(fèi)內(nèi)存空間嗎?為啥操作系統(tǒng)會(huì)這樣操作呢?
因?yàn)榫植啃栽淼脑?
局部性原理是指CPU訪問存儲(chǔ)器時(shí),無論是存取指令還是存取數(shù)據(jù),所訪問的存儲(chǔ)單元都趨于聚集在一個(gè)較小的連續(xù)區(qū)域中。通俗來講,就是CPU訪問該字節(jié),那么極大概率會(huì)訪問該字節(jié)前后的數(shù)據(jù)
所以,直接將這一塊的數(shù)據(jù)全部加載進(jìn)內(nèi)存也能提高CPU訪問數(shù)據(jù)的效率
內(nèi)存是被劃分成為4KB大小空間(頁框) 磁盤當(dāng)中的文件尤其是可執(zhí)行文件也是按照4KB大小來劃分的(頁幀)

3. 文件系統(tǒng)

【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接

創(chuàng)建/刪除文件操作

創(chuàng)建文件:1. 在inode位圖結(jié)構(gòu)當(dāng)中將對應(yīng)的比特位由0置1,根據(jù)inode找到inode table ,將文件的屬性填入。
2. 將數(shù)據(jù)寫入data block當(dāng)中,建立inode和data block的映射關(guān)系
3. 最后返回inode編號(hào)
刪除文件:1. 找到inode編號(hào)在inode bitmap當(dāng)中的位置將其由1置0即可,數(shù)據(jù)塊當(dāng)中的bitmap位置也由1置0(惰性刪除)

刪除后恢復(fù)

文件刪除后是可以恢復(fù)的,只需要將inode編號(hào)得到,將inode bitmap當(dāng)中的比特位由0置1,再找到inode和數(shù)據(jù)塊之間的映射關(guān)系
將data block中的比特位由0置1… 但是Linux當(dāng)中恢復(fù)文件比較復(fù)雜
(不小心誤刪文件,什么都別做 再新建寫入文件就真正刪除)

目錄也是文件

當(dāng)我們自己在使用shell時(shí),查找文件都是使用文件名,并不是inode ,文件名和inode之間存在什么關(guān)系嘛?
任何一個(gè)文件肯定在目錄下,同樣的,目錄也是文件,也必然存在inode(文件屬性)和數(shù)據(jù)塊
目錄的數(shù)據(jù)塊當(dāng)中存放什么內(nèi)容呢?
目錄里面存放的是文件名和inode的映射關(guān)系?。?!

所以,我們在日常過程中使用ls,一定是查找當(dāng)前目錄下的數(shù)據(jù)塊當(dāng)中文件名,將inode和文件名之間的映射關(guān)系提取出來
同一目錄下不能存在同名文件,文件名在當(dāng)前目錄下就屬于唯一key值,通過文件名就可以索引到inode

之前的學(xué)習(xí)過程中,要在目錄下新建文件必須要有該目錄的寫入權(quán)限,這是為何?
因?yàn)橐陆ㄎ募捅仨氁撃夸浀臄?shù)據(jù)塊當(dāng)中寫入文件名和inode的映射關(guān)系

【Linux】15. 文件系統(tǒng)與軟硬鏈接

創(chuàng)建一個(gè)新文件主要有一下4個(gè)操作:

  1. 存儲(chǔ)屬性
    內(nèi)核先找到一個(gè)空閑的i節(jié)點(diǎn)(這里是263466)。內(nèi)核把文件信息記錄到其中。
  2. 存儲(chǔ)數(shù)據(jù)
    該文件需要存儲(chǔ)在三個(gè)磁盤塊,內(nèi)核找到了三個(gè)空閑塊:300,500,800。將內(nèi)核緩沖區(qū)的第一塊數(shù)據(jù)
    復(fù)制到300,下一塊復(fù)制到500,以此類推。
  3. 記錄分配情況
    文件內(nèi)容按順序300,500,800存放。內(nèi)核在inode上的磁盤分布區(qū)記錄了上述塊列表。
  4. 添加文件名到目錄
    新的文件名abc。linux如何在當(dāng)前的目錄中記錄這個(gè)文件?內(nèi)核將入口(263466,abc)添加到目錄文
    件。文件名和inode之間的對應(yīng)關(guān)系將文件名和文件的內(nèi)容及屬性連接起來。

4. 軟硬鏈接

【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接
【Linux】15. 文件系統(tǒng)與軟硬鏈接文章來源地址http://www.zghlxwxcb.cn/news/detail-485285.html

到了這里,關(guān)于【Linux】15. 文件系統(tǒng)與軟硬鏈接的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接

    【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接

    ??作者:小樹苗渴望變成參天大樹?? ??作者宣言:認(rèn)真寫好每一篇博客?? ??作者gitee:gitee? ??作者專欄:C語言,數(shù)據(jù)結(jié)構(gòu)初階,Linux,C++ 動(dòng)態(tài)規(guī)劃算法?? 如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點(diǎn) 點(diǎn) 關(guān) 注 吧! 今天我們開始講解文件系統(tǒng),上一篇我們通過文件操作,

    2024年02月04日
    瀏覽(29)
  • 【Linux】文件系統(tǒng)軟硬鏈接的那些事兒

    【Linux】文件系統(tǒng)軟硬鏈接的那些事兒

    作者:?舊言~ 座右銘:松樹千年終是朽,槿花一日自為榮。 目標(biāo):理解什么是軟硬鏈接,并且能創(chuàng)建軟硬鏈接。 毒雞湯:再小的事,別人做了是情分,不做是本分。可是有些人,永遠(yuǎn)只要求他人付出,不懂得感恩。 專欄選自:Linux初階 望小伙伴們點(diǎn)贊??收藏?加關(guān)注喲????

    2024年04月22日
    瀏覽(25)
  • 【Linux】基礎(chǔ)IO——文件系統(tǒng)|軟硬鏈接|動(dòng)靜態(tài)庫

    【Linux】基礎(chǔ)IO——文件系統(tǒng)|軟硬鏈接|動(dòng)靜態(tài)庫

    基于上篇博客所寫到的文件各種操作都是基于被打開文件所進(jìn)行操作的,那么如果一個(gè)文件沒有被打開它存在哪里呢?這個(gè)答案毫無疑問肯定是存在于磁盤上的。那么,對于一個(gè)沒有打開的文件(也就是磁盤文件)我們應(yīng)該如何理解呢? 這里我們所要講的磁盤是機(jī)械硬盤、即

    2024年02月04日
    瀏覽(21)
  • 【Linux】基礎(chǔ) IO(文件系統(tǒng) & inode & 軟硬鏈接)-- 詳解

    【Linux】基礎(chǔ) IO(文件系統(tǒng) & inode & 軟硬鏈接)-- 詳解

    1、前言 我們一直都在說打開的文件,磁盤中包含了上百萬個(gè)文件,肯定不可能都是以打開的方式存在。其實(shí)文件包含打開的文件和普通的未打開的文件,下面重點(diǎn)談?wù)勎创蜷_的文件。 我們知道打開的文件是通過操作系統(tǒng)被進(jìn)程打開,一旦打開,操作系統(tǒng)就要維護(hù)多個(gè)文件,

    2024年03月21日
    瀏覽(30)
  • 【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題

    【Linux】文件系統(tǒng)中inode與軟硬鏈接以及讀寫權(quán)限問題

    我們接下來以磁盤舉例: 文件=文件內(nèi)容+文件屬性 Linux中文件內(nèi)容與屬性是分開存儲(chǔ)的。 文件內(nèi)容:在數(shù)據(jù)塊中存著 文件屬性:在inode中存著 Block Group:ext2文件系統(tǒng)會(huì)根據(jù)分區(qū)的大小劃分為數(shù)個(gè)Block Group。而每個(gè)Block Group都有著相同的結(jié)構(gòu)組成。政府管理各區(qū)的例子 超級(jí)塊(

    2024年02月05日
    瀏覽(23)
  • 【探索Linux】—— 強(qiáng)大的命令行工具 P.13(文件系統(tǒng) | 軟硬鏈接 | 動(dòng)態(tài)庫和靜態(tài)庫)

    【探索Linux】—— 強(qiáng)大的命令行工具 P.13(文件系統(tǒng) | 軟硬鏈接 | 動(dòng)態(tài)庫和靜態(tài)庫)

    在計(jì)算機(jī)科學(xué)領(lǐng)域中,Linux 系統(tǒng)一直以來都是備受推崇的操作系統(tǒng)之一。其中,文件系統(tǒng)、軟硬鏈接、動(dòng)態(tài)庫和靜態(tài)庫是 Linux 系統(tǒng)中非常重要的概念,在實(shí)際應(yīng)用中扮演著不可或缺的角色。 在上一篇文章中,我們了解了 Linux 系統(tǒng)中文件描述符、重定向以及基礎(chǔ) IO 操作的相關(guān)

    2024年02月04日
    瀏覽(21)
  • [Linux]理解文件系統(tǒng)!動(dòng)靜態(tài)庫詳細(xì)制作使用?。ň彌_區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫)

    [Linux]理解文件系統(tǒng)!動(dòng)靜態(tài)庫詳細(xì)制作使用!(緩沖區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫)

    ? ? ? ? hello,大家好,這里是bang___bang_,今天來談?wù)劦奈募到y(tǒng)知識(shí),包含有緩沖區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫。本篇旨在分享記錄知識(shí),如有需要,希望能有所幫助。 目錄 1??緩沖區(qū) ??緩沖區(qū)的意義 ??常見緩沖區(qū)刷新策略 ??緩沖區(qū)位置猜想 ??現(xiàn)象猜測 ??現(xiàn)象解

    2024年02月13日
    瀏覽(27)
  • 文件系統(tǒng)和軟硬鏈接

    文件系統(tǒng)和軟硬鏈接

    文件操作就是進(jìn)程和被打開文件之間的關(guān)系,但是操作系統(tǒng)不可能同時(shí)將磁盤中的所有文件打開。被打開的文件要被管理起來,沒有被打開的文件為了方便我們隨時(shí)去讀取也要被管理起來。 1.了解磁盤的物理結(jié)構(gòu) 磁盤是計(jì)算機(jī)中幾乎唯一 一個(gè)機(jī)械設(shè)備并且是一個(gè)外設(shè),它的

    2024年02月01日
    瀏覽(18)
  • 【linux】文件系統(tǒng)+軟硬連接+動(dòng)靜態(tài)庫

    【linux】文件系統(tǒng)+軟硬連接+動(dòng)靜態(tài)庫

    自我名言 : 只有努力,才能追逐夢想,只有努力,才不會(huì)欺騙自己。 喜歡的點(diǎn)贊,收藏,關(guān)注一下把! 文件分為:被打開的文件和沒被打開的文件,前面兩篇博文主要講解的是進(jìn)程與被打開文件的關(guān)系。今天這篇博客講的是沒被打開的文件如何在磁盤上存放,文件系統(tǒng)如何

    2024年02月07日
    瀏覽(24)
  • linux(軟硬鏈接)

    linux(軟硬鏈接)

    目錄: ?????????? 1.軟連接 ?????????? 2.硬鏈接 ----------------------------------------------------------------------------------------------------------------------------- 1.軟連接 linux當(dāng)中有兩個(gè)概念,一個(gè)是軟連接,一個(gè)是硬鏈接,在學(xué)習(xí)完了文件系統(tǒng)和inode現(xiàn)在來理解這兩個(gè)概念非常簡單

    2024年02月06日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包