牛津通识读本:计算机

牛津通识读本:计算机
作者: [英国]达雷尔?因斯
出版社: 译林
原售价: 39.00
折扣价: 23.80
折扣购买: 牛津通识读本:计算机
ISBN: 9787575302982

作者简介

达雷尔?因斯 英国开放大学计算机系主任和计算机学教授,已出版二十多部著作,其中包括《软件工程》和《互联网词典》。

内容简介

第一章 裸 机 引 言 计算机的主要特点之一是其存储数据的能力。它通过使用0和1的组合来表示字符或数字,以实现数据的存储。每个“字节”是由八个0和1组成的集合;每一个单独的0或1被称为“位”(二进制位)。计算机科学家使用各种术语来描述计算机中的存储。最常见的是千字节、兆字节和千兆字节。千字节是103个字节,兆字节是106个字节,千兆字节是109个字节。 我使用的第一台计算机是埃利奥特803型。1969年,我在大学里修了一门计算机编程课,这门课使用的就是这台计算机。它坐落在一个大约40英尺乘40英尺的房间里,计算机的硬件装在许多金属橱柜里,每个橱柜都几乎可以填满我家里的主卧浴室。你需要把写在特殊纸张上的程序提交给两个穿孔纸带操作员,然后他们准备一个纸带版本的程序。纸带的每一行都包含一系列穿孔点,这些点代表程序的各个字符。 然后,程序被带到计算机室,纸带被一种特殊用途的硬件读取,结果显示在一种叫作邮局电传打字机的设备上:这实际上是一台可以被计算机控制的打字机,它将结果打印在纸上,这些纸张的质量比卫生纸好不了多少。 计算机的存储容量是以字节为单位计算的;埃利奥特803型计算机有128千字节的存储空间,其存储器要占用两个机柜,数据保存在小金属环上。用纸带将数据输入计算机,结果通过纸或产生纸带的打孔机获得。它需要一个操作员来看管,并配有一个操作员可以调节音量的扬声器,以便检查计算机是否正常工作。它没有与外部世界的连接(互联网还没有发明),也没有用于大规模存储的硬盘。第一批埃利奥特803型的最初定价是2.9万英镑,相当于今天的10多万英镑。 当写这一章的时候,我正用一种叫作MP3的便携式音乐设备听莫扎特的音乐。它花了我大约180英镑。它很适合放在我的衬衫口袋里,并且有16千兆字节的存储空间—比我以前大学里唯一一台计算机的容量有显著的增加。 我在一台被称为上网本的电脑上撰写这本书。上网本是笔记本电脑的精简版,可进行文字处理、电子表格制作、幻灯片演示文稿创建和互联网浏览等。它大约有10英寸长、6英寸宽。它有16千兆字节基于文件的存储空间,可以用于存储文字处理文档,连接到互联网,几乎可以瞬间下载网页,还有1千兆字节的内存用于存储临时数据。 很明显,埃利奥特803型和我现在使用的电脑之间存在着巨大的差别:临时存储空间、文件存储空间、处理速度、物理尺寸、通信设施以及价格。这种进步证明了硬件工程师的技术和创造力,他们开发的硅基电路每年都在变得更小、更强大。 现代计算机能力的增长体现在一条被称为“摩尔定律”的定律中。这是硬件公司英特尔的创始人戈登·摩尔在1965年阐述的。它指出,用于实现计算机硬件的硅基电路密度(由此计算机的能力)将每十八个月翻一番。直到我写这篇文章的时候,这条“定律”一直存在。 计算机已经从20世纪50年代和60年代的庞然大物,演变成可以放在你夹克口袋里的技术实体;它已经从最初设想只有大公司才会用于进行工资表和存货管理的电子装置,成长为一种消费电子产品,以及至关重要的商业和工业计算技术工具。平均每栋房子里有30台电脑,它们不仅可以制作文字处理文件和电子表格,还可以操作烤箱、控制电视等媒体设备、调节房间温度。 即使在七十年后,计算机仍然让我们感到惊讶。这会让20世纪50年代的许多计算机科学家感到惊讶,因为他们当时预测世界只需要少量的计算机。计算机也让我吃惊不已:大约二十年前,我认为计算机只是便于阅读研究文献和发送电子邮件;而现在,它已与互联网相结合,创造了一个全球社区,使用视频技术进行通信,分享照片,分享视频,评论新闻,评论书籍和电影。 计算机硬件 本书的一个目的,是描述计算机如何影响我们生活的世界。为了做到这一点,我将描述所涉及的技术和过去十年中出现的各种应用—主要集中于应用程序。 首先介绍计算机的基本体系结构;我将在第二章更详细地描述这个架构。原理图既描述了最早的计算机,也描述了最新的计算机:计算机的基本体系结构在六十年里没有发生任何变化。 每台计算机的核心是一个或多个被称为处理器的硬件单元。处理器控制着计算机的工作。例如,它会处理你在电脑键盘上输入的内容,在屏幕上显示结果,从互联网上获取网页,并进行诸如将两个数字相加之类的计算。它通过“执行”一个计算机程序来实现这一点,该程序详细说明了计算机应该做什么,例如读取一个经过文字处理的文档,更改一些文本,并将其存储到一个文件中。 数据和程序存储在两个存储区。第一个被称为主存储器,它的特性是,无论存储在那里的是什么,都可以非常迅速地检索出来。主存储器用于存储瞬态数据—例如,一个计算的结果,它是一个更大计算的中间结果—也用于存储正在执行的计算机程序。主存储器中的数据是暂时的——当计算机关闭时,它就会消失。 硬盘存储器,也被称为文件存储或备份存储,包含了一段时间内所需要的数据。存储在这一存储器中的典型实体包括数字数据文件、字处理文档和电子表格。计算机程序在不执行时也存储在这里。 主存储器和硬盘存储器之间有许多不同之处。首先是检索时间。有了主存储器,处理器可以在几分之一微秒内检索到一项数据。在文件存储器中,检索时间要长得多;大约是毫秒量级。这样做的原因是,主存储器是硅基的,读取数据所需的一切都是通过电子电路发送的。正如你稍后将看到的,硬盘存储器通常是机械的,并且存储在磁盘的金属表面,其使用机械臂检索数据。 这两种存储器的另一个区别是,主存储器比文件存储器更昂贵;因此,电脑的主存储器通常比文件存储器少得多(我的笔记本电脑主存储器为3千兆字节,文件存储器为500千兆字节)。计算机的另一组组件是输入设备。它们将用户对计算机执行程序的要求传递给计算机。你最常遇到的两个设备是键盘和鼠标。然而,还有其他一些设备:苹果公司的iPod上的触摸屏与卫星导航系统和核电站的压力监测器是另外两个例子。 计算机的最后一个组成部分是用来显示结果的一个或多个硬件设备。这样的装置有很多种。你最熟悉的是电脑显示器和激光打印机;不过,它也可以包括足球比赛等活动中的广告显示器、飞机驾驶舱中显示飞行数据的控制台、用于生成超市收据的迷你打印机,以及卫星导航设备的屏幕。我在本书中使用的计算机的工作定义是: 计算机包含一个或多个处理数据的处理器。处理器连接到数据存储器。操作者的意图是通过若干输入设备传达给计算机。处理器执行的任何计算结果都将展示在若干显示设备上。 你可能认为这种说法既迂腐又不证自明;然而,我希望你能看到,随着本书的展开,对于计算机有许多激进的解释。 在离开本节之前,我们有必要看一看计算机性能增长的另一个指标。奥哈拉和沙德博尔特在其优秀著作《咖啡机里的间谍》中,描述了基于计算机的国际象棋所取得的进步。要想下好国际象棋,你需要预先考虑好一系列的走法,并评估你的对手对这些走法的每一步会如何应对,然后再决定你该如何走出每一步,依此类推。优秀的棋手在头脑中储存大量数据,能够进行快速评估。正因为如此,计算机一直被视为潜在的好棋手。 已经编写的国际象棋程序有效地存储了大量的走法和对弈,并能很快地对它们进行评估。奥哈拉和沙德博尔特描述道:在1951年,一台计算机只能提前考虑两步棋;在1956年,一台计算机可以在一个更小的棋盘上玩一盘非常有限的国际象棋,但走一步棋要花十二分钟以上。然而,在1997年,一台计算机打败了世界冠军加里·卡斯帕罗夫。这种进步,部分是由于游戏软件技术的改进;而主要原因是计算机的运行速度越来越快。 互联网 计算机不是孤立地运行,大多数都与计算机网络相连。对大多数计算机来说,这将是计算机和通信设备的巨大集合,被称为互联网;然而,它可能是一个控制或监控某些进程的网络,举例来说,一个计算机网络可以保持一架飞机在飞行,或用来监控进出城市的交通流量。 互联网已经对目前计算机的使用方式产生了重大影响;因此,有必要简要地看看它是如何与一台典型的计算机交互的——比如你在家里使用的个人电脑。 互联网是一个计算机网络——严格地说,它是一个连接许多网络的网络。它执行一些功能。首先,它将数据从一台计算机传输到另一台计算机;为了做到这一点,它决定了数据的传输路径。有一个误区是,当你使用互联网进行一些活动时,例如下载一个网页,持有网页的计算机与你的计算机之间的连接是直接的。实际发生的是,互联网通过许多中间计算机算出数据经过的路径,然后再通过它们路由数据。所以,当你看到一个网页在你的电脑上显示时,这个网页可能已经被分成了数据块,每个数据块都经过了一些大陆和一些属于公司、大学、慈善组织和政府组织的中间计算机。 互联网的第二个功能是提高可靠性。也就是说,确保当错误发生时,会有某种形式的恢复过程发生。例如,如果一台中间计算机出现故障,那么互联网的软件将发现这一点,并通过其他计算机重新发送任何故障数据。 互联网的一个主要组成部分是万维网;事实上,“互联网”这个词经常被当作“万维网”的同义词来使用。从现在起我将称它为网络,网络以一种特定的方式使用互联网的数据传输设施:存储和分发网页。网络由许多服务器以及更多的客户机(你的家用个人电脑就是一个客户机)组成。网络服务器通常是指那些比家庭或办公室用的个人电脑功能更强大的计算机。它们将由一些企业维护,并将包含与该企业相关的单个网页;例如,像亚马逊这样的在线书店将为其出售的每一件商品维护网页。 允许用户访问网络的程序被称为浏览器。当你双击桌面上的浏览器图标时,它会向网页发送一条信息,询问你的主页:这是你将看到的第一个页面。互联网的一部分被称为域名系统(通常称为DNS),它会找出页面所在的位置,并将请求路由到保存该页面的网络服务器。然后,网络服务器将页面发送回你的浏览器,显示在你的计算机上。 每当需要另一个页面时,你通常会单击该页面上显示的链接,然后重复这个过程。从概念上讲,发生的事情很简单。然而,它隐藏了大量的细节,包括发现页面存储位置、页面定位、页面发送的网络,读取页面并解释它们应该如何显示的浏览器,以及最终显示页面的浏览器。我在描述中隐藏了一些细节。例如,我还没有描述视频剪辑和声音文件等其他网络资源是如何处理的。在后面的一章中,我将提供更多的细节。值得一提的是,在这一点上,这些资源在网络上的转移方式与网页的转移方式并没有太大的不同。 互联网是计算机从数据处理机器转变为通用机器的主要原因之一,例如,它可以编辑音乐文件、预测天气、监测病人的生命体征、展示令人惊叹的艺术作品。然而,如果没有一种特定的硬件进步,互联网将成为它自己的影子:这就是宽带。这项技术提供了十五年前我们无法想象的通信速度。大多数互联网用户必须依赖于所谓的拨号设备,它以每秒约56千位的速度传输数据。当你考虑到网页的平均大小大约是400千位时,这意味着需要大约七秒的网页显示在你的浏览器。在20世纪90年代,公司使用专用通信硬件来克服速度的不足。 不幸的是,在宽带普及之前,普通用户无法做到这一点。 典型的宽带速度从每秒1兆位到每秒24兆位不等,较低的速度大约是拨号速度的20倍。正如你将在本书后面看到的,这已经改变了家用计算机的角色。 软件和程序 将所有硬件元素结合在一起的黏合剂是计算机程序。例如,当你使用文字处理器时,你正在执行一个计算机程序,它会感应到你输入的内容,显示在某个屏幕上,并在你退出文字处理器时将其存储在文件存储器中。那么,什么是计算机程序呢? 计算机程序很像食谱。如果你看一本食谱,你会看到配料表和一系列的说明,要求你添加一种配料,混合一组配料,并把一组配料放进烤箱。计算机程序非常类似于此:它指示计算机移动数据,执行算术操作,如将一组数字相加,并将数据从一台计算机传输到另一台计算机(通常使用互联网)。然而,食谱和计算机程序之间有两个非常重要的区别。 第一个区别是大小。一个典型的食谱可能包含大约20行文本,而计算机程序包含数百行、数千行甚至数百万行指令。另一个区别是,即使是一个小错误也可能导致程序的灾难性失败。在食谱中,添加四个鸡蛋而不是三个,可能会导致一顿饭的味道或质地有点奇怪;然而,在一个百万级的程序中,输入数字1而不是2很可能会导致重大错误——甚至会阻止程序运行。 我们有各种各样的编程语言。它们被分为高级语言和低级语言。一种高级语言,如Java或C#,具有被翻译为成百上千条计算机指令的指令。低级语言通常与基本的计算机指令有一一对应的关系,通常用于实现需要对诸如化学反应器温度达到临界等事件做出响应的高效程序。 每隔几天,媒体就会报道一个软件项目超出预算或计算机系统严重失败的故事,却很少会将这些故障归因于硬件故障。失败的发生会有两个原因。现有计算机系统出现故障的第一个原因是技术错误,例如测试中没有检测到的编程错误。第二个原因要归于管理上的失败:超出或显著超过预算的项目往往是由于人为因素而发生的,例如,对即将产生的项目资源估计不合理,或者客户改变了他们对系统应该实现的功能的想法。 我个人的观点是,考虑到现代计算机系统的复杂性,项目延迟和开发人员犯错误是不足为奇的。 本书主旨 本书的第一个主题是,硬件的进步如何使计算机能够运用在十年前闻所未闻的领域。放置计算机处理器的电路片可以很容易地用一只手握住,而不是放在一个大的金属柜里。一个容纳16千兆字节数据的记忆棒可以很容易地挂在一个钥匙环上。摩尔定律表明,计算机处理器的计算能力每两年翻一番。你现在可以花不到60英镑买到500千兆字节的硬盘存储空间。这件事情产生了很多影响。首先,在过去的十年里,计算机已经能够做20世纪90年代很少有人梦想的事情,例如,英国电信的“愿景”项目将电视带到了互联网上。第二,计算机硬件尺寸的减小使它们能够实际应用在几年前根本不可能的环境中。 第二个主题是软件开发人员如何利用硬件的进步来生产新的应用。这方面的一个例子就是像苹果公司iPod这样的MP3播放器。iPod和其他设备,如索尼随身听,显然依赖于硬件的进步。然而,他们也依赖于一种基于软件的技术,当其应用于一个声音文件时,将文件压缩到仅占原始大小的10%,而声音质量没有明显下降。 第三个主题是互联网如何将计算机连接在一起,使它们的表现就像一台大型计算机一样。这体现在一个被称为“云计算”的理念中,即数据并非存储在一个本地数据库,而是存储在连接到互联网的许多计算机中,可以由具有相对低级编程技能的互联网用户开发的程序访问。 与这一想法相结合的是互联网作为计算机用户可以利用的巨大数据资源。这包括由英国政府和美国政府的数据官网项目发布的数据,也包括由互联网用户直接或间接提供的数据。例如,有些网站可以让你回到你的城镇或乡村,并检查你的邻居正在体验的宽带速度,这些网站包含的数据是由该网站的用户提供的。 第四个主题是互联网如何提供了只有专业人士才能使用的创意设施。例如,计算机硬件的进步、软件的进步,以及用于制作摄像机的技术的进步,意味着任何人都可以成为电影导演,并在互联网上展示他们的成果。计算机用户现在只要花不到1000美元购买硬件和软件,就能够重现20世纪90年代录音棚的效果。 第五个主题是计算机处理器硬件的进步如何使数字处理应用成为可能,直到几年前,这些应用还被认为是计算领域之外的。摩尔定律表明,计算机处理器的性能每过十八个月就能提高一倍。这样做的结果是,在过去的十年里,处理器变得比以前强大了很多倍,再加上其他硬件的改进,比如数据存储设备速度的提高,这些意味着,诸如涉及飓风等自然世界的模拟,现在可以很容易地进行,而不需要配置强大的超级计算机。 第六个主题是计算机如何成为一种颠覆性技术,因为它既改变了许多技能,也消除了许多技能。这里的一个例子就是摄影。当我参观一个旅游景点时,我几乎从未看到有人使用胶片相机;手掌大小的小型数码相机几乎是现在的标配。此外,拍摄的照片可以放在记忆棒中带回家,放在家用电脑中,然后打印出来。相对便宜的程序,如奥多比公司的图片处理软件,现在可以通过调整曝光等方式来改善这些照片。 冲洗照片不再需要在暗房里把胶卷浸入化学溶液中。这显然是一种改进;然而,事情也有另一面,那就是摄影师的工作机会减少了。有一个网站叫“网络相簿”(Flickr)。这是互联网用户上传照片并展示给访问者的照片共享网站。报纸编辑如果想为每期报纸购买廉价的库存照片(例如,为圣诞版购买一张知更鸟的照片),他们只需支付给自由摄影师一小笔费用。 第七个主题是不安全的计算机。一台没有连接到网络的独立计算机是完全安全的,不会受到任何技术攻击;计算机所有者应注意的唯一威胁是它可能被盗。然而,很少有计算机处于这种状态:大多数计算机都连接到互联网上。这意味着它们容易受到各种各样的攻击,从那些产生轻微公害效应的攻击,到可以完全停止计算机工作的严重攻击。这方面的一个例子就是僵尸计算机。它是指一台连接到互联网的计算机,已经被黑客、计算机病毒或特洛伊木马入侵。 僵尸计算机最常见的用途是充当邮件服务器,发送垃圾邮件;这类电子邮件试图向你出售一些你不需要的东西(比如万艾可、廉价股票或色情出版物),或者试图窃取你的银行账户身份等信息。大多数此类计算机的所有者,并不知道他们的系统正以这种方式被使用。这是因为主人往往并没有意识到他们被称为“僵尸”。2009年5月,安全公司“迈克菲”(McAfee)估计大约有1200万个新的僵尸计算机连接到互联网上。对于计算机入侵来说,这是一个相当惊人的数字。 一些例子 在深入研究这些主题之前,我们有必要先看看这些主题的一些实际例子。 挪威国家石油公司使用蓝色贻贝来监测石油钻井平台周围的任何泄漏。当漏油发生时,贻贝的壳会收缩。考虑到石油钻探过程中泄漏对环境和收入的影响,挪威国家石油公司寻求一种方法来取代需要潜水器和深海潜水员参与的手工作业。他们所做的就是把射频识别(RFID)标签贴在蓝色贻贝的贝壳上。这是一种小型的硅基数据存储芯片,其中包含了一台计算机。当蓝色贻贝感觉到漏油时,它们就会收缩;这使得射频识别标签发出信号,表明该事件已经发生;这些信号被钻井平台上的计算机接收,然后停止导致泄漏的活动。例如,如果正在钻井,钻井线将自动停止。这种不同寻常的应用可能是计算机电路小型化进步的成果。 谷歌公司是广受欢迎的搜索引擎运营商。搜索引擎所做的事情之一是存储用户的查询,例如,您可以访问谷歌网站,并发现哪些是最受欢迎的查询。2008年,英国搜索量增长最快的是:“iPlayer”、“facebook”、“iphone”、“youtube”、“yahoo mail”、“large hadron collider”、“Obama”和“friv”。这些术语大多与大受欢迎的网站或像iPhone这样的电子设备有关。最后一个词条“friv”是一个在线游戏网站。 稍后你将看到,从用户提交索引擎的查询中可以获得大量信息。现在,警方调查人员通常会调查谋杀嫌疑人使用搜索引擎的情况。在谋杀案中,受害者的脖子如果被打断,他们就会检查诸如“脖子”、“绷断”、“折断”、“尸僵”和“尸体腐烂”等搜索词,这些词是凶手可能提交给搜索引擎的。 谷歌保存的用于查询的海量存储数据的一个有趣应用是跟踪流感病毒。两位谷歌工程师跟踪了诸如“温度计”、“流感症状”、“肌肉疼痛”和“胸部充血”等问题的发生率,并将查询这些问题的互联网用户的位置与美国疾病控制中心的数据库进行比较,发现了非常密切的相关性:实际上,他们发现涉及搜索词的查询量与流感病例的密度相似。你现在可以访问谷歌公司管理的一个网站,该网站显示了一段时间以来一些国家流感病例的增长。 这是本书关键主题的一个例子:计算机不仅可以访问自己硬盘驱动器上的数据,还可以访问存储在互联网计算机上的大量数据。 计算机应用的另一个例子超越了20世纪70年代和80年代的局限,涉及将计算机连接在一起以便协同工作的方式。 过去的二十年里,应用科学领域的研究人员一直试图从他们的计算机中获取处理能力。例如,人类基因组计划已经绘制出人类的基因结构,研究人员现在正利用这些信息来检测多种疾病的遗传原因。这项工作需要使用包含大量处理器的昂贵的超级计算机。然而,这一领域以及气候学等其他领域的一些研究人员则提出了一个新颖的想法,即邀请公众运行处理器密集型程序。 一个很好的例子是Folding@home。这个项目是观察蛋白质的结构,以检测治疗方案,可用于治疗阿尔茨海默病等疾病的患者。参与这个项目的研究人员已经招募了大约三万台家用电脑来分担计算负荷。志愿者们使用他们的备用处理器和存储容量来获取一个计算机程序的一小部分,让该程序得以进行蛋白质模拟,并将产生的结果反馈给协调处理过程的主计算机。 这并不是所谓的“大规模计算”或“大规模协作”技术的唯一应用。有些项目试图分析来自外太空的无线电波,以发现在我们的宇宙之外是否有智能生命,有些项目模拟原子和亚原子过程,还有许多项目与分子生物学有关。在过去,包含大量处理器的超级计算机仅供少量研究机构使用——实际上仍在被使用——然而,硬件进步和日益普及的宽带互联网意味着,我们都可以参与重大研究项目,而且对我们的家用计算机几乎没有影响。 “Wordia”是一个任何人都可以通过家用计算机访问的在线视觉词典。它当然包含单词,但每个单词都伴有一段视频,有人会告诉你这个单词对他们来说意味着什么。这是我遇到的最令人愉快的网站之一,也是所谓的大规模合作现象的一个例子。这是一个应用的例子,与本书的一个关键主题有关:计算机是松散耦合的全球计算机的一部分。 另一个例子涉及计算机电路的构造。当工程师们试图把越来越多的电子元件挤到硅晶片上时,这种芯片的设计就变得越来越困难;例如,把两个金属连接点放在一起会引起电气干扰,从而导致电路故障。考虑到数以百万计这样的电路可能被制造并嵌入到计算机中,一个错误对制造商来说将是非常昂贵的。设计的复杂性是如此之高,以至开发硅基电路结构的唯一可行方法就是使用计算机本身。 用来设计计算机电路的程序试图优化某些设计参数;例如,有一类程序试图挤压硅晶片上的连接,其方式是按照以下几个约束条件存储最大连接数:连接之间不要太近,电路的散热不会超过某个阈值,这会影响电路的可靠性。这里有许多用于优化的技术;最近有一类非常有效的程序是基于动物和昆虫的行为。 这方面的一个例子是一种被称作“群优化”的技术,在这种技术中,多个计算机进程相互协作,利用描述鱼群或鸟群行为的简单数学来发现问题的最佳解决方案。这是本书另一个主题的一个例子:程序员的聪明才智与大幅提升的速度相结合,使复杂的任务得以完成,这些任务在几年前甚至是无法想象的。 群优化是过去二十年中计算机应用革命的一个例子:它是由计算机的发展所代表的,从只是执行普通的处理步骤,如计算工资单的应用,到诸如设计计算机和控制内在不稳定的战斗机——这些已经成为我们军队的规范。 到目前为止,我主要关注的是计算机及其可见的用途。还有很多应用是看不到计算机的。离我最近的城市是米尔顿凯恩斯。当我开车去城市,然后绕着它非常实用的道路系统,我见识到了很多看不见的计算机应用。我经过一个由微型处理器控制的测速摄像机;一家利用计算机控制的机器人制造电子设备的公司;街灯由一台非常小的、原始的计算机控制;米尔顿凯恩斯医院使用的大多数监控设备没有嵌入式计算机就无法工作;还有购物中心,在那里,用计算机来保持每个商店环境的严格控制。 越来越多的计算机被用于隐藏的应用,在这些应用中,无论是硬件故障还是软件故障都可能是灾难性的,而且确实是灾难性的。例如,25号医用直线加速器是一台基于计算机的放射治疗机,它有许多软件问题。在20世纪80年代末,由于计算机接口的问题,许多病人接受了大量的过度辐射。 一个隐藏应用的例子,其失败可能是灾难性的,它是另一个有关控制石油钻机主题的例子。一个运转中的石油钻井平台将极度易燃的石油或天然气从地下抽出,烧掉其中一些,并从石油中提取出无用的副产品,如硫化氢气体。在海洋设备中,这需要大量的人工操作人员。然而,越来越多的计算机被用于执行诸如控制石油或天然气的流动,检查是否有泄漏,以及调节燃烧过程等任务。 例如,曾经有信息技术人员入侵用于监控石油钻井平台操作的软件系统,或者是为了经济利益,或者是因为他们变得不满。人们没有认识到的是,尽管诸如传播病毒之类的计算机犯罪仍然普遍存在,但还有许多计算机应用也同样容易受到攻击。挪威智库辛泰夫集团报告称,海上石油钻井平台非常容易受到黑客攻击,因为它们转向了劳动密集程度较低、由计算机控制的操作——例如,用于远程监控钻机操作和通过卫星导航技术保持钻机位置的无线连接尤其脆弱。 本 书 本书的每一章都围绕着我在本章中概述的一个主题展开。 “小型计算机”将描述计算机体系结构是如何映射到硅晶片上的,以及计算机设计师在将越来越多的电子元件放到一块硅晶片上时必须面对的问题。这里和其他章节将要讨论的主题包括:超大规模的集成、硅制造、硬件设计过程及设计的新技巧和科技,比如使用人工智能程序最大化或最小化散热等因素。 “无处不在的计算机”将描述微型化如何使得计算机嵌入各种电子和机械设备。本章和其他章节讨论的例子包括:射频识别标签、超市会员卡的使用、用于监控年老体弱者的计算机、可穿戴计算机、虚拟现实系统中的计算机,以及手机、MP3播放器和计算机之间的融合。“全球计算机”将着眼于互联网是如何使大量的计算机连接在一起,从而用来解决棘手问题,也就是那些在计算上很难解决的问题。这一章首先考察基因组测序的一个特殊的计算应用。然后,我将描述一个被称为网格计算的概念,在这个概念中,大量的计算机以某种方式连接在一起,以便它们的闲置能力可以用来解决这些困难的问题。本章的结尾将展望第七章,并简要描述网格概念是如何商业化到云计算的。这涉及将互联网视为一台拥有几乎无限计算能力和数据存储设施的巨大计算机。 “不安全的计算机”着眼于一些可能导致重大安全问题的威胁,包括技术和人的威胁。本章将涵盖攻击的完整图景,包括病毒攻击、木马攻击、拒绝服务攻击、欺骗攻击,以及那些由人为错误引起的攻击。本章将介绍可以使用的防御,包括防火墙、入侵探测器、病毒检查器和安全标准的使用。我的一个观点是,技术防御是不够的,它必须与传统的安全控制相结合。 “破坏性计算机”描述了计算机是如何产生重大破坏性影响的。大多数例子都描述了计算机和互联网中使用的通信技术相结合所造成的破坏。它将考察媒体行业,例如报纸,在过去的五年里是如何衰退的,以及网络广告是如何蚕食电视公司收入的。本章的结语部分将考察一些领域,在这些领域,计算机已经在去技能化,转化、改变或消除了某些工作。 “云计算机”描述了互联网是如何使开发人员和中等技能个人把这个网络当作一台大型计算机来对待的。许多公司(如亚马逊)都提供了对巨大产品数据库和编程设施的公共访问渠道,这样就可以开发跨多个领域的应用程序。这就引出了云计算机的概念:通过互联网连接的大量处理器和数据库,其软件接口任何人都可以使用。这一章介绍了软件混搭的思想:在这个过程中,复杂的应用程序可以通过集成或“混搭”组块既有软件来构建。 “下一代计算机”是一个相对较短的章节。它着眼于研究人员正在进行的一些“蓝天工程”,试图克服硅的局限性。它将专注于量子计算和生物计算。量子计算机是一种利用量子效应(如量子纠缠)对数据进行操作的计算机。虽然现在还为时尚早,但理论研究和一些早期实验已经表明,量子计算机有可能大幅提高处理速度。 这种计算机的影响可能是毁灭性的。举例来说,许多商业计算都依靠密码科技,而这些技术都有赖于某些经典数字处理算法的巨大计算复杂度。量子计算机也许能够使这些算法变得可解,从而使互联网易受到攻击。 这一章还将描述DNA计算机背后的原理。这是当前计算机技术和量子计算机之间的一个中转站。DNA计算机利用生物链的遗传特性来提供非常大的并行处理工具。DNA计算机有效地实现了大量的硬件处理器,这些硬件处理器通过相互协作来解决困难的计算问题。 我希望在第四章和第七章中向你们传达的一个主要观点是,把计算机仅仅看作放在你桌子上的盒子,或者是嵌入诸如微波之类的设备中的一块硅,这只是一个片面的观点。互联网——或者更确切地说,宽带接入互联网——创造了一台巨大的计算机,可以无限制地使用计算机的能力和存储空间,甚至我们都认为永远不会从个人电脑迁移出去的各种应用也在这样做。 这方面的一个例子就是办公功能的迁移,如文字处理和电子表格处理——这是许多家用电脑的主要功能。谷歌公司已经推出了一套名为谷歌应用的办公工具。这些工具与微软办公软件中的工具类似,包括文字处理程序、电子表格处理程序以及类似于幻灯片的演示包等。 这是一部短小但内容充实的计算机科普读物,它成功地避开了复杂的技术语言,而是采用与日常生活相结合的叙述方式,清晰地道出了有关计算机☆为深奥的知识,对于非专业读者来说,可以无障碍地畅游计算机的世界,有效激发探索信息科技和人工智能的兴趣与热情。