中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

b站 的網(wǎng)站 怎么做著名的營銷成功的案例

b站 的網(wǎng)站 怎么做,著名的營銷成功的案例,穿著高跟鞋做的網(wǎng)站,深圳哪里網(wǎng)站建設(shè)好本文已收錄至《Linux知識與編程》專欄! 作者:ARMCSKGT 演示環(huán)境:CentOS 7 文件系統(tǒng)概述 前言正文文件與磁盤磁盤介紹與機(jī)械硬盤機(jī)械硬盤基礎(chǔ)結(jié)構(gòu)機(jī)械硬盤數(shù)據(jù)存儲與管理 文件操作的細(xì)節(jié)創(chuàng)建文件訪問文件刪除文件恢復(fù)文件其他情況 最后 前言 …

文件系統(tǒng)概述

本文已收錄至《Linux知識與編程》專欄!
作者:ARMCSKGT
演示環(huán)境:CentOS 7

在這里插入圖片描述


文件系統(tǒng)概述

  • 前言
  • 正文
    • 文件與磁盤
    • 磁盤介紹與機(jī)械硬盤
      • 機(jī)械硬盤基礎(chǔ)結(jié)構(gòu)
      • 機(jī)械硬盤數(shù)據(jù)存儲與管理
    • 文件操作的細(xì)節(jié)
  • 最后


前言

我們知道文件的存儲一般在磁盤上,操作系統(tǒng)需要管理這些文件就需要通過其文件系統(tǒng)進(jìn)行管理,高效的管理機(jī)制有利于提高我們IO的速度,本節(jié)我們將對Linux系統(tǒng)的文件系統(tǒng)進(jìn)行概述!
文件系統(tǒng)


正文

本節(jié)理論較多,還請耐心閱讀和理解!

文件與磁盤


文件被打開后會加載到內(nèi)存,而沒有被打開的文件存儲在磁盤上!
對于磁盤文件的管理,主要為了解決快速定位,快速讀取和寫入

對于在磁盤上的文件,當(dāng)我們對文件進(jìn)行操作時,操作系統(tǒng)會通過文件的inode編號找到文件屬性進(jìn)行文件操作,對于文件的inode編號我們可以通過以下命令查看:

ls -il

inode編號查看命令
文件的inode編號就如同進(jìn)程的pid一樣,inode編號與文件一 一對應(yīng),通過文件的inode編號就可以訪問文件屬性進(jìn)而讀取文件內(nèi)容!

我們可以將磁盤對文件的管理比喻為物品寄存點,每一個柜子有一個箱號,可以存放一個物品,存放成功后物主獲得箱號牌;待物主來取時通過箱號牌取出物品并歸還箱號牌;這就是文件的一次寫入和刪除操作!

向磁盤中寫入一個文件,存放在磁盤中,獲取一個inode編號,在刪除這個文件時歸還這個inode編號即可!
物品寄存處
以上對文件的 “管理” 描述只是抽象概念,結(jié)合我們后面介紹的磁盤結(jié)構(gòu),才能更好的理解!


磁盤介紹與機(jī)械硬盤


在現(xiàn)代,磁盤分為兩種,即機(jī)械硬盤固態(tài)硬盤
機(jī)械硬盤速度慢,但是便宜穩(wěn)定;固態(tài)硬盤速度快,但是價格比較貴且數(shù)據(jù)損壞率大于機(jī)械硬盤!
為了更好的介紹文件系統(tǒng),我們主要圍繞機(jī)械硬盤進(jìn)行講解!
機(jī)械硬盤和固態(tài)硬盤


機(jī)械硬盤基礎(chǔ)結(jié)構(gòu)

機(jī)械硬盤是我們計算機(jī)中的一個外部設(shè)備,也是計算機(jī)中唯一的機(jī)械設(shè)備,根據(jù)馮諾依曼體系,機(jī)械硬盤的速度遠(yuǎn)遠(yuǎn)低于CPU。如果要有一個數(shù)據(jù)去衡量,CPU的運行是納秒級別的話,機(jī)械硬盤則是毫秒級別!

