星星博客 »  > 

Linux操作系统综述——《趣谈Linux操作系统》学习第一天

理解Linux内核

百度百科说:操作系统(operating system,OS)是管理计算机硬件与软件资源的计算机程序。操作系统是计算机系统中最基本的系统软件,任何其它软件都必须在操作系统的支持下才能运行。
刘超老师在《趣谈Linux操作系统》专栏中形象的将操作系统比作软件外包公司,其内核就相当于这家外包公司的老板。并通过双击QQ图标示例来展示操作系统的全貌。

  • 首先用户鼠标双击QQ相当于客户告知对接员需求,对操作系统来说即输入设备发送一个中断,此时客户发送的需求被称为中断事件。公司会将处理需求的方法告知客户对接员,在操作系统中就是调用中断处理函数,操作系统发现双击的是一个图标就准备运行QQ。在这里插入图片描述
    运行QQ意味着在后来的一段时间用户都要与QQ交互,说明这可是大客户,应当单独立项处理。一旦单独立项,它就拥有了一个项目组,以后啥事儿都是项目组进行处理。

  • 立项过程如下。
    在这里插入图片描述
    QQ程序做些什么,怎么做,何时做,都已作为程序逻辑写在程序中,并且编译为二进制文件。该程序就相当于项目执行计划书。(程序以二进制文件的形式保存在硬盘上,硬盘要保存文件需要按照规定格式化为文件系统,文件系统需要一个系统进行统一管理,称为文件管理子系统。)
    为了保障项目的顺利进行,需要使用到公司的各种资源,但是涉及到核心权限的资源应当由公司严格把控,审批后才能使用。另外为了提高运行效率,需要一个统一的办事大厅明文列出提供哪些服务。在操作系统中办事大厅就是系统调用(System Call)。系统调用可以列出哪些而接口可以调用,进程有需要的时候就可以去调用。立项是办事大厅提供的关键服务之一,任何程序想要运行,都需要通过调用系统调用创建进程

  • 一旦项目正式立项,就要开始执行,就要成立项目组。
    在操作系统中,进程的执行也需要分配CPU进行,即按照程序中的二进制代码一行一行的执行。为了管理进程,就需要一个进程管理子系统对执行的程序进行生命周期和资源管理。
    在这里插入图片描述
    每个项目组都有自己的独立项目,每个项目都有自己的私密资料,这些资料不能被其他项目组看到。因此在执行过程中,需要将不同项目的办公空间隔离。将不同的项目组分配到不同的会议室,就可以解决这个问题,但是会议室是有限的,因此需要有一个会议室管理系统对项目组进行管理和分配。
    在这里插入图片描述
    在操作系统中,不同的进程有不同的内存空间。由于内存有限,因此需要统一管理和分配,此时就需要一个内存管理子系统。
    在这里插入图片描述

  • 项目执行的时候,有了一定成果就要给客户展示,这时候就需要交付人员出马。对操作系统来说,QQ启动后,一部分代码在显示器画一个对话框,并将键盘的焦点放在输入框里。CPU根据这些指令告知显卡驱动程序,将这个对话框画出来。之后QQ用户就可以愉快的开始跟别人聊天了。
    用户开始聊天过程中,键盘也属于输出设备,会触发中断通知相应的输入设备驱动程序。用户发送消息就相当于客户提出新的需求给客户对接员,对接员找到负责该项目的项目组告知需求,项目组根据项目执行计划书的设定进行操作,然后再由交付人员去给客户展示。

如上所示各职能部门组成了一家公司,正如操作系统内核由各个管理子系统组成,借用刘超老师整理的操作系统内核体系结构图来整体贯通:
转极客时间刘超《趣谈Linux操作系统》专栏

相关文章