推荐一本书:计算机的心智:操作系统之哲学原理

对于我们这些非计算机专业的学生来说,能够从计算机的底层理解计算机的运算过程其实是需要花费很大的努力,尤其是没有老师带,没有同学交流,只能自己一个人去摸索的情况下。
因为要学习计算机的基础知识,我从网上了解到基本上需要学习四本基础知识课程:计算机组成原理、数据结构和算法、计算机操作系统、计算机网络。这四门课程都有很多非常经典的书籍,尤其是外文书籍。但是对于国内的群众来说,时间不那么充足的情况下,阅读外文的可操作性不那么可观。我阅读过《现代操作系统》,不过感觉晦涩难懂,抓不住重点,不能形成一个明确的知识体系,而这本《计算机的心智:操作系统之哲学原理》从整体上对整个操作系统讲解的很清楚明白。当你理解了每个部分的功能,你就对整个系统有个全面初步的了解,这时候你在去深入的了解一些细节,效果会更好。所以,我建议首先阅读每一篇的开篇时的那一小段话,一定要全部阅读完之后,在仔细的思考一下,你就能从宏观上把握操作系统具体是干什么用的。然后有了整体的把握之后再去详细看每一篇的细节。
基本上,计算机的所有工作都是围绕CPU进行的,内存和外存为CPU提供资源。在这里,我先把每一篇的前言部分全部全文摘录下来,希望能够加深自己对操作系统整体的理解和把握。

计算机的心智:操作系统之哲学原理

前言

CPU管理(进程与线程)、内存管理(虚拟内存)、外村管理(文件系统)、I/O管理(输入与输出)等操作系统的核心机制不外乎是资源的管理,它们都遵循着一切人类资源管理的基本原则,即如何有效地发掘资源、监控资源、分配资源和回收资源。
除了提供管理的功能外,操作系统还需要保证自己的正常运转,即它必须尽力使自身不发生失效或崩溃,因为这是提供其他一切功能的基础。这与人类把确保自身健康生活作为开发利用资源的前提是一个道理。
如果我们把握了资源的根本属性,即资源管理必然涉及共享和竞争的管理,理解了操作系统必须首先保障自己的正常运转,就会理解操作系统的一切行为。前者指引着操作系统功能的设计与进化,后者推动着操作系统可靠性地演变。
资源管理也好,保证自身的正确性也好,它们都有着根本的线索。这条根本线索就是人类在长期的生活实践中摸索出来的管理社会和保障自身安全的各种办法。这些办法是随着人类哲学思维的变化而改进的。因此,只要明白了人类的哲学思维,就能明白操作系统所遵循的哲学原理,进而明白整个操作系统的设计与构造。
除了使操作系统易于理解外,从哲学的层面阐述操作系统的原理还有如下好处:
- 操作系统可以变化,但支持其存在的哲学原理是不变的。这样,本书的内容可以在操作系统不断演变的环境下保持有效,而不会像其他书的内容,随着时间的推移而过时。
- 对于很多人来说,操作系统所采取的机制、策略和手段看上去十分枯燥,如果从哲学原理上给它们赋予人性的特点,这些机制、策略和手段便不在枯燥。
通过将人生哲学与操作系统联系起来,从操作系统哲学原理的层次阐述操作系统的核心技术,就能够理解掌握操作系统的精髓。

第一篇:基础原理篇

对于任何一门课程来说,首先探讨的问题就是这门课的主题到底是什么?对于刚接触操作系统的入门者来说,自然想到的问题当然也会是操作系统到底是什么东西。回答这个问题是本篇的职责。此外,操作系统作为计算机的核心控制系统,它在计算机运行过程中扮演什么角色?它的来历是什么?它有一些什么基本概念?我们应该如何看待操作系统?它是如何参与到程序的执行过程中的?这些也是学习操作系统需要了解的基本问题。
本书的基础原理篇就是真的上述问题而写成。它对这些问题进行解答和讨论,并为我们接下来介绍操作系统的核心功能部件打下基础和铺垫。
本篇最为重要的核心思想是操作系统在计算机运行过程中扮演的角色:魔术师和管理者。魔术师将丑陋变得美好,将没有变为有,将少变为多:而管理者则对所有计算机资源进行管理以达到公平和效率的“双料”境界。对操作系统这两个角色的理解将非常有助于对进程、线程、虚拟内存、文件系统和输入输出系统的掌握。

第二篇:进程原理篇

有了基础原理篇的铺垫,我们就可以进入到操作系统核心功能部件的讲解了。
计算机,顾名思义,是用来计算的。而进行计算的关键部件是计算机的芯片,即CPU。CPU能够按照一定的顺序进行正确计算是在一个指挥者的控制之下完成的。这个指挥者就是操作系统,而操作系统对CPU进行管理和施行魔法的手段就是进程和线程。因此,对进程和线程这些施法道具进行阐述对理解操作系统自然十分重要,对其进行管理也就理所当然地成为操作系统的一个关键职责。
本篇最重要的内容是并发。因为要并发,我们发明了进程,又进一步发明了线程,只不过进程和线程的并发层次不同。进程属于在处理器这一层次上提供并发的抽象,线程则属于在进程这个层次上再提供一层并发的抽象。如果我们进入计算机体系结构里,就会发现,流水线提供的也是一种并发,只不过是指令集并发。这样,流水线、线程、进程就从低到高在三个层次上提供我们所迫切需要的并发。

