前言
从应用层如何下探到操作系统,理解上层应用如何使用操作系统。
应用层调用接口来使用操作系统,而接口的实现细节用户不可见。本课程既要知道如何调接口,也要知道接口的实现细节。
一、接口是什么?
连接两个东西、可将信号转换的入口,且对用户屏蔽细节。
二、什么是操作系统接口
接口连接上层应用和操作系统软件。用户通过命令行、图形按钮和应用软件使用计算机,那么上述三者中什么地方用到了操作系统接口?
1.命令行
- 命令是用C语言写的程序
程序编译好之后,在命令行内敲入命令即可执行程序。
Shell(命令行)也是一个程序,该程序代码如上图。程序会不断读取输入的命令,接着申请cpu来执行命令(运行可执行文件)。
其中操作系统的接口即程序里调用的系统函数,如printf、scanf、fork等,调用这些函数来使用计算机硬件。
2.图形按钮
- 图形按钮背后原理是消息机制
鼠标点击、键盘按下后会产生中断,形成消息放入系统内部的消息队列,应用程序会使用系统调用GetMessage,不断从操作系统中取出消息,每取出一个消息,就会执行对应的消息处理函数。
总结
不论是命令行还是图形界面,都是用相同的机制来使用操作系统。操作系统接口通过C语言程序来连接应用程序和操作系统。操作系统提供调用硬件的函数供程序使用,这些函数就是接口,这样的函数调用称为系统调用。
POSIX:操作系统标准接口