21、操作系统详解:从系统调用到安全机制

操作系统详解:从系统调用到安全机制

1. 系统调用

系统调用是用户模式代码请求内核模式服务的机制。CPU 提供了专门的指令来方便进行系统调用,不同架构的处理器使用不同的指令:
- ARM 处理器使用 SVC 指令(以前称为 SWI),也被称为管理调用。
- x86 处理器可使用 SYSCALL 和 SYSENTER 指令。

Linux 和 Windows 都实现了大量的系统调用,每个调用都有唯一的编号。例如,在基于 ARM 的 Linux 系统中,写入文件的 write 系统调用编号为 4。进行系统调用时,程序需要按以下步骤操作:
1. 将所需的系统调用编号加载到特定的处理器寄存器中。
2. 将任何额外的参数放入其他特定寄存器。
3. 执行系统调用指令。

虽然软件开发人员可以直接用机器代码或汇编语言进行系统调用,但在大多数情况下,操作系统和高级编程语言通过操作系统 API 或语言的标准库,为程序员提供了自然的系统调用方式。程序员编写代码执行操作时,可能甚至没有意识到背后正在进行系统调用。

2. API 与系统调用的区别

操作系统 API 描述了应用程序与操作系统交互的方式,而系统调用定义了用户模式代码请求内核模式服务的机制,二者相关但并不等同。有些 API 函数会进行系统调用,而有些则不需要,具体取决于操作系统:

2.1 Linux

如果将 Linux 定义限制在内核,那么 Linux API 实际上是使用 Linux 系统调用的规范,因为系统调用是与内核进行编程交互的接口。但基于 Linux 的操作系统不仅仅只有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值