操作系统实现原理2

1.关于文件操作的系统调用

以c语言为例,当在进程中调用fopen和fclose时,在内核中对应着open和close。

即c标准库封装了系统调用。

 

2.系统调用时的中断向量表(interrupt describetor table)

中断向量表保存了各种函数的地址。

以32位操作系统为例,int 0x80 这一指令,0x80指的是函数syscall在中断向量表中的地址。

有指令 mov 0x01 eax; int 0x80;

0x80要调用syscall,eax寄存器保存了系统调用参数。0x01 指在syscall中调用sys_read()这个具体函数。

 

3.cpu查询中断向量表的过程

当遇到int 0x80指令,cpu从用户态切换为内核态,根据idtr寄存器找到中断向量表,然后找到0x80所在的表项,最后跳转到具体的函数syscall开始执行。

 

posted @ 2026-02-08 02:03  weixinye  阅读(5)  评论(0)    收藏  举报