易截截图软件、单文件、免安装、纯绿色、仅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下的进程控制块(PCB)


进程在操作系统中都有一个户口,用于表示这个进程。这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是
task_struct数据结构,它记录了一下几个类型的信息:
1.状态信息,例如这个进程处于可执行状态,休眠,挂起等。
2.性质,由于unix有很多变种,进程有自己独特的性质。
3.资源,资源的链接比如内存, ......

Red Hat Linux忘记root密码的解决办法

前几天把系统的root密码给忘了,不知道怎么解决,到网上搜了个解决办法,与大家共享。
 
在出现系统选择界面时,在Red Hat Linux的选项上按“e”键,然后会出现三个选项,在第二项类似“ kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”上按“e”键进行编辑,在“ro”或者&l ......

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号