操作系统之哲学原理书摘1

第一篇 基础原理篇
操作系统在计算机运行过程中扮演的角色:魔术师和管理者。魔术师将丑陋变得美好,将没有变为有,将少变为多;而管理者则对所有计算机资源进行管理以达到公平和效率的“双料”境界。

第1章 操作系统导论
如果你认为操作系统没有用,那是因为你的编程和程序开发处在一个低级的水平上。如果你掌握了操作系统,你的编程水平将显著提高。

换句话说,操作系统有没有用,我的回答是"As you will"。你如果有意愿或者有行动使用操作系统,操作系统就是有用的;如果你没有意愿或行动,则操作系统就是没有用的。

1.1 人造与神造
要想学好操作系统,具有恰当的思维模式是十分必要的。这个思维模式就是本书所强调的“哲学”:一种思维方式或一种生活方式。

一类是本来就存在于自然中,人类所做的只不过是发现;另一类是本来并不存在,人类所做的是发明。前者称为神造事物或者自然存在的事物,后者当然就是人造事物。

这正是我们所需要的答案,即计算机的根本特征是“人造”。引申一下可知,计算机学科就是一个人造学科。

明白了计算机是人造事物,操作系统是一个人造系统,我们就可以按照人造事物的特点来学习,从而易如反掌地掌握操作系统的原理。

1.2 程序是如何运行的
首先,当然得进行编程,而编程需要计算机程序设计语言作为基础。
其次,机器语言程序需要加载到内存,形成一个运动中的程序,即进程,而这需要操作系统的帮助。
最后,在CPU上执行的机器语言指令需要变成能够在一个个时钟脉冲里执行的基本操作,这需要指令集结构和计算机硬件的支持。
整个程序的执行过程还需要操作系统提供的服务和程序语言提供的执行环境(runtimeenvironment)。
操作系统在程序的执行过程中具有关键的作用,本书要做的就是阐述这个关键作用是如何发挥的。

1.3 什么是操作系统
OperatingSystems指的就是掌控局势的一种系统。也就是说计算机里面的一切事情均由Operating Systems来掌控。
操作系统是介于计算机和应用软件之间的一个软件系统。
我们知道操作系统的上面和下面都有别的对象存在:下面是硬件平台,上面是应用软件。
操作系统是一个软件系统;操作系统使计算机变得好用(将人类从繁琐、复杂的对机器掌控的任务中解脱);操作系统使计算机运作变得有序(操作系统掌控计算机上所有的事情)。总结起来就是:操作系统是掌控计算机上所有事情的软件系统。
操作系统的功能:替用户及其应用管理计算机上的软硬件资源。保证计算机资源的公平竞争和使用。防止对计算机资源的非法侵占和使用。保证操作系统自身正常运转。

1.4 魔术与管理
1.4.1 魔术家角色
操作系统将计算机以一个更加容易、更加方便、更加强大的方式呈现给用户。
操作系统通过进程抽象让每一个用户感觉有一台自己独享的CPU;通过虚拟内存抽象,让用户感觉物理内存空间具有无限扩张性,这就是把少变多。

1.4.2 管理者角色
操作系统管理计算机上软硬件资源。
那怎么让用户很好地利用这些硬件资源呢?就是分块(parcel out),把硬件分块给应用程序使用。
这里关键的原则是有效和公平,这是管理者的必备素质。有效指的是不能浪费资源,公平指的是每个人都有可能享有资源,即不能有不公平的现象。
操作系统具体功能如下:CPU管理,即如何分配CPU给不同应用和用户。内存管理:即如何分配内存给不同应用和用户。外存管理:即如何分配外存(磁盘)给不同应用和用户。I/O管理:即如何分配输入输出设备给应用和用户。
操作系统的设计还需包括如下两项:健壮性管理:即如何确保操作系统自身的正常运作。安全性管理:即如何防止非法操作和入侵。
为完成上面所列的功能,操作系统设计人员构思了许多机制。而所有这些机制均有其渊源,其背后隐含的是人的哲学思维。

1.5 用户程序与操作系统
操作系统上下分别是虚拟机器界面和物理机器界面。处于物理机器下面的是硬件,而硬件和操作系统的关系将是本书的关注点。
操作系统为用户程序提供了一个虚拟机器界面,而应用程序运行在这个界面之上。
那操作系统和用户程序之间到底谁是调用者,谁是被调用者呢?
操作系统通过虚拟机器界面为用户程序提供各种服务,用户程序在运行过程中不断使用操作系统提供的服务来完成自己的任务。在这种思维模式下,用户程序是主程序,而操作系统是子程序。
如果我们从另一个角度来看,会得出相反的结论。
系统启动之后最先启动的是什么程序?操作系统。在此之后,每次启动一个用户程序,都相当于操作系统将控制转移给用户程序;而在用户程序执行完毕后,控制又回到操作系统。
这样看上去,操作系统是主程序,它在一生当中不断调用各种应用程序,而每个应用程序执行完之后再回到操作系统。
人造学科没有对错之分,只有好坏之分。你喜欢哪种观点就持那种观点,哪种观点帮助你理解操作系统,你就持那种观点。

1.6 操作系统的范畴
CPU管理就是将要介绍的进程管理。进程管理的主要目的有3个:
第一个是公平,即每个程序都有机会使用CPU。
第二个是非阻塞(non-blocking),即任何程序不能无休止地阻挠其他程序的正常推进。
第三个是优先级。
内存管理主要是管理缓存、主存、磁盘、磁带等存储介质所形成的内存架构。为此目的,操作系统设计人员发明了虚拟内存的概念,即将物理内存(缓存和主存)扩充到外部存储介质(磁盘、光盘和磁带)上。
内存管理的另一个目的是让很多程序共享同一个物理内存。这就需要对物理内存进行分割和保护,不让一个程序访问另一个程序所占的内存空间,专业术语称为运行时不能越界。
I/O管理也称为设备管理,就是管理输入输出设备。
另外还有一个任务称为批处理,它提供一种无需人机交互的程序运行模式。

1.7 为什么学习操作系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值