操作系统真象还原第十二章

本文详细探讨了Linux系统调用的工作原理,包括如何通过中断门实现系统调用,以及系统调用的接口和内核实现。同时,文章深入解析了malloc底层原理,介绍了内存管理中的arena概念,以及内存分配和释放的具体步骤。
摘要由CSDN通过智能技术生成

12.1 Linux 系统调用浅析

系统调用就是让用户进程申请操作系统的帮助,让操作系统帮其完成某项工作,相当于用户进程调用了操作系统的功能。

Linux 系统调用是用中断门来实现的,只占用一个中断向量号 0x80。在系统调用之前,Linux 在寄存器 eax 中写入子功能号,中断处理例程会根据 eax 的值来判断用户进程申请哪种系统调用。

12.2 系统调用的实现

12.2.1 系统调用实现框架

一个系统功能调用分为两部分,一部分是暴露给用户进程的接口函数,它属于用户空间,此部分只是用户进程使用系统调用的途径,只负责发需求。另一部分是与之对应的内核具体实现,它属于内核空间,此部分完成的是底层需求。

在这里插入图片描述

12.3 让用户进程“说话”

12.3.1 可变参数的原理

在这里插入图片描述

Linux 为方便引用函数中的可变参数,编译器 gcc 的头文件 stdarg.h 中定义了 3 个宏:va_startva_endva_arg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值