zoukankan      html  css  js  c++  java
  • 课本第五章读书笔记

    课本第五章笔记 系统调用

    系统调用和API的异同

    • 系统调用在用户空间进程和硬件设备之间添加了一个中间层。

    • 而应用程序通过在用户空间实现的应用编程接口来编程。这种接口并不需要和系统调用对应。

    • 程序员只和API打交道,内核只跟系统调用打交道。

    系统调用的定义

     1,编译指令asmlinkage通知编译器仅从栈中提取该函数的参数。

     2,函数返回long

    系统调用的触发过程

    应用程序通过软中断告知系统,通知内核自己需要一个系统调用。

     软中断号128,通过int $0x80触发中断

    系统调用的参数传递

    在x86上,系统调用号通过eax寄存器传递给内核。

    在x86-32系统上,ebx,ecx,edx,esi,edi按照顺序存放前五个参数

    给用户空间的返回值在x86系统上存放在eax寄存器中。

    总结:

    系统调用和API并非一一对应,API也可能对应多个系统调用的综合实现,程序员只需要关心API,而内核关心系统调用。通过以EAX为主的几个寄存器,可以实现包括系统调用号和返回值在内的诸多参数传递。

  • 相关阅读:
    flask项目部署
    FastDFS分布式文件系统
    《app》团队冲刺二
    《APP》团队开发一
    软工二年级团队项目----自律小助手
    团队项目新闻app的需求分析
    团队成员及团队项目
    团队冲刺第八天
    团队冲刺第七天
    团队冲刺第六天
  • 原文地址:https://www.cnblogs.com/20135319zl/p/5313568.html
Copyright © 2011-2022 走看看