system calls
========================================
Linux的系统调用是通过软中断swi来实现的从用户态到内核态.
swi
----------------------------------------
用swi #0指令即可触发软中断,并切换到内核态(管理模式)。
https://github.com/novelinux/arch-arm-common/tree/master/swi/README.md
user --> kernel
----------------------------------------
在系统调用通过软中断swi从用户态切换到内核态的压栈过程如下所示:
```
| kernel stack | struct pt_regs
|--------------|-----------------------
| r0 ~ r12 |
| sp_usr | sp
| lr_usr | lr
| lr_svc | pc
| cpsr | cpsr
| r0 |
| |------------------------ <- sp_svc
```
**注意**:
1.lr_svc中是指向swi中断指令的下一条指令.
2.这里r0会存两个位置: 一个代表第一个参数,另一个代表返回值。
### vector_swi
软中断处理函数:
https://github.com/novelinux/linux-4.x.y/tree/master/arch/arm/kernel/entry-common.S/vector_swi.md
### struct pt_regs
https://github.com/novelinux/linux-4.x.y/tree/master/arch/arm/include/asm/ptrace.h/struct_pt_regs.md
sys_call_table
----------------------------------------
系统调用表.
https://github.com/novelinux/linux-4.x.y/tree/master/arch/arm/kernel/entry-common.S/sys_call_table.md
kernel --> user
----------------------------------------
在系统调用从内核态返回到用户态的调用过程如下所示:
```
| kernel stack | struct pt_regs
|--------------|----------------------- <- sp_svc
| r0 ~ r12 | --> r1 ~ r12
| sp_usr | sp --> sp_usr
| lr_usr | lr --> lr_usr
| lr_svc | pc --> lr_svc --> pc
| cpsr | cpsr --> spsr_cxsf
| r0 |
| |------------------------
```
**注意**: ret_fast_syscall不会将r0寄存器值恢复,r0要用来保存返回值.
在从内核态返回到用户态的过程是由ret_fast_syscall来完成的:
### ret_fast_syscall
https://github.com/novelinux/linux-4.x.y/tree/master/arch/arm/kernel/entry-common.S/ret_fast_syscall.md
妄北y
- 粉丝: 2w+
- 资源: 1万+
最新资源
- 西门子S7-1200PLC结构化编程5轴完整的伺服项目 ,包含plc程序、配套的威纶通触摸屏程序、配套的cad电气图纸 可以实现以下功能,规格有: 1.三轴机械手X轴-Y轴-Z轴联动取放料PTO脉冲
- TB无人直播九月份最新玩法,日不落直播间,不风控,日稳定躺赚1000+!.mp4
- TikTok涨粉全攻略:掌握算法逻辑,精准发布,粉丝数飙升百万.mp4
- Tk好物分享提升篇:商品橱窗开通指南,选品技巧大公开,素材获取方法揭秘.mp4
- 计算机体系结构实训:基于微程序控制器的MIPS多周期处理器设计及测试
- 24年-软开-期末大作业要求.doc
- 西门子1200PLC以PTO脉冲方式控制伺服电机,步进电机的功能块程序 西门子plc标准模板S7-1200PLC脉冲控制伺服程序案例 内独有配套电路图cad 包含两套程序,第一套程序是用梯形图写的
- TK虚拟资料变现实操:从下载部署到账号运营,解锁变现新路径.mp4
- 广州大学数据结构实验二代码包
- 国庆风口项目,利用ai漫改渐变国庆头像,日变现四位数,可一键生成风口....mp4
- 基于深度置信网络(DBN)的数据回归预测 多输入单输出 出图真实值与预测值对比图,DBN训练损失图 误差指标包括MAE、ME、RMSE、R2
- 家居装饰视频必备!轻奢风竖屏背景素材包,含清晰、中间虚化、全屏虚化.mp4
- 黑科技自动生成 一刀不剪 几十秒一个原创作品.mp4
- 多光谱近红外场景下的小麦、玉米、水稻秧苗图像分类数据集【已标注,约900张数据】
- 自动驾驶多传感器联合标定系列之IMU到车体坐标系的标定工程 , 本在已知GNSS GPS到车体坐标系的外参前提下,根据GNSS GPS的定位信息与IMU信息完成IMU到GNSS GPS 的外参标定,并
- 快手&抖音-小程序变现 图文运用小游戏项目打造矩阵打法与游戏发行人.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