Linux 增加系统调用 (转)
Linux 增加系统调用大致步骤:
1、下载好内核文件,在内核源文件中添加好自己的调用函数。
2、编译内核
3、验证。
一、在内核源文件中增加自己的函数
首先将内核文件移至/usr/src/下并解压。
过程参考http://www.cnblogs.com/kavs/p/4607371.html
下面开始添加自己的函数。
sudo gedit /usr/src/linux-4.0.6/kernel/sys.c
插入头文件 #include <linux/linkage.h>

/*
*leemo's own define task
*/
asmlinkage int sys_leemohello(char * buf){
printk(KERN_EMERG"===this is leemo's work =====");
printk(KERN_EMERG"==2012221107110095 leemo",buf);
return 1;
}

sudo gedit /usr/src/linux-4.0.6/arch/x86/syscalls/syscall_32.tbl

记住增加的系统号 如上面的359
sudo gedit /usr/src/linux-4.0.6/arch/x86/include/asm/syscalls.h

二 、编译内核
编译内核。。。。过程参考http://www.cnblogs.com/kavs/p/4607371.html
编译完成后重启。
三、验证
编写测试代码
1、先建个文件夹mkdir leemotest
2、创建测试代码sudo gedit testleemohello.c 键入代码:

#include <stdio.h>
int main()
{
int rs;
char * buf="leemo";
rs=syscall(359,buf);
printf("%d %s \n",rs,buf);
if(rs==1){
printf("system call is success!\n");
}
else
printf("sorry,failed!\n");
return 0;
}

编译测试代码:
gcc testleemohello.c -o testleemohello
运行测试代码:
./testleemohello
结果截图:

接着输入dmesg

调用完成。
http://www.cnblogs.com/kavs/p/4607367.html
Linux 增加系统调用 (转)的更多相关文章
- 【原创】Linux 增加系统调用
Linux 增加系统调用大致步骤: 1.下载好内核文件,在内核源文件中添加好自己的调用函数. 2.编译内核 3.验证. 一.在内核源文件中增加自己的函数 首先将内核文件移至/usr/src/下并解 ...
- Linux之增加系统调用[内核编译]
声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 由于操作系统实验的缘故,有一个实验需要 ...
- linux内核增加系统调用--Beginner‘s guide
Linux内核中设置了一组用于实现系统功能的子程序,称为系统调用.系统调用和普通库函数调用非常相似明知是系统调用由操作系统核心提供,运行于核心态,而普通的函数调用由函数库或用户自己提供,运行于用户态. ...
- linux内核增加系统调用--Beginner's guide
Linux内核中设置了一组用于实现系统功能的子程序,称为系统调用.系统调用和普通库函数调用非常相似明知是系统调用由操作系统核心提供,运行于核心态,而普通的函数调用由函数库或用户自己提供,运行于用户态. ...
- Linux内核-系统调用
Linux内核-系统调用 1.与内核通信 #系统调用在用户空间进程和硬件设备之间添加了一个中间层 作用:1.为用户空间提供了一种硬件的抽象接口 2.系统调用保证了系统的稳定和安全 3.出于每一个进程都 ...
- Linux添加系统调用
Linux添加系统调用 1 概述 通常添加系统调用有两种方案: * 重新编译内核 * 添加内核模块 此处我们采用重新编译内核的方式增加系统调用. 实验环境:X86_64 GNU/Linux 4.15. ...
- VMware linux 增加根目录空间 (使用图形分区工具gparted LiveCd)
写这篇文章的原因: 最近要给服务器Centos上的ruby版本升级,由于是第一次升级,不敢直接在服务器上操作. 所以在我的winxp上装了Vmware ,又在Vmware中装了Centos5.2. 用 ...
- Linux增加LV(逻辑卷)容量
Linux增加LV(逻辑卷)容量 2017-09-29-17:34:13 个人原创博客,转载请注明出处. 查看逻辑卷的相关命令: lvs vgs 命令: [root@arch ~]# vgs VG # ...
- Linux增加开放端口号
Linux增加开放端口号 : 方法一:命令行方式 1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 2.保存:/etc/ ...
随机推荐
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...
- python3 库pandas写入csv格式文件出现中文乱码问题解决方法
python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...
- GreenOpenPaint的实现(六)图片的保存和打开
如果只是直接的图片保存和打开,是没有很多内容的.但是我这里,将EXIF的信息融入其中,使得图像处理的结果能够保存下来.这样就非常有价值意义了. 所有的操作都放在DOC中进行处理. 我之前已经对EXIF ...
- 20145204《Java程序设计》第5周学习总结
20145204<Java程序设计>第5周学习总结 教材学习内容总结 语法与继承构架 我们之前接触到的C通常都是将程序流程和错误处理混在一起,在编写程序的时候必须考虑可能出现的错误并提前做 ...
- 20145326 《Java程序设计》实验五——Java网络编程及安全实验报告
实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和20145211黄志远http://www.cnblogs.com/nostalgia-/组 ...
- Cooperation.GTST团队第二周项目总结
项目进展 这周我们把工作主要放在了UI界面的实现上,为了让整款APP看上去能够更加高大上,我们决定采用Android 5.0开始推出的一个Material Design风格的导航控件Toolbar. ...
- 扩容swap交换分区空间
安装linux系统时会指定Swap分区大小,一般是内存的两倍,但在有些场景下可能预先设置的Swap分区空间不足,这个时候需要增加其大小 官方建议在RAM是2到4.5G时,swap是RAM的2倍:如果R ...
- CodeForces 828C String Reconstruction(并查集思想)
题意:给你n个串,给你每个串在总串中开始的每个位置,问你最小字典序总串. 思路:显然这道题有很多重复填涂的地方,那么这里的时间花费就会特别高. 我们维护一个并查集fa,用fa[i]记录从第i位置开始第 ...
- BZOJ 3676 【APIO2014】 回文串
题目链接:回文串 我终于也会回文自动机辣! 其实吗……我觉得回文自动机(听说这玩意儿叫\(PAM\))还是比较\(simple\)的……至少比\(SAM\)友善多了…… 所谓回文自动机,每个节点就代表 ...
- 山东省第四届ACM程序设计竞赛部分题解
A : Rescue The Princess 题意: 给你平面上的两个点A,B,求点C使得A,B,C逆时针成等边三角形. 思路: http://www.cnblogs.com/E-star/arch ...