第一章 计算机系统概述
一、操作系统的概念(定义)、功能和目标
- 概念(定义)
- 什么是操作系统
- 功能和目标
- 操作系统要做些什么?
(一)操作系统的概念(定义)
一台电脑的诞生
Step1:厂家组装一台裸机
裸机(纯硬件):包含CPU、内存、硬盘、主板等
Step2:出售前安装操作系统
Step3:用户安装应用程序(如:QQ)
Step4:使用QQ聊天
最底层的是裸机、纯硬件,在裸机上面安装一层操作系统,在操作系统之上我们可以安装一系列的应用软件,用户是处于最上面一层的。
通过这张图不难发现,应用程序是和操作系统相连的,但是用户也有一些和操作系统相连的部分。
至此,给出操作系统的定义:(来自王道资料书)
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
这段话想表达的是:
①操作系统是系统资源的管理者。
直观的例子,如,我们打开Windows操作系统的“任务管理器”,能够看到
②向上层提供方便易用的服务。
③是最接近硬件的一层软件。
![image-20230302174716306](/i/l/?n=23&i=blog/2663494/202303/2663494-20230302174715090-902639402.png)
(二)操作系统的功能和目标
1、作为系统资源的管理者
- 提供的功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 目标
- 安全、高效
用QQ和朋友视频聊天的过程
Step1:在各个文件夹中找到QQ安装的位置(如D:/Tencent/QQ/Bin)
![image-20230302175547859](/i/l/?n=23&i=blog/2663494/202303/2663494-20230302175546528-323797772.png)
通过一层一层的文件夹(目录),找到了QQ的启动程序QQ.exe,但是除了这个可执行文件外,目录下还有很多其他文件,而对于这些文件的组织和管理,是操作系统来帮我们完成的。
这就涉及到了操作系统作为系统资源的管理者,所要提供的文件管理的功能。
Step2:双击打开QQ.exe
执行一个程序前需要将该程序放到内存中,才能被CPU处理。
我们在双击完QQ.exe后,操作系统帮我们做了一个很重要的事情,把我们的数据从磁盘放到了内存中,具体放在什么位置,都是由操作系统帮我们完成的。
这一步就涉及到操作系统的另一个功能:存储器管理(或者叫主存管理、内存管理)
Step3:QQ程序正常运行
在QQ程序运行的过程中,是需要经过CPU(处理机)进行处理的,而什么时候给这个进程分配处理机资源,这个事情是操作系统在背后为我们完成的。
这就涉及到操作系统的又一个功能:处理机管理。
Step4:开始和朋友视频聊天
在视频聊天的过程中,肯定要把摄像头这一设备分配给QQ使用,因此,像摄像头这一类设备资源,也需要操作系统来帮助我们管理,由操作系统来决定把哪一设备分配给哪个进程使用。
这就又涉及到设备管理。
2、向上层提供方便易用的服务
![image-20230302180649141](/i/l/?n=23&i=blog/2663494/202303/2663494-20230302180647874-1533599352.png)
硬件只听得懂二进制指令,如:01010111101110111010101。
硬件对外暴露了“丑陋”、不友好的交互接口。
通过刚才的分析可知,计算机的最底层是裸机(纯硬件),最底层的这些硬件,它只听得懂二进制指令,即机器语言。也就是说,如果我们直接和这些硬件打交道的话,那么我们只能用二进制的语言和这些硬件进行交互。所以我们说,最底层的纯硬件,它对外暴露出的,是不友好的、“丑陋的”交互接口,正常的人类很难和这些纯硬件直接来打交道。
在硬件之上安装了操作系统,操作系统对外暴露了“美丽”、友好的交互接口。
但是在硬件之上,安装的操作系统,会向它的上层提供一种更美丽、更友好的交互接口。在安装了操作系统之后,用户/应用程序不需要直接和硬件打交道,而只需要告诉操作系统想要得到的服务就可以。操作系统会把这些命令/需求翻译成二进制,来告诉硬件,然后由硬件执行操作。
封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机。用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
这其实是一种典型的封装思想。这种封装思想在生活当中也很普遍,比如一辆汽车,如果我们把它拆解了的话,里面有很多很复杂的构件,但是汽车的设计师们会把这些底层复杂的构造隐藏起来,对外只暴露用户能够理解的、简单易用的接口(方向盘、刹车、油门……),但是用户不需要关注它底层是怎么实现这些功能的(转向、加速、减速……)。而操作系统对底层硬件的封装,其实和汽车的这种封装本质上没有区别。
刚刚说操作系统对底层进行封装,向上层提供方便易用的服务。那么提供了哪些服务呢?
- GUI:图形化用户接口(Graphical User Interface)