目录
再谈操作系统
操作系统是一款管理软硬件资源的系统软件,主要是四大模块:进程管理、文件系统、内存管理、驱动管理。对下,操作系统管理好软硬件(手段);对上,操作系统为用户提供安全的、稳定的、高效的使用环境(目的)。
关于操作系统的认识,我之前写了一篇博客专门论述,今天我来再谈谈操作系统的其它方面。浅谈操作系统_bit_Sakura的博客-CSDN博客
为什么操作系统要管理,上面已经说了,那具体怎么管理我们来谈一下。
先举个例子,管理一词一般是针对领导者来说,比如公司的CEO,CEO管理员工是怎么管理的呢?他不会一个一个直接去查看员工的工作状况,那样太过费时效率低下。一般是由下属将员工资料整理放进一个大文件夹发送到CEO电脑。大文件夹里是记录员工数据的小文件夹:
大家有没有觉得这和学过的某种结构很像,似乎对应着数据结构的链表。
先创建一个员工类,将每个员工的数据描述保存到链表中,每个员工就是一个节点,再以链表形式串联起来,这就是管理方法。
实际上,管理的本质就是对数据进行管理。而管理的方法叫“先描述,后组织”。
操作系统也遵循这一原理,先是对数据描述,而后组织起来放到特定的数据结构中。
比如当运行时一个硬件出现问题了,操作系统要把它暂时踢出运行队列,那么就在链表中找到它对应的节点,删除节点即可。
CEO取得数据是靠下属,也就是下级管理者,通过他们采集的数据进行管理。这些人不仅要采集普通员工的数据还需做一些决策(并非CEO那样的总体决策),比如员工请假出差...需要下级管理者决定是否批准并记录在册。
因此,CEO————操作系统(管理驱动与硬件,给驱动派发任务使其驱动硬件)
下级管理者————驱动(驱动硬件干活)
普通员工————硬件(打工人)
CEO不仅可以管下级管理者,也可以管员工;同样,操作系统不仅可以管理驱动,也可以管理硬件。
计算机体系结构
理解了上面的内容,我们再来看计算机体系结构,再举个例子:
银行上层有行长、经理和业务人员,下面有安保人员、IT控制人员,保洁人员,还有银行的其它资产如电脑、金库、柜台桌椅。这和操作系统很像:
问题来了,现在我去银行存钱,为什么我不能直接跑到金库,将我的钱存到里面?
————因为银行怎么知道你是不是好人。识别你是否会做坏事成本太高,你来存100块钱,调查你的资料评估要花500不合理。所以结论,银行不相信任何人,也不会花时间花钱去评估分析。它直接用柜台玻璃窗将办事者拦在外面,这样保证了它的安全。
那为什么银行不直接完全封闭,不接待任何人?————因为他要提供服务。
操作系统也是一个道理,在提供服务的同时要保证安全,所以它不会让用户随便访问下层软件和硬件,会将用户挡在外面。
银行针对这种情况是怎么处理的?————它建了一排服务窗口,并用玻璃将办事者挡在外面,这样既可以提供服务,也保证了安全。
操作系统也是一个道理:
在操作系统上层有一个个接口,让用户可以调用访问硬件,方便操作系统与用户交互。
用户无法直接访问硬件,只能通过系统调用接口访问驱动,驱动设备再驱使硬件到达目的。
现在就可以解答以前的一个问题了,我们编写代码,调用函数是如何显示到屏幕的,是如何访问写入磁盘的,以及我们的操作是在整个计算机系统的那个位置?
实际上系统调用接口是C式的接口,也就是C语言写的接口,我们调用接口实际上就是系统给我们的函数调用。平时我们在VS下写一个printf,直接就打印出来了,其实经过了很多过程。先调用库函数,访问操作系统接口,找到对应显示器驱动,再访问到硬件显示器,然后返回信息最终打印到屏幕,实际上工作都是操作系统给我们完成的。
计算机系统结构:
我们现在编程,在shell上写指令,都是在最上层,用户层。