2016-08-31 19 views
3

我想在進程處於內核模式時測試一些內容。完全在內核模式下10-15秒的時間應該足夠了。強制C程序在內核模式下運行一段時間

有沒有辦法強制一個用C編寫的程序在內核模式下運行一段時間?一個單一的read系統會調用一個巨大的緩衝區嗎?

+1

我不知道你在內核模式下對「運行」的定義是什麼,但你可能通過調用sleep()來獲得你想要的() – Dougvj

+0

你的想法和閱讀將起作用。但目前還不清楚你想通過這個來達到什麼目的...... –

+0

你需要一個內核模塊。 Hello World非常簡單。 – vz0

回答

1

沒有辦法強制運行程序在內核模式下運行。 在內核模式下有更多可用的權限。這意味着 程序可以執行它不能在 用戶模式下執行的特殊指令。 顯然,沒有辦法,AFAIK強制程序在用戶模式下切換到內核模式,因爲它危及安全性:想象一下, 每個進程都會切換到用戶模式,惡意 代碼可以通過改變引起災難頁表,更改CPU設置,關閉中斷等。

「切換」到內核模式的唯一有效方式是執行系統調用。 這會造成內核陷阱,執行一些內核代碼後 控件將返回到用戶代碼。不過,我認爲這並不是你問到的問題。

+0

不確定這是否正確。我最終做的是 - – bohanl

+0

1.編寫一個msleep的內核模塊; 2.編寫一個C程序來加載這個內核模塊 – bohanl

+0

你使用什麼系統?在我的Linux機器上沒有msleep(在手冊頁中)。 –

相關問題