簡體   English   中英

如何在不重新編譯Linux內核的情況下實現自己的系統調用?

[英]How to implement my own system call without recompiling the Linux kernel?

我想實現自己的系統調用。 (見下面的鏈接)

http://www.tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/

但是添加新的系統調用需要內核編譯。

如何在不重新編譯Linux內核的情況下實現自己的系統調用?

你不能。

如果不重新編譯內核,您所能做的就是構建和加載內核模塊,內核模塊無法添加新的系統調用。

你當然可以。

簡而言之,您需要修補正在運行的內核。

至少有兩種方法可以添加新的系統調用:

  1. 在任何系統調用條目( system_callia32_system_all等...)上展開現有系統調用表( sys_call_tableia32_sys_call_table )和補丁系統調用限制檢查指令(通常在x86上為cmp
  2. 復制現有系統調用表,根據需要展開它們,修補系統調用調度指令(通常在x86上call )以指向任何系統調用條目中的表的復制和補丁系統調用限制檢查指令。

有關詳細信息,請參閱此修訂:

使用LKM實現Linux系統調用

32位應用程序如何在64位Linux上進行系統調用?

:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM