《计算机是怎样跑起来的》书评

季楚涵

(中国科学院大学, 北京 101499)

摘要: 本书是一本剖析计算机技术理论与应用知识的书籍, 作者强调, 读者要回归计算机基础知识, 通过理解计算机本质, 提升对计算机的兴趣并快速掌握新技术。全书分为12章, 第1章概述了计算机的三大原则, 讲解了计算机系统的诸多方面; 第2、3章用实验向读者说明了计算机的电路构成与运行机制; 第4章借助流程图表示程序的流程与算法: 第5章重点介绍小流程的算法; 第6章结合了计算机的特性, 用程序来表示数据结构; 第7章结合多种程序员的观点, 对面向对象编程进行介绍: 第8章鼓励了读者动手编写基础的数据库应用程序; 第9章的实验旨在帮助读者深入理解TCP/IP网络; 第10章在阐述数据加密重要性的基础上, 引入了公开密钥加密技术; 第11章详细探讨了XML的本质与内涵; 第12章介绍了用于构建计算机系统的SE方法。本书采用丰富的插图和文字, 将计算机的复杂概念以浅显易懂的形式展现给读者, 帮助他们更轻松地掌握计算机的工作机制和使用技巧。

关键词: 计算机技术, 计算机结构, 算法与编程, 书评

DOI: 10.48014/ccsr.20241206001

引用格式: 季楚涵. 《计算机是怎样跑起来的》书评[J]. 中国计算机科学评论, 2024, 2(4): 38-43.

文章类型: 书评

收稿日期: 2024-12-06

接收日期: 2024-12-16

出版日期: 2024-12-28

0 引言

《计算机是怎样跑起来的》[1]是矢泽久雄所著书籍,内容涉及计算机技术的理论和应用知识,由人民邮电出版社出版,旨在让读者了解计算机技术及其基础知识。随着计算机技术的日益成熟和应用范围的不断扩大,互联网将计算机技术与生活的各个领域紧密地结合在一起,使我们的生活和工作方式发生了前所未有的变化,而这个时代正站在一个充满无限可能的时代的起点上[2]。本书强调工程师应回归计算机的基础知识,内容涵盖计算机操作三原则、计算机体系结构、计算机算法和编程等。在技术飞速发展的时代,工程师可以通过本书了解计算机的本质,提高对计算机的兴趣,快速学习新技术。

计算机技术理论与应用知识涵盖丰富内容,二者相辅相成,共同推动计算机领域持续革新与拓展应用边界。计算机技术理论主要包含算法理论、数据结构理论,算法是计算机解决问题的步骤描述,数据结构关乎数据组织存储方式,可广泛用于复杂关联场景建模。当前计算机技术应用知识广泛应用于办公场景,办公软件套装可满足文档撰写、报告编辑需求,完成财务核算、销售数据分析等任务[3]。计算机技术在实际应用场景中促进了不同计算机基础知识的融合。例如,在开发一个大型电子商务网站时,需要综合运用数据库技术来存储商品信息和用户数据,网络技术实现服务器与客户端的连接,以及软件编程技术来构建用户界面和业务逻辑。这种应用场景下的知识融合进一步加深了对计算机基础知识的理解和运用,同时也推动了计算机技术向更加复杂和高效的方向发展。

1 内容解读

《计算机是怎样跑起来的》通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。通过理解计算机本质,提升兴趣并快速掌握新技术。内容涵盖计算机三大原则、结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP网络、数据加密、XML、系统开发及软件工程知识。

第一章为计算机的三大原则。从第一代计算机诞生至今,尽管技术日新月异,但计算机的基本构造始终围绕着这三大原则展开。第一大原则是计算机执行输入、运算、输出是硬件设计的基础。硬件部分由大量的集成电路组成,通过引脚实现与外部的信息交互,执行加法等运算,并将运算结果输出,构成了计算机硬件的核心功能。第二个重要原则是软件既是指令又是数据的集合,构成了计算机运作的核心。软件通过特定的编程语言编写,经过编译后生成可执行程序,指导计算机硬件完成各种复杂的任务。第三大原则是计算机处理的所有信息都是数字。无论是文本、图像或音频,均需转化为数字格式方能在计算机系统中进行存储与处理。这一过程构成了计算机内部信息处理的核心特征,使得计算机在数据处理方面展现出极高的效率与灵活性。

第二章为试着制造一台计算机吧。作者表明要想彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,试着组装一台微型计算机。作者深入分析了构建微型计算机所必需的关键组件,这些组件包括中央处理器(CPU)、主板、内存条、硬盘驱动器(HDD)或固态硬盘(SSD)、显卡、电源供应单元(PSU)及机箱等。其中,CPU的主要功能是执行程序指令,而主板则充当各个组件之间的连接平台,内存条的作用在于缓存数据以提升数据访问效率。为了使读者能够更直观地理解计算机的内部结构及其工作机制,作者设计了一项有趣的实验:用红铅笔描画出所介绍的电路。这一步骤实际上是在模拟计算机内部的布线过程,通过描画电路,读者可以更加清晰地看到各个元件之间的连接关系和信号传输路径。在描画电路的过程中,读者需要特别注意元件之间的连接方式和信号传输的方向,以确保电路的正确性和稳定性。同时,还需要了解每个元件的电气特性,以便正确地进行连接和配置。当所有电路都按照要求描红后,一个简易的微型计算机也就构建完成了。

第三章为体验一次手工汇编。作者引导读者体验计算机的运行机制,通过编写程序来了解计算机的工作流程。汇编语言是一种与机器语言紧密相关的编程语言,使用助记符来表示机器指令,使得编程过程更加直观和易于理解。作者详细讲解了汇编语言的基本语法和指令集,以及如何使用这些指令来编写简单的程序。读者也进行手工汇编(Hand Assemble),即将编写好的汇编语言程序逐条翻译成机器语言的过程。这个过程需要读者对CPU的指令集有深入的了解,并且能够准确地理解每条汇编指令对应的机器码。通过手工汇编,读者可以更加深入地理解计算机的执行流程,以及汇编语言与机器语言之间的转换关系。

第四章为程序像河水一样流动着。本章首先介绍程序的流程主要分为三种:顺序流程、选择流程和循环流程。在流程图中,作者巧妙地使用了“帽子”和“短裤”这两个形象化的符号来表示循环的开始和结束,这种表示方法既简洁又易于理解。为了培养读者的算法思考能力,作者鼓励读者通过画流程图来构思和设计算法。流程图能够清晰地展示算法的步骤和逻辑,有助于读者更好地理解和实现算法。基于程序块的概念,作者介绍了结构化程序设计的方法,强调将程序划分为若干个相对独立的模块,以提高程序的可读性和可维护性。作者还介绍了中断处理和事件驱动两种特殊的流程。中断处理是指在外部事件出现时,程序能够暂时停止正在进行的任务,以便处理该事件,待事件处理完成后,再恢复原有任务的执行。而事件驱动则是指程序依据外部事件或用户的操作来激活相应的功能或任务。这两种流程在实时系统及交互式应用中展现出广泛的应用价值。

第五章为与算法成为好朋友的七个要点。算法是程序员根据计算机的特性,精心设计的用于解决现实问题的处理步骤。本章着重介绍了表示小流程的算法,这些算法通常用于解决具体而细致的问题。作者强调,解决问题的步骤必须清晰且数量有限,这是确保算法有效性和可行性的基础。计算机解决问题的方式是高度机械化的,每一步操作都严格按照预设的算法进行。利用计算机的高速处理能力,可以显著提升算法的执行效率,通过优化算法设计,减少不必要的计算步骤和冗余操作。

