您好、欢迎来到现金彩票网!
当前位置:2019手机棋牌游戏平台 > 系统调用 >

Arm linux 系统调用分析

发布时间:2019-06-04 05:07 来源:未知 编辑:admin

  操作系统为在用户态运行的进程与硬件设备进行交互,提供操作系统的系统服务,提供了一组接口。在应用程序和硬件之间,内核提供的系统服务设置一个额外层具有很多优点。

  首先,这使得编程更加容易,把用户从学习硬件设备的低级编程特性中解放出来。

  其次,这极大地提高了系统的安全性,因为内核在试图满足某个请求之前在接口级就可以检查这种请求的正确性。

  最后,更重要的是这些接口使得程序具有可移植性,因为只要内核所提供的一组接口相同,那么在任一内核之上就可以正确地编译和执行程序。

  ARMLinux系统利用SWI指令来从用户空间进入内核空间,还是先让我们了解下这个SWI指令吧。SWI指令用于产生软件中断,从而实现从用户模式到管理模式的变换,CPSR保存到管理模式的SPSR,执行转移到SWI向量。在其他模式下也可使用SWI指令,处理器同样地切换到管理模式。指令格式如下:

  使用SWI指令时,通常使用以下两种方法进行参数传递,SWI异常处理程序可以提供相关的服务,这两种方法均是用户软件协定。

  1)指令中24位的立即数指定了用户请求的服务类型,参数通过通用寄存器传递。SWI异常处理程序要通过读取引起软件中断的SWI指令,以取得24为立即数。如:

  2)指令中的24位立即数被忽略,用户请求的服务类型由寄存器R0的值决定,参数通过其他的通用寄存器传递。如:

  Arm系统调用的简单概述。首先是用户态执行swi指令,swi指令使得cpu陷入svc状态,并跳转到固定地址去执行系统调用处理过程。用户态通过两种方法传递给内核执行系统调用的系统调用号。内核执行系统调用处理过程,首先保存cpu现场,之后会获取到系统调用号,以系统调用地址表的基地址,加系统调用号做偏移,跳转到相应的系统调用例程做相应的处理。

http://showmycoco.com/xitongdiaoyong/91.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有