2015-08-29 111 views
2

我的問題很簡單。sys_vm86old系統調用是做什麼的?

我遇到了這個sys_vm86old系統調用(當逆向工程),我試圖理解它做了什麼。

我發現兩個來源可以給我一些東西,但我仍然不確定我完全理解;這些來源 的Source Codepage這給了我這一段(但它更具可讀性直接鏈接):

配置GRKERNSEC_VM86
布爾「限制VM86模式」
取決於X86_32

幫助:
如果您在這裏說Y,只有具有CAP_SYS_RAWIO的進程才能夠使用 在32位x86處理器上使用稱爲 虛擬8086(VM86)模式的特殊執行模式。對於某些 視頻卡,XFree86可能需要vm86模式,並且仍然可以使用此選項。該選項的目的是 是爲了防止在2009年VMWare中發現的vm86模式的虛擬化中使用虛擬化錯誤 幾乎所有用戶都應該能夠啓用此選項。

從我的理解,它可以確保調用進程已啓用cap_sys_rawio。但這並不能幫助我很多...

有人可以告訴我嗎?
謝謝

+0

虛擬機x86舊電腦? –

回答

1

syscall用於在VM86模式下執行代碼。此模式允許您在保護模式操作系統內運行舊的「實模式」32位代碼(如某些BIOS中的代碼)。

例如,見它的維基百科文章:https://en.wikipedia.org/wiki/Virtual_8086_mode

您發現該設置意味着你需要CAP_SYS_RAWIO調用系統調用。

我認爲X11尤其是使用它來調用切換視頻模式的BIOS方法。有兩個系統調用,具有舊後綴的系統調用提供較少的操作,但保留二進制(ABI)兼容性。

相關問題