保护模式和实模式(系统调用)

前言:
打开cpu是试运行在实模式下,经过某种机制之后,才进入保护模式。保护模式下CPU有巨大的寻址能力,并且为操作系统提供更好的硬件保护。

实模式下能用的BIOS中断在保护模式下不能用。保护模式下,中断机制发生了很大的变化,原来的中断向量表已经被IDT所代替。(实模式下中断操作,保护模式下显示中断操作的信息

实模式:

BIOS使用实模式的地址,因为在计算机加电启动时只有这些可用。一个实模式的地址由一个seg段和一个off偏移量组成。相应的物理地址就可以这样计算:seg*16+off。所以CPU寻址电路根本就不需要全局描述表,局部描述符表或者页表把逻辑地址转换为物理地址。显然对GDT,LDT和页表进行初始化的代码必须运行在实模式下运行。

保护模式:

  • 有不同的特权级,有四个等级。每个等级下的堆栈也不相同,各个等级的堆栈地址存储在TSS表中。
    操作系统内核---->Level0(ring0)
    服务 ---->Level1(ring1)
    服务 ---->Level2(ring2)
    应用程序 ---->Level3(ring3)

  • 内核开始执行的时候运行在保护模式。所以在加载内核进入内存之后,就要跳入保护模式。

    1. 在保护模式下有四个特权级,假设我们有个进程运行在ring1中,它已经不能随意任意的使用某些指令,不能访问某些权限更高的内存区域,但是一项任务需要使用这些指令或者内存区域怎么办?这时候只能通过系统调用来实现了。(Linux下系统中断向量为80可以int 80h 来触发中断)

啊哈就好djhje

猜你喜欢

转载自blog.csdn.net/qq_28485501/article/details/83578123
今日推荐