Linux内核驱动(四):2、内核地址空间

本文介绍了Linux内核驱动中关于内核地址空间的细节,包括内核空间、高端内存的概念,以及内核空间的五种区域划分:直接映射区、动态映射区、永久内存映射区、固定映射区和虚拟内存分配区。重点阐述了内存动态申请函数kmalloc、__get_free_pages和vmalloc的使用场景,以及虚拟地址与物理地址的关系。此外,还讨论了ioremap和mmap在设备内存映射中的作用,以及IO内存的一般访问流程。
摘要由CSDN通过智能技术生成

一、内核空间

        内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。

二、高端内存:物理内存地址超过896M以上的内存,我们就称之为高端内存

三、内核空间分布图



(1)内核空间的地址范围位于虚拟地址的 3G-4G位置处,大小为1G。

(2)直接映射区(Direc Memory Regiont):之所以称之为直接映射区是因为,该区域的线性地址和物理地址之间存在线性转换关系:线性地址 = 3G + 物理地址; Eg: 物理地址区间 0x100000--0x200000映射到线性空间就是3G+0x100000-3G+0x200000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值