硬盘驱动程序功能简介

硬盘驱动程序功能简介

ID:13925602

大小:152.50 KB

页数:5页

时间:2018-07-25

硬盘驱动程序功能简介_第1页
硬盘驱动程序功能简介_第2页
硬盘驱动程序功能简介_第3页
硬盘驱动程序功能简介_第4页
硬盘驱动程序功能简介_第5页
资源描述:

《硬盘驱动程序功能简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、硬盘驱动程序功能简介1.1对硬盘操作的I/O端口对硬盘控制器的操作是通过I/O端口来进行的,这些端口分为两组,它们对应命令块寄存器(CommandBlockRegisters)和控制块寄存器(ControlBlockRegisters),如下表表1.硬盘I/O端口及寄存器组别I/O端口读时写时PrimarySecondaryCommadBlockRegister1F0h170hDataData1F1h171hErrorFeature1F2h172hSectorCountSectorCount1F3h173hLABLowLABLow1F4h174hLABMidLABMid1

2、F5h175hLABHighLABHigh1F6h176hDeviceDevice1F7h177hStatusCommandControlBlockRegister3F6h376hAlternateStatusDeviceControl我们只需先往命令块寄存器(CommadBlockRegister)写入正确的值,在通过控制块寄存器(ControlBlockRegister)发送命令就可以了。1.2硬盘的启动、打开驱动程序收到DEV_OPEN消息之后调用hd_identify(),在这里我们改成了调用函数hd_oped()们这是新加的一个函数,它接受的参数即为设备的次设备

3、号。在hd_oped()中,我们首先由设备次设备号得到驱动器号,由于我们的Bochs只定义了一个硬盘,所以这里的驱动器号一定是0。在程序中我们通过调用一系列函数结合DEV_OPEN消息完成硬盘的启动工作。1.3获取硬盘参数驱动程序的作用在于隐藏硬件细节,向上层京城提供统一的接口。由于我们的进程通过收发消息相互通信,那么驱动程序的接口自然也是消息了。所以只要我们定义了驱动程序可以接收消息,也就定义了驱动程序的接口。为简单起见,我们先之定义一种消息:DEV_OPEN。可是硬盘驱动程序受到这个消息后干点什么呢?我们先来干点简单的工作:向硬盘驱动器发送IDENTIFY命令,到硬盘

4、参数。向硬盘发送IDENTIFY命令很简单,只需要通过Device寄存器的第四位指定驱动器——0表示Master,1表示Slave——然后往Command寄存器写入十六进制ECh就可以。硬盘准备好参数之后,会产生一个中断,这时我们就可以通过Data寄存器读取数据了。参数有很多,总共是256个字,我们仅仅取出其中的几个值显示。参数打印出来效果如图3.1下图3.11.1硬盘的分区1.1.1为什么要分区其实可以直接利用整个硬盘的。但是,那样未免太浪费了。我们有个想法:就是将来将我们的这个操作系统装到自己的计算机上,虽然简陋了点,不过到时候稍微设置一下Grub,实现多引导,让我们

5、的操作系统跟Linux,Windows等并存,岂不美哉?!硬盘分区表其实是一个结构体数组,数组的每个成员是一个16字节的结构体,其构成如下表1.分区表结构偏移长度描述01状态(80h=可引导,00h=不可引导,其他=不合法)11起始磁头号21起始扇区号(仅用低6位,高2位位起始柱面号的第8,9位)31起始柱面号的低8位41分区类型(SystemID)51结束磁头号61结束扇区号(仅用低6位,高2位位结束柱面号的第8,9位)71结束柱面号的低8位81起始扇区的LBA121扇区数目我们的文件系统最终是安装在扩展分区的第一个分区里1.1.1分区效果这里我们把硬盘分为了五个分区即

6、:PART_0、PART_1、PART_2、PART_3、PART_4图3.21.1.2引导扇区这里有必要介绍一下引导扇区的概念。硬盘的引导扇区是计算机启动时首先读取的扇区,它的主要功能是首先装入引导操作系统的扇区,然后将控制权转交给装入的引导操作系统的扇区,引导操作系统安装.它不属于任何操作系统,因此一般的命令等不能直接读取它,但在WindowsDOS状态下运行DEBUG.EXE程序,并输入如下程序段,即可读取主引导扇区。硬盘的第一个扇区被保留为主引导扇区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(MainBootRecord)和分区表DPT(Dis

7、kPartitionTable)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。大致的结构如图3.2所示图3.3硬盘主引导扇区=硬盘主引导记录(MBR)+硬盘分区表(DPT)用FDISK进行硬盘分区时产生的,它属于整个硬盘而不属于某个独立的DOS分区,是硬盘正确引导和使用的必要条件。物理位置:0柱面0磁头1扇区(Cyli

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。