1 Linux 虚 存 分 析 报 告 第一章 前 言 2 第二章 LINU X 虚存管理概述 3 1、LINUX 虚存管理的基本特点 3 2、LINUX 虚存管理的主要实现技术 3 第三章 LINU X 虚存管理数据结构 4 1、32-BIT 虚拟地址 4 2、LINUX 的多级页表结构 5 3、页表项的格式 6 4、动态地址映射 7 5、用户进程的虚拟内存结构 7 6、我们的工作 10 第四章 PROCESS 的虚存管理数据结构的建立、维护、拆除及相关系统调用流程 11 1、进程的载入、创建及内存管理数据结构和链结关系的建立 11 2、数据结构及链结关系的拆除(SYS__EXIT) 13 3、缺页中断服务 14 第五章 主要函数分析 16 MEMORY.C 16 MMAP.C 22 2 第一章 前 言 Lin u x 是一个功能强大的操作系统,而内存管理则是操作系统的核心,它负责管理计算机系统的存储器。作为操作系统的核心,必须能够克服物理内存的局限,使用户进程在透明方式下,拥有比实际物理内存大得多的内存。其策略之一就是使用虚拟内存。Lin u x 成功地实现了以虚拟内存为核心的内存管理策略,强大得分页机制,公平得交换方式,各类有效得高速缓存,以及以页保护为主得保护措施等。内存管理的目的是要尽可能地方便用户。同时Lin u x 系统通过对用户进程虚存的有效管理,作到了虚存对一般用户和Lin u x 程序员的透明。 本文首先阐述了Lin u x 虚存管理以基本特点和主要实现技术,并分析了Lin u x 虚存管理的主要数据结构及其相关关系。围绕它的建立、维护、使用和拆除,作了一个粗浅的剖析,因本人水平有限,有不当之处,敬请指正。 3 第二章Linux虚存管理概述 Linux 的内存管理采用页式管理,使用多级页表,动态地址转换机构与主存、辅存共同实现虚拟内存:每个用户Process 拥有4GB 的虚拟地址空间,Process 在运行过程中可以动态浮动和扩展,为用户提供了透明的、灵活有效的内存使用方式,下面简述Linux 虚存管理以基本特点和主要实现技术: 1、 Linux虚存管理的基本特点 1. 更大的地址空间。 虚拟内存可以是系统实际拥有的物理内存的若干倍。因而它使得操作系统看起来拥有比实际大得多的内存。 2. 合理的物理内存分配。 Linux 通过共享和交换策略,使各个运行的进程能公平地共享内存。 3. 保护。 Linux 存储管理子系统为每一内存页设置了“上锁位”,在线性地址及每级页表页项上设置了“读/写”位,这样来确保某一个进程不受其他进程的干扰...