上个世纪90年代,安装有486/奔腾处理器,带有漂亮的图形界面的Windows 3.2/95的PC机大量进入中国。我有幸在那个时候开始接触到了计算机。
一本《PC天书2000》(大众软件2000年增刊)陪着我懵懵懂懂踏进了计算机的世界,“装机时一门艺术”这句口号现在还记得,“当前的电脑主要就是由CPU、主板、内存、显卡硬盘这五大配件组成”概括了“DIY的精华”。早期的大软(2000年)涉足了硬件,《电脑高手》昙花一现,后来的《微型计算机》杂志是完全面向硬件的,每年出的增刊有一定的参考价值。
如果要全面了解现代计算机PC的实际构造(而不是体系结构书介绍的构造原理),可以阅读国外的系统的介绍PC组成的书,主要有两本:
Peter Norton的《Inside the PC》,最早一版叫《Inside the IBM PC》,最后一版(算是9版)叫《New Inside the PC》
1994年引进了第5版,译本称为《386/486技术精粹》
1997年引进了第6版,译本称为《PC/Pentium实用技术指南》
2000引进了第8版,译本称为《PC技术内幕》
Scott Mueller的《Upgrading and Repairing PCs》,英文原版最新是第21版2013年出版。
2002年引进了第13版,翻译后叫做《PC硬件工程师手册》
学PC技术哪家强,看过这两本书中的一本,可以说就细致的把握了现代计算机(既PC)的每一个组成部件和这些部件的工业标准,以及这些部件是怎么组成一个完整的计算机硬件系统的。像一些很具体的问题,如“显卡决定计算机的性能”,“计算机如何发出声音”都能得到很好地解释。看过了现代计算机的实物,再了解了这些知识,就建立起一个基础,在这个基础上才能将计算机专业课中的理论和现实中能够买到的计算机实物建立起基本的概念联系了。
计算机体系结构的知识是抽象的理解计算机(主要是中央处理器)运行的原理,用来解释程序设计语言和软件是如何运行的。《计算机体系结构:量化研究方法》第5版、《深入理解计算机系统》(原书第2版)(程序员的视角)、《计算机组成与设计:硬件/软件接口》(原书第4版)都很不错,计算机体系结构的书偏重于中央处理器和软件的视角,一般忽略现代计算机的具体部件和发展历史过程的知识。体系结构的书是在硬件系统组成知识基础上的提高,是软件硬件结合的纽带。DIY的精神需要和计算机科学的理论相结合才能迸发无穷的力量。
当代计算机的核心是CPU。现在CPU产业讲究三元合一,三元合一就是三种力量结合为一体。这三种力量就是CPU,编译器和程序库(含操作系统,操作系统提供了基础的进程管理、内存管理、设备管理和文件管理功能,对于使用者来说也可以看做是程序库)。为了把生产出来的CPU销售出去,单纯提供CPU还不够,必须提供配套的编译器,提供实现了各种基础功能的程序库,比如操作系统、比如数学库。即使CPU厂商自己不能提供,也要处于同一产业联盟的盟友厂商协助提供。这样的CPU配套组合对于最终购买它的使用者来说才是可用的。比如注明的wintel联盟,Intel公司提供x86_64指令集的CPU和ICC编译器套件,Microsoft公司提供操作系统Windows和内含cl编译器的Visual
Studio集成开发环境。比如龙芯,依靠开源力量,但是需要积累自己的力量去掌握编译软件和程序库的主动权。
IA32及其64位扩展x86_64的CPU,Intel公司发布的《intel 80386 programmer‘s reference manual》就是圣经,现在仍在新处理器微架构的变更继续发布新的版本,叫做《Intel 64 and IA-32 Architectures Software Developer Manuals》。但是全书原有的基础架构、指令集参考和系统编程指南三卷的组织方式没有变。是学习Intel CPU汇编语言的最终极参考手册。