《深入理解Linux内核》-2.1. 内存地址

80x86体系上有三种地址:

逻辑地址(Logical address)

  • 机器语言指令中用来指定操作数的地址。逻辑地址包含段和偏移,偏移定义了段到实际地址的举例。

线性地址(Linear address,也叫虚拟地址)

  • 32位的无符号整数,最大可以表示4GB的内存空间。

物理地址

  • 用来定位内存芯片中的内存单元。对应于从微处理器针脚发送给存储器总线的电信号。

内存管理单元(MMU)通过一个叫分段单元的硬件装置把逻辑地址转化为线性地址;然后,另一个叫分页单元的硬件装置把线性地址转换为物理地址(看图2-1)。

图 2-1. 逻辑地址转换

这里写图片描述

多处理器系统上,所有CPU可能共享一块内存,这意味着RAM芯片被不同的CPU并发访问。由于RAM上的读写操作必须顺序执行,因此在总线和RAM芯片之间添加了一个叫内存仲裁器的硬件装置。它的作用是保证在内存空闲的时候cpu可以访问,忙的时候,延迟访问。即使在但处理器系统上,也会有内存仲裁器,因为DMA控制器可以和CPU并发访问内存。在多处理器系统上,内存仲裁器更加复杂,因为它包含多个输入端口。 举例来说,双核奔腾处理器,在每个芯片入口维护一个双端口仲裁器,并且要求这两个CPU在尝试使用通用总线的时候必须交换同步信息。从编程的角度看,仲裁器不可见,因为它由硬件装置管理。

当着手翻译第三版时,我不由得回想起开始接触Linux 的那投日子。 几年前,当我们拿到Linux 内核代码开始研究时,可以说茫然无措。其规模之大,叫“覆 压三百余里,隔离天日”似乎不为过;其关系错综复杂,叫"廊腰线回,檐牙高啄,各 抱地势,勾心斗角”也非言过其实。阿房宫在规模和结构上给人的震撼可能与Linux 有 异曲同工之妙。“楚人一炬,可怜焦土”,可能正是因为它的结构和规模,阿房宫在中国 两十多年矗极的计建历史中终于没有再现,只能叫后人扼腕叹息;但是, Linux 却实实 在在地矗立在我们面前,当我们徘徊在这宏伟宫殿之前时,攻许,我们也需要火炬 不是用来效灭,而是为了照亮勇者脚下的征途。 Linus Torvalds 在我们面前展现的Linux 魔法卷轴,让我们的视野进入一个自由而开放 的新世界。自由意味着自我价值的实现,开放代表着团结协作的理想,这对于从没把握 过核心操作系统的中国人来说,无疑燃起了心中的梦想。于是,许多人毫不犹豫地走进 来了,希望深入到那散发自由光彩、由众人团结协力搭造起的殿堂。但是很快,不少人 迻缩了。面对这样一个汪洋大诲,有的人迷惑了,出诲的航道在哪里?有的人倒下了. 漫漫征途何时是尽头?我常常想,如果那时他们手中就有这本书的话…… Daniel P.Bovet 和Marco Cesati 携手为我们打造了这本浅无巨著,自此我们有了火把, 有了航诲图,于是我们就有了彼岸,有了航道,也有了补给码头。不是吗?中断虽繁, 但笫四、六两章切中肯紧的剖析,肯定能让你神清气爽;内存管双虽淮, 但多达三章细 致入微的说理一定会让你茅塞顿开。内容的组织更是别具匠心,每章开始部分一般性原 理的描述打破了知识的局限,将每个部分的全景展现在你面前。而针对每个知识点芯到 实处的独到分析,又会使你沉迷于知识的社会贯通之中。第三版对Linux 2.6 的全面描 述会使你为2.4 与2.6 之间的沟壑而感叹`但请放心,你曾从Linux 旧版本中荻取的点滴 依然是你前进的基石。总之,你面对的不再是赤裸裸的代码,而是真正能雅俗共赏的艺 术。 对整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值