操作系统的感性认识
操作系统 这个词可能或多或少听说过,比如windows , linux , macOS 。这些其实都是工程师们经过实践后的具象化 产物。而操作系统原理 这六个字就是操作系统的抽象化,更准确的说,操作系统原理 是很理论化的东西。举一个不是很恰当的例子,马哲 和中国特色社会主义,马哲就是一种比较抽象的理论,而中国特色社会主义是马哲实践后的产物。所以这里要给大家避个坑------如果要学操作系统相关的知识,千万不要盯着操作系统原理去学,一定要从一款具体的操作系统切入(比如Linux)。操作系统原理好比计算机里的哲学,真的很抽象。
计算机的硬件(键盘,CPU,显示器,磁盘,内存...)只是冷冰冰的硬件,而操作系统就是硬件的管理者和拥有者 。如果把操作系统比作一个人,那么操作系统是一个非常精明,干练的人,他几乎不会做任何浪费生命的事情,他会非常爱护他所拥有的硬件,并且知道硬件的每一处细节,他可以把这些冰冷的硬件高效效的组织起来。
现在,你正在打游戏,游戏所对应的这款软件想向显示器刷新图片,那么这款游戏软件可以访问显示器吗???答案是不可以,操作系统是才是硬件的拥有者,所有的软件要访问硬件资源都必须经过操作系统的同意,而且只能由操作系统替游戏软件访问显示器。那么操作系统在整个计算机的位置如下图所示
所有要访问硬件的行为都需要贯穿操作系统。
操作系统的理性认识
应用层软件直接访问硬件不可以吗?这里我不想很绝对的回答不可以。硬件的协议和接口是很复杂的,不同的硬件之间又不一样,不同的硬件厂商有不同的标准。而操作系统可以看作一层抽象层,它把硬件的特性抽象出来,屏蔽底层复杂性,为上层提供统一的接口,极大的方便开发者的开发。
所以这里我们从操作系统的作用出发定义一下操作系统:操作系统是硬件的拥有着和管理者,所有访问硬件的行为必须贯穿操作系统,而操作系统对下要管理好硬件资源,对上要服务好用户(这指的是应用程序,开发人员等等)
什么样的操作系统是优秀的
安全
操作系统必须保证硬件资源的安全------不可以让上层应用程序随意的访问。如果上层程序可以随便的访问硬件资源,那么该计算机的数据也就可以被随意的窃取。
稳定
必须保证稳定性,才能更好的服务上层应用,谁也不想在关键的时候电脑死机了。
高效
性能是一款操作系统必须追求的东西,操作系统属于基建类软件,如果底层有严重的性能损失,那么应用层的代码写的在好也没用。
这里说的性能不仅是自身运行的消耗,还有对软硬件资源的管理是否高效。
认识Linux操作系统
Linux操作系统主要是面向开发人员的,大家大家常听说的可能是windows操作系统。
Linux操作系统从开源是的1万行代码,到现在的千万行代码,集结了全世界优秀开发人员的汗水与智慧。
不管从安全,稳定,还是性能,都属于第一梯队。
专栏说明
这里不介绍Linux的发展了,这是本专栏的第一篇文章,后续会持续更新操作系统原理以及linux内核。
这里说明本专栏的目的,本专栏是博主复习操作系统相关的只是而编写,参考《操作系统原理及Linux内核分析》由清华大学出版社 李芳 刘晓春 李东海编著
专栏说明:本专栏的文章凡事有关概述的原始内容都会用斜体字,凡是博主自己的观点,其文字不做特殊处理