热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>内核研究>

《深入理解Linux内核(第三版)》§2.5 Linux中的分页

来源: 作者: 时间:2008-10-17 Tag: 点击:

§2.5  Linux中的分页

Linux 采用了一种同时适用于32 位和64 位系统的普通分页模型。正像前面“64 位系统中的分页”一节所解释的那样,两级页表对32 位系统来说已经足够了,但64 位系统需要更多数量的分页级别。直到2.6.10 版本,Linux 采用三级分页的模型。从2.6.11 版本开始,采用了四级分页模型(注5)。图2-12 中展示的4 种页表分别被为:

页全局目录(Page Global Directory

页上级目录(Page Upper Directory

页中间目录(Page Middle Directory

页表(Page Table

页全局目录包含若干页上级目录的地址,页上级目录又依次包含若干页中间目录的地址,

而页中间目录又包含若干页表的地址。每一个页表项指向一个页框。线性地址因此被分

成五个部分。图2-12没有显示位数,因为每一部分的大小与具体的计算机体系结构有关。

对于没有启用物理地址扩展的32 位系统,两级页表已经足够了。Linux 通过使“页上级

目录”位和“页中间目录”位全为0,从根本上取消了页上级目录和页中间目录字段。不

过,页上级目录和页中间目录在指针序列中的位置被保留,以便同样的代码在32位系统

64位系统下都能使用。内核为页上级目录和页中间目录保留了一个位置,这是通过把

它们的页目录项数设置为1,并把这两个目录项映射到页全局目录的一个适当的目录项而

实现的。

以下部分暂略




相关文章:
精通initramfs构建step by step
Linux利用kexec迅速切换内核
进程上下文VS中断上下文
内核通知链 学习笔记
linux spi子系统驱动分析
menuconfig 配置选项
《Linux操作系统内核实习》之练习一
udev详解
什么叫微内核,宏内核?
Linux 信号signal处理机制
开发简单的 Linux2.6 内核模块
删除内核的perl脚本
Linux2.6内核usb gadget驱动移植
GCC hacks in the Linux kernel
iomem
kernel学习的想法
让自己的驱动支持udev
linux内核编译步骤
内核的等待队列
Linux内核wait_queue深入分析
升级和删除内核
SD卡驱动分析2
Linux Kernel VDSO本地权限提升漏洞
内核中的TCP的追踪分析-15-TCP(IPV4)的客户端与
linux 2.6内核可加载模块的编译
内核模块HelloWorld
在环回接口上发送一个数据报
ARP初始化
1分钟编译FreeBSD内核
linux设备模型之uart驱动架构分析