说明:该系类文章更多的是从从哲学视角看 操作系统 这门学科。同时也是 操作系统的学习笔记总结。因为博主 这些年主要是以研究安卓系统和 嵌入式Linux为主,因此这个系类文章也是这两个领域不可或缺的基石之一,尤其是对操作系统感兴趣的伙伴可特别关注。
1 操作系统导论 1.1 人造学科
一个角度看待所有事物分为两类:发明(创造)与发现(观察)
计算机本身就是一个人造学科,人造学科的4个特点,如下:
- 不精确,有相对性:没有对错,只有适合/不适合
- 从对人类活动的观察导出:对事物的观察与抽象
- 依赖于人的主观判断力;人不同,看待事物的角度不同,抽象出来的对象不同,因此,对于标准,只是少数服从多数
- 符合人的直觉:如果按照我们的意愿去理解这些原理,则十分直接了当
相对人造学科,神造学科具有的4个相反的特点:
- 精确、绝对:只有对错,没有中间状态,例如数学领域
- 从对自然的观察导出:通过自然现象严密推理获得自然的规律
- 不依赖人的主观判断力:所有人的观察结果是一样的,即观察结果可以被任何人验证
- 违反人的直觉:人类的思想和自然本身是不同的,需要通过观察发现规律,利用规律来推导结论,而不是主观臆断
操作系统是一个人造学科,因此要按照人造事物的特点来学习。
1.2 程序是如何运行的
从图中了解到,程序运行至少需要4个因素:
- 程序设计语言
- 编译系统
- 操作系统(在程序的执行过程中具有关键的作用)
- 指令集结构(计算机硬件系统)
1.3 什么是操作系统
操作系统(OS)的概念:一个介于计算机硬件和应用软件之间的一个软件系统,目的就是使得计算机变得好用,运作有序。操作系统的位置如果所示:
操作系统要做的事情:
- 计算机的功能和复杂性在不断发生变化,掌控的事情越来越多,也越来越发杂,本身能够拥有的资源也会越来越多,因此需要不断改善。利用操作系统会使事情变得相对简单些,即操作系统升级的时候改动量降到最低。
- 知晓计算机上发生的所有事情,从而维护计算机,保证计算机的健康。
- 为了满足人类更加苛刻的要求,不断发展。
操作系统的功能:
- 代替用户以及应用管理计算机上的软件、硬件资源。
- 保证计算机资源的公平竞争和使用。
- 防止对计算机资源的非法侵占和使用。
- 保证操作系统自身正常运转。
1.4 魔术与管理
操作系统在计算机运行过程中扮演的角色:魔术师和管理者。
- 魔术师:将丑陋变得美好,将少变多,将无变有。但是这并不是凭空想象,而是运用了类似于能量转换的一种方式,或者说是巧妙地拿空间来换取时间、拿时间来换取空间。
- 管理者:对资源进行管理以达到公平,有效。
根据管理的资源不同,具体功能包括:
- CPU管理:如何分配CPU给不同的应用和用户。
- 内存管理:如何分配内存给不同的应用和用户。
- 外存管理:如何分配外存给不同的应用和用户。
- I / O管理:如何分配输入输出设备给不同的应用和用户。
除了对资源进行管理和抽象,还需要保证自身的稳定,那么还需要包括2项:
- 健壮性管理:如何确保操作系统自身的正常运作。
- 安全性管理:如何防止非法操作和入侵。
为了完成上述功能,人们设计了很多机制,而这些东西的背后隐含的是人类的哲学思想。
1.5 用户程序与操作系统
第一个视角:用户程序调用操作系统,如下所示:
应用程序调用系统API完成功能应用程序是主程序,操作系统被调用。
第二个视角:操作系统调用用户程序,如下所示:
操作系统先启动,是主程序,之后是调用各种应用程序,最后回到操作系统。
说明:两种观点无对错,只是角度问题,导致不同的观点。实际上操作系统和各个应用程序是可以看作是相互调用,从而形成一个非常复杂的动态关系。
1.6 操作系统的范畴
操作系统的具体任务:
@1 CPU管理(进程管理):
- 公平:每个程序都有机会使用CPU
- 非阻塞:阻塞不能妨碍其他进程继续前进
- 优先级:优先级高的程序运行,则优先级低的必须让出资源
@2 内存管理:管理缓存、主存、磁盘、磁带等存储介质形成的内存架构。虚拟内存将时间转换为空间,同时对于物理内存需要进行分割和保护,即不能越界。
@3 存储管理(文件系统):将磁盘变成用户很容易使用的媒介。
@4 设备管理:管理输入输出设备。
@5 操作系统提供的机制:
- 屏蔽不同设备的差异,方便用户访问;
- 提供并发访问,使设备具有共享性
- 批处理:无须人机交互的模式,主要是达到吞吐量最大化,单位时间完成的任务最多。
1.7 为什么学习操作系统
操作系统的功能、技巧、思想、哲学理念在很多领域内使用,是源于生活的一种抽象,而这为触类旁通学习其他东西来讲容易多了。