【x86汇编语言:从实模式到保护模式笔记】第十四章 任务和特权级保护

本文深入探讨了x86汇编中的任务管理和特权级保护,涉及任务的全局和局部空间、任务状态段(TSS)、局部描述符表(LDT)以及特权级的概念。讲解了处理器特权级设置、调用门的使用,以及如何通过调用门在不同特权级之间进行控制转移。此外,详细阐述了如何在保护模式下加载用户程序并创建任务,包括任务控制块(TCB)、栈切换和TSS的创建与安装。最后,讨论了用户程序的执行流程,包括通过调用门进行控制转移的步骤和进入3特权级的执行过程。
摘要由CSDN通过智能技术生成

本章目标

1、通过演示如何创建一个任务,并使之投入运行来学习任务的概念及组成要素,包括任务的全局空间和局部空间、TSS、LDT、特权级等。
2、必须了解特权级不是指任务的特权级,而是组成任务的各个部分的特权级。比如:任务的全局部分一般是0、1和2特权级别的,任务的私有部分一般是3特权级别的。
3、必须清楚CPL、DPL和RPL的含义,以及不同特权级别之间的控制转移规则。
4、熟悉调用门的用法。
5、掌握一些在Bochs下调试程序的新手段。
6、学习一些新的x86处理器命令,包括lldt、ltr、pushf/pushfd、popf/popfd、ret n/retf n、arpl等。同时了解像jmp和call这样的传统指令是如何被赋予一些新的功能的。

14.1 任务的隔离和特权级保护
14.1.1 任务、任务的LDT和TSS
  • 任务:程序是记录在载体上的指令和数据,其正在执行的一个副本,叫做任务(Task)。

  • LDT:为了有效地在任务之间实施隔离,处理器建议每个任务都应当具有自己的描述符表,称为局部描述符表(Local Description Table)。

  • TSS:为了保存任务的状态,并在下次重新执行时恢复它们,每个任务应当用一个额外的内存区域保存相关信息,这叫做任务状态段(Task State Segment)。

  • LDTR:处理器使用局部描述符表寄存器(LDT Register:LDTR)来追踪和访问这些LDT

  • TR:处理器用TR寄存器来指向当前任务的TSS。

14.1.2 全局空间和局部空间

每个任务实际上包括两个部分:全局部分和局部部分。全局部分是所有任务共有的,含有操作系统的软件和库程序,以及可以调用的系统服务和数据;私有部分则是每个任务各自的数据和代码,与任务所要解决的具体任务问题有关,彼此并不相同。
因此,全局地址空间是用全局描述符GDT来指定的,而局部地址空间则是由每个任务私有的局部描述符表LDT来定义的。
在这里插入图片描述

14.1.3 特权级保护概念
1、处理器特权级设置
  • Intel处理器可以识别4个特权级别,分别是0到3,较大的数值意味着较低的特权级别
    在这里插入图片描述

  • DPL:描述符特权级,代表着其所描述的段的特权级别

  • CPL:当处理器正在一个代码段中取指令和执行指令时,那个代码段的特权级叫做当前特权级(Current Privilege Level,CPL)。正在执行的这个代码段,其选择子位于段寄存器CS中,其最低两位就是当前特权级数值

2、特权指令

那些只有在当前特权级CPL为0时才能执行的指令,称为特权指令(Privilege Instructions)
典型的特权指令:lgdt、lldt、ltr、mov、停机指令hlt等

  • 处理器还允许对各个特权级别所能执行的I/O操作进行控制,通常这指的是端口访问的许可权。位13和位12是IOP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值