前言
这是一本浅谈计算机原理的科普书。程序是如何运行的?图像是如何显示的?网络是如何通信的?本书回答了许多关于计算机原理的疑问,可以最大限度地满足读者对“神秘的计算机”的好奇心。
计算机是一件功能强大的工具,它的“世界”是一个精彩纷呈的“世界”。本书就如一位尽职的“导游”,带领读者游览这个充满神奇的“世界”,观赏其中的“风景和文化”。
计算机的神秘之处体现在,其运行的原理“封存”在黑盒一般的芯片和“看得见、摸不着”的软件里。当人们按下键盘上的按键,看着屏幕上显示出来的信息时,常常会思考,在计算机运行的过程中,哪些软件、硬件会以什么样的方式通力协作,同时感慨自己对眼前这台机器的一无所知。
本书不像专业图书那样深奥难懂,而是用浅显的语言和图解,把计算机的基本原理准确地表达出来,让读者了解这个“披着神秘面纱”的机器。
如果把学习计算机专业知识比作百米冲刺或马拉松,那么学习本书就相当于散步或快走。如果读者读过《01改变世界:计算机发展史趣谈》,则能更轻松地适应本书的内容风格,并对书中的一些知识点感到熟悉。下面先呈上编者精心准备的3份预备知识,帮助读者更高效地理解本书。
1.硬件与软件
计算机中所有看得见、摸得着的都是硬件,如主机箱、显示器、鼠标、键盘等。若把计算机里的某个部件拆开,里面是具有高科技含量的电路板和芯片,以及数不胜数的电阻、电容和晶体管等电子元器件。了解计算机硬件后,操作计算机就可以像操纵提线木偶一样,只要牵动一些主要关节,就能演绎出生动的木偶戏。
1945年,冯·诺依曼在《EDVAC报告书的第一份草案》中,将计算机的主体构成归纳为运算器、控制器、内部存储器(简称内存)、输入模块和输出模块(通常并称I/O[1]模块)五大部分,如图1所示。运算器和控制器组成了如今的中央处理器(CPU),它和内存一起扮演着计算机“大脑”的角色,前者负责思考,后者负责记忆。I/O模块则是协助“大脑”与外界沟通的“万能翻译官”,掌握着各种外部设备(包括输入设备和输出设备,简称外设)的“语言”,并能适应它们各不相同的“语速”。
[1] Input/Output的缩写。
图1 计算机的主体构成
这五大部分在狭义上构成了计算机的全部,但人们还是习惯把外设也视为计算机的一部分。毕竟少了外设,计算机纵有一身“本领”也无从施展。
和实实在在的硬件相比,软件则抽象得多。软件的本质是信息。早在原始社会时期,人类的祖先就开始在石头和兽骨上刻出各种符号,给绳子打上不同形状的绳结,并约定好它们的含义。这些就是最早的“软件”,古已有之,只不过现代计算机中的软件是靠电路的通断(电平的高低)来表示的。
如果说硬件是计算机的躯体,那么软件就是计算机的灵魂。如今计算机的强大,除了得益于摩尔定律下硬件的飞速发展,更离不开软件的不断更新。起初,软件直接控制着硬件的每个工作步骤,它们存在于开关、旋钮和穿孔介质上;后来,人们把一些共性的步骤提取出来,形成了一种名为操作系统的复杂软件,充当起计算机使用者的硬件“管家”。这位“管家”掌握着多种技能。
2.二进制单位
通过《01改变世界:计算机发展史趣谈》,读者了解了二进制数的基本形式和换算方法,并接触到其充满科技感的名称——比特(bit),它是二进制的最小单位。
人们平时常会听到硬盘容量1TB、内存大小8GB、下载速度2MB[2]、文档大小300KB之类的说法,这个B代表的是字节(byte),1字节由8比特构成。比特太小了,计算机往往以字节为单位处理数据。专业上以1024倍为跨度,设置千字节、兆字节等二进制单位,如表1所示。
[2] 准确地说是2MB/s。
表1 二进制单位
注:实际使用中,一些单位中的字母i往往被省略。
3.十六进制
二进制的表示形式对人类不太友好,人们既难以直接理解其数值,又难以在脑海中快速演绎它和十进制之间的转换。研究表明,人们习惯用4比特为一组的十六进制代替二进制数,因为其形式上更为简约。如表2所示,十六进制的数使用0~9、A~F十六个符号表示,其中,A~F依次表示10~15,前缀“0x”用于标明这是个十六进制数。
表2 十六进制数示例
初次接触二进制和十六进制的读者也许会像编者刚入门计算机时一样有些不习惯,与其视之为阅读障碍,不如掏出纸和笔,自己尝试换算几次(二进制与十六进制之间的转换),把它变成一种阅读乐趣吧。
注:书中有些术语的英文名称引自维基百科。
编者