0
Linux n00b在這裏。如何從用戶模式切換到內核模式?我正在運行Linux Ubuntu 12.10。有沒有可以使用內聯彙編代碼進行調用的中斷?如果沒有,那怎麼辦?切換到(Linux)內核模式
我問這個問題,因爲我希望寫一個可以訪問內核和不斷雖然UI不能直接訪問內核後臺運行一個SCTP(網絡)協議棧。從來沒有做過這樣的事情,所以專業人士的提示肯定會被讚賞。
Linux n00b在這裏。如何從用戶模式切換到內核模式?我正在運行Linux Ubuntu 12.10。有沒有可以使用內聯彙編代碼進行調用的中斷?如果沒有,那怎麼辦?切換到(Linux)內核模式
我問這個問題,因爲我希望寫一個可以訪問內核和不斷雖然UI不能直接訪問內核後臺運行一個SCTP(網絡)協議棧。從來沒有做過這樣的事情,所以專業人士的提示肯定會被讚賞。
所有切換到內核模式都是通過系統調用進行的。在網絡協議的情況下,這些系統調用是插座,聽,接受IOCTL,讀,寫,recvmsg等
你寫了一個Linux內核模塊。儘管Linux已經有了一個SCTP協議棧。你可能會更好地修改它做你想做的事情。
一旦你已經編寫和編譯你的模塊,你可以將其加載到用insmod rmmod的和內核。根據我的經驗,你很少有機會使用rmmod,因爲如果你犯了一個錯誤,系統崩潰或死機。因此,請使用虛擬機進行測試。重啓速度更快,數據丟失更少,並且更容易掛接虛擬串行控制檯進行調試。
我相信這個問題的方式重複。你可以在這個主題上找到很多問題。
Linux的AFAIK沒有附帶內置的SCTP協議棧,而且也沒有窗戶(所有版本)。我確信我可以在網絡空間的某個地方找到它,但通過清理源代碼創建我自己的代碼將是一個很好的練習,並教給我關於內核的東西(僱主肯定希望程序員知道)。 –
只有1個這樣的協議棧可用於Windows:由Bruce Cran編寫的SCTPdrv,它有一些主要的錯誤!試圖通過使用環回地址來測試SCTP應用程序將會使整個系統崩潰,並且他懶得修復它。但Windows內核驅動程序是一個完整的「魚」,因爲Windows更加複雜而不是開源。 –
@MrX:我的Ubuntu 12有這個:/lib/modules/3.2.0-43-generic/kernel/net/sctp/sctp.ko –