理解操作系统(Linux)
操作系统是一款对软硬件资源进行管理的软件!
操作系统为什么要对软硬件资源进行管理呢?
操作系统通过合理的管理软硬件资源的手段,为用户提供良好的(稳定的、高效的、安全的)执行环境。
操作系统是如何进行管理的呢?
那么首先就要来聊聊什么是管理,管理的本质是什么。
假设我们是一所大学的学生,在大学管理学生的无疑就是校长了,那么实际中校长能和学生见几次面呢?答案是非常少,所以校长是如何对学生进行管理的呢?校长通过对各学院的老师下达指令,老师对班长下达指令收集学生的各种信息,然后此时校长就掌握了全校学生的信息(姓名、性别、籍贯、学习成绩等等),然后校长通过对信息进行分析,做出决策,下达指令。
所以,管理的本质是对数据做决策!
计算机是人造的一个世界,计算机里的种种现象在人类社会中一定能够找到。操作系统亦是如此,操作系统也是对软硬件资源的相关数据做决策然后进行管理的!
具体是怎样的呢?
大学中的校长、老师、学生正好匹配上计算机中的操作系统、驱动程序、外设。
操作系统通过驱动程序获取外设数据,然后对外设进行管理。
操作系统收集外设的状态、输入、输出等信息,然后抽象成结构体,以某种数据结构存储,然后操作系统通过该结构查看外设的信息,然后对数据做出决策,进行管理。
操作系统是非常脆弱的,所以为了保护自己,操作系统不相信任何人,仅对外提供一些接口,让用户只能够使用这些接口。因为如果操作系统完全暴露给用户,那么用户中总有坏人会将操作系统给搞坏。
看下图就能够清晰的认识到操作系统的定位以及用户是如何执行程序、操作计算机的。
用户任何想访问硬件的操作,都必须经过上图的流程。操作系统为了安全暴露给用户有限的接口,操作系统从这有限的接口获取到用户想进行的操作(非法驳回),然后操作系统调用相应的驱动程序,去操作硬件,并通过驱动获取的硬件返回的数据,再通过接口返回给用户想要的数据。