从硬件到用户的五个层次

操作系统直接运行在硬件之上,为其他软件提供抽象接口

事实上,这样的描述比操作系统的接口更为抽象,也过于简单
linux系统为例,从硬件到用户的接口可分为五层共四次抽象
操作系统--从硬件到用户

  • 1、硬件->操作系统
    操作系统运行在硬件之上,这些硬件通常是CPU、内存、磁盘
    第一次抽象实际上隔离了对硬件的直接操作,操作系统借助各种驱动为我们的选择合适的硬件操作。
    类似于筑路式铺上一层碎石子,有了操作系统这层碎石子,我们便没有必要再对泥土路面上的一些微小起伏耿耿于怀了,碎石子自然会填平那些地方。毕竟我们主要目的是筑路而不是把泥路整平,而关注过多的细微起伏,工作量也会大大增加。
  • 2、操作系统->标准库函数
    操作系统把各种操作抽象成系统调用接口,我们可以使用这些接口完成进程创建、存储管理等工作。而更进一步,为了使用更简洁的语言描述我们的工作,系统提供了一个包含各种指令的函数库。
  • 3、函数库->实用程序
    有了函数库,我们仍不满足。如果有什么工具能帮助我们完成一系列的工作,而不是每个步骤都要我们去做就好了。第四层的实用程序就是这样的工具。
  • 4、实用程序->用户
    通过使用各种工具,我们能更便捷地完成在没有这些工具时的工作。事实上,这又完成了工具到任务的更高一级的抽象。

这样看来,我么对操作系统的要求就像对待一位助手。

最初我们需要自己对硬件进行操作,有了操作系统我们便能从这些繁杂的工作中解放出来,好似有了一位不太聪明的助手。此时的助手只会按照我们的要求做事,并且做完就等着你吩咐,叫一次动一次。

显然,我们需要更优秀的助手。在没有库函数之前,如果我们需要这位助手到银行取钱,就需要告知他在哪条街的哪个银行哪个柜台取多少钱。一次两次无所谓,如果每次多要真么跟他说一遍,是很让人恼火的。
有了库函数,我们就换了一位正常的助手,这时候只需要把银行卡交给他,说一句“帮我取600元”他就能找到对应的银行完成这项任务。

也许还能找到更好的助手。接受过系统家政服务培训的女仆或许是不错的选择。实用程序就是这样的助手,计算姬手下的女仆们帮我们做着这些工作而不需要我们告诉她们应该怎样完成。这是很美妙的。

会做各类工作的优秀女仆在用户要求下协作起来,完成具体工作之外更复杂高级的事情自然也不在话下。这样的生活和最初直接操作硬件的工作方式对比起来,不禁要说一句,真香

相关文章: