编辑推荐
      在纸上体验微型计算机的制作过程,消除对硬件的恐惧
  完成一次手工汇编,加深对计算机的理解
  理解程序的流程、面向对象的编程、数据库以及XML
  抓住7个要点,与算法和数据结构成为好朋友
  通过7个实验,理解TCP/IP网络协议
  原来,计算机并不难!
  以图配文,深入讲解硬件&软件基础知识
  语言通俗,即使是文科生也能看得懂
  特设“来自企业培训现场”专栏,生动有趣
      内容简介
     《计算机是怎样跑起来的》倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的全新技术时,能够迅速掌握其要点并灵活运用。
  《计算机是怎样跑起来的》以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。本书适合计算机爱好者和相关从业人员阅读。
  《计算机是怎样跑起来的》图文并茂,通俗易懂,非常适合计算机爱好者和相关从业人员阅读。
     作者简介
     矢泽久雄,YAZAWA股份有限公司董事长兼总经理。GrapeCity信息技术集团顾问。电脑作家之友会会长。
  曾在某大型电子公司从事过电脑生产,在Software House做过程序员,现主要从事软件开发工作。工作之余笔耕不辍,从电路到编程语言均有涉及。代表作有《程序是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。
  胡屹,多年从事Web开发工作。热爱编程,关注设计模式,致力于提升软件开发的质量。曾获得SCJP和PHP ZCE证书。
     内页插图
          目录
   第1章 计算机的三大原则 1
