社区
汇编语言
帖子详情
请问在保护模式下,CPU做了那些保护? 地址空间保护是什么概念?
常
2006-03-19 06:05:41
我想 不能在应用程序使用IO指令算是一个保护
...全文
295
8
打赏
收藏
请问在保护模式下,CPU做了那些保护? 地址空间保护是什么概念?
我想 不能在应用程序使用IO指令算是一个保护
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
icbm
2006-03-24
打赏
举报
回复
何谓“保护”?
对数据的保护:
一、保护数据访问不越界。在保护模式下,数据段有段界限。超过界限,会发生通用保护异常。在实模式下,数据的段界限为64k,因此会发生数据段重叠的情况。对一个数据段越界写操作,不会报错,但这会破坏相邻数据段内的数据。
二、保护数据不被误用。在保护模式下,数据段分为只读数据段、可读可写数据段。对只读数据段进行写操作,会发生通用保护异常。数据段是不可以执行的,把数据段作为代码段执行,也会发生异常。在实模式下,任何数据段都是可写的,包括代码段也是可写的。
三、保护数据不被非法使用。在保护模式下,代码分为0、1、2、和3这四个运行特权级,0级特权级最高,1、2、3特权级依次降低。数据段也分为相应的4个特权级。只有当前代码段的特权级大于、等于数据段特权级的情况下,才能访问数据。
对代码的保护:
一、保护代码段访问不越界。与保护数据访问不越界类似。
二、保护代码码不被误用。在保护模式下,代码段分为只执行代码段、可读可执行段,普通代码段、一致代码段。代码段总是不可写的,对代码段进行写操作,会发生通用保护异常。
三、保护代码不被非法使用。在保护模式下,代码分为0、1、2、和3这四个运行特权级,0级特权级最高,1、2、3特权级依次降低。不同特权级之间代码的相互转移,需要满足特定的特权等级要求。
还有其它的一些保护措施,具体内容比较多,可以参考 Intel 参考手册。这里有个镜像站,有MASM和Intel的参考资料。网址:http://web.sau.edu/LillisKevinM/csci240/masmdocs/
上面有朋友说,保护模式主要是保护操作系统的,我比较赞同。在DOS下,任何程序都可以修改中断向量表,即一个想搞破坏的程序随时都可以让Dos崩溃。运行在保护模式下的Windows 2000,想搞破坏的程序如果权限不够,Windows 2000只是简单弹出个对话框,报告有非法程序执行,然后结束掉这个非法程序,Windows 2000不受影响。
运行在保护模式下的操作系统,稳定性、可靠性大大增强。
日立奔腾浪潮微软松下联想
2006-03-21
打赏
举报
回复
286就支持保护模式了。
lyh908
2006-03-21
打赏
举报
回复
回1楼:在80386之后才出现保护模式,保护模式提供了更多的内存。事实上,保护模式的目的不是为了保护程序,而是要保护程序以外的所有程序(包括操作系统)。
常
2006-03-20
打赏
举报
回复
一楼的主要目的是问,何谓“保护”
WYlslrt
2006-03-20
打赏
举报
回复
主要是做得特权及的保护,保证低特权级的代码,不会破坏到搞特权级的空间。
日立奔腾浪潮微软松下联想
2006-03-19
打赏
举报
回复
能否使用I/O指令取决于进程空间中I/O MAP的设置。
段限制决定一个段(保护模式下通常称之为选择符)所能访问的地址空间的大小,访问一个段内的地址超出这个范围会引发INT 0Dh(通常保护性错误)。
fhb13
2006-03-19
打赏
举报
回复
段限--规定一个段用多大的空间
楼主我不晓得你一楼说的东西是什么意思
常
2006-03-19
打赏
举报
回复
段限(limit)有什么作用?
我看到有人是这么说段限的“在80286中若给出的16位偏移地址小于段限值,则应在实存中寻址;反之在虚存中寻址”
迷惑?
cpu
工作原理介绍
1、
CPU
工作原理: 我们要实现的是一个RISC指令集的
CPU
,并且我们最后要自己为这个
CPU
设计指令并且编码。首先我们来听个故事,关于
CPU
的诞生的故事:日本客户希望英特尔帮助他们设计和生产八种专用集成电路芯片,用于实现桌面计算器。英特尔的工程师发现这样
做
有两个很大的问题。第一,英特尔已经在全力开发三种内存芯片了,没有人力再设计八种新的芯片。第二,用八种芯片实现计算器,将大大超出预算成本。英特...
实地址模式与
保护
模式
、虚拟地址映射
一、三种地址 逻辑地址:在有地址变换功能的计算机中,访内指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存储器中的实际有效地址,即物理地址。 线性地址:线性地址是逻辑地址到物理地址变换之间的中间层。在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性地址。如果不启用分页,那么此线性地址即物理地址。 物理地址:线性地址经分页转换后就成了物理地址。...
让梁大侠头疼的
CPU
段式结构的由来
梁在其一书第二章说:8086最头疼的问题在于段式结构,1MB的内存被它的段偏移所限制。至今我也不明白Intel当初为什何要设计成这么复杂的内存机制,也许是为了与8080兼容的需要。这套笨拙的体系一直延续到IA64为止。 以下文字参考Linux内核源代码情景分析一书。当我们说一个
CPU
是”16位”或”32”位时,指的是处理器中”算术逻辑单元”[ALU]的宽度。系统总线中的数据线部分,称为数据总线,
什么是纯DOS和实模式?
什么是纯DOS和实模式? 2009-08-14 17:59 摘要:什么是纯DOS 就是不能用WINDOWS命令回到WINDOWS操作系统中去的。用WIN98或2000启动盘启动的机器是纯DOS状态下。安装光盘是有两种,一种是纯DOS状态下安装,另外一种是在系统中。 纯DOS模式是相对于WINDOWS的窗口模式而言的; 实模式是相对于
保护
模式
来说的。 ... 什么是纯DO...
内核空间与用户空间
首先,这个
概念
的由来,我认为跟
CPU
的发展有很大关系,在目前
CPU
的
保护
模式
下,系统需要对其赖以运行的资料进行
保护
,为了保证操作系统内核资料,我们把内存空间进行划分,一部分为操作系统内核运行的空间,另一部分是应用程序运行的空间,所谓空间就是内存的地址。因此内核空间和用户空间的
概念
就出现了。在386以前的
CPU
实模式下,操作系统内核与用户程序的内存空间是不
做
区分的,也就不存在内核空间和用户空间的...
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章