Pan*_*der -1 x86 assembly kernel disk-access bootloader
我正在学习OS开发,我处于初级水平.我创建了一个简单的启动加载器 要访问磁盘上的其他文件(比如HDD或USB驱动器),我应该使用哪种寻址模式?(CHS或LBA或INT 13h扩展).
哪种寻址方式非常有效(手段,可以用于大多数驱动器)?
谢谢
首先,INT13h扩展是API的扩展,而不是HD寻址方法.
您必须确定是要使用BIOS还是直接硬件访问.
使用BIOS是不切实际的,因为它提供了16位接口.但是,它非常容易使用.在这种情况下,您将使用LBA作为寻址方法.
LBA对于CHS就像弧度一样.它是一个更自然的单位,它突破了504 MiB和7.9 GiB限制.有什么理由使用CHS.CHS是一种历史人工制品,早于硬盘驱动器在公共市场上的传播.
如果要使用直接硬件访问,则只能使用LBA.在撰写本文时,当前的ATA/ATAPI 8命令集已弃用CHS:
在标准ATA/ATAPI-5及更早版本中,定义了CHS翻译.这种翻译已经过时,但如果实施,则应按照ATA/ATAPI-5的规定实施.
然而,访问具有直接硬件访问权限的磁盘并非即将到来,您至少需要一个基本的PCI/PCIe或USB总线驱动程序来访问磁盘控制器,一个主机控制器驱动程序(可以是IDE,AHCI,NVMe for PCI/PCIe设备)向磁盘和驱动程序发出命令,实现这些命令使用的协议(例如SCSI和变体,ATA/ATAPI,MMC,UMS等).
所以我相信你会使用INT13h扩展,在这种情况下,最好的寻址方法是BIOS提供的64位LBA.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |