momo zone

调核人的blog

关于[特权级],[一致/非一致] 代码段 [内核栈] 的疑惑

逻辑上应该是这样:

– 为什么要有特权级概念?
“现实”的需要,导致了硬件设计中包括了所谓特权级的概念,我们对现实问题的分析和认识,发现了特权级的思想应该存在于OS设计中,这种思想的物理表现
形式就是硬件寄存器中的CPL,DPL,RPL位以及一整套实现特权级审查逻辑的电路;

– 为什么要有所谓一致和非一致代码段的概念呢?
还是因为“现实”的需要,由于OS设计时的需要,OS无疑应该是整个计算机系统环境中最高级的部分,但是也不能一概而论,OS中有些高权级代码(比如提
供服务的代码)是允许低权级程序访问的,而有些又不允许,为了区分这些代码,就引入了所谓一致和非一致的概念,允许低权级访问的高权代码,我们把它放在
一致码段里,不允许低权级访问的高权代码,我们把他们放在非一致码段里,这里,我们可以把OS看成一个提供服务的公仆。

而对于数据段,高权对于低权的访问总是允许的,关于这么设计的原因,不妨这么想,显然不能允许低权者访问高权者的数据,而高级者为了监视低级者的运行,
应该可以访问低级者的数据。(注意,高级者仅仅是“监督”已经运行的低级者,而不是“导致或发起”低级者的运行,高级者不能导致低级者的运行就是说,高级

不能“访问或调用”低级者代码。)

代码:
高 -〉低 X   (高级者不应“发起”低级者的运行)
低 -〉高 O  (低级者可以使用高级者提供的服务,但能够提供服务的高级者必须位于一致码段)

数据:
高 -〉低 O  (高级者必须能够监视低级者的运行)
低 -〉高 X   (低级者绝不允许窥探高级者的秘密)

这是我的理解,我感觉OS以及硬件的设计体现了很多我们现实生活中分析问题,解决问题的哲学思想,甚至是世界观。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: