博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设备驱动程序
阅读量:2242 次
发布时间:2019-05-09

本文共 987 字,大约阅读时间需要 3 分钟。

设备驱动程序是内核的关键领域,因为许多用户判断操作系统性能时,主要是通过友驱动程序可用的外设数目和驱动程序对外设的支持程度来判断。因此,内核源代码的相当大一部分致力于设备驱动程序的实现。

设备驱动程序基于中心内核提供的许多不同的机制。因为驱动程序的结构通常非常类似,并且与设备无关。

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内存映射

转载地址:http://wswdb.baihongyu.com/

你可能感兴趣的文章
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>