编码的本质及计算机的工作原理

编码的本质是什么?计算机的工作原理是什么?越想越迷糊 , 感觉计算机就像迷雾一样 , 平常只会用 , 但不清楚原理 。
后来 , 从基本电路开始 , 搭建了复杂电路 , 并通过调节开关 , 控制电路 。然后 , 利用存储中的高低电平控制电路 , 体会了机器语言编程的感觉 , 算是基本入门 。机器语言很繁琐 , 后来体会了汇编语言的好处 , 也控制了电路 , 最后又体会了高级语言的好处 , 也能控制电路 。最近 , 又有一些新思考 , 所以简要地讲述一下 。
??????????????????????????????一. 掌握原理的重要性小时候 , 很喜欢骑自行车 , 试了很多次 , 一直不会骑 , 直到有一天 , 突然就会了 , 挺奇怪的 。那个瞬间 , 至今难忘 。那时 , 玩得不亦乐乎 , 此皆幼时闲情也 。

编码的本质及计算机的工作原理
文章图片

文章图片

不需要读什么书 , 也不需要什么知识 , 我们就能大致悟出自行车的工作原理 , 其实就是常识 。如下的描述 , 并不十分精准 , 但足够让人了解自行车的工作原理 。
用力踩呀踩 , 中间的铁齿轮开始转动 。
通过链条 , 带动后轮转动 , 准备向前 。
后轮推动前轮往前转 , 自行车走起来 。有的朋友要说 , 会骑自行车就行了 , 管它什么工作原理 。这句话 , 听起来好有道理 。林语堂先生却说:光知道用东西 , 却不知其所以然 , 实为遗憾 。后来 , 中国台湾知名技术作家侯杰先生 , 在他的著作《深入浅出MFC》中 , 也提到了上述观点 。我个人的观点是: 我们使用工具 , 并不是一定要深究其原理 , 有时候 , 没有必要浪费精力和时间 , 沉迷于不重要的细节 , 自我陶醉 , 无法自拔 。但是 , 如果能够了解一些原理 , 能帮助我们更好地使用工具 , 甚至有可能改进和创造工具 。二. 从硬到软层层抽象如今 , 我们几乎所有的人 , 每天都在使用计算机(手机也是计算机) 。对于大多数人而言 ,没有必要深入了解计算机的工作原理 。而对于从事计算机相关行业的人 , 或者对计算机有兴趣、有好奇心的人 , 也可以去了解一下 。另外 , 了解计算机的工作原理 , 也能为装叉吹牛增加一些信心和谈资 。说不定帮人修电脑或者安装系统时 , 侃侃而谈 , 还能成就一段美好姻缘 。很多大二大三大四的师兄 , 特别擅长这些 , 那些大一的学妹 , 仰慕不已 。如果不了解自行车知识 , 不了解牛爵爷的力学 , 也能搞懂自行车的工作原理 。但是 , 如果不了解计算机知识 , 绝对不可能搞懂计算机的工作原理 。因为 , 经历从硬件到软件的层层抽象后 , 计算机内部复杂得让人难以想象 。比如芯片 , 指甲那么大 , 却有几十亿个晶体管电子器件 , 每个晶体管电子器件的电流和电压 , 在1秒内 , 能变化几亿甚至几十亿次 。学过排列组合的朋友 , 应该知道 , 芯片内部每时每刻的状态数量 , 是个巨大的天文数字 。

编码的本质及计算机的工作原理
文章图片

文章图片

再比如操作系统 , 以谷歌公司的Android系统为例 , 少说点也有1亿行代码 。假设一本书有500页 , 书的单面印50行代码 , 那么一本书就能印刷25000行代码 。如果把操作系统的代码都印刷在书上 , 那就是4000本书 , 震惊 。

编码的本质及计算机的工作原理
文章图片

文章图片

那么 , 当我们拿着手机 , 聊微信、逛淘宝、刷抖音时 , 我们是否意识到发生了什么呢?通过手机app、中间件、操作系统、驱动程序 , 我们在操纵着手机芯片中的电压和电流 , 操纵着芯片中的无数分子中的原子中的电子 。我们还利用了麦克斯韦电磁场理论 , 通过电磁波的方式 , 远程操纵着各大互联网公司的服务器的芯片中的无数电子 。有点武侠小说的感觉 , 手指一滑 , 世界各地的计算机芯片中的电子便为之一振 。是的 , 从微观层面讲 , 那些电子在杂乱无章地“乱窜” , 充满着不确定性 。但是 , 通过抽象 , 我们拥有了宏观层面确定的欧姆定律、基尔霍夫定律等规律 。然而 , 电流电压依然会存在上下轻微波动 , 并不准确 , 那怎么办?通过再次抽象 , 我们拥有了确定的与或非门电路;通过再次抽象 , 我们拥有了确定的芯片;通过再次抽象 , 我们拥有了确定的驱动程序、操作系统;最后 , 拥有了带功能意义的app, 于是 , 我们能滑动手机 , 玩着 , 乐着 。