操作系统是一款软件,是为了进行软硬件资源管理的软件。
操作系统是为了给用户提供一个良好,安全,简单的运行环境。这就是操作系统的目的。
上面的两个话题我们在Linux发展史这篇博客中就浅谈过,下面我们具体讲解怎么办。
我们都假设学校有三种角色,校长、辅导员、学生。那么这三种角色谁是管理者,谁是被管理者呢?毫无疑问,学生是被管理者,校长是管理者。
我们从这个例子可以学到,管理者和被管理者可以不直接沟通。在日常生活中我们很少见到校长,可能除了开学的一次开学典礼后面几乎不会再见到。
那么校长是如何做到管理的呢?
校长只要了解每个学生的核心信息就可以做到管理了
。比如:某个学生的各科成绩怎么样啊,社区文明分低不低啊,有没有经常旷课啊,有没有经常晚归或者也不归宿啊等等,可以凭借这些信息对学生进行嘉奖或者开除的决策。这些信息都可以作为管理的依据。
那么这些数据都是谁提供给校长的呢?
当然是辅导员,这里辅导员就是执行者,我们可以类比到操作系统。
校长:操作系统
辅导员:驱动程序
学生:硬件
所以我们总结一下:管理者拿到被管理者的核心数据,来进行支持管理决策,才是最重要的。
所以我们总结出的第一个结论是
:管理是对被管理者的数据进行管理。
从上面的介绍中我们可以了解,校长是如何对学生进行管理的,学生如果只有几百个到上千个还好,但是学生有10万人呢?那么校长该如何处理这些无序的数据,要对这些数据一个一个管理观看吗?
假设校长在当校长之前是一个优秀的程序员,他知道要管理学生信息,要先对被管理对象进行描述,再根据类型定义对象。然后可以把所有对象在数组中保存起来。
所以
首先我们要定义一个对象,用对象来保存单个学生的信息。
然后再用数组保存所有对象信息
这样校长对学生的管理工作,就变成了对数组的增删查改。
比如校长要开除终测排名最后三名的同学,可以编写一个按照成绩排名的算法,然后找出最后三名,再让辅导员去通知他们,并且从数组中删除这三人的信息。
从上面我们得到了六字真言,要对对象进行管理必须:先描述,再组织。
Linux内核是C语言写的,所以所有对象都是用struct结构体创建出来的。
从上面我们不难得到,OS(操作系统)内部一定充满大量的数据结构和算法。
所以我们得到的第二个结论:先描述,再组织。
银行管理系统结构图:
我们把上面的银行管理系统类比成操作系统就是:
在日常生活中我们去银行办理业务的时候,是直接访问银行的各种软硬件资源的吗?
不是的!
我们去银行的时候,银行一般会为我们提供一个个窗口我们可以去窗口,窗口中会有工作人员为我们提供服务。
这是为什么呢?因为银行不相信任何人,就算你是好人银行也没有时间和精力去了解你。通过窗口的交互,可以将风险降到最低
。
同理我们可以推导到操作系统。
我们使用操作系统的时候是直接自己操作操作系统的各种软硬件资源的吗?
不是的?
操作系统会为我们提供各种系统调用接口,我们可以通过系统调用接口,访问和调用操作系统的各种软硬件资源。
原因也是因为操作系统不相信任何人。
总结
1.OS操作系统不相信任何人。
2.一个好的产品,一定回给用户提供一个非常舒适的使用体验,比如抖音想看视频只要上下滑就好了。
如果银行进来了一个70几岁的老大爷,而老大爷不懂得怎么与窗口服务人员沟通,这时候就需要银行系统外的服务人员,来为老大爷进行指导。
相对的操作系统也是如此。
操作系统的系统调用接口上面就是服务层。