腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
在
linux
中使用
sysenter
指令会发生什么?
linux
、
operating-system
我正在研究
linux
中CPU是如何从用户模式转变为内核模式的。我遇到了两种不同的方法:中断和使用
sysenter
。 我无法理解
sysenter
是如何工作的。有人能解释一下运行
sysenter
指令时cpu里到底发生了什么吗?
浏览 0
提问于2012-07-08
得票数 0
回答已采纳
1
回答
在
Linux
上,
SYSENTER
在64位长模式下做什么?
linux-kernel
、
intel
、
system-calls
、
x86
、
assembly
有一个x86指令
sysenter
。这似乎是英特尔的快速系统呼叫方法。在英特尔处理器上,
SYSENTER
在长模式下(64位)似乎是有效的.这似乎已经失宠,因为AMD提供的syscall。你可以看到参数列表
sysenter
32位。对于syscall和int 0x80的绝对最小关注,当芯片处于长模式时,
sysenter
指令在
Linux
中做什么?它有什么用处吗?
浏览 0
提问于2018-10-03
得票数 2
2
回答
32位
Linux
上的Syscall或
sysenter
?
linux
、
assembly
、
32-bit
、
system-calls
、
sysenter
在以前的文章中,我看到引用int 80h来调用
Linux
上的系统函数。因为很长一段时间以来,我知道为了支持syscall指令,int 80h被弃用了。但是我不能让它在我的32位机器上工作。32位
Linux
不使用syscall吗?一个测试样本global _start mov eax, 4return code 0 db 10,"H
浏览 0
提问于2013-03-24
得票数 9
回答已采纳
2
回答
如何迫使gcc使用int进行系统调用,而不是同意?
c
、
gcc
、
compiler-construction
、
system-calls
摘要 多亏了jbcreix,我下载了glibc2.9源代码,并修改了sysdeps/unix/sysv/
linux
/i 386/sysdep.h中的行,以禁用#undef I386_USE_
SYSENTER
使用
sysenter
,而且它可以工作。
浏览 9
提问于2010-01-25
得票数 11
回答已采纳
1
回答
SYSENTER
/SYSEXIT vs INT 0x80
linux
、
assembly
、
x86
旧的
linux
版本使用“int0x80”指令来实现系统调用,后期版本使用"
SYSENTER
/SYSEXIT“指令来实现。这种差异会给系统呼叫带来问题吗?
浏览 2
提问于2014-03-07
得票数 7
1
回答
如何使用系统Ⅴ库链接的64位用户程序使用
sysenter
?
linux
、
security
、
assembly
、
x86-64
、
system-calls
是否可以在
Linux
上的64位程序中使用
sysenter
?还是不可能在没有其他动态链接库崩溃的情况下将
sysenter
的使用与系统Ⅴ调用约定相适应(我知道32位方式不起作用,但我只想知道是否有可能像
sysenter
那样处理这个问题 关于使用32位的同意器的文档很少
浏览 3
提问于2016-09-10
得票数 0
1
回答
Linux
如何提取syscall的第六个参数?
linux
、
x86
、
system-calls
但是,在通过
sysenter
进入内核之前,就会发生这种情况(在中,内核映射到用户进程的代码页):movl %esp, %ebp这意味着ebp现在应该有堆栈指针的内容
Linux
如何正确地获得参数?
浏览 1
提问于2015-12-07
得票数 4
回答已采纳
2
回答
为什么
linux
内核在使用
sysenter
/sysexit时不能恢复所有的寄存器?
linux
、
x86
、
system-calls
、
calling-convention
、
sysenter
在
Linux
2.6.11内核中,当使用
sysenter
进行系统调用时,几乎和init 0x80一样,使用save_all来推送内核堆栈上的所有寄存器,但在调用完成后,如果没有设置相关的标志,我们会使用set因此,当使用
sysenter
/sysexit进行系统调用时,我们首先在用户堆栈上推送%ebp,%edx,%ecx,因为%edx和%ecx不在保留寄存器中,我们需要在完成系统调用后恢复它们,并且在调用系统服务例程之前使用
浏览 0
提问于2015-04-21
得票数 0
2
回答
为什么调用系统调用的是int80h而不是system?
ubuntu
、
linux-kernel
、
system-calls
所有的教科书和互联网资源告诉我,int 80h是调用系统调用的一种陈旧风格,已经被x86平台上的
SYSENTER
所取代。 但我刚发现我的系统仍然使用int 80h。
浏览 4
提问于2012-02-03
得票数 4
回答已采纳
2
回答
在
Linux
内核中查找__kernel_vsyscall方法有困难。
linux
、
linux-kernel
、
kernel
我正在寻找
linux
内核中用于进行系统调用的__kernel_vsyscall方法。我想观察它的代码,以了解更多关于它的信息,但我的grep搜索似乎找不到它,我在互联网上也找不到它的位置。
浏览 0
提问于2012-10-16
得票数 1
3
回答
如何避免不适合缓冲区的stdin输入发送到
Linux
64位Intel (x86-64)程序集中的shell中。
linux
、
assembly
、
x86-64
、
nasm
、
yasm
在
Linux
64位英特尔程序集中使用stdin和NR_read读取用户输入时,我想知道如何避免输入缓冲区中不适合发送到
Linux
的输入。巴什?如何在
Linux
64位程序集中读取输入以避免此漏洞?
浏览 7
提问于2012-09-17
得票数 4
回答已采纳
1
回答
Windows上的系统调用是否天生比
Linux
慢?
linux
、
windows
、
operating-system
、
system-calls
我对系统调用的理解是,在
Linux
中,系统调用机制(int 0x80或其他什么)被记录下来,并保证在不同的内核版本之间是稳定的。理论上,通过静态编译CRT (在
Linux
上不常见,但有可能),可以进一步改进这一点,以便即使是单个函数调用也可以内联。 另一方面,Windows并不记录甚至保证系统调用机制的一致性。如果CRT是静态使用的,并且函数是内联的(在Windows上比
Linux
稍微常见一些),那么我们仍然有一个函数调用到ntdll.dll中,我们无法摆脱它。因此,在我看来,从理论上讲,Windows上的系统调用将从本质上说是比较慢的,因
浏览 3
提问于2014-02-27
得票数 7
1
回答
在64位模式下,
SYSENTER
是如何使用的,IA32_
SYSENTER
_CS是什么?
assembly
、
kernel
、
x86-64
、
sysenter
阅读了
SYSENTER
指令的描述后,我发现了以下内容: 我认为64位系统现在使用虚拟内存地址方案(分页),它基本上不再依赖代码段(CS)寄存器有人能解释一下IA32_
SYSENTER
_CS寄存器中到底包含了什么吗?
浏览 4
提问于2017-06-21
得票数 4
1
回答
在x86中,
Linux
内核是如何进入监督模式的?
linux-kernel
、
x86
我试图探测模式切换发生时的事件(用户->内核模式),因此,我需要找出在发生转换时将触发哪个函数。
浏览 3
提问于2021-03-05
得票数 1
回答已采纳
3
回答
在不修改内核的情况下拦截系统调用的最小开销方式
c
、
linux
、
gcc
、
x86-64
、
system-calls
使用内核模块来更改系统调用表,但据我所知,这种方法在以后的
linux
内核中不再可行。 使用LD_PRELOAD。但是,如果您不对系统调用使用包装库函数,就无法直接进行系统调用。
浏览 10
提问于2012-07-02
得票数 6
2
回答
系统调用与函数调用的性能差异
performance
、
x86
、
kernel
、
system-calls
我经常听到驱动程序开发人员说尽量避免内核模式切换是件好事。我不明白确切的原因。首先我的理解是- 我听到几个人在堆栈溢出上回答: 你永远不知道syscall需要多长
浏览 9
提问于2012-06-23
得票数 8
5
回答
ARM系统调用的接口是什么,它在
Linux
内核中定义在哪里?
linux
、
linux-kernel
、
arm
、
system-calls
我读过关于
Linux
中的系统调用的文章,到处都有关于x86体系结构(0x80、中断和
SYSENTER
)的描述。但是我无法跟踪ARM体系结构中的系统调用的文件和进程。有人能帮忙吗。
浏览 13
提问于2012-10-18
得票数 12
回答已采纳
1
回答
x86中的VMCALL指令是否保存客户CPU状态?
virtual-machine
、
x86-64
、
virtualization
、
intel
、
hypervisor
VMCALL与
SYSENTER
指令非常相似,与
SYSENTER
用于系统调用(快速过渡到OS)的方式不同,而VMCALL用于超调调用(向虚拟机管理程序的转换)。我的问题是,虽然
SYSENTER
不保存CPU状态,但对于VMCALL也是如此。发出VMCALL会导致VM退出,但我不确定它是否将客户CPU状态保存到相关的VM结构中?
浏览 1
提问于2015-01-05
得票数 6
回答已采纳
3
回答
如何在OS上运行此程序集代码?
macos
、
gcc
、
assembly
、
nasm
开始学习程序集时,我收到了一些在
Linux
上的类中创建的Hello程序集代码。我想让它在64位Mac上工作。的未定义符号:"_main",引用于: start in crt1.10.6.old:未找到用于架构i386的符号 有一个回答说 问题在于您正在创建一个32位
Linux
浏览 1
提问于2013-09-08
得票数 7
回答已采纳
3
回答
‘’结束后的内容是什么?
linux
、
android-ndk
、
pascal
、
elf
、
libc
a_type = AT_SYSINFO then begin if psysinfo <> 0 then
sysenter
_supported
浏览 2
提问于2013-06-01
得票数 1
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux DNS 查询剖析 Linux 中国
Manjaro Linux 22.0 发布|Linux 中国
Alpine Linux 3.18 发布|Linux 中国
Linux基础(3)linux命令3
linux高级课程-在Linux中编程
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券