2013-08-25
展开全部
所有的操作系统在其内核里都有一些内建的函数,这些函数可以用来完成一些系统级别的功能。Linux系统使用的这样的函数叫做“系统调用”,英文是systemcall。这些函数代表了从用户空间到内核空间的一种转换,例如在用户空间调用open函数,则会在内核空间调用sys_open。一个已经安装的系统的支持的所有的系统调用可以在/usr/include/bits/syscall.h文件里面看到。下面是我系统的该文件的开头几行:
[hwang@langchao hwang]$ head /usr/include/bits/syscall.h
/* Generated at libc build time from kernel syscall list. */
#ifndef _SYSCALL_H
# error "Never use directly; include instead."
#endif
#define SYS_stime __NR_stime
#define SYS_getresuid __NR_getresuid
#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
#define SYS_mmap2 __NR_mmap2
每个系统调用都有一个定义好的数字,这些数字是用来构造这些系统调用的。内核通过0x80中断来管理这些系统调用。这些系统调用的对应的数字和一些参数都在调用的时候送到某些寄存器里面。
系统调用的数字实际上是一个序列号,表示其在系统的一个数组sys_call_table[]中的位置。
[hwang@langchao hwang]$ head /usr/include/bits/syscall.h
/* Generated at libc build time from kernel syscall list. */
#ifndef _SYSCALL_H
# error "Never use directly; include instead."
#endif
#define SYS_stime __NR_stime
#define SYS_getresuid __NR_getresuid
#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
#define SYS_mmap2 __NR_mmap2
每个系统调用都有一个定义好的数字,这些数字是用来构造这些系统调用的。内核通过0x80中断来管理这些系统调用。这些系统调用的对应的数字和一些参数都在调用的时候送到某些寄存器里面。
系统调用的数字实际上是一个序列号,表示其在系统的一个数组sys_call_table[]中的位置。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询