第三篇:内存原理篇

计算机的一个基本功能是计算。计算机除了需要使用硬件以外,还要有两种信息:数据和代码,他们是计算硬件CPU的输入,没有这些,CPU也是巧妇难为无米之炊-无法进行计算。那么这些东西从哪来呢?或者说这些信息存放在什么地方呢?显然,存放这些东西的地方需要能够很快地将数据读出写入,以便能够与CPU合作完成计算机被赋予的功能。这个地方不是别的,就是计算机的主存储器,通常简称为内存。对内存进行管理是操作系统对CPU进行管理的重要支持。
本篇最为重要的核心思想是虚拟内存。通过这种机制,操作系统将内存的容量扩增或无限扩大,将内存的访问速度大幅度提高,而其使用的语料却很简单:一点点缓存,一些主存和便宜的磁盘;其采用的机制也简单至极:动态地址翻译!

第四篇:文件原理篇

在上一篇讲过,计算机运行时所需的数据和代码从主存储器或者内存而来。如果计算机不在运行状态时,这些数据和代码保持在何处呢?我们当然可以试一下内存。但问题是内存不是持久性的存储介质,它是进程运行过程中临时分配的存储空间。一旦进程结束运行,其所占内存空间就会被释放,存放在里面的数据和代码也将消失。而且,内存需要电能支持才能保持数据(指一般的内存),一旦断电,所有数据都将丢失。因此,数据和代码想要长久保持,就需要一个更为持久的地方来存放,这个持久地方就是磁盘。而对磁盘进行管理就是操作系统的另一个重要使命。如果管理得当,磁盘、内存和CPU将协作完成计算机的使命。
计算机管理磁盘采用的手段或者抽象就是文件系统,这是本篇讲解的关键主题。
本篇最重要的核心是文件夹及其实现,因为它是文件系统运作的根本。通过文件夹,我们才能找到我们需要的文件,完成从抽象到现实的转换。

第五篇:IO原理篇

有了计算,又有了存放数据的临时和永久地方,似乎计算机需要的一切都已经具备。但这是真的吗?我们知道,发明计算机的目的是让计算机为人类服务,而计算机要为人类服务就得有一种办法与人类进行沟通或者交互。而实现这种交互的手段就是计算机的输入和输出。一台没有输入和输出的计算机,其CPU、内存和磁盘在强大,对人们也并无太大用处,甚至说是毫无用处。就像一个人一样,如果其能力再强,大脑再聪明,只要他与外界的沟通渠道(听说读写)被打断或有缺陷,就会被世人看做一个无用的人。
因此,要想让计算机真的有用,就得有输入和输出。而操作系统既然是计算机的掌控者,当然也需要对输入输出进行掌控。本篇即对计算机与外界进行沟通的输入与输出机制进行详解。
本篇最为重要的核心是输入输出的硬件模式与软件模式,及这两个模式之间的对应关系。

第六篇:多核原理篇

随着多核技术的流行,操作系统作为计算机的管理者,不得不增加对多核的管理功能。而从单核到多核,并不只是处理器或处理器核数量的简单变化,其对操作系统的影响是多方位的。首先,多核的出现对操作系统的进程和线程调度产生了直接影响。因为这个时候可以同时调度多个线程和进程进行执行。其次,在多核环境下,一条指令可以同时在多个核上面执行,就使得单核环境下的同步机制不一定运行正确。另外,多核的出现使得能耗的管理趋于重要。
本篇最重要的概念就是多核之间的协调:即如何让多个核的计算能力相得弥彰,而不是相互抵消。从某种程度上说,多核之间的协调与前面讲过的进程或线程之间的协调具有相通性。而从另一个角度看,这种协调又是进程之间或线程之间协调的扩展和延续,因此,只要明白了线程之间的协调原理与机制,理解多核技术及其对操作系统的影响就是水到渠成的事情了。

第七篇:操作系统设计原理篇

前面六大篇对操作系统的基本概念和各种机制进行了详细论述。虽然这些论述是分篇分章进行的,但它们之间并不是互相割裂的,而是有着内部的逻辑联系的。联系它们的纽带有多条。首先是操作系统作为计算机的管理者,需要对计算机的各个组成部分进行管理,这就导致了CPU管理、内存管理、磁盘管理、输入输出设备管理等操作系统功能的出现和相互关联。其次,操作系统作为魔术师,需要对计算机的各种硬件进行抽象和装扮,以使其显得更大、更快、更好、更容易使用。而这些从抽象就形成了进程线程、虚拟内存、文件系统、各种I/O模式等操作系统构造的出现。而这些构造之间也因操作系统魔术师的角色而互相联结起来。
但除了管理和魔幻这两条共同的纽带外,操作系统能够各个部分海投一个联结纽带:其设计上所遵循的哲学原理。虽然CPU、内存、磁盘、输入输出等设备听上去相差很大,但对他们进行管理和抽象时所采用的策略却有很多相通点。本篇即对这些相通点或哲学原理进行讨论。
本篇从高屋建瓴的角度对操作系统设计的十条哲学原理进行阐述。显然,操作系统的设计原理有很多,本篇选取的只是这诸多原理里面非常重要的十条。
本篇最为重要的核心是不同的生活哲学将导致不同的操作系统设计与构造。只要真正理解了人生哲学,就真正明白了操作系统。

你可能感兴趣的:(书籍)