`
逸清河
  • 浏览: 10870 次
社区版块
存档分类
最新评论

linux的分段

阅读更多
linux 更倾向于使用分页方式,不怎么喜欢使用分段,
分段可以给美国进程分配不同的线性地址空间,分页可以把同一个线性地址隐射到不同的物理地址(这跟linlux的分页机制有关)

因为这样更容易跨平台,但是由于分段是硬件就支持的,linux还是使用了分段;

用户代码段
用户数据段
内核代码段
内核数据段

关注的Base字段都是0x00000000,G位为1,用户态的DPL为3(最小优先级),内核态的DPL为0(最高优先级)

G为粒度标志,1代表以4K为单位
这样不管是用户态以及内核态就能寻址2的32次方-1的地址,4G。
不管是用户态以及内核态的所有进程的逻辑地址是一样的。
这样linux的逻辑地址跟线性地址是一致的,即逻辑地址中的32偏移量的值与最后转换出来的线性地址的值是一样的。

当发生内核态跟用户态的切换时,其实CPU的当前特权级CPL也会相应的改变,CPL=3为用户态,CPL=0为内核态,其CPU的cs,ds,ss都会相应的装入段选择符。


由于linux的逻辑地址跟线性地址是一致的,这样就方便很多,例如执行某个指令时,仅制定逻辑地址的偏移地址即可,不用指定段选择符,因为当前的cpu对应的寄存器就默认是对应的段描述符,

分享到:
评论

相关推荐

    Linux的分段和分页机制

    ### Linux的分段和分页机制详解 #### 一、分段机制 ##### 1.1 80386的两种工作模式 在探讨Linux的分段机制之前,我们先了解一下80386处理器的两种工作模式:实地址模式和保护模式。 - **实地址模式**:这是系统...

    Linux内存管理之分段机制

     如上图,Linux在内存管理上,把逻辑地址通过分段机制变化成线性地址,线性地址也是4G(32位系统)的程序地址。线性地址再通过分页机制转化成物理地址,后CPU去访问物理地址。  去年写个一篇关于IA32内存寻址的...

    linux x86内存管理之分段与分页

    Linux x86 内存管理之分段与分页 Linux 操作系统在 x86 架构上实现了内存管理机制,主要通过分段和分页两种机制来管理内存。以下是对 Linux x86 内存管理之分段与分页的详细介绍。 逻辑地址、线性地址和物理地址 ...

    linux 分页分段机制及储存分析

    在深入探讨Linux操作系统中的分页分段机制之前,我们首先要理解这两个术语的基本概念。分页和分段是现代操作系统管理内存的两种主要方法,它们帮助系统有效地管理和分配虚拟内存,提高资源利用率,并确保进程间的...

    Linux启动代码的分段分析.pdf

    Linux 启动代码的分段分析 Linux 操作系统的启动代码是 Linux 系统的核心组件之一,它负责将 Linux 系统从硬盘启动起来。Linux 启动代码的分段分析是对 Linux 系统启动代码的深入分析,以了解 Linux 系统的启动...

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

    ##### 1.1 基于x86的Linux分段机制 在x86架构中,Linux利用了分段机制来隔离内核空间和用户空间。分段机制通过段描述符表(Segment Descriptor Table)来定义不同内存段的属性。这些段描述符表通常包括全局描述符表...

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

    3. **内存管理**:内核负责物理和虚拟内存的分配、回收,使用分页或分段技术实现内存保护。虚拟内存系统允许程序使用超过实际物理内存的地址空间,通过交换技术在内存和磁盘之间动态调整。 4. **文件系统**:Linux...

    LINUX教程之26-linux kernel与总结

    此外,Linux内核还实现了分页和分段两种内存管理方式。分页机制将内存划分为固定大小的页,每个页有唯一的页帧号。分段则是将内存分成逻辑段,每个段有自己的地址空间。在现代Linux中,分页更常用,而分段主要用于...

    linux专家之路_linux内核源代码(PDF)

    例如,内存管理部分不仅介绍了Linux如何实现虚拟存储管理的各种机制,还讲解了内存管理的核心概念,如分页机制、分段机制和交换机制等。网络部分则分析了Linux网络支持代码,涵盖了从网络协议栈到具体网络驱动的实现...

    在Linux下基于gtk制作的音乐播放器_分段汇总.zip

    文件“分段汇总”可能是该项目的阶段总结或者代码分块,里面可能包含了每个步骤的详细解释、代码片段以及实现过程中遇到问题的解决方案。通过对这个文件的详细研究,你可以逐步学习到如何将理论知识应用到实际项目中...

    linux0.01 源代码及内核注释

    这与现代内核的分页和分段机制有所不同,但仍然是理解现代内存管理机制的起点。 4. **硬件接口**:由于那时的硬件限制,内核需要直接与硬件交互,如磁盘驱动、串口通信等。这些驱动程序是直接编入内核的,而现在则...

    南大linux课件——Linux内核

    2. **内存管理**:内核通过分页或分段机制对内存进行管理和分配,确保进程间的数据隔离,并实现虚拟内存,使程序能够访问超过物理内存大小的地址空间。 3. **设备驱动**:Linux内核包含了大量的设备驱动程序,它们...

    深入理解linux内核(中文第三版高清带书签).zip

    2. **内存管理**:探讨了虚拟内存的概念,如何实现内存分配与回收,包括分页和分段技术,内存交换机制,以及物理和虚拟地址之间的映射。 3. **文件系统**:介绍Linux内核中的VFS(虚拟文件系统)层,它是如何抽象出...

    linux内核设计与实现3

    3. **内存管理**:探讨虚拟内存系统,如分页、分段、内存分配和回收,以及如何实现内存保护。 4. **文件系统**:理解Linux中的文件系统层次结构,包括VFS(虚拟文件系统)是如何抽象不同物理存储设备的,并学习文件...

    深入理解linux内核2nd(EN)

    - **2.3 Linux中的分段**:分析了Linux内核如何利用分段机制来管理内存区域。 - **2.4 硬件中的分页**:介绍了分页机制的基本原理,以及它如何优化内存使用效率。 - **2.5 Linux中的分页**:具体分析了Linux内核...

    linux内核启动过程

    - **动态加载内核**:内核被分段加载到内存中,这种方式能够提高系统的启动速度。 - **CPU工作模式转换**:从实模式切换到保护模式。保护模式下,CPU可以利用更多的内存资源,并提供更好的安全性和性能。 - **内存...

    understanding linux kernel 1.pdf

    本章深入探讨了内存寻址的概念,包括硬件中的分段、Linux中的分段、硬件中的分页以及Linux中的分页机制。通过这些内容,读者可以了解Linux如何管理和优化内存使用,特别是对于即将推出的Linux 2.4版本的预想。 ### ...

    Linux内核完全注释及linux内核源码

    2. **内存管理**:内核负责分配和释放物理及虚拟内存,使用分页和分段技术实现内存保护。它还包括内存换页策略,如OOM(Out of Memory)杀手,防止系统因内存耗尽而崩溃。 3. **文件系统**:Linux支持多种文件系统...

    操作系统教程 Linux-菜鸟入门

    "这一部分讨论了内存管理和缓存机制,包括内存的分页和分段管理,以及高速缓存如何提高系统性能。此外,"土地不能浪费:如何管理内存对象?"进一步解释了Linux如何有效地分配和回收内存,避免内存浪费。 "瞧一瞧...

Global site tag (gtag.js) - Google Analytics