读/写硬盘数据的过程
读数据
1.系统调用hd_out函数向硬盘控制器发送写命令
//// 向硬盘控制器发送命令块。
// 调用参数:drive - 硬盘号(0-1); nsect - 读写扇区数;
// sect - 起始扇区; head - 磁头号;
// cyl - 柱面号; cmd - 命令码(读/写);
// *intr_addr() - 硬盘中断处理程序中将调用的C 处理函数。
static void hd_out (unsigned int drive, unsigned int nsect, unsigned int sect,
unsigned int head, unsigned int cyl, unsigned int cmd,
void (*intr_addr) (void))
{
register int port asm ("dx"); // port 变量对应寄存器dx。
if (drive > 1 || head > 15) // 如果驱动器号
Linux 0.11 硬盘读写操作解析

本文详细介绍了Linux 0.11内核中读取硬盘数据的过程,包括hd_out函数如何发送命令到硬盘控制器,硬盘中断处理程序如何通过中断通知操作系统,以及read_intr函数如何检测读操作的成功与失败。通过对硬盘状态端口的检查和数据的传输,实现了从硬盘到系统缓冲区的数据读取。
最低0.47元/天 解锁文章
4700

被折叠的 条评论
为什么被折叠?