而機(jī)械硬盤之所以這么慢,是由其內(nèi)部結(jié)構(gòu)決定的:
機(jī)械硬盤結(jié)構(gòu)

機(jī)械硬盤的主要結(jié)構(gòu):

  • 盤片:有兩面都可以存儲數(shù)據(jù),一般是多個盤片組合成一組
  • 磁頭:盤片的每一面都配有一個磁頭讀寫數(shù)據(jù)
  • 主軸:帶動盤片轉(zhuǎn)動進(jìn)行尋址
  • 音圈馬達(dá):控制磁頭進(jìn)退換道
  • 磁頭臂:磁頭在磁頭臂的一端,通過音圈馬達(dá)的擺動,控制磁頭切換磁道
  • 伺服電路板:對數(shù)據(jù)的讀寫進(jìn)行處理,控制機(jī)械硬盤的運行
  • 其他 … …
注意:不同磁盤中磁盤的盤片數(shù)量不一樣,但因為磁頭是通過一個磁頭臂驅(qū)動的,所以一個機(jī)械硬盤上的所有磁頭是共進(jìn)退的!機(jī)械設(shè)備的操作動作需要時間,相當(dāng)于固態(tài)硬盤中電子間的光速傳輸來說,非常慢!

磁頭擺動
關(guān)于機(jī)械硬盤的詳細(xì)結(jié)構(gòu)介紹,可閱讀:機(jī)械硬盤的內(nèi)部結(jié)構(gòu)


機(jī)械硬盤數(shù)據(jù)存儲與管理

在計算機(jī)中,數(shù)據(jù)是以二進(jìn)制存儲的,常見的可以表示二進(jìn)制的存儲方式有:高電平與低電平,波峰和波谷,南極和北極等等;而機(jī)械硬盤盤片的存儲的方式是磁極南極和北極!
磁頭寫入
磁頭寫入
讀寫數(shù)據(jù)時,距離盤面3納米的磁頭會利用電磁鐵,改變磁盤上磁性材料的極性來記錄和刪除數(shù)據(jù),兩種極性分別對應(yīng) 0 或 1 ,磁頭移動到指定扇區(qū)位置,向扇區(qū)寫入數(shù)據(jù)時磁極由N->S,在扇區(qū)刪除數(shù)據(jù)時磁極由S->N (S為1 N為0)

磁頭和盤片的近距離操作,使得機(jī)械硬盤在運行時我們不能隨意移動,更不能發(fā)生碰撞,一旦因為外力使磁頭接觸到盤片損傷了盤片就會導(dǎo)致數(shù)據(jù)丟失!


關(guān)于機(jī)械硬盤的工作原理詳細(xì)講解:




對于一個盤片,有兩個盤面,每個盤面上又分為很多個磁道,每個磁道又分為很多個扇區(qū)!
盤面
單個扇區(qū)大小為 512 字節(jié)(或者 4 kb),這些扇區(qū)用來存儲數(shù)據(jù),同一半徑中的所有扇區(qū)組成一個扇面;而半徑相同的扇區(qū)組成磁道(柱面)!
注意:磁道上扇區(qū)的數(shù)量一般相同,因為磁道的面積會隨著向外越來越打,對于面積較小的磁道,其扇區(qū)比特位會做的相對緊密一些,面積較大的扇區(qū)則會做的稀疏一些!

未來要找一個扇區(qū):

  • 先找磁頭(head):定位在哪一個盤片以及哪一個面,只需要確定哪一個磁頭(磁頭編號)就能找到哪一個面
  • 再找柱面(cylinder):定位在哪一個磁道,由半徑?jīng)Q定,柱面也就是磁道
  • 最后找扇區(qū)(sector):定位讀取位置在該磁道的哪一個扇區(qū),根據(jù)扇區(qū)的編號定位一個扇區(qū)


    我們稱這種:先定位磁頭,再定位柱面(磁道),再定位扇區(qū)的方式,稱為CHS定位法

