保護模式內容太多,一時半會消化不完,慢慢體會清楚了再繼續寫吧。仍是先把讀寫軟盤搞清楚吧,今天弄清楚磁盤的物理結構。工具
塗上磁性材料、用來存儲數據的圓形盤片,就叫磁盤片,簡稱盤片,也叫碟片。爲了保護盤片,防止盤片表面被劃傷,通常都把盤片裝到一個密封盒子裏,這個裝有盤片的密封盒子就叫磁盤(Disk)。若是盤片是軟的(塑料的),就叫軟盤(Floppy Disk)。若是盤片是硬的(鋁合金的或玻璃的),就叫硬盤(Hard Disk)。通常軟盤只有一張盤片,硬盤能夠有一張或多張盤片。盤片分正反兩面,每一面即爲一個盤面。全部盤面都塗有磁性材料,這層磁性材料就叫磁層,磁層就是存儲數據的介質。所謂磁層存儲數據,說白了,就是那些磁性材料以特殊方式被磁化成不一樣的狀態。spa
電腦經過磁盤驅動器(Disk Drive)從磁盤取得數據,即爲讀磁盤(Read Disk),或把數據存儲到磁盤,即爲寫磁盤(Write Disk)。軟盤的驅動器叫軟驅(Floppy Disk Drive,簡寫 FDD),軟盤和軟驅是分離設計的。硬盤的驅動器叫硬驅(Hard Disk Drive,簡寫HDD),硬驅和硬盤是一體設計的,被封裝在一塊兒,因此硬驅就是硬盤,硬盤就是硬驅,不管是硬盤仍是硬驅都是指兩者結合在一塊兒所造成的設備。設計
磁盤驅動器經過一個針狀的磁性部件接觸盤片的磁層來讀寫數據,這個接觸盤片的磁層來讀寫數據的磁性部件就叫磁頭(Head)。磁盤存儲數據的過程就是磁頭把電信號轉化爲磁信息,再把盤片上的那些磁性材料以特殊方式磁化成一個個磁化單元的過程,一個磁性單元存儲一個位(bit,簡稱 b)的數據,位是計算機內部數據儲存的最小單位。每個盤面都有一個磁頭對應,磁盤上全部磁頭共用同一個傳動軸。磁頭數量和實際存儲數據的盤面數量是相等的。it
下面是一個硬盤的拆開圖,只標出了程序設計涉及的部件:程序設計
實際操做的時候,盤片高速轉動,磁頭保持在一個位置不動,在磁層上進行磁化操做,數據就被記錄在磁層上。磁頭會在盤片表面上畫出一個與盤片同心的圓形軌跡,這個圓形軌跡就叫磁道(Track),磁盤上的信息就是沿着磁道存放的。若是這個磁道存滿了,磁頭就會移動到下一個位置,繼續造成下一個磁道。相鄰磁道之間並非緊挨着的,由於磁化單元距離太近時磁性會相互影響,另外磁頭的移動也有精密度的限制。很明顯,越接近圓心,圓就越小,即外圈的磁道周長比內圈的磁道要長,包含的磁性單元也多。磁道是從外往裏、從 0 開始依次編號的,即盤面邊緣最外圈的磁道是第 0 號磁道。百度
因爲磁盤上全部的磁頭共用同一個傳動軸,全部磁頭是同時移動的,這就致使全部盤面的磁道劃分是徹底一致的。全部盤片上同一長度半徑的位置上的磁道組成的一個圓柱面叫柱面(Cylinder)。磁道是一個平面概念,每一個磁道只在一個盤面的某個圓圈上;柱面是一個立體概念,組成柱面的若干個磁道分佈在各個盤面上(每一個盤面一個,而且在同一個半徑位置上)。磁道是物理上真實存在的,柱面是虛擬的、是想象的。柱面的數量和任一個盤面的磁道的數量是相等的,而且和磁道編號方式相同,也是從外往裏、從 0 開始編號,即磁盤邊緣的最外圈的柱面是第 0 號柱面。柱面是一個難懂的概念,看圖比較形象(百度扒來的):程序
一圈磁道能記錄不少信息,若是按照一整圈磁道爲單位讀寫的話,數據量太大;而若是按照一個磁性單元爲單位讀寫的話,又過小了。所以把每一個磁道都分爲若干個弧段。這樣就能夠一個弧段一個弧段的讀寫數據,這些弧段就叫扇區(Sector)。每一個磁道上的扇區編號都從 1 開始(和柱面、磁頭從 0 開始不一樣)。磁盤驅動器讀寫磁盤的時候,以扇區爲單位。軟盤的全部磁道,無論外圈的、內圈的,都是等分紅一樣數量的扇區;而硬盤爲了得到了更多的存儲空間,會把周長較長的外圈磁道劃分出較多的扇區,而周長較短的內圈磁道劃分出較少的扇區。im
下面是磁道、扇區示意圖:
技術
磁頭和盤片是製造的時候就裝好的,即磁頭數和每柱面磁道數固定了。磁盤在出廠前,生產商將空白的磁盤劃分出柱面和扇區,並將扇區編號,即所謂低級格式化(實際上低級格式化還包括其餘內容,用戶也能夠用特殊工具再次低級格式化)。用戶還能夠進行高級格式化,即清空磁盤,從新劃分柱面和扇區,並將扇區編號。數據
顯然,能夠用柱面號 - 磁頭號 - 扇區號(即 CHS 編號)來惟必定位磁盤上每個區域,或者說 CHS 與磁盤上每個扇區有一一對應關係,這種 CHS 定位的扇區稱爲「絕對扇區」,又叫「物理磁盤地址」(扇區是磁盤驅動器的最小讀寫單位),這種 CHS 尋址的方式稱「絕對扇區表示法「。
隨着磁盤技術的進步,出現了更加簡便的 LBA 尋址模式(Logical Block Address),即邏輯扇區尋址模式(也叫線性尋址),用來取代 CHS 尋址模式。LBA 尋址方式把磁盤上全部物理扇區的 CHS 編號經過必定的規則轉換成一個線性的編號(說白了就是從 0 開始的一個數字)。在訪問磁盤時,由磁盤內部的控制器把邏輯地址轉換爲實際的物理地址來定位。
設 NH 爲磁頭數,NS 爲每磁道扇區數,C、H、S 表示柱面號、磁頭號和扇區號,LBA 表示邏輯扇區號,div 表明整除計算,mod 表明求餘計算,則 LBA 與 CHS 之間的轉換公式以下:
LBA = ( NH × C + H ) × NS + S - 1;
C = ( LBA div NS ) div NH;
H = ( LBA div NS ) mod NH;
S = ( LBA mod NS ) + 1