美文网首页
4.操作系统的调用关系

4.操作系统的调用关系

作者: wit_yuan | 来源:发表于2019-08-05 14:25 被阅读0次

1.内核与应用程序之间的调用

这篇谈论的主要是8086的几个简单的门,分别为中断门,调用门,任务门等。

中断门,故是保护模式下的中断关系,主要是设置中断向量与加载向量地址。这样就能在保护模式下复位中断程序。

中断门有两个重要的内容,一个是idtr,一个是idt表项。

idtr如下图:


idtr寄存器内容

从这里可以看到,idtr寄存器内容是48位的,低16位表示的idt的限长,也就是中断描述符表的长度(len-1,因为从0开始的),高32位表示idt的基地址

另外一项就是idt的内容了,如下图所示:

idt格式

中断门就要举一个例子了。入口点其实就是表示函数,段选择符一般是代码段,然后就是TYPE=1110b(14=e),所以可以假设一个描述符=0x00008e00 0008(代码段) fun(函数地址0xxxxx)

接着讲解一下调用门,调用门与中断门有一点区别是eflags的if标志,另外就是描述符中的TYPE字段需要修改为TYPE=15.调用门描述符如下:

调用门

调用门一般使用int 0x80进入,当然是自己写的操作系统,则可以自定义。

任务门,则比较特殊,基本的寄存器和ldt与gdt类似,不过一般不使用它,我就不写了。

对应的,可以使用另外一种描述符方式,将其描述符放在gdt描述符中,它是属于系统段的。

这里面会涉及到TR,TSS等内容。

系统段描述符对应图如下:

系统段

TYPE字段对应含义如下:

系统段

tss包含的内容如下:


tss段包含的内容

tss描述符如下:

tss描述符

另外要留意一下段描述符:


段描述符

另外则是局部描述符表与全局描述符表:

全局描述符表与局部描述符表之间关系

还有一个很重要的点是特权级发生变化前后的寄存器内容处理:

内核堆栈变化前后

相关文章

  • 4.操作系统的调用关系

    1.内核与应用程序之间的调用 这篇谈论的主要是8086的几个简单的门,分别为中断门,调用门,任务门等。 中断门,故...

  • Operating System代写:CS162 User Pr

    代写完成三个子任务,练习Linux操作系统编程。了解进程相关系统调用以及文件相关系统调用的用法。Your task...

  • 3、操作系统运行环境与运行机制2(操作系统笔记)

    四、系统调用机制 这是操作系统向用户提供的接口。 4.1 系统调用 系统调用是什么是用户在编程时可以调用的操作系统...

  • 操作系统笔记之系统调用机制

    系统调用是什么 系统调用:用户在编程是可以调用的操作系统功能 系统调用做什么 系统调用是操作系统提供给编程人员的唯...

  • 5.psql客户端使用

    1.登录 本地操作系统认证机制 2.psql调用命令 3.psql元命令 4.显示psql元命令的实际sql ps...

  • 操作系统:资源分类和调用关系

    方便性 在硬件上运行程序,用机器语言书写极其困难,OS能将高级语言翻译成机器语言。 有效性 提高操作效率、系统吞吐...

  • OS模块 import os

    1.1.1操作系统相关的调用和操作: import os 包含环境变量的映射关系 os.environ一个dict...

  • Linux系统基础原理

    (静态角度看)操作系统的组成部分?硬件、操作系统、库、库调用、系统调用 系统调用和库调用意味着什么?环零指令和环三...

  • 1.3 操作系统初试。

    五大部件: 操作系统: 内核:kernel 系统调用:system call 操作系统通过调用库(lib),库存在...

  • Python——os模块 os.path模块

    Pythos中调用操作系统的模块,提供对操作系统进行调用的接口 API方法 os.getcwd() 获取当前工作目...

网友评论

      本文标题:4.操作系统的调用关系

      本文链接:https://www.haomeiwen.com/subject/mdqmdctx.html