社区
Linux_Kernel
帖子详情
关于linux临时内核页表的双映射问题
ayuan114
2011-04-03 06:19:35
最近在学习linux内核,我想问为什么要双映射?直接映射到3G以上不就行了吗?
...全文
87
3
打赏
收藏
关于linux临时内核页表的双映射问题
最近在学习linux内核,我想问为什么要双映射?直接映射到3G以上不就行了吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nimi521
2011-04-06
打赏
举报
回复
节省内存么
jiura
2011-04-06
打赏
举报
回复
数据段..代码段.堆段..栈段..
程序进程编译后就已经分配, 而且每个进程都会分配比实际需要内存大的多的内存空间.
这样算下来..3G就不够了..
lgjywjy
2011-04-06
打赏
举报
回复
因为在硬件上, 高位内存是有用处的(用作设备映射等), 就像以前16位时代, 1M的内存, 640k以上是bios用掉的一样.
疯狂
内核
之——
Linux
虚拟内存
目录 第一章
Linux
底层分段分页机制 5 1.1 基于x86的
Linux
分段机制 5 1.2 基于x86的
Linux
分页机制 7 1.2.1 页全局目录和
页表
8 1.2.2 线性地址到物理地址 10 1.2.3 线性地址字段处理 13 1.2.4
页表
处理 15 1.3 扩展分页与联想存储器 20 1.4
Linux
内存布局 21 1.5
内核
空间和用户空间 23 1.5.1 初始化
临时
内核
页表
24 1.5.2 永久
内核
页表
的初始化 32 1.5.3 第一次进入用户空间 41 1.5.4
内核
映射
机制实例 44 1.6 固定
映射
的线性地址 48 1.7 高端内存
内核
映射
50 1.8.1 永久内存
映射
50 1.8.2
临时
内核
映射
55 第二章
内核
级内存管理系统 58 2.1
Linux
页面管理 58 2.1.1 NUMA架构 61 2.1.2 内存管理区 62 2.2 伙伴系统算法 65 2.2.1 数据结构 66 2.2.2 块分配 67 2.2.3 块释放 69 2.3
Linux
页面级内存管理 72 2.3.1 分配一组页面 73 2.3.2 释放一组页面 80 2.4 每CPU页面高速缓存 81 2.4.1 数据结构 81 2.4.2 通过每CPU 页高速缓存分配页面 82 2.4.3 释放页面到每CPU 页面高速缓存 83 2.5 slab分配器 85 2.5.1 数据结构 86 2.5.2 分配/释放slab页面 92 2.5.3 增加slab数据结构 93 2.5.4 高速缓存内存布局 94 2.5.5 slab着色 95 2.5.6 分配slab对象 96 2.5.7 释放Slab对象 100 2.5.8 通用对象 102 2.5.9 内存池 103 2.6 非连续内存区 104 2.6.1 高端内存区回顾 105 2.6.2 非连续内存区的描述符 106 2.6.3 分配非连续内存区 109 2.6.4 释放非连续内存区 113 第三章 进程的地址空间 117 3.1 用户态内存分配 117 3.1.1 mm_struct数据结构 118 3.1.2
内核
线程的内存描述符 122 3.2 线性区的数据结构 123 3.2.1 线性区数据结构 123 3.2.2 红-黑树算法 126 3.2.3 线性区访问权限 128 3.3 线性区的底层处理 130 3.3.1 查找给定地址的最邻近区 131 3.3.2 查找一个与给定的地址区间相重叠的线性区 135 3.3.3 查找一个空闲的地址区间 135 3.3.4 向内存描述符链表中插入一个线性区 137 3.4 分配线性地址区间 141 3.5 释放线性地址区间 151 3.5.1 do_munmap()函数 151 3.5.2 split_vma()函数 153 3.5.3 unmap_region()函数 155 3.6 创建和删除进程的地址空间 156 3.6.1 创建进程的地址空间 156 3.6.2 删除进程的地址空间 175 3.6.3
内核
线程1号的地址空间 176 3.7 堆的管理 178 第四章 磁盘文件内存
映射
182 4.1 内存
映射
的数据结构 182 4.2 内存
映射
的创建 184 4.3 内存
映射
的请求调页 194 4.4 刷新内存
映射
的脏页 203 4.5 非线性内存
映射
210 第五章 页面的回收 215 5.1 页框回收概念 215 5.1.1 选择目标页 216 5.1.2 PFRA设计 217 5.2 反向
映射
技术 218 5.2.1 匿名页的反向
映射
220 5.2.2 优先搜索树 226 5.2.3
映射
页的反向
映射
231 5.3 PFRA实现 235 5.3.1 最近最少使用(LRU)链表 236 5.3.2 内存紧缺回收 242 5.3.3 回收磁盘高速缓存的页 267 5.3.4 周期回收 273 5.3.5 内存不足删除程序 283 第六章 交换机制 289 6.1 交换区数据结构 289 6.1.1 创建交换区 290 6.1.2 交换区描述符 291 6.1.3 换出页标识符 293 6.2 激活和禁用交换区 295 6.2.1 sys_swapon()系统调用 296 6.2.2 sys_swapoff()系统调用 304 6.2.3 try_to_unuse()函数 308 6.3 分配和释放页槽 313 6.3.1 scan_swap_map()函数 313 6.3.2 get_swap_page()函数 316 6.3.3 swap_free()函数 318 6.4 页面的换入换出 320 6.4.1 交换高速缓存 320 6.4.2 换出页 323 6.4.3 换入页 329 第七章 缺页异常处理程序 335 7.1 总体流程 335 7.2 vma以外的错误地址 341 7.3 vma内的错误地址 346 7.3.1 handle_mm_fault()函数 348 7.3.2 请求调页 352 7.3.3 写时复制 358 7.4 处理非连续内存区访问 364
[14本经典Android开发教程]-8-
Linux
内核
阅读心得体会
[14本经典Android开发教程] 8
Linux
内核
阅读心得体会 读核感悟 2 读核感悟
Linux
内核
启动
内核
的生成 2 读核感悟
Linux
内核
启动 从hello world说起 3 读核感悟
Linux
内核
启动 BIOS 5 读核感悟
Linux
内核
启动 setup辅助程序 6 读核感悟
Linux
内核
启动
内核
解压缩 8 读核感悟
Linux
内核
启动 开启页面
映射
9 读核感悟
Linux
内核
启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场
内核
线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统
内核
模块的编译 22 读核感悟 kbuild系统 编译到
内核
和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理
内核
中的
页表
映射
总结 43 读核感悟 健壮的代码 exception table
内核
中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步
问题
同步
问题
概述 55 1 同步
问题
的产生背景 55 2
内核
态与用户态的区别 55 读核感悟 同步
问题
内核
态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9
内核
中的AIO 59 1 AIO概述 59 2
内核
态AIO的使用 61 读核感悟 文件读写
内核
态AIO相关结构体 61 1
内核
态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写
内核
态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写
内核
态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5
linux
Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8
Linux
内核
阅读心得体会 读核感悟 2 读核感悟
Linux
内核
启动
内核
的生成 2 读核 [更多]
Linux
0.11版本
内核
深入理解套餐
从
内核
引导,中断处理,到硬盘驱动开发,帮你一站解决底层开发盲区,对嵌入式开发有更深入的理解。
linux
进程的
页表
,
Linux
内核
页表
和进程
页表
初学
内核
时,经常被“
内核
页表
”和“进程
页表
”搞晕,不知道这到底是个啥东东,跟我们平时理解的
页表
有什么关系。
内核
页表
:即书上说的主
内核
页表
,在
内核
中其实就是一段内存,存放在主
内核
页全局目录init_mm.pgd(swapper_pg_dir)中,硬件并不直接使用。进程
页表
:每个进程自己的
页表
,放在进程自身的页目录task_struct.pgd中。在保护模式下,从硬件角度看,其运行的基本对象为“进程”...
Linux
内核
源码分析 (B.x)
Linux
页表
的
映射
Linux
内核
源码分析 (B.x)
Linux
页表
的
映射
文章目录
Linux
内核
源码分析 (B.x)
Linux
页表
的
映射
一、ARM32
页表
1、
页表
术语2、虚拟地址到物理地址转换3、一级
页表
项4、二级
页表
项二、ARM64
页表
1、ARMv8-A架构2、4KB大小页+4级
映射
三、
Linux
内核
中关于
页表
的函数和宏1、查询
页表
2、判断
页表
项的状态3、修改
页表
四、研究实例 一、ARM32
页表
1、
页表
术语 在
Linux
内核
源码中会用到PDG、PUD、PMF和PT等简称,但在ARM芯片手册上会使用L1、L2、L3等术
Linux_Kernel
4,438
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章