第六章为与数据结构成为好朋友的七个要点。本章的主题是数据结构,根据计算机的特性,通过程序来模拟现实世界中的数据结构。作者介绍了数据结构的基础知识,包括数据的存储方式、访问效率以及数据之间的关系等。为了深入理解数据结构,作者鼓励读者不仅要记忆这些典型数据结构的定义和特性,还要动手实践,通过编程实现这些数据结构。作者强调,在了解典型的算法和数据结构后,关键在于灵活运用它们,需要读者不仅要掌握数据结构的基础知识,还要具备分析问题和解决问题的能力,能够根据具体需求选择合适的数据结构和算法,以实现高效、稳定的程序运行。

第七章为成为会使用面向对象编程的程序员吧。作者综合多位程序员的观点,深刻阐述了面向对象编程(OOP)的七种核心理念。这些观点不仅揭示了OOP的本质特征,还体现出其提升编程效率和代码可维护性的功能。面向对象编程通过封装、继承和多态等特性,使得代码更加模块化和可重用。封装机制有效保护了对象的内部状态与行为,降低了外部干扰的可能性;继承功能使得新创建的类可以获取已有类的属性和方法,从而促进了代码的重用与扩展;而多态机制则使得程序在运行时能够根据对象的类型动态选择相应的方法,从而提升了程序的灵活性与可扩展性。在实践中运用面向对象编程时,可以充分利用这些特性来构建高效、易于维护的代码。作者鼓励读者在适当的场合下实践面向对象编程,通过不断尝试和应用,逐步掌握OOP的精髓和技巧。

第八章为一用就会的数据库。数据库是数据的基地,为了编写数据库应用程序,一般会借助 DBMS 这一软件设计数据库,通过拆表和整理数据实现数据库规范化,用主键和外键在表间建立关系。索引这一数据结构被广泛应用于数据库中,通过创建额外的数据结构来加速数据的查找过程,从而显著提高数据库的性能。在对数据库进行创建、读取、更新和删除(CRUD)操作时,需要从应用程序向DBMS发送SQL语句。而在Windows应用程序中,通常会使用数据对象的软件组件(如ADO.NET)来简化这一过程,提高开发效率和代码的可读性。

第九章为通过七个简单的实验理解 TCP/IP 网络。作者精心设计了七个实验,旨在通过实践操作帮助读者深入理解TCP/IP网络的复杂原理。这些实验不仅涵盖了网络基础知识的各个方面,还通过直观的演示和互动,使读者能够轻松掌握TCP/IP网络的核心概念。作者介绍了如何查看MAC地址和计算机的IP地址,并探索路由器的路由过程,使读者深入了解数据包在网络中的传输路径和选择机制。作者阐述了DHCP服务器如何自动分配IP地址给网络中的设备,从而简化了网络配置过程,还深入剖析了路由器的数据传输原理,以及TCP在确保数据传输可靠性和顺序性方面的重要作用。通过这些实验,读者可以清晰地看到TCP/IP网络的层级模型,以及各层之间的协作方式。通过实践巩固理论知识,加深了读者对TCP/IP网络工作原理的理解,为读者后续的网络编程和系统设计打下了坚实的基础。

第十章为试着加密数据吧。作者在本章明确了什么是加密,加密作为一种保护数据安全的重要手段,通过将原始数据(明文)转换为难以理解的格式(密文),以防止未经授权的访问和泄露。作者介绍了加密的基本概念,即通过可靠地错开字符编码的方式进行加密,其中密钥的长度直接影响加密的安全性。作者还提出了克服对称密钥加密技术缺点的公开密钥加密技术。为了加深读者对加密技术的理解,作者还使用VBScript语言编写了实际的加密程序,通过实践操作展示了加密技术的具体应用。

第十一章为XML究竟是什么。作者介绍了XML作为一种标记语言的特点和优势,XML格式本身就是既简单又通用的,可扩展性强,这使得它成为众多领域的首选数据表示方式。XML的主要用途在于为在互联网上交换的信息赋予明确的意义,从而成为一种普遍认可的数据交换格式。这一特性促进了信息的标准化和操作性,使得不同系统之间的数据交换变得更加便捷和高效。同时,XML在数据处理、分布式计算等领域也展现出巨大的潜力,推动了信息技术的持续进步。

