0 回顾
回顾内容请看上一章Blog。
具体系统启动的全过程如下图,即为“操作系统立起来”的意思。
1 接口
有了接口,使用就非常方便,因为要用电,所以得插入这个接口。
所以,要使用操作系统,就必须有接口。
如何使用PC呢?
1.1 命令行接口的本质
命令就是一段程序,在系统启动到最后会启动一个程序,这个程序就是shell程序。shell程序就会调用指令使用屏幕进行输出,并且申请CPU去执行相应的代码。所以综上就是,程序进行编译后,会成为可执行程序,就可以在命令行以命令的方式进行调用,这些程序当中包含一些语句,就是对操作系统接口的调用,比如说mem_init()
;一般系统初始化代码的最后会启动一个shell程序。shell本身也是一段程序,它的代码很简单,就是一个死循环,不断的读入命令并执行,后面讲完进程管理可以来看这段代码的细节其中fork和exec是真正的操作系统接口,可以实现进程管理,调用了CPU,scnf也是真正的操作系统接口,可以实现从键盘读入信息,调用了键盘输入另外printft也是,可以调用显示器。
1.2 图形按钮的机制
现在讲的代码是基于linux0.11的,只有命令行,没有图形界面,但是完全可以在linux0.11上实现图形界面。
- 当鼠标点击、键盘按下后,通过中断,这一事件被放到消息队列中
- 操作系统的内核中,有一个应用程序会不断的从这个消息队列中取出并处理这些事件,处理事件的代码中,就有对操作系统接口的调用
从内核当中把消息拿出来可以通过GetMessage
这个函数,每次拿出一个来,就可以根据拿出什么消息,来实现相应的功能。总的来说就是一个循环,调用一个函数,从内核里把消息取出来,每取出一个消息都会调用一个消息处理函数,这就是著名的消息处理机制,图形按钮基于一套消息处理机制,所以无论是命令行还是图形界面,都是一个程序,但是在OS当中,最重要的就是调用了函数,使用这些函数来操作硬件,因为是函数调用,但是是OS调用的,所以称为系统调用。
综上,什么是操作系统接口?系统调用
1.3 系统调用
- 系统调用有哪些?不需要记住,要知道从哪里去查这些系统调用,例如POSX手册
- 系统调用接口需要有统一的规范,以适配不同的实现,例如POSIX:Portable Operating System Interface of Unix(IEEE制定的一个标准族)
- 我的理解:linux有很多不同的发行版,使用规范AP编写的应用程序可以跑在不同发行版的linux上
2 总结
加油