1.1 计算机的三个根本性基础 3
1.2 输入、运算、输出是硬件的基础 4
1.3 软件是指令和数据的集合 6
1.4 对计算机来说什么都是数字 8
1.5 只要理解了三大原则,即使遇到难懂的最新技术,也能轻松应对 9
1.6 为了贴近人类,计算机在不断地进化 10
1.7 稍微预习一下第2章 13
第2章 试着制造一台计算机吧 15
2.1 制作微型计算机所必需的元件 17
2.2 电路图的读法 21
2.3 连接电源、数据和地址总线 23
2.4 连接I/O 26
2.5 连接时钟信号 27
2.6 连接用于区分读写对象是内存还是I/O的引脚 28
2.7 连接剩余的控制引脚 29
2.8 连接外部设备,通过DMA输入程序 34
2.9 连接用于输入输出的外部设备 35
2.10 输入测试程序并进行调试 36
第3章 体验一次手工汇编 39
3.1 从程序员的角度看硬件 41
3.2 机器语言和汇编语言 44
3.3 Z80 CPU的寄存器结构 49
3.4 追踪程序的运行过程 52
3.5 尝试手工汇编 54
3.6 尝试估算程序的执行时间 57
第4章 程序像河水一样流动着 59
4.1 程序的流程分为三种 61
4.2 用流程图表示程序的流程 65
4.3 表示循环程序块的“帽子”和“短裤” 68
4.4 结构化程序设计 72
4.5 画流程图来思考算法 75
4.6 特殊的程序流程——中断处理 77
4.7 特殊的程序流程——事件驱动 78
COLUMN 来自企业培训现场 电阻颜色代码的谐音助记口诀 82
第5章 与算法成为好朋友的七个要点 85
5.1 算法是程序设计的“熟语” 87
5.2 要点1:算法中解决问题的步骤是明确且有限的 88
5.3 要点2:计算机不靠直觉而是机械地解决问题 89
5.4 要点3:了解并应用典型算法 91
5.5 要点4:利用计算机的处理速度 92
5.6 要点5:使用编程技巧提升程序执行速度 95
5.7 要点6:找出数字间的规律 99
5.8 要点7:先在纸上考虑算法 101
第6章 与数据结构成为好朋友的七个要点 103
6.1 要点1:了解内存和变量的关系 105
6.2 要点2:了解作为数据结构基础的数组 108
6.3 要点3:了解数组的应用——作为典型算法的数据结构 109
6.4 要点4:了解并掌握典型数据结构的类型和概念 111
6.5 要点5:了解栈和队列的实现方法 114
6.6 要点6:了解结构体的组成 118
6.7 要点7:了解链表和二叉树的实现方法 120
第7章 成为会使用面向对象编程的程序员吧 125
7.1 面向对象编程 127
7.2 对OOP的多种理解方法 128
7.3 观点1:面向对象编程通过把组件拼装到一起构建程序 130
7.4 观点2:面向对象编程能够提升程序的开发效率和可维护性 132
7.5 观点3:面向对象编程是适用于大型程序的开发方法 134
7.6 观点4:面向对象编程就是在为现实世界建模 134
7.7 观点5:面向对象编程可以借助UML设计程序 135
7.8 观点6:面向对象编程通过在对象间传递消息驱动程序 137
7.9 观点7:在面向对象编程中使用继承、封装和多态 140
7.10 类和对象的区别 141
7.11 类有三种使用方法 143
7.12 在Java和.NET中有关OOP的知识不能少 145
第8章 一用就会的数据库 147
8.1 数据库是数据的基地 149
8.2 数据文件、DBMS和数据库应用程序 151
8.3 设计数据库 154
8.4 通过拆表和整理数据实现规范化 157
8.5 用主键和外键在表间建立关系 159
8.6 索引能够提升数据的检索速度 162
8.7 设计用户界面 164
8.8 向DBMS发送CRUD操作的SQL语句 165
8.9 使用数据对象向DBMS发送SQL语句 167
8.10 事务控制也可以交给DBMS处理 170
COLUMN 来自企业培训现场 培训新人编程时推荐使用什么编程语言? 172
第9章 通过七个简单的实验理解TCP/IP网络 175
9.1 实验环境 177
9.2 实验1:查看网卡的MAC地址 179
9.3 实验2:查看计算机的IP地址 182
9.4 实验3:了解DHCP服务器的作用 184
9.5 实验4:路由器是数据传输过程中的指路人 186
9.6 实验5:查看路由器的路由过程 188
9.7 实验6:DNS服务器可以把主机名解析成IP地址 190
9.8 实验7:查看IP地址和MAC地址的对应关系 192
9.9 TCP的作用及TCP/IP网络的层级模型 193
第10章 试着加密数据吧 197
10.1 先来明确一下什么是加密 199
10.2 错开字符编码的加密方式 201
10.3 密钥越长,解密越困难 205
10.4 适用于互联网的公开密钥加密技术 208
10.5 数字签名可以证明数据的发送者是谁 211
第11章 XML究竟是什么 215
11.1 XML是标记语言 217
11.2 XML是可扩展的语言 219
11.3 XML是元语言 220
11.4 XML可以为信息赋予意义 224
11.5 XML是通用的数据交换格式 227
11.6 可以为XML标签设定命名空间 230
11.7 可以严格地定义 XML的文档结构 232
11.8 用于解析XML的组件 233
11.9 XML可用于各种各样的领域 235
第12章 SE负责监管计算机系统的构建 239
12.1 SE是自始至终参与系统开发过程的工程师 241
12.2 SE未必担任过程序员 243
12.3 系统开发过程的规范 243
12.4 各个阶段的工作内容及文档 245
12.5 所谓设计,就是拆解 247
12.6 面向对象法简化了系统维护工作 249
12.7 技术能力和沟通能力 250
12.8 IT不等于引进计算机 252
12.9 计算机系统的成功与失败 253
12.10 大幅提升设备利用率的多机备份 255      
精彩书摘
     由于微型计算机上的CPU是Z80 CPU,所以就要使用适用于Z80 CPU的机器语言。顾名思义,机器语言就是处理器可以直接理解(与生俱来就能理解)的编程语言。机器语言有时也叫作原生代码(Native Code)。   所谓时钟信号的频率,就是由时钟发生器发送给CPU的电信号的频率。表示时钟信号频率的单位是MHz(兆赫兹=100万回/秒)。微型计算机使用的是2.5MHz的时钟信号。时钟信号是在0和1两个数之间反复变换的电信号,就像滴答滴答左右摆动的钟摆一样。通常把发出一次滴答的时间称作一个时钟周期。   在机器语言当中,指令执行时所需要的时钟周期数取决于指令的类型。程序员不但可以通过累加时钟周期数估算程序执行的时间,还可以仅在特定的时间执行点亮LED(发光二极管)等操作。   每个地址都标示着一个内存中的数据存储单元,而这些地址所构成的范围就是内存的地址空间。在我们的微型计算机中,地址空间为0~255,每一个地址中可以存储8比特(1字节)的指令或数据。   连接着的I/O的种类,就是指连接着微型计算机和周边设备的I/O的种类。在微型计算机中,只安装了一个I/O,即上面带有4个8比特寄存器的Z80 PIO。只要用CPU控制I/O的寄存器,就可以设定I/O的功能,与周边设备进行数据的输入输出。  ……      
