目录
1、知识总览
2、操作系统的概念(定义)
结合生活经验来理解计算机系统的层次结构:
我们想要组装一台电脑需要经过以下步骤:
- 购买一台裸机;
- 在裸机上安装windows操作系统;
- 在安装操作系统之后的电脑上安装各种软件,如QQ;
- 安装QQ后就可以使用QQ和朋友进行聊天;
所以计算机系统的层次结构可以简单表示如下:
计算机系统的层次结构由下至上依次是裸机,裸机上面是操作系统,基于操作系统可以按照一些应用程序(软件),用户可以使用这些软件;可以看到用户和操作系统是有一部分相接的,操作系统即使没有安装应用程序(软件),用户也可以直接使用操作系统执行任务,比如设置系统时间,用户和操作系统是可以有直接交互的,大多数情况下,用户都是通过软件和操作系统进行交互的;
裸机中的硬件就是我们所熟悉的各种硬件,例如CPU、内存、硬盘等;应用程序就是QQ、IE浏览器、英雄联盟等;
从中间往两边看,操作系统位于软件和硬件的中间层次,操作系统负责管理协调硬件、软件等计算机资源的工作;从下往上看,操作系统是在用户和应用程序下面的层次,需要为上层的应用程序、用户提供简单易用的服务;从上往下看,操作系统是最接近硬件的系统软件,操作系统是一个软件而不是硬件;
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。
指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,这句话的意思就是从中间往两边看,操作系统作为硬件和软件的中间层次发挥的作用;
提供给用户和其它软件方便的接口和环境,这是从下往上看,操作系统需要为用户和应用程序提供方便的接口;
它是计算机系统中最基本的系统软件,这是从上往下看,操作系统是最接近硬件的软件;
通过直观的例子理解操作系统的具体作用:打开windows操作系统的“任务管理器”(快捷键:Ctrl+Alt+Del):
在上面的界面中可以看到操作系统对软件的管理和对硬件的管理;
2、操作系统的功能和目标
首先考虑三个问题:
- 操作系统作为系统资源的管理者(这些资源包括软件、硬件、文件等),需要提供什么功能?
- 操作系统作为用户与计算机硬件之间的接口,要为其上层的用户、应用程序提供简单易用的服务,需要实现什么功能?
- 操作系统作为最接近硬件的层次,需要在纯硬件的基础上实现什么功能?
下面我们按照上面的结构依次分析操作系统需要实现的功能和目标。
2.1 操作系统的功能和目标 —— 作为系统资源的管理者
补充知识:进程是一个程序的执行过程,执行前需要将该程序放到内存中,才能被CPU处理。
来看生活中经常遇到的一个例子:用QQ和朋友视频聊天的过程:
- step1:在各个文件夹中找到QQ安装的位置(如D:/Tencent/QQ/Bin);
- step2:找到QQ.exe文件,双击打开QQ.exe文件;
- step3:QQ程序正常运行;
- step4:开始和朋友视频聊天;
看一下上面的过程,第一步需要逐层打开文件夹,找到QQ.exe这个程序(可执行文件)的存放位置;可以看到,在各级文件夹下都会有各种各样的文件存放在当前文件夹下,这些文件被有组织地放到一起,这是操作系统需要完成的事情,也就是操作系统的文件管理功能;
第二步中双击打开QQ.exe文件,为了执行QQ.exe文件,操作系统需要把该程序的相关数据放到内存中,这些数据放到内存中的哪些位置需要由操作系统进行控制,这就是操作系统的第二个功能——存储器管理或者内存管理;
第三步是QQ正常运行,一个程序能够正常运行,需要对应的进程被处理机(CPU)处理,计算机中除了QQ这个程序之外,还可能同时运行其他程序,例如微信等,这些进程都需要等待CPU资源的分配,CPU的资源分配给哪个进行是由操作系统进行处理的,这就是操作系统提供的第三个功能——处理机管理;
第四步中开始和朋友进行聊天需要将摄像头设备分配给进程,这个设备分配给进程,进程用完之后把设备使用权回收,这些事情是操作系统需要提供的第四个功能——设备管理;
在实现以上四个功能的时候,操作系统需要保证这些资源的管理是安全高效的,这是操作系统所追求的目标;
2.2 操作系统的功能和目标 —— 作为用户和计算机硬件之间的接口
操作系统作为用户和计算机硬件之间的接口需要提供以下功能:
- 命令接口:运行用户直接使用;
- 程序接口:允许用户通过程序间接使用;
- GUI:现代操作系统中最流行的图形用户接口;
2.2.1 命令接口
命令接口又可以分为联机命令接口和脱机命令接口;
以上所有提供给用户的接口(命令接口、程序接口、GUI用户图形界面)统称为“用户接口”;
联机命令接口实例(Windows系统):联机命令接口=交互式命令接口
- step1:win键+R;
- step2:输入cmd,按回车,打开命令解释器;
- step3:尝试使用time指令;
脱机命令接口实例(Windows系统):脱机命令接口=批处理命令接口
使用windows系统的搜索功能,搜索C盘中的*.bat文件,用记事本任意打开一个:
看似其内容很复杂,其实其和联机命令中的time指令是类似的,这里只是把一系列的指令串联起来,然后列成一系列的指令清单。当我们双击.bat文件时,操作系统会根据用户给出的一系列指令来逐条执行,这就是典型的脱机命令接口,或者说是批处理命令接口。
2.2.2 程序接口
以windows操作系统为例,在windows操作系统中经常看到.dll文件,程序员在程序中调用user32.dll(该调用过程即为系统调用)即可实现创建窗口等功能。程序接口只能通过用户程序间接使用,用户没办法直接使用.dll文件;
易懵概念: 系统调用==系统调用命令==广义指令
2.2.3 GUI:图形用户界面
用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
例子:在Windows操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。
2.3 操作系统的功能和目标 —— 作为最接近硬件的层次
操作系统作为最接近硬件的软件,需要提供的功能和目标:实现对硬件机器的拓展;
没有任何软件支持的计算机称为裸机,在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器;
通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机;
类比:
硬件:锤子、锯子、木头、钉子等待;
操作系统:优秀的工匠;
操作系统对硬件机器的拓展:通过优秀的工匠,这些简单的原料可以组织成房子、帆船、匹诺曹等;普通用户可以直接使用工匠提供的房子、帆船等,而无需关心这些东西在低层是怎么组织起来工作的;