硬盘基础知识

什么是扇区:

  扇区是硬盘最基本存储单位,一般扇区大小为512字节;

什么是磁道:

  硬盘都是由多盘片组成的,盘片表面上以盘片面性中心为圆

心,不同半径的同心圆为磁道。磁道分成多个扇形区域即为扇区;

什么是柱面:

  多个不同盘片相同半径的同心圆。

一般柱面和磁道能用;

硬盘容量:

  存储容量  = 磁头数*磁道(柱面)数*每道扇区数*每扇区字节数

硬盘的寻址:

老式硬盘采用CHS(cylinder/head/sector )即三维地址模式,由于老式硬盘

每个磁道的扇区数都是相同的,因此外磁道比磁道密度小,就造成了浪费;

现在硬盘采用LBA即扇区的逻辑块地址;不同磁道的扇区密度相等;

LBA模式下,系统把所有的物理扇区按照某种方式看做是一个线性编号。

为了与老式硬盘兼容,在硬盘控制器内部安装了一个地址翻译器,由它负责将CHS参数翻译

成LBA地址;

硬盘操作:

BIOS Int 13H 调用是 BIOS 提供的磁盘基本输入输出中断调用, 它可以完成磁盘(包括硬盘和软盘)的复位, 读写, 校验, 定位, 诊断, 格式化等功能。

磁盘地址数据包 Disk Address Packet (DAP)
  DAP 是基于绝对扇区地址的, 因此利用 DAP, Int13H 可以轻松地逾
越 1024 柱面的限制, 因为它根本就不需要 CHS 的概念.
  DAP 的结构如下:

    struct DiskAddressPacket
    {
        BYTE PacketSize;     // 数据包尺寸(16字节)
        BYTE Reserved;       // ==0
        WORD BlockCount;     // 要传输的数据块个数(以扇区为单位)
        DWORD BufferAddr;    // 传输缓冲地址(segment:offset)
        QWORD BlockNum;      // 磁盘起始绝对块地址
    };
驱动器参数数据包 Drive Parameters Packet
  驱动器参数数据包是在扩展 Int13H 的取得驱动器参数子功能调用中
使用的数据包. 格式如下:
    struct DriveParametersPacket
    {
        WORD InfoSize;          // 数据包尺寸 (26 字节)
        WORD Flags;             // 信息标志
        DWORD Cylinders;        // 磁盘柱面数
        DWORD Heads;            // 磁盘磁头数
        DWORD SectorsPerTrack;  // 每磁道扇区数
        QWORD Sectors;          // 磁盘总扇区数
        WORD SectorSize;        // 扇区尺寸 (以字节为单位)
    };
    信息标志用于返回磁盘的附加信息, 每一位的定义如下:

    0 位:
        0 = 可能发生 DMA 边界错误
        1 = DMA 边界错误将被透明处理
        如果这位置 1, 表示 BIOS 将自动处理 DMA 边界错误, 也就是说
        错误代码 09H 永远也不会出现.

    1 位:
        0 = 未提供 CHS 信息
        1 = CHS 信息合法
        如果块设备的传统 CHS 几何信息不适当的话, 该位将置 0.

    2 位:
        0 = 驱动器不可移动
        1 = 驱动器可移动

    3 位: 表示该驱动器是否支持写入时校验.

    4 位:
        0 = 驱动器不具备介质更换检测线
        1 = 驱动器具备介质更换检测线


    5 位:
        0 = 驱动器不可锁定
        1 = 驱动器可以锁定
        要存取驱动器号大于 0x80 的可移动驱动器, 该位必须置 1
        (某些驱动器号为 0 到 0x7F 的设备也需要置位)

    6 位:
        0 = CHS 值是当前存储介质的值 (仅对于可移动介质), 如果
        驱动器中有存储介质, CHS 值将被返回.
        1 = CHS 值是驱动器支持的最大值 (此时驱动器中没有介质).

    7 - 15 位: 保留, 必须置 0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值