设备驱动程序

设备驱动程序是内核的关键领域,因为许多用户判断操作系统性能时,主要是通过友驱动程序可用的外设数目和驱动程序对外设的支持程度来判断。因此,内核源代码的相当大一部分致力于设备驱动程序的实现。
设备驱动程序基于中心内核提供的许多不同的机制。因为驱动程序的结构通常非常类似,并且与设备无关。

6.1 I/O体系结构
与外设的铜线通常称之为输入输出,一般都缩写为I/O。在实现外设的I/O时,内核必须处理3个可能出现问题领域。首先,必须根据具体的设备类型和模型,使用各种方法对硬件寻址。其次,内核必须向用户应用程序和系统工具提供访问各种设备的方法。
与外设的通信是层次化的。
对各个设备的访问,通过层次化的多个抽象层进行。在层次结构的地步是设备自身,通过总线系统连接到其他设备和系统CPU。设备与内核的通信ingredients有盖路径进行。

扩展硬件

1.总线系统
*PCI(Peripheral Component Interconnect):许多体系结构上使用的主要系统总线。
*ISA (Industrial Standard Architecutre):一种比较古老的总线
*SBus:这是一个非常高级的总线。
*IEEE1394:对市场而言,这显然不是一个较通俗的名字。
*USB(Universal Serial Bus);这也是一种广泛应用的外不总线,有很高的市场接受度。
*SCSI(Small Computer System Interface):这种总线过去称为专业人员的总线,主要勇子啊服务器系统上须知硬盘可适用于大多数处理器体系结构。
*并口与串口(Parallel and Serial Interface):这些存在于大多数体系结构上,无论整个系统的设计如何。

去论采用的处理器体系结构如何,系统都不会只有一种总线,而是一些总线的组合。

2 与外设的交互
*I/O端口
一种选项是使用IA-32和许多其他体系结构上都有的I/O端口。内核发哦是哪个数据给I/O控制器。数据的目标设备通过唯一的额端口好标识,数据被传输的设备进行处理。处理器管理了一个独立的虚拟地址空间,可用于管理所有I/O地址。
outb(写一个字节)、outw(写一个子)\inb(读取一个字节)之类的命令在asm-arch/io.h中实现。着些定义域具体处理器非常相关
*I/O内存映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值