操作系统课程实验编写内核模块 国防科大操作系统课件.ppt

操作系统课程实验编写内核模块 国防科大操作系统课件.ppt

操作系统课程实验 编写内核模块 2003.12 实验二 知识要点回顾 一般的函数调用是通过x86 CPU的哪两条指令实现的? Linux系统调用是通过x86 CPU的哪条指令实现的? 为什么系统调用不能使用call和ret指令来实现? 当发生中断时,中断处理程序如何知道用户需要的是哪个系统调用? 实验二 知识要点回顾 我使用空闲的系统调用号250,添加了一个系统调用my_syscall(),当一个用户态程序调用my_syscall()的时候,简要说明一下在计算机内部的执行流程。 我在系统调用my_syscall()的处理程序里面写了这样一行: printk(“Hello, now we are in the kernel\n”); 这里为什么用printk,而不是printf? 实验二 知识要点回顾 一般的函数调用是通过x86 CPU的哪两条指令实现的? call和ret指令 Linux系统调用是通过x86 CPU的哪条指令实现的? int指令(准确的说,是int 80h指令) 实验二 知识要点回顾 为什么系统调用不能使用call和ret指令来实现? 因为call和ret不能从用户态转到核心态。 当发生中断时,中断处理程序如何知道用户需要的是哪个系统调用? 给系统调用编号,查系统调用表可知。 实验二 知识要点回顾 简要说明一下自己的系统调用my_syscall()在计

文档评论(0)

1亿VIP精品文档

相关文档