我正在学习操作系统开发,而且我正处于初级水平。我创建了一个简单的启动加载器要访问磁盘上的其他文件(比如HDD或USB驱动器),我应该使用哪种寻址模式?(CHS或LBA或INT 13h扩展)。
这些寻址模式中的哪一种非常有效(手段,可以用于大多数驱动器)?
由于
答案 0 :(得分:5)
首先,INT13h扩展是API的扩展,而不是HD寻址方法。
您必须确定是要使用BIOS还是直接硬件访问 使用BIOS是不切实际的,因为它提供了16位接口。但是,它非常容易使用。在这种情况下,您将使用LBA作为寻址方法。
LBA对于CHS就像弧度一样。 这是一个更自然的单位,它突破了504 MiB和7.9 GiB限制。 有little reason to use CHS。 CHS是一种历史人工制品,早于硬盘驱动器在公共市场上的传播。
如果要使用直接硬件访问,则只能使用LBA。在撰写本文时,当前ATA/ATAPI 8 Command Set已弃用CHS:
在标准ATA / ATAPI-5及更早版本中,定义了CHS翻译。这个翻译已经过时但是如果 实施它应按照ATA / ATAPI-5的规定实施。
访问具有直接硬件访问权限的磁盘并不是即将到来,您至少需要一个基本的PCI / PCIe或USB总线驱动程序才能访问磁盘控制器,即主控制器驱动程序(可以是{{3 }},IDE,AHCI用于PCI / PCIe设备)向磁盘和驱动程序发出命令,以实现这些命令使用的协议(例如NVMe,SCSI and variants ,ATA/ATAPI,MMC等等。
所以我相信你会使用INT13h扩展,在这种情况下,最好的寻址方法是BIOS提供的64位LBA。