【问题标题】:What does sys_vm86old syscall do?sys_vm86old 系统调用有什么作用?
【发布时间】:2015-08-29 11:04:44
【问题描述】:

我的问题很简单。

我遇到了这个sys_vm86old 系统调用(逆向工程时),我试图了解它的作用。

我找到了两个可以给我一些东西的来源,但我仍然不确定我是否完全理解;这些来源是 Source Codepage 给了我这一段(但直接在链接上更易读):

配置 GRKERNSEC_VM86
bool "限制 VM86 模式"
取决于 X86_32

帮助:
如果您在这里说 Y,则只有具有 CAP_SYS_RAWIO 的进程才能 在 32 位 x86 处理器上使用一种特殊的执行模式,称为 虚拟 8086 (VM86) 模式。 XFree86 可能需要 vm86 模式 视频卡,并且仍然可以在启用此选项的情况下工作。目的 的选项是防止利用仿真错误 vm86 模式的虚拟化,就像 2009 年在 VMWare 中发现的那样。 几乎所有用户都应该能够启用此选项。

据我了解,它将确保调用进程已启用 cap_sys_rawio。但这对我没有多大帮助......

谁能告诉我?
谢谢

【问题讨论】:

  • 虚拟机 x86 旧电脑?

标签: system-calls


【解决方案1】:

系统调用用于在 VM86 模式下执行代码。此模式允许您在受保护模式的操作系统中运行旧的“实模式”32 位代码(如某些 BIOS 中的代码)。

参见例如关于它的维基百科文章:https://en.wikipedia.org/wiki/Virtual_8086_mode

您找到的设置意味着您需要 CAP_SYS_RAWIO 来调用系统调用。

我认为 X11 尤其是使用它来调用 BIOS 方法来切换视频模式。有两个系统调用,一个带有 old 后缀的系统调用提供较少的操作,但为了二进制 (ABI) 兼容性而保留。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2016-02-12
    • 2015-07-01
    • 1970-01-01
    • 2020-08-12
    • 2019-11-09
    • 1970-01-01
    • 2014-09-28
    相关资源
    最近更新 更多