11操作系统的概念(定义)、功能和目标
# 1.1_1_操作系统的概念(定义)、功能和目标
各位同学大家好,我是操作系统这门课程的主讲人,在接下来这段时间里,我会和大家一起学习这门课,如果大家对这个课程有任何的意见或者建议,都可以通过讨论区或者 Q 群进行反馈,只要是对大家考研有帮助的,我一定都会积极的采纳并且做出调整。
那么在正式开始这个课程之前,我们先来看一下大家都熟大家都熟悉的这些操作系统,比如说 windows 操作系统,应该所有人都用过,然后现在很主流的智能手机的安卓系统和苹果的 iOS 系统,然后还有苹果电脑的 Mac OS 这个系统,还有一些同学可能会用过 Linux 系统。
所以其实可以看到在学习操作系统这门课之前,大家已经对操作系统有了很多的感性经验,感性认识了。那么其实在学这个课程的过程当中,我的建议是大家可以把课程当中学习到的这些知识点,结合自己日常使用这些操作系统的经验,把它们结合起来,这样可以加深对各个知识点的理解和记忆。并且由于这些理解是基于你自己的生活经验的,所以这些知识也可以真正的做到学以致用,你可以用到自己生活当中去。
比如说假如说你的女神让你帮他看一下他的电脑为什么那么卡,那么在学习完操作系统这门课程的各个理论之后,你是完全可以帮他分析出来它的系统它的计算机的瓶颈在哪,并且帮他解决这个问题,所以其实这门课程不只是考研,在我们日常生活当中也是很有用的。
# 知识框架
那么下面正式进入本节的内容,这个小节我们会介绍操作系统的概念,还有它的功能和目标,小节的知识框架大概是这个样子。
其中功能和目标我们会根据操作系统所扮演的三种不同的角色来进行讲解和分析。
# 概念
首先我们看第一个部分,操作系统的概念,为了理解操作系统的概念和定义,我们可以先来结合生活经验来看一下所谓的计算机系统的层次结构。
比如说我想要自己组装一台电脑,那么我会购买一台裸机,也就是没有安装操作系统的机器,然后基于裸机我又会安装一个 windows 操作系统,就是这个样子当然现在大部分的电脑在买过来的时候肯定已经装好操作系统了,但是裸机其实也是可以买到的,并且这样这种方式会比较便宜(其实就是因为穷)。
那么在安装了操作系统 window 操作系统之后,我们就可以在上面安装一些应用软件,比如说 QQ,然后我作为用户就可以使用 QQ 和我的小伙伴们进行聊天了,所以可以看到操计算机系统的层次结构由下至上,依次是裸机,然后在上面会加一层操作系统,基于操作系统,我们又会安装一些应用程序或者说软件,然后用户就可以使用这些软件。在这个地方可以看到用户和操作系统这儿是有一部分相接的,其实为什么?因为操作系统其实它即使没有安装这些软件,我们也可以用操作系统干很多事情,比如说设置一个系统时间,所以说系统和操作系操作系统和用户也是可以有直接的交互的。当然大多数情况下用户都是通过使用这个软件来和操作系统进行交互。
那么最下面这一层硬件就是我们熟悉的,比如说 CPU、内存、硬盘这些东西。然后应用程序的话就是像 QQ IE 浏览器,还有各种各样的我们男生喜欢玩的游戏。
从中间看,操作系统它是位于软件和硬件中间的一个中介层次,那么他会负责管理和协调硬件软件这些计算机资源的工作。那么从下往上看,操作系统它是在用户和应用程序下面的一个层次,它需要给上面的应用程序和用户提供一些简单用的服务,从下往上看的话,操作系统它是最接近硬件的一层系统软件,我们要注意操作系统它是一种软件而不是硬件
其实这个就是我们王道书上给出的定义的三个意群。来看一下,这是书上给的定义,操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配。这个其实就是从中间往两边看,它作为计算机硬件和软件中间的层次发挥的作用。
然后第二个意群是操作系统,它还会提供给用户和其他的软件方便的接口和环境,这就是从下往上看,它需要为上面那些层次提供一些方便的接口。
然后第三个意群,从上往下看,操作系统它是计算机系统当中最基本的系统软件,它是一种软件,它是最接近硬件的一层软件,所以这就是咱们课本中给出的定义。
那么我第一次看到这个定义的时候,也是有种生无可恋的感觉,其实我们可以尝试打开 Windows 操作系统的任务管理器,然后在这个界面我们就可以看到操作系统它是对各种各样的软件正在进行管理,并且还对这些硬件进行管理,这些硬件资源比如说内存,他给各个进程分配的内存分别是多少,这些也是操作系统负责管理的。所以从这个界面我们也可以很直观的看到操作系统它所做的这些事情,所以这是操作系统的定义。
# 操作系统的功能和目标
那么接下来我们看二第二个知识点,就是操作系统的功能和目标。接着刚才计算机系统的层次结构来看这个知识,首先我们看第一个部分,操作系统它作为软件和硬件之间的中介层,也就是系统资源的管理者,它需要提供什么功能呢?这是第一个问题。
第二个问题,操作系统作为用户和计算机硬件之间的接口,需要对上层提供一些什么样的功能,这是第二个问题。
第三个问题,操作系统它是最接近硬件的层次,那么在纯硬件的基础上,操作系统又需要实现什么样的功能,这是第三个问题。
那么我们下面一要按照这样的结构来依次分析操作系统需要实现的功能和目标。
# 系统资源的管理者
首先看第一个第一个问题,操作系统它作为系统资源的管理者,它需要实现哪些功能?首先我们来补充一个可能跨考的同学不知道的知识。我们的有一个概念叫做进程,这是第二章会学习的东西。进程它是一个程序的执行过程,然后在这些程序要执行之前,是需要放到内存当中的,它才可以被 CPU 处理,这是我们需要补充的一个知识。
然后来看一个我们生活中会遇到的一个例子,如果我们用 QQ 和朋友视频聊天的话,那么第一步可我们会找到 QQ 的安装位置,比如说在我的电脑里,我就安装在了一个这样的路径下,然后找到这个路径下面有一个叫 QQ.exe 的文件,双击打开这个文件之后, QQ 程序就可以正常的登录运行了,然后之后我就可以用 QQ 和我的小伙伴进行视频聊天。
那么来看一下这个过程,第一个过程,我们第一步我们通过这些个一级的文件夹或者说目录,找到了我们想要找的 QQ.exe 可执行文件,所以可以看到这些在各级文件夹下都会有各种各样的文件存放在这些文件夹下面,他们被有组织的放到一起。所以其实操作这个是操作系统需要完成的一个事情,就是所谓的文件管理,他需要对这些文件进行管理。
第二步我们双击打开 QQ.exe,那么我们为了执行 QQ 程序,其实需在背后需要做的是要把这个程序相关的一些内容放到内存当中,而这个程序相关的数据它放到内存当中的什么位置,放到前面,还是中间,还是后面,这些其实也都是操作系统需要为我们做的一些事情。所以这就是操作系统的第二个功能,也就是存储器管理或者叫内存管理。
然后第三步 QQ 程序会开始正常的运行,我们知道在一个程序要正常的运行,它需要放到内存里,并且只有它被分配到处理机的时候,这个程序才能正常的往下推进下去。而我们的计算机当中除了 qq 这个程序之外,其实还有各种各样的别的程序,比如说我们还同时打开了微信,还打开了什么浏览器之类的,那么这些程序都需要等待 CPU 资源的分配,那么这个 CPU 也就是处理机资源的分配,它需要分配给哪个程序哪个进程,这也是操作系统需要做的事情。那么这就是操作系统的第三个需要提供的功能,也就是处理机管理(CPU 管理)。
第四个,当我们开始和朋友视频聊天的时候,我们需要把摄像头设备分配个 QQ 进程,所以这个过程就是这个设备分配给进程,然后进程使用完了之后,把这个设备使用权回收,这些事情是操作系统需要做的。第四个事情也就是设备管理这个事情。
所以可以看到我们用这样一个用 QQ 和朋友视频聊天的过程,把操作系统作为系统资源的管理者,需要做需要完成的 4 个功能给串联起来了。那么在实现这些功能的时候,操作系统需要保证这些资源的管理是安全高效的,这是他所要追求的一个目标。
# 用户和计算机硬件之间的接口
那么第二个部分,操作系统,它作为用户和计算机硬件之间的接口,也就是自下往上看,需要提供哪些功能,它需要提供三个,一个叫命令接口,一个叫程序接口,还有一个是 GUI,也就是图形用户接口,就是这个样子。
那么命令接口是允许用户直接使用的,然后程序与接口,是允许用户通过程序间接使用的,这些我会我在之后会详细的解释。命令接口又可以分为联机命令接口和脱机命令接口。那么接下来我们会按照这样的顺序讲解这些接口分别是什么样一种东西,这些所有的提供给用户和应用程序使用的接口都可以统称为用户接口。
在考研当中经常考察的是命令接口和程序接口,GUI 的话大家只需要简单的了解一下就可以了。
那么我们首先来看第一个联机命令接口,那么来看一下在考研中常考的命令接口和程序接口。
命令接口它是允许用户直接使用的,其中联机命令接口的特点是用户说一句系统做一句,然后脱机命令接口的特点是用户说一堆系统做一堆。来举个例子,在 windows 操作系统当中,我们可以用这样的方式打开命令解释器,然后在里边可以输入 time 指令,这个指令输入了敲了回车键之后,系统会告诉我们当前的系统时间,然后又会把这个操作权限返回给用户,让用户输入你现在想要设置的一个新的系统时间,所以这个就是很典型的一个联机命令接口,或者叫交互式的命令接口,就是用户说一句操作系统做一句,然后用户需要再说一句操作系统再做一句。那么了解理解了这个过程,其实我们也很容易就知道它为什么能叫做交互式的命令接口了,整个过程用户和操作系统是不断的交互的,所以这是第一种连接命令接口。
第二种突击命令接口还是以 windows 操作系统为例,脱机命令接口又可以称作为批处理命令接口,我们可以在 c 盘当中搜索带有.bat 后缀的一个文件,然后用记事本随便打开一个,可以看到有这样一些东西。别看它很复杂,其实所有的这些东西和刚才我们所提到的 time 指令是一样的,只不过它是把这些指令都给串起来了,然后列成了一一系列的指令清单,然后当我们双击这个点 bat 文件的时候,操作系统就会根据用户给出的这些一系列的指令来一条一条往下执行。所以这个就是典型的脱机,命令接口或者叫批处理命令接口,用户给操作系统是一堆命令,然后操作系统又根据用户说的做一堆,这是第二种脱机命令接口,
然后刚才所说的那两种是用命令接口,接下来我们来聊程序接口,还是以 windows 操作系统为例,我们在这个系统当中会经常看到一种叫.dll 的文件,比如说 user32.dll 程序员可以通过调用 dll 文件就可以实现创建一个应用窗口这样的功能。那么这个调用过程就被称作为所谓的系统调用,系统调用这个词之后会经常出现,然后这种程序接口或者说系统调用,只能通过程序来间接的使用,用户没办法直接使用它。这就是第二大类。
再看一下这个结构,我们考研中常考的两种命令接口和程序接口,然后命令接口的话又分为刚才所说的两种,程序接口的话,它由一组系统调用组成,在大多数情况下,题目中出现的程序接口和系统调用这两个名词,我们可以认为它们是相等的。
我们比较容易蒙的一个概念是有的地方系统调用还会被称之为广义指令,所以当这个名词出现的时候,大家要知道它指的就是系统调用。
易槽概念:系统调用=系统调用命令=广义指令
第三个图形用户界面,其实大家都很熟悉,用户可以通过这些图形形象的图形用户界面进行对操作系统进行操作,比如说在 windows 操作系统里我们删除一个文件,只需要把这个文件拖拽到回车回收回收站就可以了,然后包括我们习惯的 iPhone 这个操作系统界面,还有苹果电脑的这些界面都可以称之为 GUI,也就是图形用户界面。用户在使用 GUI 的时候,就不需要再记忆那些复杂的指令参数,只需要用这些形象的图形进行操作就可以。
那么回顾一下,刚才我们提到了操作系统,它作为用户和计算机硬件之间的接口,总共提供了三个大类,一个是命令接口,一个是程序接口,另外一个是 GUI。
那么命令接口是可以让用户直接使用的,它又分为联机命令接口和脱机命令接口,这二者的区别在于联机命令接口是用户说一句系统做一句,而脱机命令接口是用户说一堆系统做一堆。
然后第二个大类程序接口,也就是系统调用,用户可以通过程序来间接的使用这个程序接口,或者说系统调用。
然后 GUI 的话,现在主流的熟悉的各种各样的操作系统,它都是图形化操作的这种界面,那么所有的这些功能,它的目标就是为了方便用户使用计算机。
# 最接近硬件的层次
接下来再看第三个问题,从上往下看,操作系统它是最接近硬件的一个层次,那么它需要提供的需要实现对硬件机器的拓展,在没有任何软件支持的计算机被称之为裸机,然后在裸机上面安装操作系统,这个操作系统就可以提供这些资源管理,并且还会提供方便用户使用的服务功能,也就刚才我们讲的一和二那两大类的功能和目标。
然后在裸机上面架设了操作系统之后,就可以把裸机改造成更强更方便使用的机器。我们通常把覆盖了软件的机器称之为扩充机器或者叫虚拟机。
比如说有一系列的这种木匠使用的一些东西,锤子、锯子、木头、钉子,这些就相当于我们底层的硬件,然后操作系统的话就相当于是在一个优秀的工匠,这个工匠可以把这些硬件给组织起来,然后变成房子翻床,甚至是匹诺曹,然后我们作为普通用户,可以直接使用这些优秀的工匠提供的房子、帆船和匹诺曹,但是我们没有必要去关心这些东西在底层是怎么被组织起来的,所以这就是操作系统对硬件的一个拓展,它把本身很简单的一些硬件的功能拓展,为了更丰富的更方便用户使用的一系一系列的功能。
所以这是第三个操作系统作为最接近硬件的层次,它需要实现对硬件机器的拓展,其实这也是我们程序当中的封装思想,当然封装思想不是我们考研要考的东西
# 小结
那么这个小节的整个知识框架就是这个样子。首先我们介绍了操作系统的概念和定义,那之后我们根据计算机的层次结构,分别介绍了操作系统作为三种角色,所需要提供的需所需要实现的各种各样的功能。
那么在它作为资源的管理者需要实现的这 4 种功能 CPU 管理、存储器管理、文件管理、设备管理,其实就是我们在这个课程的后面几个章节当中,分别需要细分学习的 44 个大类的内容,然后在小节当中系统调用相关的知识,也经常会在考研的选择题当中出现,他的考察频率很高,之后我会用专门一个视频来再进行讲解。当然其他的这些知识点大家也需要理解,即并且把它们串联成一个有组织的有规律的一个知识架构。好的,那么小节的内容讲解结束。