x86处理器的三种工作模式
龙芯吧
全部回复
仅看楼主
level 10
pengzhenxx 楼主
看了有些人谈论安全问题,而不明白这仨怎么行
.
x86一共有三种工作模式:实模式,保护模式和虚拟8086模式
.
实模式:其实就是真实,实际的模式,其实这个相对于保护模式更好理解,实模式下程序可以直接控制CPU和物理内存,可以直接访问各种其他芯片比如网卡,显卡,主板BIOS等等的外部寄存器,RAM,ROM等等,其实这对其他程序甚至系统程序非常不安全,程序可以直接修改内存,甚至内存中及其重要的中断向量表,,,
比如可以直接直接修改除法益出的中断入口地址,指向你想要的程序,这样只要其他程序只要发生除法益处就会触发你写的程序,太不安全了
.
保护模式:Intel意识到实模式下,程序员实在无法无天,,就在80286时加入了保护模式和内存分页管理,由此开启了Windows时代,80286同时支持实模式和保护模式,保护模式下一般程序无法直接访问物理内存,都是经过地址转换器映射出的虚拟内存,由此像中断向量表等一些特殊的系统占用的内存被保护起来,一般程序无法直接反问,这个过程结合了内存分页管理,其实内存分页管理主要是解决DOS时代出现的内存驻留问题,内存分页管理感觉像链表,一般一段内存页4KB,一段一段的,程序真实的物理地址其实是一段一段的并不连续,Windows系统可以对每个内存页加入可读,可写,完全控制权限,,,
所以Windows系统经常出现“xx内存不能为read或write”其实就是程序访问到了被Windows系统保护的内存,而被系统强行终止了,,当然Windows的内存管理很复杂,不是一两句说得清楚的,我就不说了
.
虚拟8086模式:其实很简单,早期80286虽然支持保护模式和实模式,但不支持虚拟8086模式,要知道那时候很多程序都还是在8086下写的,你运行的保护模式的系统,但突然要运行8086实模式下的软件时,80286就只能重启,老老实实用实模式了,而支持虚拟8086模式的80386就可以直接在保护模式下模拟运行实模式下的软件效率当然高不少,,,当面IBM就是载在80286这个CPU身上,而微软则针对80386开发了Windows,从此IBM的系统基本就很少了
2015年06月03日 14点06分 1
level 12
你明显低估了美帝,人家可是在你完全物理隔离的情况下破坏你的系统和网络[滑稽]
2015年06月04日 10点06分 3
如果排除预埋,不可能
2015年06月04日 11点06分
level 12
那么[滑稽]伊朗的核电站离心机是怎么报废的?
2015年06月04日 11点06分 4
level 10
pengzhenxx 楼主
晕啊,我只是说了个常识,并不是讨论安全问题呀。。。。。。

像windows系统那么多预留的后门,各种隐藏API,我觉得在Windows环境下不需要讨论安全问题啊,,,,我只是看到好多人压根不清楚现在x86处理器的一些原理吧了

其实电脑刚启动没加载系统时,就是运行在实模式下的,这时候有程序想获取你的一些感兴趣资料并不复杂,,,加载Windows系统后才开启保护模式,而且保护模式并不是为了安全问题而设计的,完全是为了系统自身的稳定,和防止简单的病毒而设计的
2015年06月04日 12点06分 5
所以一些特殊程序想做点啥,并不一定非得要进入系统,,在开机自检时,由于运行在实模式下,在还没有加载系统时就做了你不知道的事情了
2015年06月04日 12点06分
@qw798798798 在正真的高手面前,杀毒软件其实形同虚设,光微软还没有公布的Windows API就有不少,这些API往往权限很高,威力极强而且杀毒软件没有挂钩这些API,程序中使用这些API基本是不会查到的
2015年06月04日 12点06分
level 10
pengzhenxx 楼主
因为保护模式下一般的Windows程序不能直接访问物理内存,得经过地址转换器访问,所以对一些系统保护起来的内存是修改,窥视不到的,所以系统可以把自己的程序,和重要的数据保护起来,这完全是为了系统自己的运行稳定,,,其实想搞点破坏,发送点资料,控制电脑等等,完全就可以用微软已经开放的Windows API实现,或者自己写个程序,也不复杂
2015年06月04日 12点06分 6
level 10
pengzhenxx 楼主
@qw798798798 :在汇编角度看其实CPU控制其他芯片比并不复杂,而且网卡种类再多,也必然是一套统一的标准,,像CPU控制键盘,只需要向其60H端口的外部寄存器读写扫描码或断码就行,,,键盘,鼠标总类再多,但必然遵循这个标准,,,

在比如CPU要控制主板BIOS,其实BIOS也有CMOS RAM,CPU只需要将数据写入CMOS RAM的特殊位置就可以修改或读取里面的信息,,比如CMOS RAM开始的几个地址其实是系统的时间和年月日,,不管现在BIOS在复杂,又是中文啥的,但它还是在遵循这套标准

CPU想控制显卡,其实也不难原理上只需要将要GPU处理的数据写入显卡的显存就可以,,实模式下甚至可以直接写入显示缓冲区

同理网卡,不管种类多少,还是更高级的开发环境中封装的各种标准,协议,但基本还是得有一套标准啊,可能和其他芯片一样读写网卡的RAM就行了,,网卡我还没有研究过,所以只能推测吧,仅供参考
2015年06月04日 12点06分 7
level 11
有的人既然要讨论安全,那我也说说安全,跟楼主说的保护模式没关系。
我们搞自己的CPU说的安全并不是指某个技术点上的安全,而是全局的安全。我们这么大一个国家,必须要有自己的设计和制造能力,也必须形成自己的体系和产业链,更必须培养自己的人才,只有这样做了,我们才不怕别人禁售,民用领域可能不会出问题,但是军工国防就会有问题,高端科技领域就会出问题,我们的天河二号是民用为主的,结果还是被禁了,这个就明确的告诉我们,这个东西我们必须要有。我们自己有了设计和制造能力,有自己的体系和产业链,培养了一大批技术人员,我们再被封锁,整个体系不至于没有CPU可用,这就是大安全。某个技术点上的安全,自己设计制造的肯定比其他人的要更安全,毕竟那么一个黑盒子,谁也说不清楚,别人即便没有后门,用自己肯定相对更安全一些。
我们发展到这个程度就必须要在产业链上更进一步,我们不但要谋求军事上的安全,在经济上,我们原来这块不行,就相对不安全,我们不掌握信息技术的核心,那我们就不能算有很强大的经济实力。所以我们就要把这个核心搞上去,花很大的代价,我们追求的是跟我们经济规模相应的产业链整体的安全。也就是说我们的经济发展也逼迫我们必须要有自己的CPU,如果再说直白一点,就是我们也想分一杯羹,想赚小钱钱。
我们必须要有大的安全观念,某个技术点上的安全要注重,但更要有大局观,我们要关注我们更高层次上的安全需求。我们的最终目标就是占领那个产业,可以不客气的说,只要是还没有被中国人攻克的产业,我们都要花大价钱的去研究,去投入,去培养人才。只有这样我们的事业才能滚雪球般的越做越大,我们的产业链越完整就越安全,当然其他人也就越不安全,这也是一些人害怕的原因,这也是一些人不希望中国搞CPU的原因。我们搞熟练了,白菜化是必然的,这个对市场,对大众有利,对现在处于垄断地位的其他人是不利的。
2015年06月04日 13点06分 8
[大拇指][真棒]
2015年06月16日 18点06分
level 6
然而,愤青才不会听你bb
2015年06月09日 04点06分 10
level 2
LZ主要是从系统方面分析了安全问题我觉得很全面也很有操作性。但是你有没有想过物理层次的芯片安全问题,芯片预留后门只是一个笼统的说法,传闻米国出口的武器可以用电磁波激活“后门”程序 ,因为那是米国的机密到底是什么方面的后门我们无从得知一般的猜测是使芯片瘫痪,在物理技术层面上来说这是可以实现的。比LZ你提到的从系统方面留后门来得更简单粗暴。所以说自己的芯片一定要搞,要坚持的搞。
最后我挟点私货:这个龙吧气氛真的不适合讨论问题。这里都不能用讨论了形容了,鄙视,嘲讽,帽子无所不在。多数都在YY,幻想而且不容质疑。 先截图。坐等被删。
2015年06月16日 15点06分 11
x86的三种模式都是基于硬件支持的,80386为了增加保护模式,其寄存器,控制电路都增加了很多,,且并不主要是系统问题,如果你有学过x86汇编就会有体会我说的这些
2015年06月16日 15点06分
1