目录
1.操作系统是什么
2.为什么要有操作系统
3.操作系统的相关关系
1.驱动程序
2.系统调用接口
3.用户调用接口
4.用户程序
4.用具体的例子理解操作系统
1.操作系统是什么
(1)操作系统是一组管理计算机硬件与软件资源的计算机软件程序 。
(2)它可以控制和管理整个计算机系统的运行,合理地组织和调度计算机的工作和资源的分配,提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
(3)操作系统可以分为命令接口(比如Linux),程序接口和图形用户界面(比如Windows)等类型。
2.为什么要有操作系统
我们难道不可以直接使用资源吗?当然不行,这就像你去银行取钱,总不可能直接让你去金库拿钱吧!
(1)操作系统可以管理和控制计算机的硬件和软件资源,如处理器,内存,磁盘,网络等,提高计算机的性能和效率。如果没有操作系统,每个程序都要直接面向硬件进行操作,这样会很复杂和低效,而且可能会破坏硬件。
(2)操作系统可以提供给用户和其他软件方便的接口和环境,如命令行,图形用户界面,触摸等,让用户可以访便地使用计算机完成各种任务。如果没有操作系统,用户就要学习很多专业的知识,如数字电路,计算机组成原理等,才能操作计算机。
(3)操作系统可以提供一些经典的案例和思路,帮助程序员解决一些常见的问题,如多线程编程,网络编程,文件管理等。
总之,操作系统是一种介于硬件和用户之间的特殊的软件,它为计算机提供了更高层次的抽象和服务。
3.操作系统的相关关系
说了这么多,那操作系统到底是怎样管理计算机硬件与软件资源的呢?
我们来一步步分析上面的结构
1.驱动程序
我们可以发现,操作系统并没有直接访问硬件,这是为什么?
(1)兼容性:不同的硬件设备可能有不同的接口和通信协议,如果操作系统要直接控制它们,就要了解每一种设备的细节。这样会增加操作系统的复杂度和维护成本。操作系统通过使用驱动程序,把硬件的细节封装起来,提供统一的接口给用户程序,这样可以提高操作系统和硬件的兼容性。
(2)效率:操作系统要管理多个用户程序和多个硬件设备,如果直接控制硬件,就需要频繁地切换上下文和状态。这样会降低操作系统的效率和响应速度。操作系统通过使用中断、缓冲区、虚拟内存等技术,减少对硬件的直接访问,提高对硬件的利用率,这样可以提高操作系统和硬件的效率。
这个时候就需要驱动程序出马了。
(1)驱动程序是一种可以使计算机和设备通信的特殊程序,相当于硬件的接口。操作系统只有通过这个接口,才能控制硬件设备的工作 。
(2)驱动程序将操作系统的指令和数据转化为硬件可以识别和执行的机器语言,或者将硬件的反馈转化为操作系统可以理解的信息。
(3)驱动程序可以把硬件的细节封装起来,提供统一的接口给用户程序。这样可以提高安全性、兼容性和效率 。
2.系统调用接口
系统调用接口是操作系统提供给用户程序访问系统资源和服务的一种方式,它是用户态和内核态之间的桥梁。有了系统调用接口,用户程序就可以通过中断指令(如int 0x80)向操作系统发出请求,而无需直接操作硬件或者了解操作系统的内部实现细节。系统调用接口的作用有以下几点 :
(1)保护系统资源,防止用户程序对系统资源的滥用或破坏,提高系统的安全性和稳定性。
(2)提供方便的机制,使用户程序可以与操作系统进行交互,使用操作系统的功能和服务,如文件操作、进程管理、网络通信等。
(3)隐藏操作系统的复杂性,提供统一的抽象层,使用户程序不需要关心不同硬件平台或操作系统的差异,提高程序的可移植性和兼容性。
3.用户调用接口
然而我们平时使用计算机的时候并没有直接使用系统调用接口,因为使用系统调用接口的学习成本很大,于是就有了用户调用接口。
(1)用户调用接口是用户和系统之间进行交互和信息交换的媒介,它可以分为命令接口和程序接口两种。
(2)命令接口是普通用户与操作系统的接口,可以通过键盘命令、 图形界面使用操作系统的功能。
(3)程序接口是应用程序与操作系统的接口,可以通过系统功能调用来请求操作系统的服务,如文件操作、进程管理、网络通信等。
(4)用户调用接口使用户可以通过命令或程序来使用操作系统的功能和服务,而无需了解操作系统的内部实现细节,这样可以提高用户的效率和体验,也可以减少用户程序对系统资源的误用或破坏的风险。
4.用户程序
还记得我们刚开始学编程,用printf函数打印的“Hello World”吗?printf函数就算是一个用户程序。
所以,用户程序可以用不同的编程语言来编写,不同的编程语言有不同的语法和风格,但最终都要被编译或解释成机器能够识别和执行的指令。用户程序通过用户调用接口或系统调用接口来与操作系统交互,利用操作系统提供的功能和服务来完成各种任务。我们平时使用的各种应用软件,如文本编辑器、浏览器、游戏等,都是由用户或厂商程序编写的,也都需要通过用户调用接口或系统调用接口来与操作系统交互。
比如我平时玩的游戏,也是一个用户程序
4.用具体的例子理解操作系统
我们用学校管理学生的例子来理解操作系统是如何管理硬件资源的。
在学校里,校长就是管理者,虽然我们平时都很少或者几乎没有见过校长,但是校长却可以很好的管理学生。这说明管理者和被管理者并没有直接进行沟通,校长是通过联系辅导员来管理学生的。如果说校长是操作系统,辅导员就是驱动程序,学生就是硬件。
辅导员会把学生的信息用各种指标描述,比如成绩,学分,年级等等,描述学生的过程就是把学生数据化的过程,而这些需要用一个东西组织关联起来,这时候我们就可以使用各种数据结构来组织数据了。
总结下来,管理分两步,首先描述管理对象的各种属性,然后再用各种数据结构把这些数据组织起来。