设为首页 加入收藏 网站首页
休闲娱乐
军事·社会百态·娱乐八卦·校园
体育·美女写真·幽默笑话·游戏
综合·在线视频·搞笑图片·灵异
两性生活
两性知识·性爱技巧
情色实录·两性图片
女性健康·同性之恋
电脑网络
网络编程·网页制作·软件教学
操作系统·图形图象·冲浪宝典
网络安全·邮件系统·认证考试
热点专题
芙蓉·真人漫画
72式·欲望都市
帅哥·人体彩绘
您现在的位置: 世纪中国 >> 操作系统 >> Linux 教程 >> 教程正文
如何在Linux系统中添加新的系统调用
作者:中国图霸    教程来源:网络    点击数:    更新时间:2007-1-3
int sys_mycall(int number) 

  { 

  return number; 

  }

  作为一个最简单的例子,我们新加的系统调用仅仅返回一个整型值。

  (2) 连接新的系统调用

  添加新的系统调用后,下一个任务是使Linux内核的其余部分知道该程序的存在。为了从已有的内核程序中增加到新的函数的连接,需要编辑两个文件。

  在我们所用的Linux内核版本(RedHat 6.0,内核为2.2.5-15)中,第一个要修改的文件是:


  /usr/src/linux/include/asm-i386/unistd.h

  该文件中包含了系统调用清单,用来给每个系统调用分配一个唯一的号码。文件中每一行的格式如下:


  #define __NR_name NNN

  其中,name用系统调用名称代替,而NNN则是该系统调用对应的号码。应该将新的系统调用名称加到清单的最后,并给它分配号码序列中下一个可用的系统调用号。我们的系统调用如下:


  #define __NR_mycall 191

  系统调用号为191,之所以系统调用号是191,是因为Linux-2.2内核自身的系统调用号码已经用到190。

  第二个要修改的文件是:

  /usr/src/linux/arch/i386/kernel/entry.S


  该文件中有类似如下的清单:


  .long SYMBOL_NAME()

  该清单用来对sys_call_table[]数组进行初始化。该数组包含指向内核中每个系统调用的指针。这样就在数组中增加了新的内核函数的指针。我们在清单最后添加一行:


  .long SYMBOL_NAME(sys_mycall)

  (3) 重建新的Linux内核

  为使新的系统调用生效,需要重建Linux的内核。这需要以超级用户身份登录。


  #pwd 
  /usr/src/linux 
  #

  超级用户在当前工作目录(/usr/src/linux)下,才可以重建内核。


  #make config 
  #make dep 
  #make clearn 
  #make bzImage

  编译完毕后,系统生成一可用于安装的、压缩的内核映象文件:


  /usr/src/linux/arch/i386/boot/bzImage
  (4) 用新的内核启动系统
  要使用新的系统调用,需要用重建的新内核重新引导系统。为此,需要修改/etc/lilo.conf文件,在我们的系统中,该文件内容如下:


  boot=/dev/hda 
  map=/boot/map 
  install=/boot/boot.b 
  prompt 
  timeout=50 

  image=/boot/vmlinuz-2.2.5-15 
  label=linux 
  root=/dev/hdb1 
 read-only 

  other=/dev/hda1 
  label=dos 
  table=/dev/had

上一页  [1] [2] [3] 下一页

分类推荐
社会 社会 娱乐 军事 校园
幽默 体育 女性 专题
电脑 编程 网页 软件 系统
安全 图象 冲浪 认证
搞笑 人物 动物 物品 表情
签名 色图 漫画 奇闻
美女 明星 清纯 自拍 欧美
丝袜 卡通 性感 走光
两性 知识 性图 孕育 技巧
同性 单身 情感 实录
视频 写真 搞笑 MTV 翻唱
写实 片段 游戏 综艺
Linux 教程热门文章
普通教程 Linux下Makefile的automake生成
普通教程 Linux/Unix环境下的make命令详
普通教程 Linux系统中网络配置详解
普通教程 在Linux桌面环境下运行Photosh
普通教程 Linux操作系统内核和设备文件对
普通教程 网卡设置指南
普通教程 开源桌面竞争烈 30分钟自己做L
普通教程 将Linux代码移植到Windows的简
普通教程 Linux下Makefile的automake生成
普通教程 Linux操作系统定时任务系统Cro
普通教程 Linux下防范缓冲区溢出攻击安全
普通教程 自已动手制作Linux下拼音五笔输
普通教程 删除Linux后如何找回Windows启
普通教程 Linux服务器前台常出现的提示及
普通教程 Linux应用软件谈之远程桌面控制
普通教程 Linux操作系统笔记本电池使用技
普通教程 口袋里的Linux:在您的U盘上运
普通教程 LINUX动态链接库高级应用
普通教程 如何才能让MySQL与OpenOffice共
普通教程 Linux系统中提取DVD音频的方法

  广东广州海珠区 世纪网络工作室 版权所有 上海电信提供网络带宽
信箱: 9297659@qq.com 粤ICP备06113754号