1、18.1 Linux设备管理概述 n现代计算机系统中配置了大量外围设备。这些外围设备分为两大类:一类是以存储大量信息和快速检索为目标,如磁带机、磁盘机等;另一类是输入输出型设备,如显示器、卡片机、打印机等。n18.1.1 设备管理的基本要求外围设备中断处理。外围设备的登记和使用情况跟踪,分配和去配。外围设备驱动调度。缓冲区管理。虚拟设备及其实现。18.1 Linux设备管理概述n18.1.2 驱动程序(Drivers)nLinux 核心具体负责I/O设备的操作,这些管理和控制硬件设备控制器的程序代码称为设备驱动程序。1.驱动程序与内核的接口 2.驱动程序与系统引导的接口 3.驱动程序与设备的接
2、口 18.2 Linux 0.01中断处理 n18.2.1 中断处理基本过程 1)产生中断。2)CPU应答。3)查找idt中的对应向量。4)在gdt 中查找idt项的代码段。5)对比当前的cpl和描述符的dpl看是否产生越级保护。6)检查是否发生特权级的变化,如果是就保存ss和esp,否则不保存。7)保存eflags、cs、eip和错误码。8)将idt对应描述符地址装入cs和eip中以便执行。9)执行irq_interrupt。10)执行do_irq。11)循环执行isr。12)中断返回。18.2 Linux 0.01中断处理n18.2.2 traps.c文件分析 n18.2.3 /kernel/asm.s文件分析 18.3 如何编写中断服务程序ISR n1.ISR:中断服务程序n2.中断处理程序和普通程序的区别n3.使用GCC实现ISR18.4 设备驱动程序实例利用BIOS的探测系统设备 n带有详细注释的biostest.c源代码参见光盘文件。18.5 Linux 0.01设备驱动程序源代码分析 n18.5.1 终端控制代码:console.c n18.5.2 rs323驱动代码:serial.c和rs_io.s