磁盤扇區(qū)
一個普通文件的屬性和數(shù)據(jù)都是數(shù)據(jù)(0/1),無非就是占用一個或多個扇區(qū)來進(jìn)行自己的數(shù)據(jù)存儲的;我們既然能夠用CHS定位任意一個扇區(qū),我們就能定位任意多個扇區(qū),從而將文件從硬件角度進(jìn)行讀寫!

通過上述,如果操作系統(tǒng)能夠得知任意一個CHS地址,就能訪問任意一個扇區(qū);但操作系統(tǒng)并非直接使用CHS地址,因為操作系統(tǒng)是軟件,磁盤是硬件,硬件是一個地址,如果操作系統(tǒng)直接使用這個地址,如果硬件參數(shù)發(fā)生了變化,操作系統(tǒng)的磁盤信息也要變化,操作系統(tǒng)要和硬件做好解耦工作,即便是扇區(qū),512字節(jié)單IO的基本數(shù)據(jù)量也是很小的,硬件是按照512字節(jié)處理,但操作系統(tǒng)實際進(jìn)行IO的基本單位是4KB進(jìn)行處理!

所以,操作系統(tǒng)的一次IO,無論讀取數(shù)據(jù)是多少,都是按照4KB進(jìn)行讀取,因此磁盤也稱塊設(shè)備


我們將磁盤中一個盤面的所有磁道想象成磁帶被全部拉出來的樣子,那么就是一直連續(xù)的線性結(jié)構(gòu)!
磁帶
操作系統(tǒng)需要有一套通用的新地址來進(jìn)行塊級別的訪問,如果將磁道比方成磁帶,那么一個磁道就可以當(dāng)成一個數(shù)組對待,數(shù)組天然有下標(biāo),此時定位一個扇區(qū),只需要一個數(shù)組下標(biāo)就可以定位一個扇區(qū),假設(shè)數(shù)組下標(biāo)為N,而其中我們的操作系統(tǒng)是以4KB為單位進(jìn)行IO的,故一個操作系統(tǒng)級別的文件塊要包括8個扇區(qū),甚至在OS角度,OS不關(guān)心扇區(qū)!

計算機(jī)常規(guī)的訪問方式是起始地址+偏移量的方式(語言/數(shù)據(jù)類型);操作系統(tǒng)只需要知道數(shù)據(jù)所在的起始地址(第一個扇區(qū)的下標(biāo)地址)+4kb(塊的類型)就能找到一個數(shù)據(jù),我們把數(shù)據(jù)塊看做一種類型!

所以塊的地址本質(zhì)就是數(shù)組的一個下標(biāo)N,以后我們表示一個塊,我們可以采用先選下標(biāo)N的方式定位任意一個塊了,我們稱這種線性地址為邏輯塊地址LBA,這樣我們定位磁盤扇區(qū)就轉(zhuǎn)換為OS->N->LBA邏輯塊地址->CHS;磁盤只認(rèn)CHS地址,所以LBA地址和CHS地址要相互轉(zhuǎn)換!


操作系統(tǒng)要管磁盤,就將磁盤看做一個大數(shù)組,對磁盤的管理,變成了對數(shù)組的管理,要對一個數(shù)組中的扇區(qū)進(jìn)行管理,就需要先描述再組織,通過struct對象封裝8個扇區(qū),存儲中數(shù)組中,在數(shù)組中每一個下標(biāo)對應(yīng)的就是一個數(shù)據(jù)塊


在操作系統(tǒng)中有描述一個塊的的結(jié)構(gòu)體struct block{}


硬盤比較大,為了合理的管理一般操作系統(tǒng)可以分區(qū),對于每個分區(qū)操作系統(tǒng)又會分組,這個組就是塊組!塊細(xì)分
對于分區(qū),就相對復(fù)雜一些!
我們在電腦中一般會對電腦進(jìn)行分區(qū),分區(qū)的意義在于,磁盤的空間是非常大的,如果不分區(qū),巨大的空間管理會消耗操作系統(tǒng)的資源,我們在現(xiàn)實生活中,各大學(xué)都會在學(xué)校設(shè)立不同的學(xué)院進(jìn)行高效管理,最重要的是上層管理者更好的調(diào)用管理資源,這種思想稱為分治思想

