操作系统课程实验添加系统调用 国防科大操作系统课件.ppt

操作系统课程实验添加系统调用 国防科大操作系统课件.ppt

操作系统课程实验 添加系统调用 2003.12 演示 基于意识识别的Windows安全登陆 大家想一想,为什么告诉你密码,你都没法进去?? 回顾:用新的内核启动 如果启动成功,别忘了告诉好友,你打造的内核可以运行!? 如果启动失败,请按reset重新启动,然后在LILO或GRUB界面选择老版本内核。 请回忆上次的步骤,经验和教训,这次课我们将要继续修改内核,添加一段自己的代码进去! 系统调用的细节 考虑下面的问题: 我们用C语言编写一个函数,并且调用时,这个函数在机器中怎样执行? 这段程序如何被编译? int myfunc() { /*这里定义了一个函数*/ return 0; } main() /*这是主程序*/ { myfunc(); /*主程序里调用这个函数*/ } 系统调用的细节 Linux系统调用是通过中断实现的。 int 80h指令,发生一个中断 中断发生时,系统将转到核心态的中断处理程序。 中断处理结束,系统将返回用户态。 有很多个系统调用,中断处理程序如何知道调用的是哪一个? 系统调用的细节 把系统调用进行编号。 形成一张“系统调用表”。 需要调用open()时,先把open()的编号5放在ax寄存器中,再发生中断。 中断处理程序根据ax查表,得知需要调用的是open(),而不是其他。 系统调用的细节 比如有这样一段程序 open();

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档