syscall指令_linux syscall详细介绍
一、
Syscall
意义
内核提供用户空间程序与内核空间进行交互的一套标准接口,
这些接口让用户态程序能受
限访问硬件设备,
比如申请系统资源,
操作设备读写,
创建新进程等。
用户空间发生请求,
内核空间负责执行,
这些接口便是用户空间和内核空间共同识别的桥梁,这里提到两个字
“受限”
,是由于为了保证内核稳定性,而不能让用户空间程序随意更改系统,必须是内
核对外开放的且满足权限的程序才能调用相应接口。
在用户空间和内核空间之间,有一个叫做
Syscall(
系统调用
, system call)
的中间层,是连接
用户态和内核态的桥梁。这样即提高了内核的安全型,也便于移植,只需实现同一套接口
即可。
Linux
系统,用户空间通过向内核空间发出
Syscall
,产生软中断,从而让程序陷入
内核态,执行相应的操作。对于每个系统调用都会有一个对应的系统调用号,比很多操作
系统要少很多。
安全性与稳定性:内核驻留在受保护的地址空间,用户空间程序无法直接执行内核代码,
也无法访问内核数据,通过系统调用
性能:
Linux
上下文切换时间很短,以及系统调用处理过程非常精简,内核优化得好,所
以性能上往往比很多其他操作系统执行要好。
二、
Syscall
查找方式
这里以文章理解杀进程的实现原理中的
kill()
方法为例子,来找一找
kill()
方法系统调用的
过程。
Tips 1
:
用户空间的方法
xxx
,对应系统调用层方法则是
sys_xxx
;
TIps 2
:
unistd.h
文件
记录着系统调用中断号的信息。
故
用
户
空间
kill
方
法
则
对
应
系
统
调用
层
便
是
sys_kill
,
这
个
方
法
去
哪
里找
呢
?
从
/kernel/include/uapi/asm-generic/unistd.h
等还有很多
unistd.h
去慢慢查看,查看关键字
sys_kill
,便能看到下面几行:
/* kernel/signal.c */
syscall指令_linux syscall详细介绍相关推荐
- syscall指令_linux syscall 详解【转】
引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app.framework.native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到 ...
- syscall指令_linux系统调用-SYSCALL_DEFINEx详解
系统调用在内核中的入口都是sys_xxx,但其实Linux的系统调用都改为SYSCALL_DEFINE定义的.本文以socket系统调用为例来详解. 1 首先看一下SYSCALL_DEFINE的定义, ...
- 为什么系统调用会消耗较多资源?系统调用的三种方法:软件中断(分析过程)、SYSCALL指令、vDSO(虚拟动态链接对象linux-vdso.so.1)
Table of Contents 软件中断 汇编指令 vDSO 总结 参考文章 系统调用是计算机程序在执行的过程中向操作系统内核申请服务的方法,这可能包含硬件相关的服务.新进程的创建和执行以及进程调 ...
- syscall指令_SYSCALL
SYSCALL在0环权限下调用一个OS系统调用的处理例程.它通过加载来自 IA32_LSTR MSR 来加载 RIP(之后保存syscall下一条指令的地址在rcx中).(WRMSR指令确保 IA32 ...
- syscall指令_[原创]简析syscall,sysret和sysenter,sysexit的具体过程
这里我以windows系统为例子,在其他系统实现方式是一样的. 我们都知道xp系统是通过int 2E中断从用户态进入内核态的.,但xp系统之后windows都是通过系统快速调用从用户态进入内核态的. ...
- 全网详细介绍nginx的反向代理、正向代理配置,location的指令说明,反向代理的两个示例代码以及全局块,events块和http快的说明。
文章目录 1. 文章引言 2. 何谓反向代理 3. 解析nginx的配置文件 3.1 全局块(global block) 3.2 events块(events block) 3.3 http块(htt ...
- 发那科机器人点位编辑_发那科机器人指令编辑详细介绍
程序编辑界面,在编辑(EDCMD)中有一系列的功能选项,本文重点对"变更编号"."取消"及"改为备注"三个功能做详细介绍. 1.变更编号(R ...
- 计算机远程用户关机指令,Win7远程关机的命令和设置办法详细介绍
什么是远程关机?顾名思义,远程关机是一项可以通过远程操作控制计算机关机的功能.由于计算机的普及,在使用计算机时,我们还将获得一些私人信息.然后,为了防止我们在工作和学习期间将计算机留给他人使用,我们可 ...
- Linux小工具(3)之/proc目录详细介绍(上)
目录 前言 一.平台说明 二./proc目录概述 三.准备使用 (1)进程描述文件夹 (2)/proc目录下常见的文件夹 前言 Linux系统的使用有别于Windows系统,无论是系统信息还是应用软件 ...
最新文章
- 17个改变世界的数学公式,马斯克点赞
- Angular 11 正式发布,放弃对IE 9、10的支持!
- 关于mysql的ddl_log.log文件
- 如何处理错误消息Query XXX is invalid or contains errors
- 系统服务管理与控制程序(Init System/初始化系统)-- Systemd 的 Unit 配置文件详解
- oracle查看表中记录数,Oracle 查询某一用户下所有表的记录数
- 车牌识别算法库EasyPR的编译实战
- 狼人杀休闲游戏微信小程序模板源码/微信小游戏源码
- 单片机编程软件很简单(11),Keil单片机编程软件在线调试
- java游戏开发入门(一) - HelloWorld
- 微信服务号只有域名没有80端口怎么办
- 如何在Tomcat中发布网站
- 微信公众号开发 - 配置表设计以及接入公众号接口开发
- 【IoT】卫朋:6000+ 字解读 | 2022年产品人必备的7个产品管理工具(1.0版)
- python3 打字小游戏
- 【Android】高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法
- 时间序列(一):上手体验
- kafka java api 入数据报错:Error: MESSAGE_TOO_LARGE
- 在win10上使用SSH和SCP
- 人员走动轨迹展示——小人走动行走动画