出版社:电子工业出版社
出版日期:2010
ISBN:9787121106101
作者:[美] Charles Petzold
页数:392页
作者简介
本书讲述的是计算机工作原理。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的。
书籍目录
第1章 至亲密友
第2章 编码与组合
第3章 布莱叶盲文与二进制码
第4章 手电筒的剖析
第5章 绕过拐角的通信
第6章 电报机与继电器
第7章 我们的十个数字
第8章 十的替代品
第9章 二进制数
第10章 逻辑与开关
第11章 门
第12章 二进制加法器
第13章 如何实现减法
第14章 反馈与触发器
第15章 字节与十六进制
第16章 存储器组织
第17章 自动操作
第18章 从算盘到芯片
第19章 两种典型的微处理器
第20章 ASCII码和字符转换
第21章 总线
第22章 操作系统
第23章 定点数和浮点数
第24章 高级语言与低级语言
第25章 图形化革命
前言
在真正开始撰写这本书之前,纷繁的思绪在我的脑海中已经萦绕了近十年之久。但从着手写作,一直到出版,我不断反复地问着自己一个问题:这本书是讲什么的? 关于这个问题我总是找不到合适的答案。我想说:“这本书将带领大家通过一段信息技术革命的旅程重新感触现代计算机技术。”语毕,我内心纠结,这个回答真的将这本书的内容完整诠释出来了吗? 最后我不得不承认:“这本书其实是讲述计算机如何工作的。” 我之所以有些底气不足,那是因为我已经猜到了某些读者的反应:“嗨,这种书我早就读过了。”但我会立刻告诉他:“不,这种书你并没有读过。”对于这点,我坚信不疑。因为这本书并不是讲“计算机——如何——工作”。书中并没有用一张又一张描述磁盘的插图,用各种箭头解释数据是如何被输送到计算机的,书里面也没有装载着一节又一节“0,1数据”的“火车”图片。明喻与暗喻是文学描述中精妙的辅助手段,但它们常常掩盖了科学技术的真正光芒。 我还听过另一个说法:“人们不愿意了解计算机如何工作。”对于这句话我毫无保留地赞同,因为就我个人来说,也是在不经意之间才体会到理解事物如何运作的这一过程是多么有趣。但是这并不意味着我对世上一切事物的运作机制都感兴趣,都有所了解,因此我绝对不会在任何场合向大家解释我房间里的冰箱的工作原理。 然而与此同时,经常有人向我问起一些涉及计算机内部运行机理的问题。一个常见的例子就是:“存储器(storage)与内存(memory)有何区别?” 对于计算机用户而言,这个问题要是搞不清楚,的确“寸步难行”,可以看到,市场上考察个人计算机的存储性能,最主要的就是这两个概念。即便对于最初级的计算机用户来说,他们也一定需要了解到底多少“兆字节”或多少“吉字节”的存储器才能应对运行在其上的程序。如果进一步去思考,这些初级用户或许更加想了解计算机中的“文件”是什么概念,甚至连带这些文件如何从存储器加载进内存,又如何从内存存储到存储器,他们也非常期望学习这些知识。 像这类“存储器-内存”问题的解答大都使用类比法:“内存就好比你的办公桌,而存储器就好比你的文件柜。”就问题本身而言,它的确给出了满意的回答。但我对此答案并不满意,主要原因在于这个答案将计算机的体系结构与办公室的结构等同起来,但是内存与存储器的区别其实是在逻辑层面上的,它体现着计算机体系结构的实际需求与存储器客观性能之间的矛盾,简单地说就是我们找不到一种同时具备这两种存储器所有优点的存储媒介,这些优点就包括存储速度块、存储容量大、非易失性等等。今天的计算机都采用“冯?诺依曼体系结构”——五十年来它一直是计算机体系结构的主导,而内存与存储器的区分也正是由于这种体系结构的不足所导致的。 还有一些计算机用户问我这样一个问题:“为什么Macintosh环境下的程序不能在Windows下运行?”我想立刻回答这个问题,但在我刚刚张开嘴的时候就立刻意识到,这个问题涉及太多的技术细节,要想彻底搞清楚,那提问的这位朋友也一定非准备和我来一次“茶话会”不可。 我希望这本书能够成为大家理解这些问题的“助手”,这种理解我希望不是抽象层面上的,而是具有一定深度,这种深度甚至不逊于“电气工程师”和“程序员”的理解。我同时也非常希望大家能够理解:计算机是二十世纪技术领域的“登峰造极之作”,它是一种值得欣赏、具有“美”学文化底蕴的人类伟大成果,这种“美”不需要明喻与暗喻的额外修饰。 计算机拥有与生俱来的层次化体系结构,这种结构的底层是晶体管,其顶层则是计算机显示器上所呈现的信息。自底向上分析该结构的每一层——这也是本书的编写结构——其实这一切并没有人们想象中那么难。当然,现代计算机的内部结构不断推陈出新,但其本质上仍然是一些常见且简捷的操作集合。 尽管今天的计算机比起25年前,以及50年前的都复杂许多,但它们在本质上是完全一致的。学习技术发展史的重要意义正在于此:追溯的历史越久远,技术的脉络就变得越清晰。因此,我们需要做的就是确定某些关键的历史阶段,在这些阶段,技术最天然、最本质的一面将清晰可见。 在这本书中,我回溯了自己所能找得到资料的计算机发展史。令我自己也感到惊讶的是,有时竟然一直追溯到19世纪,甚至使用了早期的电报设备来演示计算机是如何构建的。至少从理论角度来看,本书的前17章中提到过的所有设备,都可以利用已经存在了一个世纪的简单电子器件来构造。 这些古董级技术的使用令本书蒙上了一层怀旧的面纱。我要强调的是Code是这样一本书,它永远不会被命名为诸如The Faste rNew Faster Thing或Business @ the Speed of a Digital Nervous System。在这本书中,“bit”定义在第61页,“byte”的定义则出现于第164页。晶体管直到第127页才被介绍,而且只是顺便提及而已。 在对计算机工作原理介绍方面,本书将会一直深入到本质(例如,只有少数书会去介绍计算机处理器的实际工作机制),但整本书的节奏是相对缓和的。在保证内容深度的基础上,我尽量使读者在学习的旅程中保持轻松愉悦的心情。 我最后还是要说,书里面没有那种装载着一节又一节“0,1数据”的“火车”图片。
内容概要
Charles Petzold从1984年开始编写个人计算机程序,从1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于Windows程序设计的杂志论文。从1986年到1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。
1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他对 Microsoft Windows的成功做出的贡献。
章节摘录
第1章 至亲密友 你今年10岁,你最好的朋友就住在街对过。事实上,你们各自卧室的窗户正好彼此相对。每当夜幕降临,父母就如同往常一样,早早地催促你该上床睡觉了,但是你和你的朋友还想交流想法,交换见闻,分享各自。的秘密,或者扯扯闲话,开开玩笑,聊聊梦想。这本无可厚非。无论怎样,渴望交流本来就是人类最主要的天性之一。 当卧室里的灯依然亮着的时候,你可以和朋友互相挥手,使用各种手势或简单的肢体语言,来表达一两个想法。但是,要表达复杂的想法可能就比较困难了。而且一旦父母亲宣布“关灯”,这种交流似乎也不可能继续下去。 如何交流呢?或许可以打电话?10岁小孩的房间里会有电话吗?即使有,无论电话在哪里,你们的谈话都有可能被偷听。如果你家里的电脑连接了电话线,它可能帮上忙,而且不会发出声响,但是——等等,电脑也不会在你的房间里。 你和朋友所采用的方法就是使用手电筒。众所周知,手电筒为了让孩子们能够躲在被子下看书而发明的;在天黑后用手电筒来交流信息似乎也是理想的选择。它们当然是很安静的,并且光线是高度定向的,同时光线也不会渗漏出卧室而引起家人的疑心。 手电筒能用来交谈吗?这当然值得一试。我们在一年级的时候学习怎样在纸上写字母和单词,因此,把同样的方法运用到手电筒上似乎也是有道理的。只需要站在窗户边,用光来画出字母。对于字母“0”,打开手电筒,在空气中划一个圈,然后关掉手电筒。对于字母“I”,竖着划一下。但是,你很快就会发现,这个方法也不太行得通。当你看着朋友的手电筒在空中圈圈点点时,会发现很难在头脑中组合出那么多复杂的笔画。这些旋转和倾斜的光线都太不准确了。 ……
图书封面