第十二章为SE负责监管计算机系统的构建。作者强调了IT并不等同于简单地引进计算机,而是要充分利用信息来解决问题。SE的工作是分析靠手工作业完成的业务,并提出能用计算机解决客户所面临问题的方法。作者明确指出,一个成功的计算机系统必须全面满足客户的需求,确保系统能够精准地解决客户的实际问题。通过优化资源配置,提高设备的使用效率,可以进一步降低成本,提升整体效益。此外,作者还介绍了多机备份等先进技术,这些技术通过冗余设计,确保了计算机系统在出现故障时能够迅速切换至备用设备。

2 研究发现和主要贡献

(1)结构合理,逻辑严密

作者对计算机技术的理论与应用知识进行了具体说明。作者在每章开始前,首先提出难度不一的三个问题,作为对这章内容的引入;部分章末加入“来自企业培训现场”内容,一方面可以将理论与实际相结合,同时也为下一章的内容做好铺垫。作者依次提出了计算机的三大原则、计算机硬件组成、计算机软件的作用、计算机系统的构建、计算机网络的原理,还涉及了编程的基本概念,包括机器语言、汇编语言等,以及如何通过编程来实现计算机的各种功能。同时,也讨论了不同编程语言的特点和适用场景。并且计算机作为一门理论性和实用性都很强的综合应用技术,本书摒弃了先理论后实践的编写逻辑,而是采用一种理论讲解与系统设计相结合的方法,将计算机作为一门理论与实践相结合的综合应用技术。

(2)图文结合,重点明晰

本书通过大量的流程图、电路图、框架图,直观展示了计算机技术理论与应用的相关内容,帮助读者理解。通过大量图示,作者展示了具体的程序流程,以C语言示例为辅助,帮助读者掌握关于算法和编程的有关内容。计算机软件技术的核心在于算法,为了确保算法的可移植性,通常采用自然语言、流程图和伪代码等形式进行表达,而不局限于某种特定的编程语言。因此,算法既需要编程语言的高效表达,又优于编程语言。算法是基础,编程语言和能力是重要工具[4]。在第五章至第七章中,作者介绍了程序设计的基本算法和设计方法。随着计算机程序设计实践的不断深化,新的编程理念不断涌现,这些理念在指导程序员的编程活动中起到了关键作用,从而有效提升了软件开发的质量和效率[5]

(3)计算机在互联网背景下的进化与应用

在互联网背景下,计算机技术不断进行,其目的是为了更好地贴近人类。作者从计算机的硬件和软件部分入手,阐述了计算机问世以来的技术变革,并建议读者以积极的态度学习技术的进化。在新时代的背景下,通信技术与计算机技术的结合为计算机网络技术的飞跃式发展奠定了基础。通过高效利用网络,众多计算机得以紧密互联,极大提升了数据与资源的利用效率。移动互联网,作为移动技术与互联网的完美结合体,兼具两者的长处,以其卓越的高效便捷性,为企业带来了更为科学、高效的服务,为企业的繁荣发展开辟了更多机遇[6]。然而,在计算机与互联网技术不断演进的同时,移动互联网技术在智能化、自动化领域的运用中也逐渐显现出一些有待完善的短板,比如蓝牙传输过程中,一般资源的应用过程效率不高,应及时采取措施解决这些问题。作者在书末还提出了数据加密的问题,计算机网络安全管理不容忽视,需要从软硬件更新、网络安全意识等方面有针对性地做好管理和维护工作,从而提高计算机网络安全管理能力,有效保护计算机用户的数据安全[7]

该书仅仅是从计算机技术理论与应用知识的方面做出了具体介绍,但对计算机未来的发展及应用趋势并未做出具体的介绍。随着科学技术的飞速发展,计算机技术已经应用于教育、工业、商业、艺术文化等各个领域,为各行各业带来了极大的便利。计算机的应用也将顺应时代的发展趋势,从业人员必须分析计算机应用的发展现状,促进计算机在未来更好地发展。书中缺少对计算机技术理论最新发展的阐述,同时也缺少计算机与日常经济社会生活结合的相关实例。

