小土刀

【计算机系统导论】第六章 设计之魂 操作系统

上一部分的三章我们了解了处理器、存储器和输入输出。从这一章开始我们进入全新的软件世界,来看一看工程师和科学家们是如何在 0 和 1 之上搭建其如此精彩纷呈的数字世界的。


上一部分的三章我们了解了处理器、存储器和输入输出。从这一章开始我们进入全新的软件世界,来看一看工程师和科学家们是如何在 0 和 1 之上搭建其如此精彩纷呈的数字世界的。

如果说指令集体系结构是硬件与软件的桥梁,那么操作系统则是桥两边的哨兵,一方面借助指令集体系结构完成对硬件资源的管理与操作,另一方面隐藏硬件和底层指令集的种种细节,给应用软件的开发者们提供一个一致的平台。

在操作系统出现之前,软件更多是硬件的延伸,因为需要针对不同类型的机器编写不同的代码,脱离了硬件的软件如无源之水,终将干涸。而随着操作系统的出现与不断成熟,在操作系统基础之上构建的应用软件才成为了可以重复使用的通用产品,软件也才真正从硬件中『独立』出来。

从 Unix 到 DOS 再到掀起开源风潮的 Linux,不同操作系统的兴衰和整个行业的发展基本是同步的。那些太过激进美好的梦想往往被现实击垮,有些时候足够简单和普通反而成了广受欢迎的基础。有的人认为是劣币驱逐良币,有的人认为存在即是合理,至于你怎么看,相信经过本章的学习,会有自己的答案。

操作系统中最重要的两个抽象是进程与文件。进程的出现使得不同应用高效共享计算机系统资源成为可能,不同的应用程序不再需要担心处理器与存储器,也不需要担心其他应用程序的影响,在它的世界里,整个计算机系统都属于它。在此基础上,为了再次提高效率,人们又发明了线程与协程等技术,本质上和处理器采用流水线与乱序执行的方式类似,都是通过更加细粒度的资源调配来提高资源使用的效率。

文件则是一个伟大的抽象,在操作系统中,一切皆是文件。文件是文件,文件夹是文件,甚至网络也是文件!更神奇的是,通过这一统一的抽象,配合管道这一数据流导向的应用,真正把一个个的零散的模块与功能组合成了完整且强大的操作系统。真的是像 Unix 的作者说的那样:UNIX is very simple, it just needs a genius to understand its simplicity. 当你意识到这种简约之美后,就会发现 Unix 的确是一种哲学,一种简单却强大可依赖的哲学。

为了配合进程和文件这两个抽象,操作系统中还有一系列从存储到输入输出相关的概念,从信号量到虚拟内存,从 DMA 到中断,都值得我们去了解其背后的原理。

最后,随着计算机系统承担着越来越多的职责,相关的安全问题也成为了大家关注的焦点,本章中我们会通过简单的例子介绍计算机系统的漏洞以及如何利用这些漏洞的方法。不知攻,焉知防,黑帽子与白帽子的斗争也会一直进行下去。

好了,让我们回到 Unix 诞生的七十年代,开始我们的操作系统之旅吧。

捧个钱场?

热评文章