🔥个人主页:北极的代码(欢迎来访)
🎬作者简介:java后端学习者
❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb
✨命运的结局尽可永在,不屈的挑战却不可须臾或缺!
前言:
大家好,我是代码不加冰,今天给大家分享一下我看《计算机是如何跑起来》一书的收获和理解,主要是关于计算机组成原理的,(当然还是了解为主,这本书讲的挺简单的)也就是常说的四大件之一。
我们每天都在使用计算机,从智能手机到笔记本电脑,从网上购物到人工智能聊天。然而,对于绝大多数人来说,计算机内部是如何运作的,仍然是一个神秘的黑盒。我们按下电源键,屏幕亮了;我们点击图标,程序运行了。这中间到底发生了什么?《计算机是怎样跑起来的》这本书的第一章,正是要打破这个黑盒,将计算机还原到它最本质的三个根本性原则。
摘要:
本章的核心观点在于:尽管现代技术复杂多变,但计算机的根本原理从未改变。只要掌握了以下三大原则,无论未来出现多么新潮的技术名词,你都能迅速看透其本质。
这三大原则分别是:
硬件基础:计算机是执行输入、运算、输出的机器。
软件本质:程序是指令和数据的集合。
思维差异:计算机的处理方式有时与人们的思维习惯不同(即“万物皆数字”)。
下面,我们将逐一深入解析这三大原则。
1.1 硬件的基础:输入、运算、输出的三位一体
现代计算机看似能够处理复杂的视频渲染、大型游戏逻辑或大数据分析,但若剥开层层外壳,你会发现它其实一直在重复做一件极其简单的事,那就是:接收输入,执行运算,输出结果。
输入(Input):这是计算机获取指令或数据的途径。无论是键盘敲击的文字、鼠标移动的轨迹、麦克风收录的声音,还是传感器探测的温度,都属于输入。没有输入,计算机就是一具没有知觉的空壳,不知道自己要做什么。
运算(Processing/Computation):这是计算机的核心价值所在。计算机收到输入后,不能像电线一样直通输出,它必须对数据进行“加工”。这个加工过程就是运算。它不仅仅是数学上的加减乘除,还包括逻辑判断(比如比较两个数谁大)、数据的移动与复制等。如果一台机器只输入不运算,那它就是一根没有意义的导线。
输出(Output):这是计算机展示运算结果的方式。显示器显示画面、打印机打印文档、音箱播放音乐,这些都是输出。如果只运算不输出,计算机就变成了一个只进不出的“垃圾箱”,毫无意义。
思考实验:试着用这个理论解释一下“计算器”。你按下数字键“2”和“+”以及“2”(这是输入),芯片内部的电路进行二进制加法(这是运算),屏幕显示数字“4”(这是输出)。无论多么复杂的软件,归根结底都是由这样无数个微小的“输入 -> 运算 -> 输出”单元组合而成的。
1.2 软件的本质:指令与数据的集合
硬件提供了舞台,而软件则是剧本。书中明确指出,所谓的“程序”,其实无非就是“指令”与“数据”的集合。
指令(Instructions):指令是下达给计算机的命令。它告诉计算机接下来该做什么。比如“把A地址的数据复制到B地址”或者“比较C和D的值”。我们平时编写的代码(C、Python、Java等),最终都会被转换成一条条这样直白的机器指令。
数据(Data):数据是指令执行时操作的对象。在程序中,这些数据通常被称为“变量”或“常量”。例如,在数学函数
y = f(x)中,x是输入数据(被操作的对象),y是输出数据(运算的结果),而f代表的就是那一堆指令。
这里的启示在于:不存在没有数据只有指令的程序,也不存在没有指令只有数据的程序。指令和数据是程序这枚硬币的两面。当你写好一份文档,它存储在硬盘上时,其实就是一段长长的数据;当你双击打开它,CPU就会执行文字处理软件的指令,去解读并显示这段数据。
1.3 思维方式的鸿沟:对计算机来说,一切都是数字
这是初学者最容易忽略却最重要的一点。人类处理信息是模拟的、模糊的,而计算机是数字的、精确的。在计算机的世界里,无论你是文字、图片、声音、视频,还是程序本身,统统都会被转换成数字(特别是0和1组成的二进制数)。
文字的数字化:为什么敲击键盘上的“A”,屏幕上就显示“A”?这是因为计算机内部有一个“字符编码表”(如ASCII或Unicode)。在这个表中,大写字母
A被映射为数字65。你按下A键,计算机传输的是数字65,存储的是数字65,显示的也是根据数字65画出来的图形。颜色的数字化:在计算机里,颜色由RGB(红绿蓝)三原色构成。如果你想显示一种“纯红色”,计算机会把它表示为
(R:255, G:0, B:0)。纯蓝色是(0,0,255)。这也是为什么我们说“编码”的意义所在——编码就是把我们人类能看懂的信息(如文字、图片),翻译成计算机能看懂的“数字”。
正是因为计算机“只认数”,所以它的处理逻辑往往和我们人类不太一样。人类看到“123”是一个数字,看到“123abc”可能觉得是乱码,但计算机会一丝不苟地根据编码规则去解读这些数字,不管结果是不是你想要的。
1.4 实战应用:用三大原则拆解复杂技术
如果不掌握这些原则,我们看最新的技术文档往往会觉得晦涩难懂。书中举了一个关于微软.NET技术的例子。
原文:“作为.NET核心的XML Web服务使用通用技术SOAP、XML,促使企业间的计算机协同工作。”
拆解后:
原则一(硬件流程):所谓协同工作,就是一台计算机输入数据,通过网络传给另一台计算机运算,最后把结果输出回来。
原则二(软件构成):程序是指令和数据的集合,所以我们需要一套规范来定义“指令”该怎么写(这就是SOAP),以及“数据”该是什么格式(这就是XML)。
结果:只要大家都遵守这套数字规范,不同的计算机就能互相通信了。
你看,一旦把复杂技术分解到三大原则上,它就不再神秘了。
1.5 总结与预告
本章的内容为我们奠定了坚实的基础:
硬件不复杂:再牛的超级计算机,也是在反复执行“输入-运算-输出”这三步。
软件不神秘:再庞大的软件系统,拆解到最后都是“指令+数据”。
编码是桥梁:记住“万物皆数字”,你就能理解为什么计算机能处理如此多样的任务。
最后,书中简单预习了第二章的内容。为了支撑这三大原则的运行,计算机内部必须有一套物理骨架。CPU(中央处理器)是负责运算的大脑,内存是负责临时存储指令和数据的地方,而I/O(输入输出设备)则是连接外部世界的接口。这三者通过总线连接在一起,并在时钟信号(就像心跳一样)的驱动下一步步工作。
下一章,我们将跟随作者的步伐,甚至尝试“手动”组装一台最简易的计算机,看看这些冰冷的芯片到底是如何在电信号的流动中,真正跑起来的。
结语:如果对你有帮助,请点赞,关注,收藏,我会持续更新!