自己添加一个系统调用
来源:互联网 发布:手持移动数据终端 编辑:程序博客网 时间:2024/06/06 01:26
自己添加一个系统调用
自己添加一个系统调用要依照一下步骤完成,不过在产考的过程中还要根据自己的机器来操作。
1)前提:一个干净的系统
2)把redhat下的/usr/src/kernels/2.6.18-164.el5-i686/.config拷到自己下的内核中如(linux-2.6.28)
3)Cd linux-2.6.28
4)Make后接着一路回车
5)编辑/kernel/sys.c文件,添加如下代码:
asmlinkage long sys_mycall(long number)
{
printk(“call number is %ld\n”,number);
return number;
}
6)编辑arch/x86/include/asm/unistd.h(要根据bzImage产生的位置和电脑的位数)文件:
添加一行#define __NR_mycall 324 到当前的最大系统调用号之后 ,比如原来最大的是323,在323的这一行之后 加上一行 #define __NR_mycall 324
修改#define NR_systemcalls 的值,改成原来的值+1,比如原来是324 改成325
7)编辑/arch/x86/kernel/syscall_table_32.S文件
在文件最后加上一行:
.long sys_mycall
8) make bzImage
9) cp /linux-2.6.28/arch/x86/boot/bzImage /boot/vmlinuz-版本号 (拷贝内核镜像)
10)编辑/boot/grub/grub.conf
修改前:
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-164.el5.img
修改后:
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.18-164.el5.img
title Red Hat Enterprise Linux Server (2.6.28)
root (hd0,0)
kernel /vmlinuz-2.6.28 ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.28
11)重启redhat。
- 自己添加一个系统调用
- linux 添加一个系统调用
- linux自己手动添加系统调用
- 系统调用,及手动添加自己的系统调用
- Android系统添加一个自己的service
- 自己创建并使用一个系统调用
- 自己写一个linux的系统调用
- 添加一个系统调用,遍历内核进程
- Linux添加一个新的系统调用
- 添加一个系统调用到Linux内核
- Android添加自己的系统属性(反射调用SystemProperties)
- 向OpenSolaris内核中添加一个系统调用
- 给linux添加一个系统调用(linux-4.10.1)
- 使用 Linux 系统调用的内核命令--探究 SCI 并添加自己的调用
- Linux系统调用的内核命令 : 探究SCI并添加自己的调用
- 系统调用的原理和实现+添加一个新的系统调用
- 内核添加系统调用
- 添加Linux系统调用
- [Qt教程] 第20篇 2D绘图(十)图形视图框架(下)
- html5本地存储(Web Storage API)
- Android invalidate 与postInvalidate用法
- 我的C++学习之路 --01.类的那些事儿。。。
- 第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization
- 自己添加一个系统调用
- ubuntu12.04 eclipse mysql下中文乱码问题解决方案
- 文件 Slack 空间信息隐藏
- Python练习
- 合并 DLL
- android读写文件
- SVN 命令的地址
- Paoding分词-扩展词典
- WEB技术思维导图