Linux内核分析第五周总结

系统调用在内核代码中的工做机制和初始化

xyz()与sys_xyz()是经过系统调用号联系在一块儿的
0x80与system_call是经过中断向量联系起来的函数

系统调用机制的初始化
3d

用汇编代码编写系统调用的过程:

  • 肯定出需传入的参数,以及函数的返回值
  • 选择适当的寄存器存储输入参数值,将输入参数值传给相应的寄存器
  • 将系统调用号存入到eax寄存器中,并使用"int $0x80"语句,进入中断处理程序,中断号80表明进入系统调用

进入系统调用后:

  • 进入sys_ call函数,该函数调用涉及到的系统调用函数(sys _ xxx函数)
  • 执行sys_ xxx函数的内部细节,最终将返回值传递给sys_ call函数过程
  • 在sys_ call函数中iret最后的结果

实验

在main函数中增长MenuConfig和详细函数

Make rootfs
调试


设置断点
blog


进行单步调试
程序

总结

系统调用就是一个函数,它须要用到内核中的代码,但这部分代码我没有办法直接访问,因此经过系统调用这个中介,它去让内核执行须要执行的代码,把最后的结果告诉用户。这时为用户就是什么都不知道了,等着系统调用来告诉用户结果。im

相关文章
相关标签/搜索