我读过 Multics 操作系统。在段描述符字(书)中,有一部分是段的门数。门是什么意思?我知道如果门允许(使用其中一个有效的段门作为入口点),进程可以进入更高特权的环,但我不知道门到底是什么意思?
谢谢。
答案1
门只是一个专门声明的入口点(在当今的语言中,入口点被称为例程、函数或过程)。编译器或汇编器将为作为门的入口点生成附加信息。运行在比门权限更低的环上的代码可以调用门入口点。运行在更高编号(权限更低)环上的代码不能调用非门入口点。
有关更多详细信息,请参阅 AL-39 手册第 8 节和 call6 指令的描述。以下是代码片段:
门是驻留在给定环中的程序,旨在提供对环的受控访问。环 R 中的程序只能通过调用与此内环 r 关联的门程序之一才能进入内环 r。门必须经过仔细编码,并且不得信任由较低权限环中的调用者制造或修改的任何数据。特别是,门必须验证调用者传递给它们的所有参数,以免危及驻留在内环中的任何段的保护。
答案2
仅供参考,从 80286 开始,所有支持“保护模式”的 Intel x86 系统也都提供了与 Multics 中使用的非常相似的环形转换调用门机制。