如何確定我的 Linux 核心是否使用 SYSENTER / SYSEXIT 進行系統調用

如何確定我的 Linux 核心是否使用 SYSENTER / SYSEXIT 進行系統調用

我試圖確定我的 Linux 核心是否使用 sysenter/sysexit 指令來啟動和終止來自使用者空間的系統呼叫。

我正在運行的核心是“2.6.31.12-174.2.3.fc12.x86_64”。

有任何想法嗎?

M。

答案1

sysenter/sysexit 更取決於您的 CPU 而不是核心 - Linux 從早期的 2.5 天開始就使用它。 Linux 根據執行的 CPU 類型選擇 SYSENTER、SYSCALL 或傳統的 int 80 方法。

不確定您如何確認它確實被使用。我認為 Systemtap 或 LTT 看起來還不夠低。也許您可以檢測內核並在 vDSO 程式碼中添加一些追蹤點...

答案2

我能想到的唯一建議是使用Linux 追蹤工具包創建內核轉儲並挖掘系統呼叫。

答案3

您可能會考慮調查系統點擊。這樣,您應該能夠編寫一個腳本,每當您喜歡的事件(包括系統呼叫)發生時,該腳本就會觸發操作。

相關內容