探索Linux 操作系统内存模型和管理-3(转)

探索Linux 操作系统内存模型和管理-3[@more@]

Linux 中的段控制单元

Linux 对这个模型稍微进行了修改。我注意到 Linux 以一种受限的方法来使用这种分段模型(主要是出于兼容性方面的考虑)。

在 Linux 中,所有的段寄存器都指向相同的段地址范围 —— 换言之,每个段寄存器都使用相同的线性地址。这使 Linux 所用的段描述符数量受限,从而可将所有描述符都保存在 GDT 之中。这种模型有两个优点:

当所有的进程都使用相同的段寄存器值时(当它们共享相同的线性地址空间时),内存管理更为简单。 在大部分架构上都可以实现可移植性。某些 RISC 处理器也可通过这种受限的方式支持分段。

846063.gif

图 4. 在 Linux 中,段寄存器指向相同的地址集

段描述符

Linux 使用以下段描述符:

●内核代码段

●内核数据段

●用户代码段

●用户数据段

●TSS 段

●默认 LDT 段

下面详细介绍这些段寄存器。

GDT 中的内核代码段 (kernel code segment) 描述符中的值如下:

●Base = 0x00000000

●Limit = 0xffffffff (2^32 -1) = 4GB

●G(粒度标志)= 1,表示段的大小是以页为单位表示的

●S = 1,表示普通代码或数据段

●Type = 0xa,表示可以读取或执行的代码段

●DPL 值 = 0,表示内核模式

与这个段相关的线性地址是 4 GB,S = 1 和 type = 0xa 表示代码段。选择器在 cs 寄存器中。Linux 中用来访问这个段选择器的宏是 _KERNEL_CS。

内核数据段 (kernel data segment) 描述符的值与内核代码段的值类似,惟一不同的就是 Type 字段值为 2。这表示此段为数据段,选择器存储在 ds 寄存器中。Linux 中用来访问这个段选择器的宏是 _KERNEL_DS。

用户代码段 (user code segment) 由处于用户模式中的所有进程共享。存储在 GDT 中的对应段描述符的值如下:

●Base = 0x00000000

●Limit = 0xffffffff

●G = 1

●S = 1

●Type = 0xa,表示可以读取和执行的代码段

●DPL = 3,表示用户模式

在 Linux 中,我们可以通过 _USER_CS 宏来访问此段选择器。

在 用户数据段 (user data segment) 描述符中,惟一不同的字段就是 Type,它被设置为 2,表示将此数据段定义为可读取和写入。Linux 中用来访问此段选择器的宏是 _USER_DS。

除了这些段描述符之外,GDT 还包含了另外两个用于每个创建的进程的段描述符 —— TSS 和 LDT 段。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9417382/viewspace-940042/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9417382/viewspace-940042/

深度探索Linux操作系统 —— 构建initramfs 一般而言,桌面、服务器等通用系统都使用initramfs。部分嵌入式系统中,也会使用 initramfs,甚至有的使用 initramfs 作为最终的根文件系统。那么什么是 initramfs 呢?很难用一句话将 initramfs 的作用描述清楚,或许可以将initramfs定位为内核通往根文件系统的桥梁。 阅读详情

相关推荐

操作系统原理之Unix/Linux进程标识符pid管理探索

操作系统作为整个计算机系统的资源管理者,担任着有序而高效管理计算机资源的艰巨任务。操作系统资源管理的基本对象是进程,为了方便系统的管理,每一个进程需要一个进程标识符pid,这和国家为每一个居民编一个居民身份证号的目的完全一样。 在Unix/Linux中,进程标识符pid是一个16位的整数,它被顺序编号,最小号为0,最大号为32767,闲置的pid可重新使用。详见Unix源代码中的struct p...

翱翔云端的专栏 2287

linux 内存管理模型,探索Linux 操作系统内存模型和管理(转)

探索Linux 操作系统内存模型和管理(转)[@more@]  理解 Linux 设计的第一步在这篇 Linux 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍了物理内存区域方面的知识。理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第一步,因此本文将概述 Linux 内存模型和管理。Linux 使用...

weixin_35676444的博客 127

探索操作系统:Linux 0.01与Minix 3源码分析