在文件系統(tǒng)中,操作系統(tǒng)先將整個大文件系統(tǒng)分為不同的區(qū),存入struct disk數(shù)組中進(jìn)行管理

//分區(qū)屬性
struct disk
{struct part[3]; //三個分區(qū)    struct part是管理分區(qū)的對象類型//其他屬性...	
}

我們可以通過以下命令查看當(dāng)前Linux系統(tǒng)的分區(qū):

ll /dev/vda* -i 

分區(qū)情況
也可以通過下面的命令查看分區(qū)的信息:

# 該命令相當(dāng)于Windows的 “此電腦”
df -h

分區(qū)信息
系統(tǒng)在分區(qū)后,需要對區(qū)塊進(jìn)行格式化,在格式化時寫入管理信息,不同的文件系統(tǒng)在格式化時寫入的數(shù)據(jù)是不同的,這里討論的是EXT文件系統(tǒng)!

對于分區(qū)

  • 為了使分區(qū)能被正常使用,需要對分區(qū)進(jìn)行格式化
  • 分區(qū)格式化:操作系統(tǒng)向分區(qū)寫入文件系統(tǒng)的管理屬性信息
  • 磁盤分區(qū)后,分組、填寫系統(tǒng)屬性是操作系統(tǒng)做的事

當(dāng)然,分區(qū)再細(xì)分就是塊組!
分區(qū)
塊組構(gòu)成的線性空間亦可稱為組線,代表一個分區(qū),而一個struct part對象管理一個分區(qū):

struct part
{struct part group[512];	//分為512個塊組int lba_start;	//起始塊組位置(分區(qū)中第一個塊組的下標(biāo))int lba_end;		//結(jié)束塊組位置(最后一個塊組下標(biāo))//其他屬性……
}

將現(xiàn)有資源再分配后,可以 最大化利用資源,避免造成浪費及拖慢效率,下面我們詳細(xì)介紹塊組!

塊組是由分區(qū)細(xì)分出的產(chǎn)物,塊組與分區(qū)的關(guān)系如圖所示:
分區(qū)分組
關(guān)于這些分組信息的詳細(xì)介紹:
分組信息
我們知道 文件 = 內(nèi)容+屬性 ,而Linux系統(tǒng)將文件屬性和內(nèi)容分離存儲!

用戶只認(rèn)文件名,Linux系統(tǒng)只認(rèn)inode號,文件的inode屬性中,并不存在文件名,文件名是給用戶用的,所以目錄也是文件,目錄也有inode,而目錄存儲的是文件名與inode的映射關(guān)系

inode可以確定分組,inode編號在一個分區(qū)內(nèi)唯一有效,不能跨分區(qū),但一個inode是可以在整個分區(qū)有效的,所以每一個分區(qū)的inode編號有一個范圍(因為分組中的inode都有一個范圍),分組也是!

當(dāng)然,對于一些大文件,Linux系統(tǒng)不一定會直接分配塊進(jìn)行存儲,而是進(jìn)行塊索引多級存儲!
索引映射存儲


文件操作的細(xì)節(jié)


創(chuàng)建文件

簡單直接的說,就是實例化一個inode對象,就相當(dāng)于創(chuàng)建了一個文件,但是有一些細(xì)節(jié)!

當(dāng)我們增加一個文件時,操作系統(tǒng)需要:

  • 首先操作系統(tǒng)在該目錄所在分組中的inode Bitmap找到一個沒有被使用的inode,在inode table中找到這個inode拿到文件屬性和inode編號
  • 將文件默認(rèn)屬性寫入inode中,一開始文件是空的所以沒有數(shù)據(jù)塊
  • 在對應(yīng)目錄的存儲內(nèi)容中追加一條文件名與inode的映射關(guān)系,然后文件就創(chuàng)建好了

