当前位置: 首页 > web >正文

操作系统OS是如何指挥外围设备的呢?

众所周知,OS的职责之一就是管理外围设备,比如常见的磁盘、硬盘、显示器、麦克风等,但并不是外围设备的一切都必须由OS管理,比如无线鼠标上的开关键,当你通过它关闭鼠标时,这个操作并不会经过OS,而是直接由鼠标内部的硬件处理,再比如显示屏上的状态指示灯的亮灭,这也是设备自己通过硬件实现的功能。

每个外围设备有个对应的设备控制器,和设备一样都属于硬件。通过这个硬件提供的指令,实现对设备的控制,比如磁盘中读取数据的指令。光是磁盘这一种设备就有很多不同的公司研发生产,同一种功能,不同公司的实现方式是不一样的,具体的底层硬件指令也是不一样的。OS并不知道这些具体的、错综复杂的指令,那怎么指挥外围设备呢?

答案是驱动程序。

每个设备厂商都会实现自己的驱动程序,但是不同的厂家实现驱动程序时会遵循业内规范,去实现这些标准化的接口、协议,比如存储设备领域的SCSI (Small Computer System Interface)。假设其中读取数据的API名儿叫read()
读取数据过程如下:

  • OS向驱动程序发送read()请求
  • 驱动程序则转换成具体的若干个指令,发送给设备控制器
  • 控制器执行这些指令后,将数据返回给驱动程序
  • 驱动程序处理数据后,再返回给OS
http://www.xdnf.cn/news/3356.html

相关文章:

  • MySQL 服务搭建
  • Leetcode刷题记录25——合并区间
  • MySQL与分布式架构的碰撞
  • 使用MGeo模型高精度实现文本中地址识别
  • 题解:洛谷 CF2091E Interesting Ratio
  • Java 中使用正则表达式
  • 在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
  • 【计算机视觉】语义分割:Mask2Former:统一分割框架的技术突破与实战指南
  • Mysql常用函数解析
  • Annotate better with CVAT
  • 华为OD机试真题——斗地主之顺子(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 《TCP/IP详解 卷1:协议》之第九章:IP选路
  • 湖仓一体化介绍
  • 数据库基本概念:数据库的定义、特点、分类、组成、作用
  • 详解TypeScript中的类型断言及其绕过类型检查机制
  • 【Vue bug】:deep()失效
  • 如何提升自我执行力?
  • 拆解 browser-use 项目——深入理解 Agent 层
  • Linux 环境下 Mysql 5.7 数据定期备份
  • Kotlin-运算符重载函数
  • 生产级RAG系统一些经验总结
  • HTN77A0原理图提供聚能芯半导体禾润一级代理技术支持免费送样
  • 1295.统计位数为偶数的数字
  • SWIG 和 JNA / JNI 等 C 接口封装工具及进行 C 接口的封装
  • AnimateCC基础教学:二次贝塞尔曲线的绘制。
  • Android 动态权限申请
  • 多通道经颅电刺激器的主流厂家介绍
  • hadoop集群建立
  • 【keil使用】无法打开keil工程,只有空白界面的解决方法
  • rk3568安全启动功能实践