标签:
1).先执行rm menu -rf,强制删除原有的menu文件夹,使用git命令更新menu代码至最新版
2).test.c中main函数里,增加MenuConfig()
3).增加对应的两个函数,Getpid和GetpidAsm
4).make rootfs
输入help,可以看到当前的系统调用:
5).
成功。
c运行之后,在MenuOs里使用time,可以看到它停了下来
list可以查看内部的函数,直到sys_time返回后进入汇编代码处理,gdb无法继续进行追踪
三、对系统调用处理过程的理解
1.用户态到内核态需要int 0x80进行中断,只有生成了中断向量后才可以切换状态;
2.中断处理让CPU停止当前工作转为执行系统内核中预设的一些任务,因此必须要对当前CPU执行的任务进行执行现场的保护工作,并对一些其他杂七杂八的工作进行检查,完成调用后,再进行检查,才能执行iret返回。
标签:
原文地址:http://www.cnblogs.com/ppph1995/p/5324096.html