`
waterlife
  • 浏览: 67863 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Linux内核之虚拟内存管理(二)

阅读更多

Linux把整个的虚拟存贮空间自上而下分为系统空间,堆栈空间,数据段和代码段。当系统访问页面异常时,cpu将失败的线性地址保存在CR2中。同时还会传来两个参数pt_regs和error_code。前者保存了异常发生前夕各寄存器的一个副本。

 

struct pt_regs {
	long ebx;
	long ecx;
	long edx;
	long esi;
	long edi;
	long ebp;
	long eax;
	int  xds;
	int  xes;
	long orig_eax;
	long eip;
	int  xcs;
	long eflags;
	long esp;
	int  xss;
};

 各寄存器的含义如下:

eax,ebx,ecx,edx----数据寄存器,其中eax是累加器;

esi,edi---变址和指针寄存器;

esp,ebp----指针寄存器;

eip---- 指令指针寄存器;

eflags----标志寄存器;

xcs,xds,xes,xss---段寄存器,code,data,stack,specail。

orig_eax 有特殊的用途,我们将在以后的文章中进行讨论。

 

Note:

80386有如下寄存器:

  • 8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp;
  • 8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp;
  • 8个8-bit寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl。它们事实上是寄存器%ax,%bx,%cx,%dx的高8位和低8位;
  • 6个段寄存器:%cs(code),%ds(data),%ss(stack), %es,%fs,%gs;
  • 3个控制寄存器:%cr0,%cr2,%cr3;
  • 6个debug寄存器:%db0,%db1,%db2,%db3,%db6,%db7;
  • 2个测试寄存器:%tr6,%tr7;
  • 8个浮点寄存器栈:%st(0),%st(1),%st(2),%st(3),%st(4),%st(5),%st(6),%st(7)。

 

 

分享到:
评论

相关推荐

    Linux内核的内存管理探秘之四 虚拟内存的管理.pdf

    Linux 内核的内存管理探秘之四 虚拟内存的管理 Linux 操作系统中,内存管理是非常重要的一部分。虚拟内存技术是现代操作系统中的一个关键技术,它克服了旧有的内存管理的限制,允许系统运行比物理内存大的应用程序...

    Linux虚拟内存管理.pdf

    "Linux虚拟内存管理" Linux操作系统中,虚拟内存管理是指使用磁盘作为RAM的扩展,以增大可用的内存大小。内核会将暂时不用的内存块的内容写到硬盘上,以便释放出内存空间供其他进程使用。当需要用到原始的内容时,...

    linux内核内存管理

    Linux内核内存管理是操作系统中极为重要的一个部分,它涉及到操作系统如何高效、合理地使用物理内存资源以及虚拟内存资源。Linux内核内存管理机制包括页面类型与组织、页面回收逻辑、内存区域划分、页面分配策略、...

    深入理解Linux虚拟内存管理.rar

    Linux虚拟内存管理是操作系统核心的重要组成部分,它负责为应用程序提供比物理内存更大的地址空间,并有效地管理物理内存资源。本资料“深入理解Linux虚拟内存管理”旨在帮助读者深入了解这一复杂的系统机制,包括...

    Linux内核虚拟化.pdf

    Linux 内核虚拟化可以分为两大类:一是基于硬件的虚拟化技术,二是基于软件的虚拟化技术。基于硬件的虚拟化技术可以直接使用硬件提供的虚拟化功能,而基于软件的虚拟化技术则需要通过软件来模拟硬件的虚拟化功能。 ...

    Linux内存管理之虚拟内存管理.doc

    在Linux操作系统中,虚拟内存管理机制是通过内核模块来实现的,内核模块包括内存管理子系统、进程管理子系统和文件系统子系统等。这些子系统共同作用,实现了Linux操作系统的虚拟内存管理机制。 X86处理器的分段...

    深入理解Linux虚拟内存管理_英文原版

    - **内核虚拟内存管理器**:Linux内核中的虚拟内存管理器负责整个系统的虚拟内存管理,包括内存映射、页面置换、内存保护等功能。 #### 结论 通过深入研究《深入理解Linux虚拟内存管理》,我们可以了解到Linux如何...

    linux内核内存管理图解

    Linux内核内存管理是操作系统设计中的关键部分,它负责有效地分配和管理系统的物理和虚拟内存。在Linux系统中,内存管理的复杂性在于它需要在多个进程之间共享有限的资源,同时确保系统的稳定性和高效性。以下是...

    01-Linux内存管理之二:在X86上的虚拟内存管理.rar

    本文将深入探讨Linux在X86平台上如何实现虚拟内存管理,包括虚拟地址空间的划分、页表机制、内存分配与回收、交换机制以及缓存管理。 1. 虚拟地址空间: 在X86架构下,Linux为每个进程分配了一个独立的4GB虚拟地址...

    linux内核开发-内存管理

    ### Linux内核开发—内存管理 #### 一、引言 在现代计算机系统中,内存管理作为操作系统的核心功能之一,其重要性不言而喻。Linux作为一种广泛使用的开源操作系统,其内核中的内存管理机制尤为关键。本文将深入...

    Linux操作系统内存管理.pdf

    本文将详细阐述Linux操作系统的内存管理机制,包括物理内存和虚拟内存的管理机制、地址映射机制、内存碎片和内存不连续的问题解决等。 Linux操作系统的内存管理机制旨在解决进程需要使用的代码和数据都放在内存中,...

    linux源代码分析之内存管理

    本文档是对Linux内核内存管理系统的一个深入分析,特别是针对其源代码进行了详细的解读。Linux的内存管理是内核中最复杂的部分之一,它涉及到了内存初始化、地址映射、请页、交换、分配与回收等多个方面。通过对这些...

    Linux内核内存管理技术分享

    Linux内核内存管理技术是一个复杂的系统,涉及到计算机体系结构、MMU、Cache、DMA、EPT、虚拟地址空间布局、伙伴系统、SLAB、用户空间地址布局、匿名页和文件页、缺页异常、反向映射、内存规整、OOM、KSM、巨型页、...

    基于Linux内核的动态内存管理机制的实现.pdf

    【基于Linux内核的动态内存管理机制的实现】 在计算机科学中,操作系统是负责管理和调度计算机硬件资源的核心软件。在Linux操作系统中,内存管理是一项至关重要的任务,它确保了各个进程公平有效地使用内存资源,...

    Linux内核内存管理.zip

    Linux内核内存管理是操作系统设计的关键部分,它负责有效地分配、使用和回收系统中的物理内存。在Linux系统中,内存管理机制确保了高效且可靠的内存使用,为各个进程提供了一个一致且安全的运行环境。本资料主要探讨...

    Linux内核设计与实现(第三版中文高清带目录)_linux_linux内核_

    这本书由Robert Love编写,是学习Linux内核不可或缺的经典之作。以下将从标题、描述以及标签中提炼出的关键信息,详细阐述Linux内核设计与实现的相关知识点。 1. **Linux内核的基本概念**:Linux内核是Linux操作...

    疯狂内核之——Linux虚拟内存

    分页机制是现代操作系统中常用的一种虚拟内存管理方法。它将物理内存划分为固定大小的页(通常为4KB),并将虚拟地址空间也划分为相同大小的页。每个页可以映射到不同的物理页上,这种映射关系由页表来维护。 **...

    深入理解Linux虚拟内存管理CD.rar

    Linux虚拟内存管理是操作系统核心的重要组成部分,它负责为运行中的进程分配和管理内存资源。在Linux系统中,每个进程都有自己独立的虚拟地址空间,这个空间是逻辑上的,并非实际物理内存的直接映射。虚拟内存管理...

    Linux内核设计的艺术

    内存管理是另一个重要的方面,Linux内核通过虚拟内存管理技术,实现了内存的保护、共享和高效利用。 2. 内核模块化设计:Linux内核采用了模块化的架构设计,能够动态地加载和卸载内核模块。这种设计使得内核能够...

    Linux内核完全注释:基于0.11内核(V5.0)_0.11内核_linux_linux内核完全注释_Linux内核注释_

    3. 内存管理:了解Linux如何分配和回收内存,包括物理内存的组织、虚拟内存的映射、页面缓存等机制。这些知识对于优化程序性能和避免内存泄漏至关重要。 4. 文件系统:Linux内核支持多种文件系统,如EXT2、EXT3、...

Global site tag (gtag.js) - Google Analytics