- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统内核开发实战系统调用
操作系统内核开发实战(3 )
系统调用
伯松,阿里集团
王智通,阿里云
前序课程回顾
Ø 内核引导
Ø 保护模式基础
• 内核引导介绍了最基本的内核编译和加载的概念
• 保护模式基础介绍了理解x86架构下开发操作系统内核所需了解
的体系结构基本知识点
有这两部分内容的铺垫,我们就可以开始详细探讨内核开发中最必
不可少的核心模块和实现细节:
• 系统调用,进程调度,物理和虚拟内存管理
实现上述模块后,一个精简的操作系统就可以在真实硬件计算机上
运行起来了,虽然功能只是打印“hello world”。
系统调用—— 引子
系统调用是现代操作系统中用户态进程获取系统服务、访问系统资
源的最主要的接口。
保护模式的权限控制规则在系统调用中有重要的约束作用。了解系
统调用的算法和实现,是进一步熟悉进程调度和内存管理设计与实
现的铺垫。
本节课首先关注于系统调用的代码实现细节,进而介绍各种可行的
系统调用实现思路与MLXOS设计系统调用时的考量,最后会就微
内核与宏内核在实现系统调用时的差异进行简单的讨论。
系统调用——课程内容概要
系统调用中的保护模式
微内核系统调用设计框架
MLXOS系统调用实现
宏内核系统调用实现的差异
参数传递
系统调用与进程切换
系统调用——保护模式
系统调用的典型场景是应用程序需要调用内核服务或访问系统资
源。
以MLXOS的显示驱动进程tty为例,为了供控制台显示服务,tty
进程需要可读写的访问显存区域。而这段物理内存是不能直接被应
用程序访问的,因此tty进程就需要调用系统调用将这段显存区域映
射到自己的进程地址空间中。
“映射内存”涉及到内核页表的操作,属于ring 0优先级的操作权限。
tty进程运行在ring 3的用户态模式下,因此必须通过系统调用的方
式,由操作系统内核在ring 0优先级完成上述操作。
系统调用——保护模式 (Cont.)
打印HELLO WORLD
系统调用的典型场景是应用程序需要调用内核服务或访问系统资源,
譬如向控制台终端打印信息。
serverroot进程调用printf(3)函数打印信息为例:
printf( serverroot: HELLO WORLD!\n);
该C函数最终调用write系统调用将信息写入标准输出:
ssize_t write(int fd, const void *buffer, size_t nbytes)
这里write(2)就是一个POSIX标准中述的系统调用,通过诸如
open(2),read(2),write(2)这样的系统调用,应用程序可以调用内
核供的系统服务,申请系统资源。
系统调用——保护模式 (Cont.)
优先级转换
通常应用程序运行在用户态,即以Ring 3权限运行。在x86保护模
式下,多数硬件资源(譬如内存,硬盘等)均需要在内核态即Ring
0的优先级才能访问。
应用程序在调用系统调用后,可以在x86保护模式的约束下受控的
将权限升到内核态Ring 0,然后就可以在确定的内核代码执行路
径中进行高优先级的操作了。
当应用程序从系统调用中返回后,重新返回用户态即以Ring 3 的低
优先级继续执行用户态代码。
系统调用——保护模式 (Cont.)
复习 《保护模式基础》中与控制权限转移相关的内容
门述符
• 为了在不同优先级代码段之间供可控的访问,处理器供了一
系列特殊的述符,称为门述符,来进行优先级转换。
• 32位x86处理器供4种不同类型的门
• 调用门(call gates )
• 陷阱门(trap gates )
• 中断门(interrupt gates)
• 任务门(task gates )
• 在MLXOS的系统调用框架设计中,主要是使用了中断门,因此
本课内容不会涉及其它种类的门述符
系统调用——保护模式 (Cont.)
复习 《保护模式基础》中与控制权限转移相关的内容
• 中断与陷阱门的区别
(IF清除与否)
• 如果是软
文档评论(0)