开篇一句:硬件是丑陋的,便深深的吸引了我。计算机包含硬件、操作系统、应用软件,少一个都没法正常工作。倘若计算机是一个美女,硬件就像美女的五脏六腑,若是没有外边的那层美丽妆容,便是丑陋的。
正因为隔着一张皮囊,再加上美丽的妆容才显得美丽动人。那层皮囊就是操作系统,各种漂亮的衣服、头饰、首饰、化妆的妆容就是应用程序。
操作系统中,抽象的概念主要有三个:CPU到进程的抽象;物理地址到地址空间(虚拟内存)的抽象;磁盘到文件的抽象。大师说:“掌握了这三种抽象就离一个操作系统的专家不远了。”
进程的出现,源自“地主”想让“长工”多干点活,不许长时间闲置。将一个CPU抽象成多个CPU,让每一个程序段都以为自己独自占领了CPU.有点像武侠小说里的幻影术,很多个幻像用来迷惑敌人,实际上只有一个真身。
有了进程的概念,就不得不引出进程的管理,如何将有限的“资源”分配给“无限”的进程是抽象实现过程中必须慎重考虑的问题,分配蛋糕的政策略有疏漏就会激起民变,造成整个系统的崩溃。这就涉及到资源的保护、互锁的解决、调度程序的算法等等问题,这里不会一一介绍,有兴趣的童鞋请购买书籍详细了解。
虚拟内存的出现是为了解决内存的丑陋问题,内存是什么?说的简单一点就是拥有标准规格的储物架,只不过所储之物只有数据罢了。那么为什么多此一举地提出虚拟内存的概念,因为如果直接将内存暴漏给“用户”,马上就会爆发冲突。谁和谁的冲突呢?是应用程序和操作体统之间的冲突。操作系统一旦崩溃,所有的应用程序都将遭殃,所以保护好操作系统势在必行。有了虚拟内存的概念,就不得不相应的设计内存管理的算法,有兴趣的童鞋自己去拜读一些大作。
文件系统是对硬盘的抽象,有了文件系统,我们看到的磁盘就变成了图形化的C\D\E\F盘,就变成了文件夹和文件夹下的目录,这恐怕是操作系统中将丑陋的硬件变成美丽的图形最好的实力。如果没有操作系统,或者更具体一点,没有文件系统,那么我们面对的就是一个能够存储0或1的磁盘块,没准要自己拿着激光枪决定磁盘上每一个小单元的状态了。
读书有利健康,我爱读书,爱读好书,爱读大家之作,站在巨人的肩膀上做一点平凡的事业,仅此而已。