前言/序言
     我从10年前开始担任企业培训的讲师。培训的对象有时是新入职的员工,有时是入职了多年的骨干员工。这期间通过与一些勉强算是计算机专家的年轻工程师接触,我感到与过去的工程师(计算机发烧友)相比,他们对技术的兴趣少得可怜。并不是说所有的培训对象都如此,但这样的工程师确实占多数。这并不是大吼着命令他们继续学习或用激将法嘲讽他们的专业性就能解决的问题。究其根源,是因为计算机对他们来说,并没有有意思到可以令他们废寝忘食的地步。为什么他们会觉得计算机没意思呢?通过和多名培训对象的交流,我渐渐找到了答案。因为他们不了解计算机。然而,又是什么造成了他们的“不了解”呢?  今天,计算机正在以惊人的速度发展变化着,变得越来越复杂,而这期间产生了许多技术,但是人们并没有过多的时间去深入学习每一门技术,这就是问题的根源。稍微看了看技术手册,只学到了表层的使用方法,觉得自己“反正已经达到目的了”,这就是现状。如果仅仅把技术当作一个黑盒,只把时间花在学习其表面上,而并没有探索到其本质,就绝不应该认为自己已经“懂”了。不懂的话,做起来就会感到没意思,也就更不会产生想要深入学习的欲望了。若每日使用的都是些不知其所以然的技术,就会渐渐不安起来。令人感到遗憾的是,还有一些人在计算机行业遇到挫折后,就选择了离开这个行业。身为一名教授计算机技术的讲师,我由衷地感到自己应该想办法改变这种现状。  对于笔者以及昔日的计算机发烧友而言,虽然大家现在都已经40岁左右了,但即使是面对复杂的最新技术,似乎也还是可以轻松掌握的。其原因在于,从可以轻松买到最初的8比特微型计算机的那个时候开始,我们就幸运地接触到了计算机。面对为数不多的技术,我们可以从容地把时间花在学习计算机的基础知识上。而这些基础知识,即使到了今天也完全没有变化。因此,即便面对的是复杂的最新技术,一旦把它们回归到计算机的基础知识上,就变得可以轻松理解了。就算是和年轻的工程师们阅读同样的技术手册,我们领会其中的要点、抓住其本质的速度也要快得多。  其实不仅是计算机,其他学问亦是如此。首先要划出一个“知识的范围”,精通一门学问所必知必会的知识都在这个范围内。其次是掌握该范围内每个知识点中“基础中的基础知识”。最后是能独当一面的“目标”,即掌握了这些知识可以做什么。下面就以学习音乐为例说明这三点。首先,划出的“知识范围”是节奏、旋律、和弦这三个知识点。所谓“基础中的基础知识”,对于节奏来说就是四拍子(大、大、大、大),对于旋律来说就是C大调(do re mi fa so la si do),对于和弦来说就是大三和弦(do mi so)。以四拍子为基础就能理解更加复杂的三拍子或五拍子;以C大调为基础就能理解更加复杂的降B小调;以大三和弦为基础就能理解更加复杂的减三和弦。而最终的“目标”就是能够自己作曲并演奏,尽管这时仅能完成很简单的曲子。  本书的目的是想让诸位了解有关计算机技术的知识范围,掌握其基础中的基础知识,设定目标;同时又想让那些打算用计算机做点什么,却又因难以下手而犹豫不决的人,以及虽然就职于计算机行业,却又因追赶不上最新技术而苦恼的人,能够了解计算机的本质。其实计算机非常简单,谁都能掌握。只要掌握了,计算机就会越来越有趣。  矢泽久雄    
				
 
				
				
					探秘信息世界的奇妙旅程:从零开始的数字生命  在这个由代码和算法构建的数字时代,我们每天都在与无形的力量互动——电脑、手机、智能家居,甚至是复杂的科学计算和艺术创作,都离不开它们的身影。然而,你是否曾停下脚步,好奇这些看似神秘的机器,究竟是如何“思考”、如何“工作”的?它们是如何将我们输入的指令,转化成屏幕上绚丽的画面,或是腕间精准的时间?《探秘信息世界的奇妙旅程:从零开始的数字生命》将带领你踏上一场激动人心的探索之旅,深入剖析信息世界的底层逻辑,揭示数字生命诞生的奥秘。  本书并非枯燥的技术手册,而是为你量身打造的“信息世界观”的构建指南。我们将从最基础的概念出发,一步步拨开迷雾,让你清晰地理解计算机的构成、工作原理,以及它们如何处理和存储海量信息。我们将以生动形象的比喻、贴近生活的实例,以及循序渐进的讲解方式,让原本可能令人生畏的计算机科学概念变得触手可及。  第一站:数字世界的基石——比特与逻辑门  一切的起点,都源于最简单、最基本的单位:比特(Bit)。我们将为你解释,这个只有“0”和“1”两种状态的微小粒子,是如何成为构建整个数字世界的基石。你将了解到,电信号的强弱、电压的高低,是如何被赋予“0”和“1”的意义,以及计算机内部如何通过复杂的电路来操控这些比特。  随后,我们将进入逻辑世界。什么是逻辑门?它们是比比特更进一步的“加工厂”,通过对输入的比特进行简单的逻辑运算(如“与”、“或”、“非”),产生新的比特。我们将详细介绍这些最基本的逻辑门,如AND门、OR门、NOT门,并展示它们如何组合起来,形成更复杂的逻辑电路。你会惊讶地发现,即使是最强大的计算机,其核心运算也是由这些看似简单的逻辑门完成的。我们将通过图文并茂的方式,让你直观地理解这些逻辑运算的原理,甚至可以尝试自己动手设计一些简单的逻辑电路。  第二站:让信息“活”起来——数据的编码与存储  比特和逻辑门构建了计算机的“骨骼”,而数据则是支撑起这个数字世界的“血肉”。本书将深入探讨,我们日常接触到的文字、图片、声音、视频等信息,是如何被转化成计算机能够理解的二进制形式的。你将了解到ASCII编码、Unicode编码等字符编码的原理,理解图像的像素化表示,以及声音和视频的数字化采样与压缩过程。  更重要的是,我们将揭示数据是如何被“记住”的。存储器是计算机的“记忆库”,从速度极快的缓存(Cache)到容量巨大的硬盘(Hard Drive),每一种存储设备都有其独特的运作方式。我们将逐一剖析不同类型存储器的结构和工作原理,解释它们如何通过磁性、电荷、光盘介质等物理特性来保存信息。你将明白,为什么我们能够随时调用自己编写的文档,或是观看喜爱的电影,这背后是精密的存储技术在默默工作。  第三站:计算机的“大脑”与“神经系统”——中央处理器(CPU)与内存(RAM)  真正让计算机“跑起来”的核心,在于它的中央处理器(CPU)和内存(RAM)。我们将带领你走进CPU的微观世界,了解它的核心组成部分,如算术逻辑单元(ALU)、控制单元(CU)和寄存器。你将明白,CPU是如何根据指令,执行算术运算、逻辑运算,以及控制数据的流动。我们将用生动的比喻,比如把CPU想象成一个高效的“指令执行者”,而ALU是它的“计算大师”,CU则是它的“调度员”。  内存(RAM)则扮演着CPU的“临时工作台”的角色。我们将解释RAM的随机访问特性,以及它为何比硬盘更快,又能为何在断电后数据就会消失。你将理解,CPU在执行程序时,是如何与RAM进行频繁的数据交换,从而实现快速的程序运行。通过对CPU和RAM的深入理解,你将能够更好地把握程序的执行流程,以及影响计算机性能的关键因素。  第四站:指挥者与协同者——操作系统与应用程序  有了强大的硬件基础,还需要一个“总指挥”来协调一切,它就是操作系统(Operating System)。我们将为你揭示操作系统的核心功能,如进程管理、内存管理、文件系统管理和设备管理。你将了解到,操作系统是如何为我们屏蔽底层硬件的复杂性,提供一个友好的用户界面,并让我们能够轻松地运行各种应用程序。  应用程序(Application Software)则是我们与计算机交互的直接桥梁。我们将讨论不同类型的应用程序,如文字处理软件、图像编辑软件、网页浏览器等,并简要介绍它们的工作原理。你会了解到,应用程序是如何通过调用操作系统的接口,来完成特定的任务。本书将帮助你理解,硬件、操作系统和应用程序之间是如何形成一个紧密协作的生态系统,最终为我们提供丰富多彩的数字服务。  第五站:连接你我的桥梁——网络与通信  在当今世界,计算机不再是孤立的个体,它们通过网络连接在一起,构成了庞大的信息网络。我们将带你探索网络的奥秘,从最基本的网络协议(如TCP/IP)开始,理解数据是如何被分割、打包、传输,最终在遥远的计算机之间实现信息的交换。你将了解到IP地址、端口号的作用,以及路由器、交换机等网络设备是如何协同工作的。  我们将从更广阔的视角,展望信息世界的未来。随着人工智能、大数据、云计算等技术的飞速发展,计算机的“数字生命”将更加丰富多彩。本书将为你勾勒出这些前沿技术的基本概念,并展望它们如何进一步改变我们的生活和工作方式。  本书的独特之处:     从零开始,循序渐进: 无论你是否有计算机基础,本书都将带你从最基础的概念开始,逐步深入。    可视化讲解,生动形象: 我们将运用大量的图示、比喻和生活化的例子,将抽象的技术概念变得直观易懂。    聚焦核心原理,深入浅出: 本书不追求面面俱到,而是专注于计算机工作原理的核心环节,力求将最本质的知识传递给你。    理论与实践结合: 在理解原理的同时,我们会适时提供一些简单的思考题和实践建议,鼓励你主动探索。    不仅仅是“怎么做”,更是“为什么”: 我们不仅会告诉你计算机如何工作,更会解释背后的逻辑和原因,让你真正知其所以然。  《探秘信息世界的奇妙旅程:从零开始的数字生命》将为你开启一扇通往数字世界的大门。阅读本书,你将不再仅仅是计算机的使用者,更是一位洞察信息世界运作规律的探索者。你将以全新的视角审视你身边的数字设备,理解它们如何工作,以及它们为我们带来了怎样的奇迹。准备好迎接这场知识的盛宴,一起揭开数字生命的面纱吧!