操作系统相关问题——软件是如何访问硬件的

简介: 硬件是各种各样的,发展速度还是非常快的。每个硬件都有自己的个性,操作系统不可能及时更新各种硬件的驱动方法(不可能刚出某个新硬件,OS开发者就开始为其编写驱动,这显然不现实)。因此便出现了各种硬件适配器,这就是IO接口。接口其实就是标准,大家生产生出来的硬件按照这个标准工作就实现了通用。硬件在输入输出上大体分为串行和并行,相应的接口也就是串行接口和并行接口。

硬件是各种各样的,发展速度还是非常快的。每个硬件都有自己的个性,操作系统不可能及时更新各种硬件的驱动方法(不可能刚出某个新硬件,OS开发者就开始为其编写驱动,这显然不现实)。


因此便出现了各种硬件适配器,这就是IO接口。接口其实就是标准,大家生产生出来的硬件按照这个标准工作就实现了通用。硬件在输入输出上大体分为串行和并行,相应的接口也就是串行接口和并行接口。



访问外部硬件有两个方式:


  • 将某个外设的内存映射到一定范围的地址空间中,CPU通过地址总线访问该内存区域时会落到外部的内存中,这种映射让CPU访问外设的内存就如同访问主板上的物理内存一样。


显卡就是这么做的。显卡是显示器的适配器,CPU不直接和显示器交互,它只和显卡通信。显卡上有片内存叫显存,它映射到主机物理内存上的低端1MB的0xB8000-0xBFFFF。CPU访问这片内存就是访问显存,往这片内存写字节便是往屏幕上打印内容。


  • CPU通过访问IO接口与外设通信,CPU访问外设就是访问IO接口,由IO接口将信息传给另一端的外设,也就是说CPU从来不知道有这些设备的存在,它只知道自己操作的IO接口。


IO接口位于总线与IO设备之间,接口上有一些寄存器,访问IO接口本质上就是访问这些寄存器,这些寄存器就是人们常说的端口。这些端口是IO接口给CPU和外设使用提供的接口


相关文章
|
22天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时🌌,我们经常会遇到许多关键概念和工具🛠️,它们使得Linux成为了一个强大和灵活的操作系统💪。其中,"设备树"(Device Tree)是一个不可或缺的部分🌲,尤其是在嵌入式系统🖥️和多平台硬件支持方面🔌。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它🌳。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
8天前
|
存储 Linux API
软件体系结构 - 嵌入式系统(2)- 嵌入式操作系统
软件体系结构 - 嵌入式系统(2)- 嵌入式操作系统
12 0
|
18天前
|
安全 Ubuntu Linux
软件体系结构 - 操作系统
【4月更文挑战第10天】软件体系结构 - 操作系统
24 1
|
2月前
|
存储 缓存 NoSQL
|
2月前
|
存储 Ubuntu 网络安全
|
2月前
|
存储 Ubuntu Unix
【Linux】1、操作系统、计算机硬件和软件、Linux 介绍
【Linux】1、操作系统、计算机硬件和软件、Linux 介绍
42 0
|
3月前
|
IDE Linux 开发工具
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件
68 1
|
5月前
|
人工智能 算法 安全
解读产业趋势,展现核心成果!统信软件分论坛议程新鲜出炉 | 2023 龙蜥操作系统大会
从研发到构建再到迭代,一起看统信首次提出的分层分类算法的实现,赋予操作系统新生命。
解读产业趋势,展现核心成果!统信软件分论坛议程新鲜出炉 | 2023 龙蜥操作系统大会
|
7月前
|
存储 人工智能 安全
|
7月前
|
PyTorch 算法框架/工具 Docker
Docker 镜像和你的操作系统或者硬件有一些兼容性问题。
Docker 镜像和你的操作系统或者硬件有一些兼容性问题。
90 2