- 博客(4)
- 收藏
- 关注
转载 LINUX程序的虚拟内存映射机制
1)虚拟内存的解释:虚拟内存的核心概念是指代码所用的内存地址与物理地址没有关系.在用户空间中,一个进程的虚拟地址A指向不同的物理内存,而不是另一个进程的地址A.任何时候CPU发送指令向内存存取数据时,通过软件将虚拟地址的数据变为物理地址.将虚拟地址变为物理地址变为物理地址的工作是由内存管理单元(MMU)完成的.虚拟内存地址也可以称为逻辑地址.2)内存管理单元:内存管理单
2010-08-09 19:25:00 4332
转载 Linux内核高端内存管理
原先一直都对Linux高端内存的管理认识模模糊糊的,可能主要是初次接触Linux kernel 是0.11版吧,当初的内存设计是16M,Linus对拥有32M的内存都是觊觎万分,1G内存恐怕是天方夜谭了。16M内存哪里还顾得上高端内存,脑子就一直没有这种概念。先我们还是来看看为什么要有高端内存? 80386的线性寻址空间是4G,内核空间从3G开始,如果全部采用"线性映射"(物理地址和逻辑地
2010-08-09 14:03:00 811
转载 Linux 内存管理 -- 高端内存的映射方式
解释一:高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么?因为“内核直接映射空间”最多只能从 3G 到 4G,只能直接映射 1G 物理内存,对于大于 1G 的物理内存,无能为力。实际上,“内核直接映射空间”也达不到 1G, 还得留点线性空间给“内核动态映射空间” 呢。因此,Linux 规定“内核直接映射空间” 最多映射
2010-08-09 13:53:00 741
转载 Linux内核入门(四)—— 内核汇编语言规则
任何一个用高级语言编写的操作系统,其内核源代码中总有少部分代码是用汇编语言编写的。读过Unix Sys V源代码的读者都知道,在其约3万行的核心代码中用汇编语言编写的代码约2000行,分成不到20个扩展名为.s和.m的文件,其中大部分是关于中断与异常处理的底层程序,还有就是与初始化有关的程序以及一些核心代码中调用的公用子程序。 用汇编语言编写核心代码中的部分代码,大体上是出于如下几个方面
2010-08-01 23:25:00 1126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人