zoukankan      html  css  js  c++  java
  • 深入理解Linux内核-系统调用

    系统调用:用户态进程向内核发出的,实现用户态进程调用硬件设备的函数或者中断;
    优点:使编程更容易,将用户从学习硬件设备的低级编程特性中解放;提高系统到安全性,内核在满足请求之前可以做正确性检查;提高可移植性;

    系统调用与API调用的区别:
    1、API调用是一个函数定义;系统调用是通过软中断向内核发出的明确请求
    2、内核不可以访问库函数

    内核中,返回值为正数或者0表示系统调用成功结束,否则表示出错条件

    进入内核态的两种方式:1、执行 int $0x80 指令 ;2、执行 sysenter 指令
    内核推出系统调用方式:1、执行 iret 指令; 2、使用sysexit指令

    系统调用传递参数:
    1、它将参数保存在CPU寄存器,然后由内核去读取;不能直接讲参数从用户态栈传递到内核态栈,原因是这样会更复杂
    2、受寄存器的限制,参数的个数不能超过6个;多余6个可以通过传参数集合的地址
    3、参数的长度受寄存器的限制,不能超过32bit,同样可以通过传地址解决。

    参数检查:
    1、
  • 相关阅读:
    程序员如何制定自己的一份年度计划
    【Spring入门系列】篇3:再探IOC
    【Spring入门系列】篇2:SpringIOC入门
    【Spring入门系列】篇1:Spring简介
    适配器模式
    java编程思想之正则表达式
    代理模式
    建造者模式
    抽象工厂模式
    工厂方法模式
  • 原文地址:https://www.cnblogs.com/lipeil/p/4726451.html
Copyright © 2011-2022 走看看