第一步,下载内核版本。(我用的是2.6.39.2)
然后在指定的目录下解压。
-------------------------------------------------------------------------------------
第二步,在arch/x86/include/asm/unistd_32.h
文件中添加系统调用号。
-------------------------------------------------------------------------------------
第三步,在arch/x86/kernel/syscall_table.s
文件中添加相应的表项。
-------------------------------------------------------------------------------------
第四步:实现系统调用的服务历程。
理论上,这个函数的位置没有固定,最好加在arch/x86/kernel/目录
下的文件里面。我这次是加在arch/x86/kernel/sys_i386_32.c文件中
-------------------------------------------------------------------------------------
第五步:重新编译内核。
5.1,内核使用默认的配置,make menuconfig直接选择exit退出
5.2,使用如下命令编译内核
-------------------------------------------------------------------------------------
第六步:用户态测试系统调用。(注意内核安装好后,重启后选择新的内核)
运行结果:
-------------------------------------------------------------------------------------
阅读(2157) | 评论(0) | 转发(0) |