999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FAT32文件系統的文件讀取器的設計

2009-04-29 00:00:00朱作付
電腦知識與技術 2009年24期

摘要:FAT32是計算機用戶廣泛使用的一種文件系統模式。該文在分析了FAT32模式下磁盤文件存儲特點的基礎上,提出了一個不依賴于操作系統的直接讀取磁盤文件的系統設計方法,并實現了磁盤文件讀取器的設計。

關鍵詞:FAT32;MBR;文件系統;設計

中圖分類號:TP334文獻標識碼:A文章編號:1009-3044(2009)24-6760-02

Design of Document-Reader Based on FAT32 File System

ZHU Zuo-fu

(Department of Information Engineering, Xuzhou College of Industrial Technology, Xuzhou 221006, China)

Abstract: FAT32 file system model has been extensive used by computer users .This paper gives a design methodology about direct reading disk file system which does not rely on the operating system based on analyzing the characteristics of the FAT32 disk file storage mode ,and realizes the design of document-reader.

Key words: FAT32; MBR; file system; design

計算機中的文件管理是通過操作系統進行的,不同的操作系統通過各自不同的模式來分類管理計算機磁盤中的文件,因此,當計算機的操作系統遭到攻擊并損壞后,用戶就無法進行正常的文件讀取工作,特別對一些重要的文件信息,由于無法進行讀取,可能會對用戶的工作帶來影響。本文根據目前計算機用戶中主流的FAT32模式文件系統的特點,設計了一種脫離操作系統的讀取磁盤文件的讀取器,在實際工作中能夠給部分計算機用戶的工作帶來便利。

1 磁盤文件讀取器的設計原理

FAT32是目前計算機用戶廣泛使用的一種文件系統,在FAT32模式下,一個計算機的硬盤通常可以按如下結構描述:從大的方面可以簡單劃分為硬盤主引導分區(MBR)和邏輯盤兩個部分,對于每一個邏輯盤,又由引導區(BOOT)、系統保留扇區、2個文件分配表(FAT表)和數據區(DATA區)組成,而在數據區中還要有存放文件目錄的根目錄區(ROOT區)。所以,要想讀取一個文件信息,就必須從MBR中找到所屬邏輯盤的位置,然后通過計算邏輯盤引導區、FAT表所占用的空間計算出DATA區中根目錄區的起始地址ROOT,在此基礎上找到文件存放的第一簇的地址并以此構造文件動態存放的簇鏈,讀取相關信息。

1.1 FAT32模式下的硬盤及MBR結構

1)FAT32模式下的硬盤結構

要設計一個在硬盤上查找文件的系統,確定邏輯磁盤的起始地址是讀取磁盤文件的第一步工作。首先我們要了解FAT32模式下的硬盤結構,它由兩個部分組成,一是主引導區MBR,二是邏輯磁盤,如圖1所示。

2)FAT32模式下的硬盤MBR結構

主引導區MBR,全稱為Master Boot Record,即硬盤的主引導記錄。引導扇區是每個分區(Partition)的第一扇區,而主引導扇區是硬盤的第一扇區。它由三個部分組成,主引導記錄MBR、硬盤分區表DPT和硬盤有效標志。在總共512字節的主引導扇區里MBR占446個字節(偏移0--偏移1BDH),DPT占64個字節(偏移1BEH--偏移1FDH),最后兩個字節“55AA”(偏移1FEH--偏移1FFH)是硬盤有效標志。MBR中,偏移地址01BEH--01FDH的64個字節,為4個分區項內容(分區信息表)。它是由磁盤介質類型及用戶在使用FDISK定義分區說確定的。在實際應用中,FDISK對一個磁盤劃分的主分區可少于4個,但最多不超過4個。每個分區表的項目是16個字節,其內容含義如表1所示。

在MBR中每一個16字節的分區表按如下方式分配:

00H 分區標志位80H表示可自舉分區(00H表示非自舉分區)

01-03H起始磁頭號、扇區號、柱面號

04H 系統標志位

05-07H終止磁頭號、扇區號、柱面號

08-0BH相對扇區數

0C-0FH總扇區數

根據上述結構信息,我們就可以確定硬盤上一個邏輯磁盤的起始地址信息,為讀取文件打下基礎。

1.2 FAT32模式邏輯盤結構及相關參數

在確定邏輯盤的起始位置之后,我們要找到文件所在邏輯盤的根目錄區和文件起始簇的位置,才能夠去讀取文件。所以要了解在FAT32模式下,每一個邏輯盤的結構。如圖2所示:

1)BOOT區部分讀寫參數及地址分配

BOOT區部分讀寫參數占用扇區偏移地址03H-59H,具體分配如下:

0BH(2)每個扇區的字節數

0DH(1)每簇扇區數

0EH(2)操作系統保留的扇區數

10H(1)FAT表的個數

18H(2)每個磁道的扇區數

1AH(2)磁盤的磁頭個數

1CH(4)分區前的隱藏扇區數

24H(4)每個FAT表占用的扇區數

2CH(4)磁盤根目錄的起始簇號

2)ROOT區32BIT的分配

在ROOT區中有幾個讀取文件的重要參數(32位中的偏移),地址分配如下:

00-07H文件名的前8個字符

08-0AH文件的擴展名

1A-1BH文件起始簇號的低16位

14-15H文件起始簇號的高16位

2 磁盤文件讀取器的設計

2.1 FAT32文件系統下文件讀取程序的設計思想

