💻 计算机是怎样跑起来的
照着《计算机是怎样跑起来的》([日] 矢泽久雄 著,胡屹 译,人民邮电出版社 · 图灵程序设计丛书,日文版重印 18 次)做的自学笔记 —— 这是图灵「是怎样」三部曲的第一本(第二本《程序是怎样跑起来的》,第三本 网络是怎样连接的 已完结)。全书 12 章 102 篇(含 2 个 COLUMN「来自企业培训现场」):从计算机的三大原则出发,亲手拼一台微型计算机(Z80 总线接线)、体验手工汇编、看程序像河水一样流动、把算法与数据结构变成好朋友、走进面向对象、搭一个数据库、用七个实验摸清 TCP/IP、试着加密数据、认识 XML,最后跟着 SE 看一个系统怎么被构建出来——把计算机从里到外讲通一整个来回。这是概念课,不需要任何真实硬件即可读完;教材成书年代较早(第九章实验基于 Windows XP 时代),凡与现状不同处各篇都用【⚠️ 2026 现状】单列。大白话、不跳步骤、必带生活比喻、常见误区、可折叠自测题。
前置课程:计算机基础(同为底层原理入门课)、编程原理(编程全貌课)。
内容来自我的 Obsidian 自学笔记 · 全 12 章 102 篇完结 ✅
第一章 计算机的三大原则
计算机的三个根本性基础
三大原则总纲:输入运算输出、程序=指令+…
输入、运算、输出是硬件的基础
硬件三件套归位:输入送数、CPU+内存运…
软件是指令和数据的集合
程序摊开是两张表:指令表管做什么、数据表…
对计算机来说什么都是数字
文字是编号、颜色三组数、声音是采样——一…
只要理解了三大原则,即使遇到难懂的最新技术,也能轻松应对
三大原则当体检表:语音助手/扫地机器人/…
为了贴近人类,计算机在不断地进化
界面进化六代:纸带→命令行→GUI→触屏…
稍微预习一下第 2 章
第二章预告:微型计算机五零件(CPU/内…
第二章 试着制造一台计算机吧
制作微型计算机所必需的元件
四样元件点名:Z80 CPU、IC 存储…
电路图的读法
三种线三种语言:细线=1 位信号、粗线斜…
连接电源、数据和地址总线
电源先行;数据总线 8 根并联共用、同一…
连接 I/O
I/O 挂总线但认另一套门牌【端口号】(…
连接时钟信号
CLK 引脚接节拍器:高低调翻转不停;4…
连接用于区分读写对象是内存还是 I/O 的引脚
MREQ/IORQ 两根请求线分流:低电…
连接剩余的控制引脚
RD/WR 管读写方向,凑齐四种总线操作…
连接外部设备,通过 DMA 输入程序
DMA 控制器申请总线成批直送内存:CP…
连接用于输入输出的外部设备
拨码开关进、LED 数码管出:七段码点亮…
输入测试程序并进行调试
拨码开关逐字节装填 5 字节程序、逐格验…
第三章 体验一次手工汇编
从程序员的角度看硬件
程序员视角只看三样:寄存器/内存/I/O…
机器语言和汇编语言
机器码=操作码+操作数(3E 80/D3…
Z80 CPU 的寄存器结构
寄存器家底:A/F、BC/DE/HL 可…
追踪程序的运行过程
四步循环:取指→译码→执行→PC 前进…
尝试手工汇编
手工汇编=查表翻译+按地址定位;这两步正…
尝试估算程序的执行时间
T 状态账:7+11+4=22 拍,4…
第四章 程序像河水一样流动着
程序的流程分为三种
顺序/循环/分支三件套;硬件落点=PC…
用流程图表示程序的流程
四种符号:圆角框开始结束、矩形处理、菱形…
表示循环程序块的【帽子】和【短裤】
循环像个人:帽子=循环条件、身体=循环体…
结构化程序设计
只用三种结构、每块单入口单出口——把多入…
画流程图来思考算法
先画图后写码:求三个数最大值、判断闰年(…
特殊的程序流程——中断处理
暂停→保存现场(PC 等压栈)→执行中断…
特殊的程序流程——事件驱动
事件循环:取事件→分派处理→再取;与中断…
电阻颜色代码的谐音助记口诀
企业培训现场:电阻色环颜色→数字靠谐音口…
第五章 与算法成为好朋友的七个要点
算法是程序设计的【熟语】
algorithm 源自花拉子米;程序=…
要点1:算法中解决问题的步骤是明确且有限的
每步无歧义、步数有头:二分猜数 1~10…
要点2:计算机不靠直觉而是机械地解决问题
找最大值人靠扫一眼、机器靠逐张比 N-1…
要点3:了解并应用典型算法
招式库:检索(线性/二分)、排序(冒泡/…
要点4:利用计算机的处理速度
暴力穷举的翻身:1000 内完全数几十万…
要点5:使用编程技巧提升程序执行速度
1+…+10000:累加一万次 vs 高…
要点6:找出数字间的规律
斐波那契=每项前两项之和;查表法用空间换…
要点7:先在纸上考虑算法
冒泡排序纸上手排五张卡:相邻交换、每轮冒…
第六章 与数据结构成为好朋友的七个要点
要点1:了解内存和变量的关系
变量=内存格子+代号;赋值是覆盖不是累加…
要点2:了解作为数据结构基础的数组
同类型、连续、按下标直达;下标从 0=偏…
要点3:了解数组的应用——作为典型算法的数据结构
线性/二分查找、冒泡排序的舞台都是数组…
要点4:了解并掌握典型数据结构的类型和概念
四件套性格表:数组直达、链表牵手、栈后进…
要点5:了解栈和队列的实现方法
栈 push/pop 一个口;队列尾进头…
要点6:了解结构体的组成
异类数据打包成单位(姓名+学号+分数)…
要点7:了解链表和二叉树的实现方法
链表=数据+牵手、插删改两处牵手;二叉搜…
第七章 成为会使用面向对象编程的程序员吧
面向对象编程
把数据+操作打包成对象——程序从指令罗列…
对OOP的多种理解方法
七个观点各摸一面——拼装、效率、大型、建…
观点1:面向对象编程通过把组件拼装到一起构建程序
类是零件、接口是插座规格——与第二章拼装…
观点2:面向对象编程能够提升程序的开发效率和可维护性
复用省第一次的工夫,封装隔离省以后每一次…
观点3:面向对象编程是适用于大型程序的开发方法
类是天然分工单元——拆得动、分得下、接口…
观点4:面向对象编程就是在为现实世界建模
程序结构跟着现实结构走——抽象=有目的的…
观点5:面向对象编程可以借助UML设计程序
类图三格盒子+关系连线——改图便宜、改码…
观点6:面向对象编程通过在对象间传递消息驱动程序
消息=方法名+参数——事件驱动与队列在此…
观点7:在面向对象编程中使用继承、封装和多态
封装藏内部、继承传家产、多态一声令下…
类和对象的区别
类是图纸一份、对象是产品无数——图纸还是…
类有三种使用方法
拿来就用、装进去用 has-a、继承着用…
在Java和.NET中有关OOP的知识不能少
JVM 对 CLR、包对命名空间——OO…
第八章 一用就会的数据库
数据库是数据的基地
数据从程序里搬进基地——集中存放、有组织…
数据文件、DBMS和数据库应用程序
三方分工:文件存、DBMS 管、应用用…
设计数据库
设计先于录入——定表、定列、定类型与约束
通过拆表和整理数据实现规范化
一条事实只存一处——拆掉重复,改漏也就没…
用主键和外键在表间建立关系
主键是身份证、外键抄一份去拉手——JOI…
索引能够提升数据的检索速度
索引像书的目录——查得快,写入慢一点、多…
设计用户界面
界面是人与数据的窗口——少打字、防填错…
向DBMS发送CRUD操作的SQL语句
增删改查四个基本动作——UPDATE/D…
使用数据对象向DBMS发送SQL语句
SQL 关进一间屋子——数据对象把改动牵…
事务控制也可以交给DBMS处理
BEGIN/COMMIT/ROLLBAC…
培训新人编程时推荐使用什么编程语言?
企业培训现场:三条尺子(见效快/生态活/…
第九章 通过七个简单的实验理解TCP/IP网络
实验环境
命令就是实验仪器——七个实验与观测命令总…
实验 1:查看网卡的 MAC 地址
48 位出厂编号、前 3 字节厂商标识…
实验 2:查看计算机的 IP 地址
网络部+主机部、掩码 AND 拆解——I…
实验 3:了解 DHCP 服务器的作用
DORA 四步握手自动发 IP——IP…
实验 4:路由器是数据传输过程中的指路人
目标不在本网段交网关——路由表只答下一站…
实验 5:查看路由器的路由过程
TTL 每跳减 1 到 0 报名——tr…
实验 6:DNS服务器可以把主机名解析成 IP地址
hosts→缓存→DNS 三级询问——人…
实验 7:查看 IP地址和 MAC地址的对应关系
ARP 广播问单播答——IP 终点不变…
TCP 的作用及 TCP/IP 网络的层级模型
编号确认重传补 IP 的不靠谱——四层模…
第十章 试着加密数据吧
先来明确一下什么是加密
明文密文密钥三要素——方法可公开、密钥必…
错开字符编码的加密方式
凯撒密码:字符是数字、错开即加密——密钥…
密钥越长,解密越困难
暴力破解全试一遍——密钥每加一位破解时间…
适用于互联网的公开密钥加密技术
公钥上锁私钥开锁——密钥分发死结就此消失
数字签名可以证明数据的发送者是谁
私钥签名公钥验签——认证与防篡改一体两面
第十一章 XML究竟是什么
XML 是标记语言
标签成对围住数据、四条规矩合格——HTM…
XML 是可扩展的语言
不给词表、标签自定——自由有余而语义无保…
XML 是元语言
造语言的模具——SVG/RSS/OOXM…
XML 可以为信息赋予意义
标签名即含义、属性补条件——人读名字机器…
XML 是通用的数据交换格式
平台无关+自描述+可校验——系统间交换的…
可以为 XML 标签设定命名空间
给标签加姓防撞名——前缀是简称、认的是…
可以严格地定义 XML 的文档结构
DTD/Schema 立规矩——格式良好…
用于解析 XML 的组件
DOM 建树吃内存、SAX 报事件省内存…
XML 可用于各种各样的领域
文档/图形/订阅/企业/配置/轨迹六大领…
第十二章 SE负责监管计算机系统的构建
SE是自始至终参与系统开发过程的工程师
六站全程在场——SE 管系统的建、CE…
SE未必担任过程序员
主业是访谈设计协调——不必亲自写、但必须…
系统开发过程的规范
瀑布六级逐级放行——上游错一句下游全翻工
各个阶段的工作内容及文档
阶段动作+交付文档——文档是交接的绳结
所谓设计,就是拆解
系统→子系统→模块→函数——高内聚低耦合…
面向对象法简化了系统维护工作
封装复用收敛改动点——改一处自动生效
技术能力和沟通能力
说得对+听得懂——双高才是理想的 SE
IT不等于引进计算机
先问要改变什么再谈技术——流程不改系统成…
计算机系统的成功与失败
失败三大主因在人与过程——四卡均衡无短板…
大幅提升设备利用率的多机备份
并联冗余故障率做乘法——两台并联年停机骤…