But How Do It Know? —— 每个人都能读懂的计算机基本原理
终于有一本书能真正解释计算机的工作原理了。
计算机远比你想象的简单。
本书旨在为每个人揭开计算机的神秘面纱。书中包含了你需要知道的一切,没有你不需要知道的。不需要任何技术背景。
But How Do It Know? 从头开始,介绍了计算机的全部要点。它按照适当的顺序介绍了每一个部件,使其都合情合理,易于理解。每一个部分都有完整的解释,每一个重要的词在首次使用时都有详尽的定义。
这本书并不是让你死记硬背,而是让你了解计算机这一发明的一系列理念。
But How Do It Know? 一书让读者对计算机的各个部分是如何协同工作的一目了然,并为读者留下了计算机到底是什么的简单印象。
你不必是一个怪胎或是书呆子,这本书里面没有任何技术术语。
如果你知道如何开关电灯,就足以理解计算机是如何工作的了。
你不笨,你不是傻瓜,你也不是白痴——你只是需要一个不刻意表现得比你聪明的老师。
介绍
这本书的标题源自于这样一个老笑话:
小明是一个很棒的小伙子,但他总是有点迟钝。他走进一家商店,销售员正站在一大群人面前推销一个神奇的商品——保温杯。推销词如下:“它能为热的食物和冷的食物保温……”小明想了一会儿,对这个能判断放进去的东西是热的还是冷的发明感到兴奋。他抑制不住内心的好奇,蹦来蹦去,在空中手舞足蹈的说:“但是,但是,但……”最终他脱口而出了一个重要的问题:“但是它是怎么知道的?”
你听到这则笑话或许会笑,或许不会。关键点是小明看到了保温杯能干什么,并做出推测说它一定能感知某些东西,然后执行加热或制冷操作。但他不知道更简单的原理是热量总是从热的地方转移到冷的地方,而所有的保温杯只是减缓这一过程。保温杯不必知道某些东西,也不用加热或冷却任何东西。里面的东西,不管是热的还是冷的,最终它们的温度都会和室温一样。而根据小明的观点,保温杯如何工作的原理远远比真相复杂。
所以,用这个书名的原因是涉及到计算机时,人们看到它们能够做什么,想象这些机器里面必须出现的各种东西,或者想象出它们必须基于各种原理,因此它们可能具备这些能力。人们可以把人的素质分配给机器。还有很多人发现自己处于这种尴尬的情况,就想我们的朋友小明一样。
其实电脑很容易被理解。当然,电脑的零件比保温杯要多。但每一个零件都非常简单,而且它们都是在一个非常简单、非常易懂的原理上运作的。
保温杯的原理是热传递,这是在我们生活中可以观察到的东西:当冰块从冰箱中拿出来时,我们能看到它慢慢的融化;当没有按时吃晚饭时,我们能感觉到热的食物变冷了。
计算机的工作原理和电有关,但这并不意味着很难理解。如果你已经观察到了当你打开一个电灯开关,一个灯泡就会亮起来;关掉开关,灯就会熄灭。你就已经观察到了计算机运行的原理,这就是你所要知道的所有关于电的知识来理解计算机。
只是事实
这本书并不是一本教科书,在每一章的结尾也没有题目,目的只是想为任何希望知道计算机内部到底发生了什么的人解开计算机的神秘面纱。当然,这本书也是最终将获得计算机科学博士学位的年轻人了解计算机的最佳入门读物。对于家庭主妇、老年人以及小孩子来说,这本书也是通俗易懂的。水暖工和环卫工人也应该能看懂。它不需要以前受过技术教育,你仅仅只需要会读中文、会开关电灯以及会做类似8+5=13的简单加法。
本书介绍了构成计算机的全部基本要素。它按照适当的顺序介绍了每一个部件,使每一个零件都合情合理,易于理解。每一部分都有完整的解释,每一个新词首次使用时都有详尽的定义。Any attempt to simplify the subject further would leave gaps in the big picture,让人不得不猜测各个部分是如何协同工作的,而你永远不会有“啊哈,我明白了!”的那一刻,我想你很快就会有的。
这本书不是大学教科书的“精简版”,它完整地解释了计算机的基本原理。它是一本技术性的书籍,也是一本cookbook,更是一本handbook。本书从头开始,定义了理解计算机所需的每一个部分。无论之前一个人对计算机了解多少,这本书都能填补任何缺失的部分,并将它们组成更有意义的东西。甚至我们的朋友小明也能通过刻苦的学习来理解这本书。有成千上万的词汇和概念与计算机领域相关联从而让这门学科看上去一团糟,但是最基本的概念却很简单。
这本书中不会有大量关于计算机的构造或历史琐事,只有基本的内容,不多也不少。计算机的每一部分都有一个简单的功能,当你把它们连接到一起时,你最终获得了一个有用的机器叫做计算机。
这本书中没有任何需要记忆的东西。每一章的设计都是为了给你提供一个你以前没有听过的新的观点;或者是你以前听说过的,但似乎总是令人困惑的东西。书中的每个观点都非常简单,而且一环扣一环。每一章介绍一个观点。每个观点都简单易懂。后面的章节提出的观点是建立在前面章节的基础上的。
如果一个人想要写一本如何造房子的书,可以有不同程度的细节,最简单的书会这样写:“打地基、砌墙、盖屋顶、装水电,这样就大功告成了。”这对没有使用过锤子和锯子,以及没有装过水龙头和电灯开关的人来说还是过于简洁了。
在另一个极端,一本书会有单独的章节介绍每一种可能的地基类型、你可能需要挖掘的不同种类的泥土、十几种不同混凝土的配方、最适合打地基的天气条件等等。这样一来,信息量就太大了。细节太多,真正重要的东西就会丢失。
本书试图提供足够的细节,让读者了解到每台计算机的共同点以及工作原理,而不是如何制造有史以来最大或最好的计算机。本书不涉及任何特定品牌的计算机。它不是关于如何使用计算机的。如果这是一本关于造房子的书,它可能会描述如何建造一个带水槽和灯泡的简单且坚固的花园小屋,显示每块木头的形状和尺寸、所有钉子的位置、如何装门以及如何安装水管才不会漏水。但它不会展示如何建造像弧形橡木楼梯那样复杂的东西。
我们将展示组成计算机的一个个简单部件,然后把它们连接在一起,直至构建出一台完整的计算机。这将比你想象的要简单得多。
计算机有多快
计算机看起来即神秘又神奇,它们能做什么呢?它们会玩游戏,会画图,而且“知道”你的信用等级。这些机器能够做所有奇怪且奇妙的事情。然而它们很简单,它们只做极少数非常简单的事情。而且,它们一次只能做一件这些简单的事情。它们看似在做复杂的事情,只是因为它们在极短的时间内接二连三地做了大量简单的事情。就像电子游戏一样,表面上非常复杂,但实际上却非常简单,只是速度非常非常快而已。
计算机是为了完成少量特定的简单任务而被设计的,而且这些任务要一个接一个地快速完成。做哪些简单的任务、以什么顺序做,决定了计算机在任意给定时间内能完成什么样的任务。但计算机所做的任何事情都不能超出其有限的能力范围。
一旦你了解了计算机的组成,你就会明白它们是如何做到这一点的,它们究竟能做哪些事情,以及它们不能做哪些事情。
因此,计算机的秘密并不在于它的复杂性,而在于它的速度。让我们来看看它的速度到底有多快。
由于计算机是靠电工作的,所以计算机的速度与电的速度有关。你可能还记得光速是每秒30万千米,这个速度相当快。光可以在一秒内绕地球7圈,或者用1.5秒从地球到达月球。物理学家认为电和光有很多共同点。电在导线中传播时,速度会降低到光速的一半左右。但是,在一秒内绕地球三圈半的速度还是很快的。
说到电在计算机内部的部件中的移动速度,你可以看到有些部件之间相距1厘米,有些则更近,它们相距1毫米、0.1毫米。而在这些部件的内部,还有更多的小部件彼此非常接近,有的仅相距1微米。电传输的距离越短,就越快到达目的地。
今天的计算机在一秒钟内能做多少事情已经无从说起,因为那样会使这本书过时。计算机制造商不断生产出新的计算机,它们的速度是两三年前最快计算机的两倍。计算机的速度在理论上是有限的,但工程师们不断找到实用的方法来绕过理论,使机器的速度越来越快。
在计算机的速度越来越快、体积越来越小、价格越来越便宜的这段时间里,计算机所做的事情自从20世纪40年代它被首次发明以来没有任何改变。它们做的仍然是同样的几件简单的事情,只是速度更快、成本更低、更可靠、更小而已。
计算机只有几个部分,它们都是由相同类型的部件组成的。每个部分都有特定的任务,将这些部分组合成一台机器确实是一项了不起的发明。但这并不难理解。
语言
在这本书中,我们需要解释一些用来描述计算机内部的词汇。
在某些领域,尤其是医学和法律,有一种编造大量新词的倾向,而且还是从古希腊语和拉丁语中选取新词,使其冗长难读。
但是在计算机领域,那些先驱者们似乎并不那么正式。他们使用的大多数单词都是日常用语中简单的词汇,它们早已存在,但却以一种新的方式被使用。有些新词是我们已经知道的,但作为不同的词性使用,比如现有的名词被用作动词。有些词则是缩略语,是一个短语中各单词的首字母。
在首次使用时每个单词都会有详细的介绍。虽然整个计算机产业使用的单词和缩略语有成千上万个,但想要了解计算机本身,只需要十几二十个就可以了。你可能以前听过其中的一些词,并从它们的使用方式中猜出了它们的含义,但现在你将得到正确且完整的定义。在许多情况下,你可能会发现它们比你想象的还要简单。
区区一个比特
计算机里面有什么?它能显示静态的图片、动态的视频、音乐、你的支票簿、你写的信,它还能玩电子游戏、与世界各地的人交流等等。但是,计算机里面有图片吗?如果你拿出显微镜并知道该往哪里看,你能在电脑内部的某个地方找到小小的图片吗?你能看到“A”、“B”、“8”或是“12”在里面的某个地方移动吗?
答案是否定的。计算机里没有图片、数字或字母。计算机里只有一种东西。虽然这种东西在计算机里面有很多,但只有这一种东西。这就是比特。
当你把一枚硬币抛向空中,它最终会以两种可能的状态之一落到地上——要么正面朝上,要么背面朝上。
你卧室里的灯(假设这个灯只有开关而不能调节亮度)可以开也可以关。
你家大门可以是锁上的或是没有锁上的。
这些东西有什么共同点呢?它们都包含了一个可能处于两种状态之一的东西。这就是比特的定义。
比特是某种物理实体,它在空间中有大小和位置,且自身的某种属性在任意时刻都可以处在两种可能状态之一,并可以在两种状态之间来回变化。
一块粘土不是一个比特,它可以被捏成一个球、一个立方体、一个薄片、一个环、一根木头、一张脸或任何你能想到的东西。它在空间中有大小和位置,但是它有太多种状态,所以不能称之为比特。如果你把这块粘土压平,在一面刻上“是”,在另一面刻上“否”,然后把它放进窑里面烧,直到它变硬,那么你或许可以称它为比特了。它放在桌子上,只能显示“是”或“否”。这样,它就只有两种状态了。
你可能以前听说过与计算机有关的比特,现在你知道它们是什么了。在计算机中,比特不像硬币或锁,它们最像电灯。也就是说,计算机中的比特是有电或者没有电的地方。计算机中的比特非常非常小,数量也非常多,但这就是计算机的全部。