Linux 0.01版本,作为一个开源操作系统的雏形,其历史意义远远超出了技术层面。它的诞生标志着一个新纪元的开始,不仅为个人电脑的操作系统领域带来了革命性的变化,也对整个软件产业的发展产生了深远影响。Linux 0.01的发布,奠定了Linux内核后续发展的基石,它的开源特质更催生了一个全球合作的社区,至今仍持续推动着技术的进步和创新。在功能概述方面,Linux 0.01展现了操作系统的初步框架,包括了进程管理、内存管理、文件系统和设备驱动等核心模块。

weixin_33363025的博客 1112

探索 Linux 内存模型

探索 Linux 内存模型 理解 Linux 设计的第一步 Vikram Shukla 2006 年 2 月 23 日发布 理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第一步,因此本文将概述 Linux 内存模型和管理。 Linux 使用的是单一整体式结构 (Monolithic),其中定义了一组原语或系统调用以实现操作系统的服务,例如在几个模块中以超级模式运行的进程管理、并发控制和内存管理服务。尽管出于兼容性考虑,Linux 依然将段控制单元模型 (segmen

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 232

S4 Hana SD -信贷管理 - 02

在S4版本中,客户的信用管理数据在事务代码BP维护,业务伙伴角色是UKM000。在维护过程中,我们并不能直接输入信贷控制范围这个组织架构,而是需要输入一个信用段,并且在信用段的维度下去维护相应信用管理数据。对于信用段,可以分为主信用段(信用段是0000)和其他临时信用段,我们可以通过配置把次级信用段的客户信贷负债汇总到主信用段。当然,在后台也有配置,会把信用段和信贷控制范围这两者进行关联.3.2SPROIMG > 财务供应链管理 > 信用管理 > 信贷风险监视 > 主数据 > 创建信用段。

weixin_46525734的博客 1965

ros2 humble cartographer 2D激光雷达建图

Cartographer是一个支持多平台和传感器配置的SLAM的系统。 本文主要讲述在ros2 humble系统上cartographer的安装方法,以及如何配置参数实现自己的ros2 bag包的离线建图。

weixin_43087302的博客 6939

探索Linux 操作系统内存模型和管理

理解 Linux 设计的第一步 在这篇 Linux? 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍了物理内存区域方面的知识。 理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第

Cynric 的博客 1772

大话西游2经典单机版V8:一键架设+GM全功能+仙玉自由修改

本文详细介绍大话西游2经典单机版V8的一键架设教程和GM全功能使用指南,包括仙玉自由修改技巧。该版本无需虚拟机,解压即玩,完美还原官服经典玩法,支持离线运行,是老玩家重温经典和新玩家体验游戏的理想选择。

weixin_27303545的博客 1131

【Linux操作系统】探秘Linux奥秘:Linux 操作系统的解密与实战

本博文深入介绍了Linux操作系统的基本操作与基本管理,为初学者提供了全面的指南。首先,阐述了如何使用gcc编译器将C语言源代码编译成可执行文件,并详细说明了在编写代码时需要注意的中文输入模式下的细节。其次,介绍了在使用gcc编译器时如何灵活运用命令行参数,以及利用-Wall和-g选项来提高代码的质量和调试效率。

朝花夕拾 6937

QT编程系列1--QT学习前需知

本周学习了一些QT编程方面的知识,学写了几个程序,这里把记录下来。一方面对前面学习的知识做一个总结,便于以后复习、再学习和应用;另一方面也和大家做个交流,有不足的地方请各位看官多指点。   首先是做一些学习之前的交代:一,学习QT需要哪些基础;二,学习QT有哪些用途,QT较其他的开发工具有哪些特点;三,学习QT的思路。

霜月孤鸟&RTEMS&TinyOS 1115

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2276

探索Linux 操作系统内存模型和管理-1(转)

探索Linux 操作系统内存模型和管理-1[@more@]理解 Linux 设计的第一步 在这篇 Linux? 内存模型指南中,我们将学习如何构建和管理内存方面的基础知识。本指南介绍了内存控制单元、分页模型方面的内容,并详细介绍...

congwan5321的博客 98

AI在生物学领域的应用:基因序列分析和人工智能生物学

好的,非常感谢您提供的这个精彩的主题和详细的要求。我会全力以赴,遵循您的要求写一篇内容丰富、结构清晰、论述深入的专业技术文章。现在,就让我们开始这篇关于"AI在生物学领域的应用:基因序列分析和人工智能生物学"的博客文章吧! 1. 背景介绍 1.1 生物信息学的兴起

AI天才研究院 1413

探索 Linux 内存模型--转

探索 Linux 内存模型--转 引用:http://www.ibm.com/developerworks/cn/linux/l-memmod/index.html 理解 Linux 使用的内存模型是从更大程度上掌握 Linux 设计和实现的第一步,因此本文将概述 Linux 内存模型和管理。 Linux 使用的是单一整体式结构 (Monolithic),其中定义了一组原语或系统调用

zdy0_2004的专栏 502

【系统分析师】2009年真题:综合知识-答案及详解

在某银行业务的用例模型中,“取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于(1);“取款”和“存款”两个用例中都需 要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款” 用例与“查询余额”用例之间的关系属于(2)。(1)A. 关联关系 B. 扩展关系 C. 使用关系 D. 依赖关系 (2)A. 扩展关系 B. 使用关系 C. 依赖关系 D. 继承关系【参考答案】D、A雇员类含有计算报酬的行为,利用面向对象的(3),可以使得其派生类专职 雇员类和兼职雇员类计算报酬的

数据知道的博客 1万+

栅格数据做相关性分析前的预处理(批量定义投影、栅格投影、重采样)

最近在做两个栅格数据的相关性分析,这个最主要的是两个栅格数的行列号是一致的(也就是说坐标系、分辨率一致),那么标准的栅格数据的分辨率是以米的形式存在的,但是有一些栅格数据是以度为单位存在的,所以在做分析前,一定要先把其转换为米,否则在重采样的时候就会出错。(相关文章——栅格数据以度为单位变为以米为单位的简单做法)当然,在变其分辨率的单位前,一定要将其坐标系转换为一致。所以就有以下的步骤(如何将两个栅格数据的坐标系、分辨率的单位和分辨率一致) 1.首先,要看两个栅格数据的坐标系是否一致,如果不一致,要先统一到

qq_41828818的博客 8350

探索Linux 操作系统内存模型和管理-4(转)

探索Linux 操作系统内存模型和管理-4[@more@]每个 TSS 段 (TSS segment) 描述符都代表一个不同的进程。TSS 中保存了每个 CPU 的硬件上下文信息,它有助于有效地切换上下文。例如,在 U->...

congwan5321的博客 120

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Linux 权限掌控术:深入探索和用户管理

在这篇博客中,我们将深入探索 Linux 权限系统,这是理解和有效管理 Linux 系统的一个关键组成部分。Linux 权限系统为系统安全提供了强大的基础,它通过精确控制对文件和目录的访问来保护系统免受未授权的访问和更改。无论您是 Linux 新手还是经验丰富的系统管理员,掌握 Linux 权限的知识都是至关重要的。在这篇博客中,我们将详细介绍权限类型、特殊权限设置、权限的数字表示法,以及如何管理和应用这些权限。我们的目标是提供一个清晰、全面的指南,帮助您理解和有效地使用 Linux 权限系统。

2203_75397752的博客 3608

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

探索Linux 操作系统内存模型和管理-7(转)

探索Linux 操作系统内存模型和管理-7[@more@]如何启用分页 Linux 进程使用的分页机制包括两个阶段: ●在启动时,系统为 8 MB 的物理内存设置页表。 ●然后,第二个阶段完成对其余物理地址的映射。 在启动阶段,...

congwan5321的博客 104

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Linux探索学习】第十三弹——进程状态:深入理解操作系统进程状态与Linux操作系统中的进程状态

【Linux探索学习】第十三弹:进程状态:本文详细介绍操作系统进程状态的基本概念,深入解析Linux操作系统中的进程状态,相信会对大家有所帮助!!!

2301_80220607的博客 3928

探索Linux 操作系统内存模型和管理-5(转)

探索Linux 操作系统内存模型和管理-5[@more@]在 Linux 中,分页单元的使用多于分段单元。前面介绍 Linux 分段模型时已提到,每个分段描述符都使用相同的地址集进行线性寻址,从而尽可能降低使用分段单元将逻辑地址...

congwan5321的博客 101
上一篇: 探索Linux 操作系统内存模型和管理-2(转)
下一篇: 探索Linux 操作系统内存模型和管理-5(转)
congwan5321
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值