2.6内核

1>改动linux-source-2.6.31/kernel/sys.c文件,在文件末尾加入系统响应函数。函数实现例如以下:
asmlinkage int sys_mycall(int number)

  {
    printk("这是我加入的第一个系统调用");
    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),加入系统调用的入口參数(注意:当中会顺序定义入口參数的序号。加入的序号是在原有最大值的基础上+1)

4>又一次配置编译内核就可以
最新3.X内核
1>在linux-3.8.4/kernel/sys.c 文件末尾加入新的系统调用函数
如:
asmlinkage int sys_mycall(int number)
  {
     printk("这是我加入的第一个系统调用");
     return number;
 }
2>在arch/x86/syscall_32.tbl下找到unused 223号调用然后替换
如:
223 i386 mycall sys_mycall
3>又一次编译就可以
还存在还有一种方法,由于64位操作系统是兼容32位的,以下使用64位的情况

1>同上面的第一步
2>在arch/x86/syscalls/syscall_64.tbl下找到313号系统调用。然后在其以下加上314号自己的中断
如:
314 common mycall sys_mycall
3>又一次编译就可以

转自www.360doc.com/content/13/0502/16/12139495_282464589.html

向linux内核加入系统调用新老内核比較相关推荐

  1. linux下的系统调用函数到内核函数的追踪

    Original from: http://blog.chinaunix.net/uid-28458801-id-3468966.html 使用的 glibc : glibc-2.17 使用的 lin ...

  2. linux升级到指定内核版本,如何在CentOS/RHEL上安装或升级新的内核版本

    Linux内核是一个整体的类Unix计算机操作系统内核.通常我们使用的Linux发行版,如Red Hat.Debian.SUSE等,这些都称为Linux的分发版.一个典型的分发版,是由Linux内核, ...

  3. Linux 升级到指定内核(Centos7 yum升级内核、centos系统中kernel-devel)

    文章目录 一.Linux 升级内核 Centos7 yum/rpm升级到最新内核 Centos 7 rpm升级到指定内核 关于Linux依赖包资源下载 二.Linux内核源码的编译及安装 三.设置 g ...

  4. linux 进程 系统调用,linux进程与系统调用

    进程管理 linux系统的实现非常特别:他对线程和进程并不特别区分.对linux而言,线程只不过是一种特殊的进程罢了. 现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存.虽然实际上可能是许多 ...

  5. 6. Linux内核创建一个新进程的过程分析

    ##################################### 作者:张卓 原创作品转载请注明出处:<Linux操作系统分析>MOOC课程 http://www.xuetang ...

  6. linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...

    环境:Ubuntu 12.10     学号:SA****199 1.更新内核: 直接安装的系统内核版本一般不是最新,用 uname -a 查看一下 自己的版本,OK,我的是: Linux chenh ...

  7. Linux预备知识(三):系统调用-用户态/内核态

    1)示例 void testfork() { if(0 = = fork()){ printf("create new process success!\n"); }printf( ...

  8. 【Linux 内核】Linux 内核体系架构 ( 硬件层面 | 内核空间 | 用户空间 | 内核态与用户态切换 | 系统调用 | 体系结构抽象层 )

    文章目录 一.Linux 内核体系架构 二.内核态与用户态切换 ( 系统调用层 ) 三.体系结构抽象层 一.Linux 内核体系架构 Linux 内核最初的源码不足一万行 , 当前的 Linux 内核 ...

  9. linux内核编译及添加系统调用(hdu)_浅谈关于Linux内核write系统调用操作的原子性

    Linux系统的write调用到底是不是原子的.网上能搜出一大堆文章,基本上要么是翻译一些文献,要么就是胡扯,本文中我来结合实例来试着做一个稍微好一点的回答. 先摆出结论吧.结论包含两点,即write ...

最新文章

  1. JSON的使用・小结
  2. Rhel5.6下构建在线邮件服务系统并实现不同网段不同域名间的邮件互发
  3. a=10a=0C语言,C语言基础练习题(含答案)
  4. python爬取数据保存为csv时生成编号_将爬取到到数据以CSV格式存储
  5. Kotlin程序用于打印JVM版本的Kotlin(打印Java属性)
  6. mysql 页面跳转_Springboot+MyBatis+mysql+jsp页面跳转详细示例
  7. 计算机网络TCPP是一组什么,WWW的全称是什么?WWW中文名称是啥?
  8. leetcode 两个排序的中位数 python
  9. HBase Rowkey的散列与预分区设计
  10. java jbutton icon 边框_Swing开发JButton图标效果篇
  11. 梦三国2英霸模式貂蝉攻略(玩大流)
  12. 一分钟集成类似抖音、头条、腾讯视频、网易新闻、飞猪、咸鱼等常用标题栏
  13. 抖音表情包引流转化教程之淘宝客新玩法,轻松3w+
  14. 用Visio做工作流程图
  15. android layout_gravity gravity
  16. MySQL-LOCATE和FIND_IN_SET函数
  17. 无尽的任务1-仿CNZZ的流量统计,完成80%(更新1次)
  18. 川崎机器人51381报警案例
  19. 天大2021年秋学期考试《西方经济学》离线作业考核试题
  20. 为单身狗推荐一个相亲公众号,靠谱!真实

热门文章

  1. 控制两个等交替慢慢变亮,慢慢变暗【占空比】
  2. environment variable
  3. Web Form中的Datagrid的自定义分页
  4. laravel大型项目系列教程(六)之优化、单元测试以及部署
  5. linux打补丁前如何备份,关于Linux下给文件打补丁
  6. SpringAMQP--发布订阅模型介绍
  7. OAuth2解决什么问题
  8. 几种类加载器的使用体会
  9. 数据库-数据库的介绍
  10. MyBatis从缓存查找数据的依据