FAT32文件系統實際上就是用32位數據來描述磁盤簇的分配,從操作系統的結構上進行分析,可以知道FAT32文件系統并非僅僅簡單地將FAT表轉換成32位(即用4個字節來描述一個簇),而是帶來了磁盤I/O參數、分區和FDT表及文件系統其它方面的變化。在FAT32模式的文件系統中,查找硬盤上一邏輯盤根目錄下的某一文件,必須先做以下工作:

1)找邏輯盤的起始位置、文件根目錄區的起始位置、文件存放的起始簇。

2)構造ROOT存放的簇鏈。

3)構造文件存放的簇鏈。

4)分扇區讀取文件

需要說明的是,文件系統對數據區的存儲空間是按簇進行劃分和管理的,簇是空間分配和回收的基本單位。

2.2 讀取磁盤文件的程序流程

以查找C盤根目錄下一文件為例,讀取文件的流程如圖3所示。

2.3 主要模塊設計

1)邏輯盤地址信息

struct DISKADDPACKET

{

char packetsize;

char reserved;

unsigned int blockcount;

unsigned int bufferaddr[2];

unsigned long blocknum[2];

};

2)調用 int13 讀取扇區函數

getsect(int drive,unsigned long sectnohi,unsigned long sectnolo,char *buff)

{

structDISKADDPACKET diskaddpacket;

unionREGS inregs,outregs;(下轉第6764頁)

(上接第6761頁)

structSREGS segregs;

segread(segregs);

diskaddpacket.packetsize=16;

diskaddpacket.reserved=0;

diskaddpacket.blockcount=1;

diskaddpacket.bufferaddr[0]=(unsigned)FP_OFF(buff);

diskaddpacket.bufferaddr[1]=(unsigned)FP_SEG(buff);

diskaddpacket.blocknum[1]=sectnohi;

diskaddpacket.blocknum[0]=sectnolo;

inregs.h.ah=0x42;

inregs.h.dl=drive;

inregs.x.si=(unsigned)MK_FP(segregs.ds,diskaddpacket);

int86x(0x13,inregs,outregs,segregs);

return;

}

3 結束語

在設計文件讀取器的過程中,由于程序是調用INT13中斷實現的 ,其中較困難的是如何正確調用INT13。此外FAT32模式下ROOT區只有第一簇是固定的,其余簇是動態分配的,ROOT存放簇鏈的構造必須正確。此外,程序中所使用的關鍵變量必須正確定義其存儲類型,ROOT區存放簇鏈和文件存放簇鏈的結束標志必須正確確認,只有這樣才能正確進行文件的讀取。本設計實現了不依賴操作系統的磁盤文件的讀取,可以為廣大計算機用戶的工作提供幫助。

參考文獻:

[1] 劉騰紅.操作系統[M].北京:中國鐵道出版社,2008:121-142.

[2] 張堯學.計算機操作系統教程[M].北京:清華大學出版社,2006:196-212.

[3] 趙林明,王艷霞.對FAT32和FAT16文件系統下BOOT、FAT、 ROOT、DATA區的分析[J].華南金融電腦,2002(4).

主站蜘蛛池模板: 欧美精品影院| 欧美成人二区| 夜夜操天天摸| 亚洲视频免费在线看| 性激烈欧美三级在线播放| 99久久精品国产麻豆婷婷| 国产精品原创不卡在线| 91视频99| 国产福利小视频高清在线观看| 国产精品毛片一区| 婷婷亚洲天堂| 欧美午夜小视频| 91年精品国产福利线观看久久 | 日本高清免费不卡视频| 国产在线自乱拍播放| 国产精品爽爽va在线无码观看| 99草精品视频| 成人va亚洲va欧美天堂| 欧美色视频日本| 熟妇人妻无乱码中文字幕真矢织江| 专干老肥熟女视频网站| 亚洲人成日本在线观看| 嫩草影院在线观看精品视频| 国产男女XX00免费观看| 白浆视频在线观看| 国产精品9| 国产九九精品视频| 国产微拍精品| 麻豆精品在线视频| 亚洲国产天堂久久综合226114| 国产成人91精品| 国产91麻豆免费观看| 精品无码专区亚洲| 福利视频99| 四虎成人精品在永久免费| 国产精品爆乳99久久| 国产不卡国语在线| 久久综合AV免费观看| 国产在线欧美| 精品国产aⅴ一区二区三区| 91精品国产丝袜| 激情在线网| 久久精品国产电影| 国产亚洲精品yxsp| 黄色网站在线观看无码| 精品国产污污免费网站| 国产精品免费福利久久播放 | 亚洲无码37.| 天天躁夜夜躁狠狠躁图片| 国产精品亚洲综合久久小说| 91网站国产| 中文字幕无码制服中字| 无码免费视频| 欧美日韩北条麻妃一区二区| 亚洲综合国产一区二区三区| 午夜限制老子影院888| 国产国产人成免费视频77777 | 99ri国产在线| 毛片免费视频| 中文字幕在线不卡视频| 午夜色综合| 国内精品小视频在线| 久久99国产综合精品女同| 国产女人爽到高潮的免费视频 | 高潮爽到爆的喷水女主播视频| 无码一区二区三区视频在线播放| 成人久久精品一区二区三区 | 在线人成精品免费视频| 欧洲极品无码一区二区三区| 中文成人无码国产亚洲| 国产老女人精品免费视频| 欧类av怡春院| 91日本在线观看亚洲精品| 国产亚洲精久久久久久久91| 热久久这里是精品6免费观看| 97久久人人超碰国产精品 | 日本在线亚洲| 国产v欧美v日韩v综合精品| 色精品视频| 久久国产高潮流白浆免费观看| 一级毛片免费的| 波多野结衣久久精品|