未來對文件進(jìn)行寫入時,先去block Bitmap找到需要的數(shù)據(jù)塊將這些塊的bit位置為1,然后將這些數(shù)據(jù)塊的位圖信息填入文件inode的blocks數(shù)組中,再去data block中找到對應(yīng)的數(shù)據(jù)塊進(jìn)行寫入(刷新入)即可;同樣的,當(dāng)我們刪除了某些數(shù)據(jù),減小了數(shù)據(jù)塊的占用時,將該文件不用的數(shù)據(jù)塊在block Bitmap中置為0即可,表示可分配!


訪問文件

當(dāng)我們要訪問一個文件時,操作系統(tǒng)需要:

  • 首先我們會在特定目錄下找到文件名(就相當(dāng)于找到了inode編號)
  • 一個目錄也是一個文件,也一定隸屬于一個分區(qū),結(jié)合inode,在該分區(qū)中找到分組,在該分組的inode table中找到文件的inode屬性
  • 通過inode(的blocks數(shù)組)和data block的映射關(guān)系,找到該文件的數(shù)據(jù)塊,并加載到內(nèi)存中(被操作系統(tǒng)管理),并進(jìn)行訪問和操作

刪除文件

當(dāng)我們要刪除文件時,操作系統(tǒng)需要:

  • 先通過當(dāng)前目錄下文件名找到對應(yīng)的inode編號
  • 根據(jù)inode table找到文件的inode屬性,然后將inode屬性中blocks數(shù)組所占數(shù)據(jù)塊對應(yīng)的block Bitmap的bit位置為0
  • 將inode Bitmap中文件inode位置的比特位設(shè)置為0,然后文件屬性就沒了,文件也就不存在了,被刪除了

所以刪文件只需要修改位圖即可,從這里可以看出,操作系統(tǒng)的刪除只是改變標(biāo)識,并沒有銷毀數(shù)據(jù)內(nèi)容,如果要徹底銷毀,則需要借助一點手段!


恢復(fù)文件

文件被誤刪不一定沒救,有可能可以恢復(fù)!
在數(shù)據(jù)被誤刪后,此時一定不要再動電腦,立刻斷電送修,還可能挽回數(shù)據(jù)!

前面說過,刪除并不是真刪除,訪問不到就行了,所以只要在刪除后,有些操作系統(tǒng)會記錄日志,日志中會保存被刪的inode編號!

所以,理論上可以:

  • 根據(jù)日志找到被刪文件的inode編號
  • 根據(jù)inode編號找到對應(yīng)的inode,將分組中的該inode的inode Bitmap表其位置置為1
  • 找到其所占用的Data block,將其占用的data block在block Bitmap置為1

其中的內(nèi)容沒有被覆蓋的,數(shù)據(jù)就可以找回來
所以,當(dāng)我們誤刪文件后,不進(jìn)行操作就可以防止被釋放的數(shù)據(jù)塊中的內(nèi)容被覆蓋!
當(dāng)然,如果我們不想這么麻煩,也可以學(xué)習(xí)Windows創(chuàng)建一個回收站!


其他情況

如果inode只是單單的用數(shù)組建立和datablock的映射關(guān)系,即只是將inode對象實例化不同的文件系統(tǒng)datablock數(shù)組大小不同存在組中inode用完了但datablock沒用完的情況,也存在inode沒用完但是datablock用完了的情況!

也就是說,存在兩種情況

  • 如果我們一直只創(chuàng)建文件,但不寫入內(nèi)容,那么就會導(dǎo)致一個分組中indoe table被全部占滿,此時就會導(dǎo)致datablock數(shù)據(jù)塊沒有占用,但分組已經(jīng)無法再容納新文件了
  • 如果我們創(chuàng)建幾個文件,但是文件內(nèi)容非常大,用完了這個分組的所有datablock數(shù)據(jù)塊,此時就會導(dǎo)致很多inode沒有使用,但分組空間已滿的情況

最后

