Linux 内核不能直接访问物理地址,必须通过虚拟地址访问。

芯片寄存器是物理地址,为什么要映射成虚拟地址

Linux 启动时开启了 MMU(内存管理单元),所有地址访问都是虚拟地址。

虽然底层是物理内存/寄存器,但内核访问时都是通过虚拟地址间接访问的。

bash 复制代码
项目				内容
谁定义寄存器地址?	硬件设计人员
软件能改吗?			不能,只能遵循手册使用
软件怎么用这些地址?	通过 ioremap 等方式映射后访问
为什么不能直接访问?	需要通过 MMU 映射进虚拟地址空间
相关推荐
..Move...21 小时前
Docker镜像制作
运维·docker·容器
无聊的小坏坏1 天前
从零开始:C++ 多线程 TCP 服务器实战(续篇)
服务器·c++·tcp/ip
利刃大大1 天前
【高并发服务器】十、Connection连接管理模块设计与实现
服务器·c++·高并发·项目
Felven1 天前
统信系统下设置RTC时间
linux·rtc·1024程序员节
码龄3年 审核中1 天前
说说SSH的端口转发
大数据·运维·ssh
盛世隐者1 天前
【Linux】定制Linux系统
linux·运维·服务器
-Excalibur-1 天前
形象解释关于TCP/IP模型——层层封装MAC数据帧的过程
linux·c语言·网络·笔记·单片机·网络协议·tcp/ip
小跌—1 天前
Linux:数据链路层
linux·网络
用户31187945592181 天前
Fedora 37 安装 libicu-71.1-2.fc37.x86_64.rpm 教程(命令行步骤)
linux
搬砖的小码农_Sky1 天前
Linux(Ubuntu)操作系统下文件的解压
linux·ubuntu