说明:该系类文章更多的是从从哲学视角看 操作系统 这门学科。同时也是 操作系统的学习笔记总结。因为博主 这些年主要是以研究安卓系统和 嵌入式Linux为主,因此这个系类文章也是这两个领域不可或缺的基石之一,尤其是对操作系统感兴趣的伙伴可特别关注。


1 操作系统导论

1.1 人造学科

一个角度看待所有事物分为两类:发明(创造)与发现(观察)

计算机本身就是一个人造学科,人造学科的4个特点,如下:

  • 不精确,有相对性:没有对错,只有适合/不适合
  • 从对人类活动的观察导出:对事物的观察与抽象
  • 依赖于人的主观判断力;人不同,看待事物的角度不同,抽象出来的对象不同,因此,对于标准,只是少数服从多数
  • 符合人的直觉:如果按照我们的意愿去理解这些原理,则十分直接了当

相对人造学科,神造学科具有的4个相反的特点:

  • 精确、绝对:只有对错,没有中间状态,例如数学领域
  • 从对自然的观察导出:通过自然现象严密推理获得自然的规律
  • 不依赖人的主观判断力:所有人的观察结果是一样的,即观察结果可以被任何人验证
  • 违反人的直觉:人类的思想和自然本身是不同的,需要通过观察发现规律,利用规律来推导结论,而不是主观臆断

操作系统是一个人造学科,因此要按照人造事物的特点来学习。

1.2 程序是如何运行的

操作系统哲学原理(01)基础原理- 操作系统导论_用户程序

从图中了解到,程序运行至少需要4个因素:

  • 程序设计语言
  • 编译系统
  • 操作系统(在程序的执行过程中具有关键的作用)
  • 指令集结构(计算机硬件系统)

1.3 什么是操作系统

操作系统(OS)的概念:一个介于计算机硬件和应用软件之间的一个软件系统,目的就是使得计算机变得好用,运作有序。操作系统的位置如果所示:

操作系统哲学原理(01)基础原理- 操作系统导论_用户程序_02

操作系统要做的事情:

  • 计算机的功能和复杂性在不断发生变化,掌控的事情越来越多,也越来越发杂,本身能够拥有的资源也会越来越多,因此需要不断改善。利用操作系统会使事情变得相对简单些,即操作系统升级的时候改动量降到最低。
  • 知晓计算机上发生的所有事情,从而维护计算机,保证计算机的健康。
  • 为了满足人类更加苛刻的要求,不断发展。

操作系统的功能:

  • 代替用户以及应用管理计算机上的软件、硬件资源。
  • 保证计算机资源的公平竞争和使用。
  • 防止对计算机资源的非法侵占和使用。
  • 保证操作系统自身正常运转。

1.4 魔术与管理

操作系统在计算机运行过程中扮演的角色:魔术师和管理者。

  • 魔术师:将丑陋变得美好,将少变多,将无变有。但是这并不是凭空想象,而是运用了类似于能量转换的一种方式,或者说是巧妙地拿空间来换取时间、拿时间来换取空间。
  • 管理者:对资源进行管理以达到公平,有效。

根据管理的资源不同,具体功能包括:

  • CPU管理:如何分配CPU给不同的应用和用户。
  • 内存管理:如何分配内存给不同的应用和用户。
  • 外存管理:如何分配外存给不同的应用和用户。
  • I / O管理:如何分配输入输出设备给不同的应用和用户。

除了对资源进行管理和抽象,还需要保证自身的稳定,那么还需要包括2项:

  • 健壮性管理:如何确保操作系统自身的正常运作。
  • 安全性管理:如何防止非法操作和入侵。

为了完成上述功能,人们设计了很多机制,而这些东西的背后隐含的是人类的哲学思想。

1.5 用户程序与操作系统

第一个视角:用户程序调用操作系统,如下所示:

操作系统哲学原理(01)基础原理- 操作系统导论_优先级_03

应用程序调用系统API完成功能应用程序是主程序,操作系统被调用。

第二个视角:操作系统调用用户程序,如下所示:

操作系统哲学原理(01)基础原理- 操作系统导论_应用程序_04

操作系统先启动,是主程序,之后是调用各种应用程序,最后回到操作系统。

说明:两种观点无对错,只是角度问题,导致不同的观点。实际上操作系统和各个应用程序是可以看作是相互调用,从而形成一个非常复杂的动态关系。

1.6 操作系统的范畴

操作系统的具体任务:

操作系统哲学原理(01)基础原理- 操作系统导论_计算机硬件_05

@1 CPU管理(进程管理):

  • 公平:每个程序都有机会使用CPU
  • 非阻塞:阻塞不能妨碍其他进程继续前进
  • 优先级:优先级高的程序运行,则优先级低的必须让出资源

@2 内存管理:管理缓存、主存、磁盘、磁带等存储介质形成的内存架构。虚拟内存将时间转换为空间,同时对于物理内存需要进行分割和保护,即不能越界。

@3 存储管理(文件系统):将磁盘变成用户很容易使用的媒介。

@4 设备管理:管理输入输出设备。

@5 操作系统提供的机制:

  • 屏蔽不同设备的差异,方便用户访问;
  • 提供并发访问,使设备具有共享性
  • 批处理:无须人机交互的模式,主要是达到吞吐量最大化,单位时间完成的任务最多。    

1.7 为什么学习操作系统

操作系统的功能、技巧、思想、哲学理念在很多领域内使用,是源于生活的一种抽象,而这为触类旁通学习其他东西来讲容易多了。