一致代码段是用在内核共享的段,这些都段允许应用程序访问,而不需要内核转移到应用程序中访问这些共享资源。
一致代码段:
• 特权级高的程序不允许访问特权级低的数据。比如内核态不允许调用用户态数据。
• 特权级低的程序可以访问到特权级高的数据,但是访问程序的特权级不会发生变化。比如用户态访问内态共享资源时不会变成内核态
非一致代码段:
• 只允许同级访问。
• 绝对禁止不同级程序的访问,即内核态不能访问用户态,用户太不能访问内核态。
这样做的目的就是为了系统的安全,分离内核态和用户程序,使内核不能背用户程序干涉,同时避免使用用户态程序修改内核态逻辑,导致在内核态下执行用户程序的代码。
|
特权级 低->高 |
特权级 高->低 |
特权级 同级之间 |
适用于何种代码 |
一致代码段 |
Yes |
No |
Yes |
不访问受保护的资源和某些类型的异常处理的系统代码 |
非一致代码段 |
No |
No |
Yes |
避免低特权级的程序访问而被保护起来的系统代码 |
数据段 (总是非一致) |
No |
Yes |
Yes |
阅读(3201) | 评论(0) | 转发(0) |