A. 精準推算刷漏洞表格!在線等,急
利人乎即為不利人乎即止墨子
不想記起的事情會裝忘記了
B. FAT結構!
FAT分區表結構 --------------------------------------------------------------------------- 硬碟分區表和文件分配表格式 硬碟分區表和文件分配表 硬碟只有經過物理格式化,分區,邏輯格式化後才能使用,在進行分區時,FDISK 會在硬碟的0柱面0磁頭1扇區建一個64位元組的分區表,在分表的前面是主引導記錄 (MRB),後面是兩個位元組的有效標志55H,AAH,(H表示16進制)。此扇區被稱為主 引導扇區,也是病毒最愛侵襲的地方,它由主引導記錄+分區表+有效標志組成。 分區表對於系統自舉十分重要,它規定著系統有幾個分區;每個分區的起始及終止 扇區,大小以及是否為活動分區等重要信息。分區表由4個表項組成,每個表項16個字 節,各位元組含義如下表1: 表1 —————————————————————————————— —————————————————————————————— 第0位元組 是否為活動分區,是則為80H,否則為00H 第1位元組 該分區起始磁頭號 第2位元組 該分區起始扇區號(低6位)和起始柱面號 (高2位) 第3位元組 該分區起始柱面號的低8位 第4位元組 系統標志,00H表該分區未使用,06H表高版 本DOS系統,05H展DOS分區,65H表Netwear 分區 第5位元組 該分區結束磁頭號 第6位元組 該分區結束扇區號(低6位)和結束柱面號 (高2位) 第7位元組 該分區結束柱面號的低8位 第8~11位元組 相對扇區號,該分區起始的相對邏輯扇區號, 高位在後低位在前 第12~15位元組 該分區所用扇區數,高位在後,低位在前 —————————————————————————————— 注意: 1. 分區表有四個表項,表示硬碟最多隻能容納四個分區。 2. 磁頭的各個面稱為磁頭,軟盤只有兩個磁頭,而硬碟往往有多個。 各個磁頭相同半徑的磁軌合稱為柱面。 3. 高位在後,低位在前是一種存儲數字方式,讀出時應對其進行調整。 如兩位元組12H,34H,應調整為3412H。 文件分配表 當一個磁碟Format後,在其邏輯0扇區(即BOOT扇區)後面的幾個扇區中存 在著一個重要的數據表—文件分配(FAT),文件分配表一式兩份,占據扇 區的多小憑磁碟類型大小而定。顧名思義,文件分配表是用來表示磁碟問件 的空分配信息的。它不對引導區,文件目錄的信息進行表示,也不真正存儲 文件內容。 我們知道磁碟是由一個一個扇區組成的,若干個扇區合為一個簇 ,文件存取 是以簇為單位的,哪怕這個文件只有1個位元組。每個簇在文件分配表中都有對應 的表項,簇號即為表項號,每個表項佔1.5個位元組(磁碟空間在10MB以下)或2個 位元組(磁碟空間在10MB以上)。為了方便起見,以後所說的表項都是指2個位元組的。 文件分賠表結構如2(H表示16進制) 注意: 不要把表項內的數字誤認為表示當前簇號,而應是該文件的下一個簇的簇號。 . 高位元組在後,低位元組在前是一種存儲數字方式,讀出時應對其進行調整。 是如兩位元組12H,34H,應調整為3412H。 文件分配表與文件目錄(FDT)相配合,可以統一管理整個磁碟的文件。它告訴 系統磁碟上哪些簇是壞的或已被使用,哪些簇可以用,並存儲每個文件所使用的簇 號。它是文件的「總調度師」。 當DOS寫文件時,首先在文件目錄中檢查是否有相同文件名,若無則使用一個文 件目錄表項,然後依次檢測FAT中的每個表項對應的簇中,同時將該簇號寫入文件目 錄表項相的26-27位元組,如文件長度不止一簇,則繼續向後尋找可用簇,找到後將其 簇號寫入上一次找到的表項中,如此直到文件結束,在最後一簇的表項里填上FFF8H, 形成單向鏈表。 DOS刪除文件時只是把文件目錄表中的該文件的表項第0個位元組改為E5H,表此項已 被刪除,並在文件分配表中把該文件佔用的各簇的表項清0,並釋放空間。其文件的 內容仍然在盤上,並沒有被真正刪除,這就是undelete.exe,unerase.exe等一類恢復 刪除工具能起作用的原因。 文件分配表在系統中的地位十分重要,用戶最好不要去修改它,以免誤操作帶來 嚴重的後果。 表2 —————————————————————————————————— —————————————————————————————————— 第0位元組 表頭,表磁碟類型。 FFH雙面軟盤,每次道8扇區 FEH單面軟盤,每磁軌8扇區 FDH 雙面軟盤,每磁軌9扇區 FCCH單面軟盤,每磁軌9扇區 FC8H硬碟 第1~2位元組(表項號1) 表示第一簇狀態,因第一簇被系統占據,故此兩位元組 為FFFFH 第3~4位元組(表項號2) 表示第二簇狀態,若為FFFH表此簇為壞的,DOS已標 記為不能用;0000H表示此簇為空,可以用;FFF8H表 不能示該簇為文件的最後一簇;其餘數字表示文件的 下一個簇號,注意高位元組在後,低位元組在前。 第5~6位元組(表項號3) 表示第三簇狀態,同上。 附表: 分區表參數 偏移 含義 1BEH 是否可自舉(80:可自舉) 1BFH--1C1H 分區的起始地址(面、扇區、頭) 1C2H DOS分區標志(01為DOS分區) 1C3H--1C5H 分區終止地址 1C6H--1c9H 分區相對扇區數 1CAH--1CDH 分區實用扇區數
C. 在FAT表中如果已經建立好文件的簇鏈,如果出現壞簇怎麼檢測出來,怎麼使簇鏈不中斷,保證數據不丟失
這里以FAT文件系統為例
文件配置表(英文:File Allocation Table,首字母縮略字:FAT)是一種由微軟發明的並帶有部分專利[1]的文件系統,供MS-DOS使用,也是非NT內核的微軟窗口使用的文件系統。
FAT文件系統考慮當時計算機效能有限,所以未被復雜化,因而被幾乎所有個人計算機的操作系統支持。這特性使它成為理想的軟盤和記憶卡文件系統,也適合用作不同操作系統中的數據交流。
但FAT有一個嚴重的缺點:當文件被刪除並且在同一位置被寫入新數據,他們的片段通常是分散的,減慢了讀寫速度。磁碟碎片重整是一種解決方法,但必須經常重組來保持FAT文件系統的效率。
主磁碟結構
一個FAT文件系統包括四個不同的部分。
保留扇區,位於最開始的位置。第一個保留扇區是引導區(分區啟動記錄)。它包括一個稱為基本輸入輸出參數塊的區域(包括一些基本的文件系統信息尤其是它的類型和其它指向其它扇區的指針),通常包括操作系統的啟動調用代碼。保留扇區的總數記錄在引導扇區中的一個參數中。引導扇區中的重要信息可以被DOS和OS/2中稱為驅動器參數塊的操作系統結構訪問。
FAT區域。它包含有兩份文件分配表,這是出於系統冗餘考慮,盡管它很少使用,即使是磁碟修復工具也很少使用它。它是分區信息的映射表,指示簇是如何存儲的。
根目錄區域。它是在根目錄中存儲文件和目錄信息的目錄表。在FAT32下它可以存在分區中的任何位置,但是在早期的版本中它永遠緊隨FAT區域之後。
數據區域。這是實際的文件和目錄數據存儲的區域,它占據了分區的絕大部分。通過簡單地在FAT中添加文件鏈接的個數可以任意增加文件大小和子目錄個數(只要有空簇存在)。然而需要注意的是每個簇只能被一個文件佔有,這樣的話如果在32KB大小的簇中有一個1KB大小的文件,那麼31KB的空間就浪費掉了。 例外情況
Apricot PC的MS-DOS所用FAT的實現有一個不同的啟動扇區組織以使用計算機與IBM不兼容的基本輸入輸出系統。跳轉指令和OEM名被省略並且MS-DOS文件系統參數位於0x50(在標准扇區中偏移為0x0B - 0x17)。後來的Apricot MS-DOS版本除了Apricot特有的引導區之外也具有了讀寫標准啟動分區的能力。
BBC Master 512 上的DOS Plus根本就不使用傳統的引導區。數據磁碟省略了引導區並且以一個單份的FAT開始(FAT的第一個位元組用來確定磁碟容量),啟動磁碟使用一個包含啟動調用程序的小型ADFS文件系統,後面跟隨一個單份的FAT。
文件分配表
一個分區分成同等大小的簇,也就是連續空間的小塊。簇的大小隨著FAT文件系統的類型以及分區大小而不同,典型的簇大小介於2KB到32KB之間。每個文件根據它的大小可能佔有一個或者多個簇;這樣,一個文件就由這些這些(稱為單鏈表)簇鏈所表示。然而,這些鏈並不一定一個接著一個在磁碟上存儲,它們經常是在整個數據區域零散的儲存。
文件分配表(FAT)是映射到分區每個簇的條目列表。每個條目記錄下面五種信息中的一種。
鏈中下一個簇的地址
一個特殊的文件結束符(EOF)符號指示鏈的結束
一個特殊的符號標示壞簇
一個特殊的符號標示保留簇
0來表示空閑簇
每個版本的FAT文件系統使用不同大小的FAT條目。這個大小已經由名字表示出來,例如FAT16文件系統的每個條目使用16位表示,32位文件系統使用32位表示。這個不同意味著FAT32系統的文件分配表能比FAT16映射更多的簇,它也允許FAT32有更大的分區大小。這也使得FAT32比FAT16更能有效地利用磁碟空間,因為每個驅動器能夠定址更小的簇,這也就意味著更少的空間浪費。
目錄表
目錄表是一個表示目錄的特殊類型文件(現今通常稱為文件夾)。它裡面保存的每個文件或目錄使用表中的32位條目表示。每個條目記錄名字、擴展名、屬性(檔案、目錄、隱藏、只讀、系統和卷)、創建的日期和時間、文件/目錄數據第一個簇的地址,最後是文件/目錄的大小。
除了FAT12和FAT16文件系統中的根目錄表占據特殊的根目錄區域位置之外,所有其它的目錄表都存在數據區域。
合法的DOS文件名包括下面一些字元:
大寫字母A-Z
數字0-9
空格(盡管結尾的空格被作為填充而不是文件名的一部分)
! # $ % & ( ) - @ ^ _ ` ~ '
數值 128-255
DOS文件名位於OEM字元集。
長文件名(LFN)使用一個技巧存儲在FAT文件系統上——在目錄表中添加假的條目。這些條目使用一個普通文件無法使用的卷標屬性標識,普通文件無法使用是由於它們被大多數舊的MS-DOS程序忽略。很顯然,一個只包含卷標的目錄被當作空卷,這樣就允許刪除;使用長文件名創建的文件在從普通的DOS刪除就會發生這樣的情形。
校驗和也允許檢驗長文件名是否與8.3文件名匹配;當一個文件刪除之後使用DOS在同一個目錄位置重新創建之後就會出現不匹配現象。校驗和使用下面的演算法計算。(注意pFcbName是指向如正常目錄條目中所顯示的文件名的指針,例如前八個字元是文件名,最後三個是擴展名。點是隱含的。文件名中沒有使用的空間將使用空格(ASCII 0x20)補齊。例如,「Readme.txt」將記錄為"README TXT"。
D. 一個FAT表項是指向一個扇區還是簇
簇的第一個物理塊的塊號
E. fat信息,文件a和文件b依次佔用哪些物理塊
fat信息,文件a和文件b依次佔用哪些物理塊
:CE 物理文件。包括順序結構(或順序文件)、鏈接結構(或鏈接文件)和索引結構(或索引文件)。 物理文件系統的主要功能是把邏輯記錄的相對塊號,轉換為實際的物理地址。對順序文件結構,由於其文件控制塊中含有文件的第一個物理塊號地址和塊數..
F. 什麼是文件的邏輯組織和物理組織文件的邏輯組織有幾種形式
1 文件的邏輯組織
文件的邏輯組織通常分為兩種形式,即有結構文件和無結構文件。
1)有結構文件
又稱作記錄式文件,它在邏輯上可被看成一組連續記錄的集合,即文件是由若干個相關的記錄組成。每個記錄是一組相關的數據集合,用於描述一個對象某個方面的屬性。
記錄式文件按其記錄的長度是否相同又可分為:定長記錄文件和變長記錄文件兩種。
(1)定長記錄文件:指文件中所有記錄的長度都相同。文件的長度可用記錄的數目來表示。定長記錄處理方便,開銷小,被廣泛用於數據處理中。
(2)變長記錄文件:指文件中各記錄的長度不相同。在處理之前每個記錄的長度是已知的。
2)無結構文件
無結構文件是指文件內部不再劃分記錄,它是由一組相關信息組成的有序字元流,即流式文件,其長度直接按位元組計算。如大量的源程序、可執行程序、庫函數等採用的文件形式是無結構文件形式。在UNIX系統中,所有的普通文件都被看做是流式文件,系統不對文件進行格式處理。
2 文件的物理組織
幾種基本的文件物理存儲組織形式:
1)連續文件
連續文件(又稱做順序文件)是基於磁帶設備的最簡單的物理文件結構,它是把一個邏輯上連續的文件信息存放在連續編號的物理塊(或物理記錄)中。
連續文件的優點是在順序存取時速度較快,常用於存放系統文件,如操作系統文件、編譯程序文件和其它由系統提供的實用程序文件,因為這類文件往往被從頭至尾依次存取。
但連續文件也存在如下缺點:
(1)要求建立文件時就確定它的長度,依此來分配相應的存儲空間,這往往很難實現。
(2)不便於文件的動態擴充。
(3)可能出現外部碎片,就是在存儲介質上存在很多空閑塊,但它們都不連續,無法被連續的文件使用,從而造成浪費。
2)串連文件
為克服連續文件的缺點,可把一個邏輯上連續的文件分散存放在不同的物理塊中,這些物理塊不要求連續,也不必規則排列。為了使系統能找到下一個邏輯塊所在的物理塊,可在各物理塊中設立一個指針(稱為連接字),它指示該文件的下一個物理塊。
串連文件克服了連續文件的缺點,但它又帶來新的問題:
(1)一般僅適於對信息的順序訪問,而不利於對文件的隨機存取。
(2)每個物理塊上增加一個連接字,為信息管理添加了一些麻煩。
3)FAT文件
串連文件的缺點可通過把連接字放在一個內存表格中的方式加以克服。這種在內存中的表格就稱為文件分配表(FAT,File Allocation Table)。
由於連接字保存在FAT表項中,因此整個盤塊都可以用來存放數據。另外,也更容易實現隨機存取了。與串連文件相似,在文件目錄中要添加一個整數,標明該文件的起始盤塊號。
這種方法的主要缺點是整個FAT必須在系統工作期間始終駐留在內存中,從而佔用了較多內存空間。當然,可以把這個表移到分頁內存中,採用調頁方式進行管理。但是,仍然要佔用大量的虛存空間和盤空間,同時也會產生額外缺頁問題。
4)索引文件
索引文件是實現非連續分配的另一種方案:系統為每個文件建立一個索引表。其中的表項指出存放該文件的各個物理塊號,而整個索引表由文件說明項指出。
這種結構除了具備串連文件的優點之外,還克服了它的缺點。它可以方便地進行隨機存取。但是這種組織形式需要增加索引表帶來的空間開銷。如果這些表格僅放在盤上,那麼在存取文件時首先得取出索引表,然後才能查表、得到物理塊號。這樣就至少增加了一次訪盤操作,從而降低了存取文件的速度,加重了 I/O負擔。一種改進辦法是同時把索引表部分或全部地放人內存。這是以內存空間為代價來換取存取速度的改善。
5)多重索引文件
為了用戶使用方便,系統一般不應限制文件的大小。如果文件很大,那麼不僅存放文件信息需要大量盤塊,而且相應的索引表也必然很大。在這種情況下把索引表整個放在內存是不合適的,為此引出多重索引結構(又稱多級索引結構)。在這種結構中採用了間接索引方式,即由最初索引項中得到某一盤塊號,該塊中存放的信息是另一組盤塊號;而後者每一塊中又可存放下一組盤塊號(或者是文件本身信息),這樣間接幾級(通常為1~3級),最末尾的盤塊中存放的信息一定是文件內容。例如,UNIX文件系統就採用了多重索引的方式。
這種方法具有一般索引文件的優點,但也存在間接索引需要多次訪盤而影響速度的缺點。由於UNIX分時環境中多數文件都較小,這就大大減弱了其缺點所造成的不利影響。