前 言
我们能体会到的最美好的事情莫过于神秘,它是所有真实的艺术和科学的源泉。
—— 阿尔伯特·爱因斯坦,《我的信仰》,1930年
I. 缘何写这本书
计算机科学领域分支众多,科目繁杂,编程、算法、网络、操作系统、体系结构、编译原理 ……初接触往往如盲人摸象,无法看到全貌。能否从中抽丝剥茧、理解各科目在计算机世界中的位置和彼此内在的关联,对我们构建统一的知识体系至关重要。
此外,计算机科学并非孤立的自然学科,它与生物学、数学、信息学、经典物理学、量子力学、心理学之间有着密切关联。知识具有内在的统一性,学科只是由于关注点不同而人为分工的结果。“以铜为镜,可以正衣冠;以史为镜,可以知兴替;以人为镜,可以明得失。”本书在帮助读者构建计算机世界统一知识体系的基础上,以计算机为镜,折射回现实世界,将计算机科学与其他学科分支连为一体,向读者展示更广泛的知识大融通。
撰写此书,主要出于以下几点考虑:
当前计算机专业门类繁多,虽每门课都有经典教材,但科目之间过于独立。学生好像学会了,又好像什么都没学会,依然无法在书本知识和计算机实体之间建立关联。本书不拘泥于单一课程,而是从计算机的内在逻辑出发,将各方面的知识融会贯通。书中不设置习题,较少出现数学公式和不必要的技术细节,避免上述种种对读者思维主线的干扰。
计算机技术的发展日新月异,有些技术自出现便沿用至今,有些则飞速演进。人工智能、量子计算机、脑机接口、虚拟增强现实、自动驾驶等新技术层出不穷,正在深刻影响我们的生活,并重塑全球生产力和生产关系格局。通过本书的内容,读者可以对当下中美计算机产业发展现状以及未来科技发展趋势有所了解。
人类是迄今为止地球上最具智慧的生命,从人类诞生之初就开始不断地探索世界的奥秘。就个人而言,我们过往学习的知识都是有意义的,那些都是人类在探索世界的过程中留下的精华。计算机好比一个熔炉,我们可以把过往学习的很多知识都放进来。通过本书的介绍,大家将了解 DNA、潜意识、灵魂、说谎者悖论、柏拉图的《理想国》、达尔文的《物种起源》、爱因斯坦的质能方程、薛定谔的猫等与计算机科学的关系。
随着本书介绍的深入,越来越多的科学问题会被谈及,有些前沿问题仍然在科学界没有定论,只能基于观测到的现象进行经验性推测,如量子计算机理论涉及的哥本哈根诠释(Copenhagen interpretation)。通过学习本书,可深入理解计算机的基本原理,希望本书能激发大家对科学研究的兴趣和好奇心。
II. 书名的由来
本书定名为《计算机科学之美》。多年来,科学家们一直在追求某种能够解释一切的“终极理论”。诺贝尔物理学奖得主温伯格在他的著作《终极理论之梦》中曾提到:“这个理论之所以美丽,是因为它的简洁,可以用最少的定律来表达可能存在的无限复杂性”。任何一门学科探究到深处,总能看到其他学科的影子,各门学科越深处越同源,这大概就是古人所讲的“天地与我并生,万物与我为一”吧。
II-A. 关于内在统一性
计算机和人类由同一双看不见的手创造,通过研究计算机的基本原理和发展脉络,我们可以看到人类自身的生命逻辑和内在动因,窥见造物主那双手的轮廓。
计算机的生物属性。地球上一共存在过874万种生命种类,它们有一个共同特点,都是以碳元素为基本元素组成的有机物。所以,科学家将地球生命称为碳基生命,也称有机生物。以碳为基础构建生命,这得益于该元素的特殊性:它可以与自身或其他元素形成多种类型和数量的化学键,从而形成各种形式和长度的碳链或碳环。这使得有机化合物具有极大的结构多样性和功能多样性。
有机生物可被视作一种能自我繁殖的信息处理系统,生物物种从外界获取信息,基于某种算法对输入的信息进行计算,再输出信息,对外界做出反应。生物以“生存”为目标。以人类为例,为达成这一目标会拆解为趋利避害、摄取食物、学习生存技能、竞争生存空间、繁衍等子目标。人类在环境中的行为均基于上述目标实施。根据达尔文进化理论,以生存为目标的行为程序在自然选择中更易存活,因此这个“目标”本身就是环境筛选的“结果”。
计算机具备很多生物特征,可以对外界信息作出基于某些算法规则的响应。我们不能简单地将计算机视作锤子、木棒等工具,计算机是一个完备的系统,这个新物种由人类创造,诞生至今不足一个世纪,但进化速度远超人类。计算机同样有大脑、心脏、五官、经脉,拥有记忆,也具备响应外界信息的能力。计算机的各个部件由基本的“细胞”单元——晶体管组成,构成晶体管的基本化学元素是硅。相对碳基有机生物,本书将计算机这一硅基生命称为无机生物。
脑回路:人类的脑回路由神经系统构成,信息输入进大脑,经由神经系统输出对该输入的反应。计算机的脑回路由集成电路构成,同样具备计算效果。当外部信号流入脑回路,由逻辑门组成的电路能改变信号状态,创造新的信息。脑回路的最大作用是可以改变电信号的状态,而非信号状态原封不动地搬移~——~改变状态的过程就是计算的过程。
记忆:记忆的出现,是生物的一次进阶。对于初等生物,戳一下动一下,脑回路对当下的输入信号作出响应,难以结合过往经验进行更复杂的决策。而记忆可以打破时间的限制,将过去的信息存储下来。在脑回路处理当下信号时,记忆信息被同步传入脑回路,这使得脑回路在执行决策时具有更多的参考素材,因而决策会更聪明。计算机中有存储器,可以将信息以二进制形式固化在晶体管中,“0/1”的组合可以表示各种信息,如同世间万物都能化为阴阳两极。脑回路和记忆共同构成大脑的核心模块。
五官和四肢:人类靠五官和四肢与外界打交道,眼睛、鼻子、耳朵负责输入信息,嘴巴、手脚则按照大脑输出的信号对外界做出反馈。计算机有更加多样的外接设备可用于信息交互,包括摄像头、触摸屏、键盘、麦克风、机械臂等,它们都受计算机大脑的控制。
经脉:人体的五官四肢与大脑经脉相连,可以将感知到的信息以电信号形式传入脑回路,并将流经脑回路以后的新信号传递出来。计算机通过金属导线将各个外接设备与大脑(CPU+内存)连接起来,通过微电信号进行信息交互。
灵魂:活人和尸体的区别在哪里,与《生化危机》中被感染的僵尸又有哪些不同?这是一个关于灵魂和意识的问题。 同样的问题也出现在无机生物:计算机这块金属硬件是怎样“活过来”并对人做出反应的?无论有机生物还是无机生物,在物理躯壳之外一定还有某些东西,使得它能够活过来。 通过本书后续的讲解,我们将会了解,计算机的灵魂来自晶体管中的电子,并基于能量进行电子流动,在电流循环的过程中对外界作出各种反应。灵魂是一股循环运行的有序能量,计算机接通电源、人类摄取食物均是为了从中转换能量,维持这种循环。循环不停,生命不止。
有机生物和无机生物的关系。有机生物在自然选择中将有利于生存的目标传承了下来,在数亿年的进化过程中,将为达成这一目标而执行的行为逐渐复杂化。这是智慧生命形成的第一个阶段(图 1),自然选择推动物种进化。在漫长且激烈的竞争中,人类胜出,成为地球上的霸主。当前,人类的主要威胁来自自身,国与国之间、不同宗教或种族之间的竞争,甚至战争,成为推动人类进化的最大动力。这一阶段的进化不再是身体形态的变化,而是通过改良工具提高生产力。计算机便是这一背景下的产物。
图1 生物进化路径
计算机可以代替人类做很多事,它超脱于自然环境之外,是人为创造的物种,并没有经过大自然的筛选。不同于有机生物,计算机的行为模式由人类设定,程序员通过描述既定的执行步骤控制计算机。我们将现阶段的计算机比作生物是有些牵强的,因为它的所有执行步骤都是人类设定的。所谓“编程”,即编写程序,就是程序员在告诉计算机一步一步怎样做。计算机无法脱离人的意志而自行设定目标。
但是,人类追求的是更加省心的“打工者”,只需要告诉计算机你的目标,它就会为达成这一目标而自行地进行目标分解,最终分解为达成该目标所需的执行步骤。如此一来,就不再需要告诉计算机一步步怎么做。人类传入计算机的信息从“执行步骤”(程序)变为“目标”,将是无机生物意识觉醒的分水岭。理论上讲,进行目标分解是可以实现的,而计算机在目标分解的过程中,难以避免地先拆解为子目标。也就是说,随着算法的进化,计算机最终会自行设定目标。我们无法确保计算机的目标不会脱离人类控制。计算机的进化路径跳出有机生物的进化周期,直奔人类这一高级物种而来,并将成为人类未来世界的主要竞争者。
在元素周期表中,硅(14号元素)位于碳(6号元素)的正下方。早在1891年,德国化学家Julius Scheineer就预言过硅基生命的可能性:“对于硅基生命来说,高温和低温的活性将会更好,基于硅产生的分子能够在高温和低温下稳定生活所需要的温度大概是-100℃”。计算机的发展将使智慧生命进化到第三个阶段,人类在现实世界的大量工作将被无机生物替代,且后者做得更好。遗憾的是,从人类文明进入无机生命文明似乎是不可避免的。在人类相互竞争的阶段,必然会为了在竞争中胜出而一再提高计算机的智能水平,直至其超过人类。人们总是优先解决主要矛盾,当意识到更有威胁性的物种出现时,已经不可逆地落入人机共存的新阶段。
计算机中的世界观。随着越来越多的工作被计算机取代,人类从事生产的时间会逐渐缩短。但是我们每天依然要度过24小时,如何打发时间成了一个不能回避的问题。针对这个问题,业界有一个专门的叫法:“Kill Time”(杀死时间)。杀死时间的需求将推动人类与计算机交互方式快速发展。计算机发展进程中,几次重大变革都与人机交互有关。Facebook提出的“元宇宙”概念、苹果公司设计的Vision Pro头显,都是在这一发展趋势上的探索。最终,计算机会以一种分不清现实和虚拟的沉浸式体验与人类进行信息交互。人类在虚拟世界中娱乐、社交,实现高层次需求并消磨掉时间。
哲学家希拉里·普特南曾提出过一个思想实验,叫作“缸中之脑”:如果科技发展到一定程度,可以用超级计算机模拟人的所有感官,包括视觉、听觉、味觉、触觉等,那么我们就可以把大脑放在一个培养皿里,然后用超级计算机模拟这些感官并输送给大脑。这个大脑永远无法知道它其实在一个缸里。这个思想实验就是想说明,我们感知这个世界依赖感官信号的输入,我们的大脑处理这些信号并合成了这个世界的样子,没有任何物证能够证明这个世界是真实存在的。人类与计算机交互的终极方式,必然不是鼠标、触屏这样的初级手段,而是类似“缸中之脑”的无比真实的虚拟世界。如果一个人从刚出生就接入了计算机,他会笃定计算机中的世界就是真实存在的。身处其中的人无法意识到他是身处在0/1构造的离散世界。
而在现实世界,万事万物又何尝不是离散的呢?我们都是由原子组成的,原子是一个一个的点,所以实质上我们是由一个点一个点组成的,而点与点之间有大量空隙。所以,严格来讲,我们都是半透明的。之所以看上去不透明,是因为原子体积太小且密度太高,眼睛也是由原子构成的集合体,人眼的分辨率无法超越它的基本组成单元。所以,即使现实世界看上去是连续的,但实际上也是离散的。不只人类,宇宙万物都是由原子等微观粒子组成的,所以整个宇宙实际上都是离散的。这个断片化特别符合计算机系统的特征。如此看来,虚拟与现实这两个平行世界间有很多相似的地方。
II-B. 发现科学的美
科学的美来自“真”,是真相之美。我们都曾在多年前被带进一则童话故事,我们兴奋地看着周围的一切,它比安徒生描绘的所有童话都要美妙。可渐渐地,我们中的大多数把周围的一切视为理所当然,不再好奇。只有少部分人没有长大,他们敏锐地观察身边的现象,并尝试从现象中提取本质。当本质提取了,现象就容易理解了,他们将本质拼接成一个去掉各种杂质的纯化了的世界,这不是“实”的世界,但却是“真”的世界。
保持好奇心的人是最具创新精神和创造才能的人,正是通过创造性的探索,他们发现了客观世界的规律、本质,并把它用优美的符号体系传承了下来。我们称他们为科学家。在发现真相、描述真理的过程中,科学家作为人类的优秀代表激发了自己的本质力量,展示了地球上最高等生物的智慧。
对科学真相的欣赏,实质也是对人类智慧的欣赏。在这种向外观照和向内探索的过程中,我们能够感受到类似艺术创造时的物我两忘的心流体验。
关于本书各章节
本书共9章。其中,第1章为综述。第2章介绍了计算机的起源、硅谷的形成,以及中美计算机产业发展的现状和趋势。前两章技术难度较低,非计算机专业的读者易于理解。第3~5章专业性较强,非本专业读者不必执着于其中的技术细节。第6~8章会在前文的基础上,将计算机科学逐步延伸至对其他学科的探讨,发散思维,可读性较强。第9章将书中涉及的主要内容描绘成知识图谱,是全书的总结。
第1章:概述。本章将对计算机的基本原理和发展历程、人与计算机打交道的方式(编程语言)、计算机的组成结构(冯·诺依曼架构)和评价指标,以及计算机科学中蕴含的朴素思想进行综述。这一章整理了关于计算机科学的十个常见疑问和九点思考。读者不妨先看一下这些问题,带着问题开始后续章节的阅读。
第2章:百年激荡。这一章从硅谷的起源谈起,系统介绍计算机的发展史及背后故事。在此基础上,解读中国计算机产业发展脉络和底层逻辑,分析中美科技竞争的现状。通过本章的学习,读者将理解为什么中国计算机产业的发展起步于互联网而非芯片,以及中美科技竞争的必然性。
第3章(驯兽师的语言:指令)和第4章(计算机的“脑回路”)。人与人之间可以沟通,因为双方使用相同的语言。如果对方讲的是西班牙语或法语,我们虽能听到声音,却无法理解其含义。那是因为我们的脑回路结构无法对该语言的信号进行解析,也就是“能听到”,但“听不懂”。人与计算机沟通也是同样的道理,我们将自己的想法以某种“语言”的形式从大脑传递出来,通过键盘等外设最终传入计算机的脑回路。计算机脑回路的硬件结构同样需要进行专门设计,以解析我们的语言并将其转化成有效信息。第3章和第4章分别从沟通语言和脑回路结构两方面展开,解析人类与计算机实现语言沟通的方法,并在此基础上讲解人工智能芯片等相关前沿研究。通过这两章的学习,读者对编程、CPU、芯片、编译器这些计算机专业基础知识将会有全面的了解。
第5章:计算机的记忆。数据是固化的信息,信息是流动过程中被解析的数据,而记忆是对数据的静态存储。现代计算机采用SRAM、DRAM、Flash等不同物理介质作为存储器。本章将对计算机存储器的类别、工作原理、基于时间和空间局部性的分层结构进行介绍。通过分层存储架构的设计,计算机具备类似人脑的短期快速记忆和长期记忆。此外,计算机有一项人类没有的能力——持久化存储。人类必须通过摄取食物维持生命,一旦死亡,就无法重生。但计算机掉电关机后,仍可以再次重启,这一点很值得研究。
第6章:人机交互。计算机的大脑(CPU+内存)通过遍布全身的线路与外设相连,实现不同方式的信息交互。本章将对基于总线的线路结构,以及线路所连接的各类I/O设备进行介绍。除了与人交流,无机生物之间也能交流,那便是网络。本章将以通俗易懂的方式解释信息在计算机网络中的传递过程,以及网络的设计原理和分层协议架构。此外,还将讲解星链计划、脑机接口、虚拟增强现实等新的信息交互技术。
第7章:计算机的“灵魂”。相比硬件,计算机软件显得更加神秘,它使硬件亮起来、动起来。本章着重介绍软件的实现机制,阐述应用程序和操作系统在计算机硬件上的运行机制。随后,讨论人类意识与计算机灵魂的共通之处,以及物质、能量、信息、时间等宇宙要素间的关系。人类的思想比肉体更难禁锢,同样,计算机的软件比硬件更容易失控,失控意味着安全风险。本章结尾将探讨人类是否会逐渐丧失对计算机的控制权。
第8章:量子计算机——凝视宇宙的终极法则。随着集成电路工艺的改良,计算机已接近现代物理的极限——元器件接近原子尺寸。牛顿经典力学、符合麦克斯韦方程的电磁现象等只适用于宏观世界。一旦物体接近原子等微观粒子大小,经典物理学特征将不再适用。对计算机而言,当元器件接近原子尺寸时,电子流难以得到可靠的控制,电子会跳到晶体管外,导致晶体管无效,这种现象称为量子隧穿效应。因此,人类需要基于微观世界的规律,即量子力学,对计算机进行重新设计。本章重点介绍量子计算机的基础理论、设计原理和可行性。
第9章:总结。本章以知识图谱的形式串联起全书的关键内容,并从计算机科学中提炼出五点重要的思想,这些思想不局限于计算机,而是能启发我们更好地理解身边的事物。最后是本书涉及的参考文献和附录。
致谢
首先感谢我的家人:我的父母、妻子和儿子,因为有他们的支持和陪伴,我才可以心无旁骛地完成这本书。我时常工作到深夜来撰写这本书,感谢家人的体谅。除了家人,还有很多师长的帮助和鼓励,大家对我的个人成长、知识积累帮助巨大,这些都是撰写本书的前提。此外,还有一路走来遇到的所有朋友和同事,需要感谢的人太多,这里不再一一列出,但点点滴滴,记在心头,在此一并感谢。另外,感谢清华大学出版社袁勤勇主任在本书出版过程中提供的帮助。
本书广泛参考了国内外各门学科的经典教材和学术论文,这些文献对本书的完成具有指导意义。另外,ElegantBook开源项目对本书的写作提供了支持,特此感谢。