我試圖確定我的 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
您可能會考慮調查系統點擊。這樣,您應該能夠編寫一個腳本,每當您喜歡的事件(包括系統呼叫)發生時,該腳本就會觸發操作。