3 结束语

《计算机是怎样跑起来的》一书内容详尽,逻辑性强。从硬件到软件,从编写程序到联网,系统而深入地介绍了计算机的基础知识,帮助读者全面了解计算机的原理和应用。作者还通过大量实例和插图,以直观的方式介绍了计算机的内部工作原理,帮助读者深入了解计算机的工作原理。本书还介绍了计算机科学领域的一些最新概念,如人工智能和云计算,帮助读者深入了解计算机的未来发展趋势。本书将使读者更好地理解计算机的本质和重要性,更好地利用计算机造福人类。无论是计算机科学的初学者,还是有一定经验的程序员,都可以从本书中获得经验和启发。此外,本书还提供了大量实例和实验,供读者进行实际操作,加深对计算机科学的理解和学习。

利益冲突: 作者声明无利益冲突。


[①] 通讯作者 Corresponding author:季楚涵jichuhan2003@163.com
收稿日期:2024-12-06; 录用日期:2024-12-16; 发表日期:2024-12-28

参考文献(References)

[1] [日] 矢泽久雄. 计算机是怎样跑起来的[M]. 北京: 人民邮电出版社, 2015.
[2] 党万兴. 基于互联网的计算机技术分析[J]. 集成电路应用, 2024, 41(03): 282-283.
https://doi.org/10.19339/j.issn.1674-2583.2024.03.129
[3] 王红光. “互联网+”背景下的计算机应用技术分析[J]. 河北农机, 2021(04): 96-97.
[4] 郑舸. 浅议计算机算法认识[J]. 通讯世界, 2018, 25(12): 288-289.
https://doi.org/10.3969/j.issn.1006-4222.2018.12.186
[5] 孟凡君. 浅谈计算机语言编程思想的构建[J]. 数字通信世界, 2019(09): 220.
[6] 孙梦真, 郭燕花, 孙梦成. 计算机与移动互联网技术的发展研究[J]. 现代信息科技, 2019, 3(24): 102-103.
https://doi.org/10.3969/j.issn.1007-7103.2020.16.128
[7] 冉鑫. 试析计算机网络安全管理及维护措施[J]. 电子元器件与信息技术, 2024, 8(02): 179-181+185.
https://doi.org/10.19772/j.cnki.2096-4455.2024.2.044

Book Review of How Computers Run

JI Chuhan

(University of Chinese Academy of Sciences, Beijing 101499, China)

Abstract: This book explores the theoretical foundations and practical applications of computer technology, emphasizing the importance of mastering fundamental concepts to deepen understanding, foster interest, and facilitate the acquisition of new skills. Organized into 12 chapters, it provides a structured examination of key topics. Chapter 1 introduces the three core principles of computing and outlines fundamental system components. Chapters 2 and 3 elucidate circuit construction and operational mechanisms through experiments. Chapter 4 employs flowcharts to clarify program processes and algorithms, with Chapter 5 focusing on algorithmic design for small-scale processes. Chapter 6 integrates programming to represent data structures, while Chapter 7 provides a multi-perspective overview of object-oriented programming. Chapter 8 guides readers in developing basic database applications, and Chapter 9 offers experimental insights into TCP/IP networking. Chapter 10 highlights the importance of data encryption, introducing public-key encryption. Chapter 11 examines the core principles of XML, and Chapter 12 outlines software engineering methods for system construction. By combining detailed illustrations and clear explanations, the book demystifies complex concepts, equipping readers with a comprehensive understanding of computer systems and practical skills.  

Keywords: Computer technology, computer architecture, algorithms and programming, book review

DOI: 10.48014/ccsr.20241206001

Citation: JI Chuhan. Book review of How Computers Run[J]. Chinese Computer Sciences Review, 2024, 2(4): 38-43.