锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 英语翻译 / LinuxC C++初中级培训教材:系统调用是怎样实现的
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。

点击查看大图
在(x86)Linux内核里2.6.12下,有289个系统调用,2.4.27版本有252个;数字在逐渐增加。在2.2内核里,这个数字是190;在2.0它少了30个。在别的CPU架构下,数字也会相当不同。注意精确的数字依赖于内核版本数字的小版本号。
有些调用已经不实现了(旧版本遗存),但是依然占用了空间。对这些函数进行调用会返回错误ENOSYS。
在/usr/include/asm/unistd.h里列出了下列函数。这个头文件包含有:

#define __NR_exit 1
#define __NR_fork 2
#define __NR_read 3
#define __NR_write 4
#define __NR_open 5
#define __NR_close 6
#define __NR_wiaitpid 7
#define __NR_creat 8
#define __NR_link 9
#define __NR_unlink 10
内核级的函数通常有sys_这样的前缀,后面跟随用户级函数名称。
用户级参数可能和内核级参数不一样;库要小心任何必须的信息。
当用户执行了个系统调用(比如open()),库(比如glibc)决定和这个调用关联的数字,当执行一个int 0x80指令时,接着传递数字到内核,指令会导致一个异常,异常又导致CPU进入内核模式(在x86下是这样)。
和常用的数字汇总一下,库传递任何参数到内核,内核执行调用;当它结束时,它返回一个退出编码给用户空间。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内