向linux内核加入系统调用新老内核比較
生活随笔
收集整理的這篇文章主要介紹了
向linux内核加入系统调用新老内核比較
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2.6內(nèi)核
1>改動linux-source-2.6.31/kernel/sys.c文件,在文件末尾加入系統(tǒng)響應(yīng)函數(shù)。函數(shù)實現(xiàn)例如以下: asmlinkage int sys_mycall(int number) ? {
??? printk("這是我加入的第一個系統(tǒng)調(diào)用");
??? return number;
?}
2>在linux-source-2.6.31/arch/x86/kernel/syscall_table_32.S 中加入:.long sys_mycall 如: .long sys_mycall /* 341 */
3> 在linux-2.6.31/arch/x86/include/asm/unistd_32.h中加入 如: #define __NR_mycall 序號(比如341),加入系統(tǒng)調(diào)用的入口參數(shù)(注意:當(dāng)中會順序定義入口參數(shù)的序號。加入的序號是在原有最大值的基礎(chǔ)上+1)
4>又一次配置編譯內(nèi)核就可以
最新3.X內(nèi)核
1>在linux-3.8.4/kernel/sys.c 文件末尾加入新的系統(tǒng)調(diào)用函數(shù) 如: asmlinkage int sys_mycall(int number) ? {
???? printk("這是我加入的第一個系統(tǒng)調(diào)用");
???? return number;
?} 2>在arch/x86/syscall_32.tbl下找到unused 223號調(diào)用然后替換 如: 223 i386 mycall sys_mycall
3>又一次編譯就可以
還存在還有一種方法,由于64位操作系統(tǒng)是兼容32位的,以下使用64位的情況
1>同上面的第一步
2>在arch/x86/syscalls/syscall_64.tbl下找到313號系統(tǒng)調(diào)用。然后在其以下加上314號自己的中斷 如: 314 common mycall sys_mycall 3>又一次編譯就可以
轉(zhuǎn)自www.360doc.com/content/13/0502/16/12139495_282464589.html
1>改動linux-source-2.6.31/kernel/sys.c文件,在文件末尾加入系統(tǒng)響應(yīng)函數(shù)。函數(shù)實現(xiàn)例如以下: asmlinkage int sys_mycall(int number) ? {
??? printk("這是我加入的第一個系統(tǒng)調(diào)用");
??? return number;
?}
2>在linux-source-2.6.31/arch/x86/kernel/syscall_table_32.S 中加入:.long sys_mycall 如: .long sys_mycall /* 341 */
3> 在linux-2.6.31/arch/x86/include/asm/unistd_32.h中加入 如: #define __NR_mycall 序號(比如341),加入系統(tǒng)調(diào)用的入口參數(shù)(注意:當(dāng)中會順序定義入口參數(shù)的序號。加入的序號是在原有最大值的基礎(chǔ)上+1)
4>又一次配置編譯內(nèi)核就可以
最新3.X內(nèi)核
1>在linux-3.8.4/kernel/sys.c 文件末尾加入新的系統(tǒng)調(diào)用函數(shù) 如: asmlinkage int sys_mycall(int number) ? {
???? printk("這是我加入的第一個系統(tǒng)調(diào)用");
???? return number;
?} 2>在arch/x86/syscall_32.tbl下找到unused 223號調(diào)用然后替換 如: 223 i386 mycall sys_mycall
3>又一次編譯就可以
還存在還有一種方法,由于64位操作系統(tǒng)是兼容32位的,以下使用64位的情況
1>同上面的第一步
2>在arch/x86/syscalls/syscall_64.tbl下找到313號系統(tǒng)調(diào)用。然后在其以下加上314號自己的中斷 如: 314 common mycall sys_mycall 3>又一次編譯就可以
轉(zhuǎn)自www.360doc.com/content/13/0502/16/12139495_282464589.html
總結(jié)
以上是生活随笔為你收集整理的向linux内核加入系统调用新老内核比較的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Scrollview中使用AutoLa
- 下一篇: LinuxUSB驱动程序调试--009: