易截截图软件、单文件、免安装、纯绿色、仅160KB

怎么在Linux中添加新的系统调用

      系统调用是应用程式和操作系统内核之间的功能接口。其主要目的是使得用户
能使用操作系统提供的有关设备管理、输入/输入系统、文件系统和进程控制、
通信及存储管理等方面的功能,而不必了解系统程式的内部结构和有关硬件细
节,从而起到减轻用户负担和保护系统及提高资源利用率的作用。
  Linux操作系统作为免费软件的代表,他优良的性能使得他的应用日益广泛,
不仅得到专业人士的肯定,而且商业化的应用也是如火如荼。在Linux中,大部分
的系统调用包含在Linux的libc库中,通过标准的C函数调用方法能调用这些系统
调用。那么,对Linux的发烧友来说,怎么在Linux中增加新的系统调用呢?
1 Linux系统调用机制
  在Linux系统中,系统调用是作为一种异常类型实现的。他将执行相应的机器
代码指令来产生异常信号。产生中断或异常的重要效果是系统自动将用户态转换为
核心态来对他进行处理。这就是说,执行系统调用异常指令时,自动地将系统转换
为核心态,并安排异常处理程式的执行。
  Linux用来实现系统调用异常的实际指令是:
  Int  $0x80
  这一指令使用中断/异常向量号128(即16进制的80)将控制权转移给内核。为
达到在使用系统调用时不必用机器指令编程,在标准的C语言库中为每一系统调用
提供了一段短的子程式,完成机器代码的编程工作。事实上,机器代码段非常简
短。他所要做的工作只是将送给系统调用的参数加载到CPU寄存器中,接着执行
int  $0x80指令。然后运行系统调用,系统调用的返回值将送入CPU的一个寄存器
中,标准的库子程式取得这一返回值,并将他送回用户程式。
  为使系统调用的执行成为一项简单的任务,Linux提供了一组预处理宏指令。
他们能用在程式中。这些宏指令取一定的参数,然后扩展为调用指定的系统调用
的函数。
  这些宏指令具有类似下面的名称格式:
  _syscallN(parameters)
  其中N是系统调用所需的参数数目,而parameters则用一组参数代替。这些参
数使宏指令完成适合于特定的系统调用的扩展。例如,为了建立调用setuid()系
统调用的函数,应该使用:
  _syscall1( int, setuid, uid_t, uid )
  syscallN( )宏指令的第1个参数int说明产生的函数的返回值的类型是整
型,第2个参数setuid说明产生的函数的名称。后面是系统调用所需要的每个参
数。这一宏指令后面更有两个参数uid_t和uid分别用


相关文档:

Linux下的进程通信(IPC)

      Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“ ......

linux 常用命令及技巧

linux 常用命令总结:
一。 通用命令:
1. date :print or set the system date and time
2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)
3. passwd: print or set the system date and time (用passwd -h查看)
4. logout, login: 登录shell的登录和注销命令
5. pwd: print or set the system ......

Linux电子书下载

第一部分:Linux基础应用
1、《Linux从入门到精通》
http://www.gouhuo.com/study/linuxbook.zip
2、 Linux 系统安全与优化中文版
这本书的英文版“Get Acquainted with Linux Security and Optimization System”(简称LinuxSOS)是Linux文档计划(Linux Document Project)中比较新的一本指南。这本书不是L ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号