文件系統(tǒng)概述到這里就基本結(jié)束了,本節(jié)我們帶領(lǐng)大家簡單的探究了Ext文件系統(tǒng)對于文件的管理方式,從硬件“機(jī)械硬盤”入手,再到文件系統(tǒng)的管理,兩者的結(jié)合,一氣呵成,相信大家了解了文件系統(tǒng)之后,才會發(fā)現(xiàn)操作系統(tǒng)對于文件的管理是多么高效和巧妙!

本次 <Linux文件系統(tǒng)概述> 就先介紹到這里啦,希望能夠盡可能幫助到大家。

如果文章中有瑕疵,還請各位大佬細(xì)心點評和留言,我將立即修補(bǔ)錯誤,謝謝!
結(jié)尾

🌟其他文章閱讀推薦🌟
Linux<重定向和緩沖區(qū)理解> -CSDN博客
Linux<文件理解和系統(tǒng)調(diào)用> -CSDN博客
Linux<進(jìn)程控制> -CSDN博客
Linux<進(jìn)程地址空間> -CSDN博客
Linux<環(huán)境變量> -CSDN博客
🌹歡迎讀者多多瀏覽多多支持!🌹

http://www.risenshineclean.com/news/55803.html

相關(guān)文章:

  • 深圳網(wǎng)站建設(shè)公司招聘b2b網(wǎng)站排名
  • 做vi網(wǎng)站品牌設(shè)計
  • 常州網(wǎng)站制作機(jī)構(gòu)今日熱點新聞事件摘抄
  • 福建閩東建設(shè)網(wǎng)站如何讓關(guān)鍵詞排名靠前
  • 可視化建網(wǎng)站河南網(wǎng)站建設(shè)哪里好
  • 同個主體新增網(wǎng)站備案產(chǎn)品推廣方式
  • 廣西網(wǎng)站怎么制作什么推廣平臺好
  • 做pc端網(wǎng)站案例網(wǎng)站搜什么關(guān)鍵詞
  • 太原cms建站系統(tǒng)百度寫一篇文章多少錢
  • 網(wǎng)站圖片怎么優(yōu)化百度推廣區(qū)域代理
  • wordpress的.htaccess北京優(yōu)化seo
  • 東莞做網(wǎng)站找微客巴巴阿里指數(shù)網(wǎng)站
  • 做網(wǎng)站怎么掙錢賺錢職業(yè)培訓(xùn)機(jī)構(gòu)排名
  • 成都網(wǎng)站開發(fā)的公司網(wǎng)頁制作教程視頻
  • 建設(shè)大型網(wǎng)站seo推廣網(wǎng)絡(luò)
  • 購物網(wǎng)站如何做性能測試上海百度競價
  • 網(wǎng)站備案行業(yè)外貿(mào)網(wǎng)站seo推廣教程
  • 深圳網(wǎng)博網(wǎng)站建設(shè)app開發(fā)者需要更新此app
  • 用asp做網(wǎng)站網(wǎng)站空間費用一年多少
  • 畢設(shè)網(wǎng)站可以用axure做嗎軟文營銷怎么寫
  • 網(wǎng)站建設(shè)的關(guān)鍵網(wǎng)絡(luò)推廣優(yōu)化工具
  • 生日祝福網(wǎng)頁鏈接制作360優(yōu)化大師官方網(wǎng)站
  • 政府網(wǎng)站建設(shè)匯報及時更新江蘇網(wǎng)站seo設(shè)計
  • 2018年網(wǎng)站優(yōu)化怎么做西安百度關(guān)鍵詞優(yōu)化
  • 一個vps可以建多少網(wǎng)站百度sem推廣
  • 移動端網(wǎng)站和微信網(wǎng)頁設(shè)計推廣軟文營銷案例
  • 網(wǎng)站標(biāo)題格式青島網(wǎng)絡(luò)科技公司排名
  • 做外貿(mào)商城網(wǎng)站谷歌瀏覽器app下載安裝
  • 曰本真人做爰免費網(wǎng)站上海百度移動關(guān)鍵詞排名優(yōu)化
  • 南昌網(wǎng)站建設(shè)設(shè)計廣告營銷案例分析