计算机能否脱离操作系统运行?揭秘操作系统的核心作用

发表时间: 2021-02-26 23:10

一:操作系统

(1)操作系统是什么

百度百科上关于操作系统的定义是这样的:操作系统(operation system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

简单点来说,操作系统就是一款软件,它的作用就是管理电脑,管好电脑硬件以及软件。

(2)操作系统是如何管理的


如上图,再试想学校是如何管理我们的?校长,党委书记就好像上图当中的操作系统一样,驱动程序类似于班主任,辅导员,而底层硬件正如苦逼的学生一样。

一个人能否进行管理,关键在于它是否具有决策权,正如校长一样,它可以决定你的去留。校长想要管理学生时,不必亲自跑到学生面前,而是通知辅导员去,此时辅导员履行的就是执行权。对于操作系统也是一样,它不必亲自管理硬件,只需让驱动去管理即可

校长想要了解某个学生的情况时,自然而然通过辅导员口中就可以了解到,正如操作系统想要知道底层硬件情况,可以查看驱动返回回来的参数

一个学校的学生可能多达成千上万,校长不可能一一过问,只需使用学生管理系统,把想要管理的信息设置进去(比如成绩),然后通过这些信息评判学生做出判断,并通知导员执行决定。对于操作系统也是一样,面对众多硬件,利用面向对象的思想,将需要了解的信息进行打包,通过信息管理硬件

所以,操作系统在进行管理时,可以用“先描述,再组织”的思想,如何描述?那就是把想要管理的信息使用结构体打包起来,如何组织?那当然就是数据结构的相关知识了。

(3)系统调用和库函数

请问,如何使用C语言在屏幕上输出一行字呢?你可能会说,这还不简单,直接printf,可是大家想过没有这个printf到底是怎么来的。

从我的角度上讲,我的要求就是要在屏幕上输出字,屏幕就是硬件,所以现在就是用户要操作硬件,很显然如果直接操作显然是不可能的,所以必须要经过操作系统,但是操作系统非常复杂,对于非专业人士来讲,随意操作还可能造成系统毁坏。所以系统一般是封装的,但是它会向外提供一些接口(也就是函数)称为系统调用接口。但是很不幸的事实是要很好地使用系统调用也是需要一定的知识的,所以一些开发者会对部分系统调用进行一定的封装,形成库(lib),有了库就有利于上层开发者更好的开发。

也就是说我现在正在开发,有一个需求是想要在屏幕上输出一行字,由于不便于直接去操作系统,虽然操作系统提供了我一些系统调用接口,但是这些接口依旧很难使用或者很复杂(因为就连屏幕打印个字都这么复杂,更不要说其他操作了),所以有了这个需求,一些开发者为了帮我实现整个功能,把某些系统调用进行分装,封装为一个函数叫做printf,而对于我来说,就可以直接使用这个函数了。

经过以上叙述可以总结系统调用和库函数如下

  • 从开发角度上看,操作系统会对外表现为一个整体,但是会暴露自己的部分接口,以供上层开发者使用——系统调用

  • 系统调用在使用上功能比较繁琐,对用户水平要求也比较高。所以,一些开发者会将部分系统调用进行适度封装,从而形成库,有了库,就便于上层用户使用或者开发者进行二次开发。

(4)为什么需要操作系统

计算机是万万不能没有操作系统的,没有操作系统的计算机和一块砖没有区别。
操作系统对用户来说,他提供了一个稳定高效的工作环境,对下管好软硬件资源,为用户更好的服务