a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 132|回复: 0

[综合辅导] Linux认证:Linux系统内核下的传统调用

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证:Linux系统内核下的传统调用' j, ?* _/ B! U$ N! u
Linux系统内核下的传统调用
# H- J6 U, r% O9 x! Z' Z系统调用是用户进程与内核交互的经典方法。POSIX标准定义了许多系统调用,以及这些系统调用在所有遵从POSIX的系统包括Linux上的语义。传统的系统调用按不同类别分组,如下所示。. P9 z- c" x, h3 |8 t5 j4 i2 v0 ?# z
进程管理:创建新进程,查询信息,调试。, a6 r) B) I) b
信号:发送信号,定时器以及相关处理机制。
  o* H$ }( ~% a: K; T! N文件:创建、打开和关闭文件,从文件读取和向文件写入,查询信息和状态。
! L0 r: J# \# u目录和文件系统:创建、删除和重命名目录,查询信息,链接,变更目录。! B2 D  n- x3 E
保护机制:读取和变更UID/GID,命名空间的处理。
# {! x+ q; X& c3 m  j定时器函数:定时器函数和统计信息。
# Y( p; @4 Q( g, i所有这些函数都对内核提出了要求。这些函数不能以普通的用户库形式实现,因为需要特别的保护机制来保证系统稳定性或安全不受危及。此外许多调用依赖内核内部的结构或函数来得到所需的数据或结果,这也导致了无法在用户空间实现。在发出系统调用时,处理器必须改变特权级别,从用户状态切换到核心态。Linux对此没有标准化的做法,因为每个硬件平台都提供了特定的机制。有时候,在同样的体系结构上也会根据处理器类型使用不同的方法实现。尽管Linux使用了一个专用软件中断在IA-32处理器上执行系统调用,而其他UNIX操作系统在IA-32上的软件仿真(iBCS仿真器)则采用了一种不同的方法来执行二进制程序。IA-32架构的现代处理器也提供了专用的汇编语句来执行系统调用。这在旧系统上是不可用的,因此无法用到所有计算机上。对所有的处理器来说,一个共同点就是:用户进程要从用户状态切换到核心态,并将系统关键任务委派给内核执行,系统调用是必由之路。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 20:23 , Processed in 0.249333 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表