社区
Linux/Unix社区
帖子详情
请问一个Linux中的系统调用的参数传递问题
weixin_42376249
2019-03-17 10:13:53
看到书上说系统调用的实现的时候,用asmlinkage来通知编译器仅从栈中提取函数的参数,为什么后面再说系统调用参数传递的时候又说要用到。eax ebx ecx等寄存器? 系统调用的参数到底是如何传递的?asmlinkage到底影响了哪一步的参数传递? 还请大佬们帮帮本弱
...全文
46
回复
打赏
收藏
请问一个Linux中的系统调用的参数传递问题
看到书上说系统调用的实现的时候,用asmlinkage来通知编译器仅从栈中提取函数的参数,为什么后面再说系统调用参数传递的时候又说要用到。eax ebx ecx等寄存器? 系统调用的参数到底是如何传递的?asmlinkage到底影响了哪一步的参数传递? 还请大佬们帮帮本弱
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
透析
Linux
系统
编程
当你在
系统
编程
中
,
调用
一个
系统
调用
来解决
问题
时,是否考虑过 该
系统
调用
是否会对
系统
性能带来影响?是否还有最优的方式? 当你在
系统
编程过程
中
,遇到
问题
,是否只是检查代码逻辑,而不会去深入...
Linux
4.18.9添加
系统
调用
传递参数示例
Linux
4.18.9添加
系统
调用
传递参数示例 做过
系统
调用
的朋友们应该都注意到了,在
Linux
4.15之后的版本因为KPTI(内核页表隔离)的出现,添加自己的
系统
调用
传递参数时并不能像以前版本一样处理,这里我介绍下自己的解决方案(完整步骤)。 1.下载最新源码 在https://www.kernel.org/上下载最新内核源码 本文编辑时最新稳定版本为4.18.9,下载后拷贝到/usr/src目...
系统
调用
原理及
参数传递
1.
系统
调用
是应用程序与操作
系统
内核的接口。2.
系统
调用
入口地址:
linux
:0x80 windows: 0x2E3.
Linux
下的
系统
调用
1. 在x86下由0x80
中
断实现
系统
调用
,通用寄存器完成
参数传递
。EAX:用来传递
系统
调用
的接口号。每
一个
系统
调用
都对应与内核源码
中
一个
函数以“sys_”开头。它们以c语言的形式...
关于
系统
调用
如何传递参数
问题
,即
系统
调用
约定(syscall,int 80h,svc)
1.syscall syscall是x64的
系统
调用
。其
调用
号通过rax进行传递。查看具体的
调用
号,
linux
环境下在unistd.h
中
定义。如果是64位,则可以查看/usr/include/asm/unistd_64.h,如果是32位,则查看/usr/include/unistd_32.h。
参数传递
:处于用户态时,
参数传递
顺序为:rdi,rsi,rdx,rcx,r8,r9,处于内核态时,
参数传递
顺序:rdi,rsi,rdx,r10,r8,r9 2.int 80h int 80h 是32位x86的.
linux
syscall参数,SYSCALL: 传递字符串参数的
系统
调用
目录实践原理用户空间可用通过
系统
调用
可以将
一个
或多个字符串数据传递给内核空间。对于字符串参数,用户空间必须通过指针的方式传到内核空间,由于这样的方式导致内核空间不能直接访问用户空间的数据,会导致内核非法访问。因此对于这种情况,内核首先将用户空间的数据拷贝到内核空间,这样才能安全使用数据。内核也可以将内核字符串数据传递给用户空间,此时也不能直接传,也需要通过安全的拷贝操作才能完整任务。用户空间的
系统
...
Linux/Unix社区
18,773
社区成员
11,463
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 专题技术讨论区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章