Linux操作系统基础知识之九:设备驱动

Q1.        为什么把设备分为“块设备”和“字符设备”两大类?

A:

1)        Linux将设备看成文件,具有三方面的含义:第一,每个设备都对应一个文件名,在内核中也就对应一个索引节点;第二,对文件操作的系统调用大都适用于设备文件;第三,从应用程序的角度看,设备文件的逻辑空间是一个线性空间;对于同一个具体的设备而言,文件操作和设备驱动是同一个事物的不同层次,概念上可以将一个系统划分为应用、文件系统和设备驱动三个层次;

2)        Linux将设备分为两大类,一类是像磁盘那样的以块或扇区为单位、成块进行输入/输出的设备,称为块设备;另一类是像键盘那样以字符(字节)为单位,逐个字符进行输入/输出的设备,称为字符设备;文件系统通常都建立在块设备上。

 

Q2.        什么是设备驱动程序?

A:Linux中处理和管理硬件控制器的软件就是设备驱动程序

 

Q3.        I/O端口一般包括哪些寄存器?各自功能是什么?

A:

1)        I/O端口包括控制寄存器状态寄存器数据寄存器三大类;

2)        根据访问外设寄存器的不同方式,将CPU分为两大类:一类是“内存映射”(memory-mapped)方式,另一类是“I/O映射”(I/O- mapped)方式。

上一篇:Linux操作系统基础知识之六:系统调用


下一篇:Linux操作系统基础知识之七:内核中的同步