背景
电子产品(手机/ipad/电脑等)买来能立即使用的根本原因是这些设备内置了操作系统,操作系统帮我们完成了很多事情。熟悉整个系统的工作原理,会更有助于我们了解整个Linux系统的工作方式。
操作系统
下面通过运行QQ来一一说明下操作系统的各模块及作用。
Ps.操作系统代表一个软件外包公司,操作系统内核代表外包公司的老板,用户代表操作系统的用户,客户代表外包公司的的客户,输入设备驱动代表客户对接员,输出设备驱动代表交付人员
运行QQ分为几个步骤:
1.客户鼠标双击QQ图标
客户告诉客户对接员,“我有了需求[双击了QQ图标],需要处理下”。客户对接员收到需求后,会调用操作系统的中断处理函数来处理这个需求。操作系统从中断处理函数中发现需求是双击了一个QQ图标,明白了客户的需求,准备运行QQ和别人聊天。
注:操作系统停下来目前正在处理的需求,来处理来自于输入设备驱动的需求的操作称之为中断事件。
2.运行QQ,和他人愉快的聊天
考虑到接下来一段时间内,客户需要一直通过QQ与他人聊天,这不是一个小的需求,相当于一个大需求,需专门为这个需求设置一个项目组,来处理这个需求后续的所有事情。
从外包公司/操作系统角度看:
1.项目组第一步需要立项,不可避免的需要用到外包公司的各种资源,比如盖个公章/申请会议室等,而此时资源是有限的,且有些还涉及到机密,需提供一个办事大厅来综合处理这些事务。项目组开始立项后,可先去办事大厅询问当前各类资源的情况。资源充足的时候,可快速完成立项工作。
操作系统是依靠系统调用子系统,列出哪些接口可以调用,进程有需要的时候就可以调用。任何一个程序想要运行起来,就需要调用系统调用,创建进程。
2.完成立项后,就要开始执行,成立项目组,运用项目管理系统来管理项目的一步步执行。比如分配项目内的每个角色需要做的事情
操作系统是依靠进程管理子系统,来管理进程,需要分配CPU进行执行,当运行的进程过多时,需要考虑CPU的并发能力
3.执行过程中,可能存在A项目组的成员看到B项目组的内容,存在安全隐患,故需要会议室来避免此类问题,每个项目组在各自的会议室完成相应的后续操作。但会议室的资源是有限的,故需要一个会议室管理系统来进行分配和回收。
操作系统是依靠内存管理子系统,不同的进程有不同的内存空间,但电脑的内存空间是有限的
4.组内成员需要写一个项目执行计划书。需包含以下内容:项目流程,一步一步如何执行/遇到一些情况该如何处理等等。但由于公司存在多个项目,故需要一个档案管理系统来分别管理这些项目执行计划书,来帮助公司来快速查找到想要的项目执行计划书。
操作系统里面一个qq程序相当于一个项目执行计划书,包含了qq程序能做哪些事情,每做一件事先做撒后做撒,这些会作为程序逻辑写在程序里面,需编辑成二进制文件进行保存。
1).qq的二进制文件是静态的,称之为程序;但当这个QQ运行之后,是不断进行的,称之为进程。
2).qq的二进制文件需按照规定格式化成为文件系统后才能存储在硬盘上[电脑上存储各类文件的地方称之为硬盘],考虑到一台电脑上存在多个程序,如果没有一个统一系统来管理这些文件系统的话,当文件系统越来越多的时候,我们无法快速找到自己想要的文件系统,这样很不方便,故需要建立一个系统来专门管理文件系统,称为文件管理子系统。
5.项目执行计划书完成后,需向客户展示当前产品的用途,然后客户看了之后需要修改的部分就可以跟交付人员进行沟通,这样就可以积极响应客户的需求。
操作系统是依据设备子系统,即包括输入驱动设备和输出驱动设置
6.完成第5步之后,此时的项目组算是满足客户需求的。此时客户可以来通过QQ来与他人聊天。
1)客户输入一个“a”之后,会通过键盘输入驱动来告知操作系统,操作系统首先找到了QQ的进程,然后在找到QQ的程序,根据QQ代码里面的操作,完成对于输入“a”的操作,即将“a”显示到显示屏上。
2)客户查看“a”在显示屏上后,执行回车,还会通过键盘输入驱动来告知操作系统,操作系统依旧会找到qq,将“a”发送到网络上,但qq进程是不能直接发送网络包的,需要系统调用,使用内卡驱动程序进行发送。有时跟公司对接的可能不是一个客户,而是另外一个公司,此时需要依靠公司的办事大厅的对外合作部的人去跟另外一个公司的人打交道。
网友评论