趁着工作间隙,在豆瓣上找到了编码这本书,是Charles微软大神写的,这本书初始读来觉得类似head first类型的偏浅显点的科普数据,但是读到后面继电器、触发器再到内存处理器,有深度有见地,让人欲罢不能,让人能够从底层取了解计算机架构,从历史发展去知道发展到现状的原因。作者各种旁征博引循序渐进环环相套,内在气质让人感到-为学日增,为道日损,损之又损,以至于无为,无为而无不为。

本书主要分为了两个部分,逻辑门知识之前的铺垫与逻辑门之后的计算机介绍。

逻辑门之前由莫斯密码和布莱叶盲文引出编码话题,然后通过手电筒传递摩斯密码引出继电器和电报,最后通过逻辑学和继电器的融合达到了理论知识和基础硬件的结合从而有了最基础的逻辑门(与门、或门、与或门、与非门等)。正是这些门实现了计算机最早的用途,当作计算器用于计算,作者用这些简单的逻辑门组成了半加器全加器,最后实现了2进制加法与减法的实现,amazing

逻辑门之后,主要讲了几种触发器,其中锁存器用于在电路中保存数据(通过有无电流01来体现),计数器是通过振荡器来实现计数功能。内存主要是通过一个译码器和选择器向锁存器中存储和获取数据。用这两个主要的继电器就可以模拟计算机加法运算,我们提前向锁存器中存好要加的几个数据在地址0001h、0002h……等,通过计数器不断累加,从第一个地址顺序获取这些数据在累加器中不断向加。不同的是内存中实际保存的是指令和数据,指令主要是表示load、add、subs tract、save、jump等从内存获取数据、保存到内存、加减法等,指令一般三个字节(第一个字节是指令本身,第二三个字节是指向数据的地址)。这些运行的都是特定处理器对应的机器码,有大神为了省事儿,研发了专门针对特定处理器对应的汇编语言和编译器。

有了处理器和内存,后面作者又陆续讲了总线(与内存、显示器、键盘相连接),操作系统。最后讲了高级语言和图形化的历史发展(虽然科普但是了解历史对理解为什么我们用现在这套东西很有帮助),高级语言就是为了屏蔽底层处理器而出现的,效率普遍比汇编语言底。到了这里才是我们这帮小年轻接触的计算机,从Cobol、c、Pascal到java到Internet出现http;图形化中的显示器矢量栅格两种模式的显示,像极了计算机图形学的画板开发(当时觉得这都是啥),跟GIS中的矢量栅格二三维数据的存储关系也很紧密;从ocr模式识别到现在流行的深度学习……你会微微一笑觉得现在风靡的AI、Big data、Cloud computing跟当时的万变不离其宗,不过是站在巨人身上迈出了一小步而已。

读完本书,你每次敲击键盘的时候就会想起你的敲击通过锁存器保存你的敲击字符对应的ASCII码、cup中断jump到指定指令地址获取通过总线传来的数据,jump到指定指令执行将数据传到显示器显示;你每次写完代码执行的时候就会响起你的数值化身为二进制数写入内存中晶体管保存了每一个010101,然后到累加器中不断通过全加器中的晶体管进行计算(在累加器、寄存器、栈、栈指针、内存中来回传递),最后得出结果保存到内存中的晶体管中;你每次在做计算机相关的操作时都会变得比以往更加清晰,细节深处不能全了然于胸但是已经比多数人总的更远,作者神奇之处就在于把计算机这么庞大的系统能够串联讲的足够顺畅,让我们纵享丝滑。

下面是自己对树结构的理解和一些笔记

读《编码-藏匿在计算机软硬件背后的语言》有感相关推荐

  1. 读《豆瓣的基础架构》有感

    豆瓣整个基础架构可以粗略的分为在线和离线两大块.在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层:应用层主要是做运算,将运算结果返回给前面的用户,DAE平台 ...

  2. 15读《算法基础》有感——决策树

    15读<算法基础>有感--决策树 学完本学期的<算法设计与分析基础>,想对"决策树"做进一步的了解,于是读了Rod Stephens<算法基础> ...

  3. simplify逆向_Simplify-SDK-一种以代码形式管理基础架构的框架。

    simplify逆向 When working with AWS services, you've got several choices to build and deploy your lambd ...

  4. View 5.1 重装上阵(4—基础架构篇)

    从底层架构方面来看,VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术,大大降低了部署桌面虚拟化所带来的IOPS风暴,同时大大降低了对于存储的压力和 ...

  5. 聊聊 Kafka: Kafka 的基础架构

    一.我与快递小哥的故事 一个很正常的一个工作日,老周正在忙着啪啪啪的敲代码,办公司好像安静的只剩敲代码的声音.突然,我的电话铃声响起了,顿时打破了这种安静. 我:喂,哪位? 快递小哥:我是顺丰快递的, ...

  6. 机器学习的中流砥柱:用于模型构建的基础架构工具有哪些?

    本文转载自公众号"读芯术"(ID:AI_Discovery) 人工智能(AI)和机器学习(ML)已然"渗透"到了各行各业,企业们期待通过机器学习基础架构平台,以 ...

  7. 数据中心基础架构 22 年演进

    01 前言 当今世界正处在信息技术(IT)创新的黄金时代.由机器学习.物联网和大规模可扩展应用支持的云计算.移动应用.大数据分析的巨大力量正在重塑商业和社会的方方面面.而这场IT复兴的中心,则是超大规 ...

  8. k86跟mysql_MySQL【基础架构】

    一.前言 平时我们使用数据库,看到的通常都是一个整体. select * from T where ID=10: 对于上述语句,我们看到的只是输入一条语句,返回一个结果,却没有关注这条语句在 MySQ ...

  9. 译 | .NET Core 基础架构进化之路(一)

    原文:Matt Mitchell 翻译:Edi Wang 随着 .NET Core 3.0 Preview 6 的推出,我们认为简要了解一下我们基础设施系统的历史以及过去一年左右所做的重大改进会很有用 ...

  10. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

最新文章

  1. Python爱好者周知:Scikit-Learn中文文档正式发布
  2. Linux之切换目录命令
  3. UCLA李婧翌:女性最不需要做的就是「怀疑自己」| 妇女节特辑
  4. kendo #数据结构 #重心分解
  5. pydroid3怎么保存_pydroid3
  6. 设计灵感|网页建议页面(联系页面)版式案例
  7. braft中AppendEntries逻辑
  8. 通过Python对商品销售数据预测
  9. Adobe软件字体导入无法显示的问题
  10. 系统分析师论文通用格式
  11. Chrome 谷歌浏览器查看网站证书
  12. git命令之git fetch的用法
  13. Windows10打印机共享无法连接到打印机:0x0000011b
  14. std::asio小记
  15. 闪电Android视频转换器,闪电Android视频转换器
  16. 拿到offer后 还应该继续去面试?
  17. Cesium实践(4)——空间数据加载
  18. 沟通技巧-《说话的力量》书中的精髓:如何说话更有力量
  19. 【Unity3D-Mirror多人坦克大战】生命盾牌物品的创建、物品动画的创建(九)
  20. 计算机系教师评学总结,信息技术教学心得3篇

热门文章

  1. css3 复合选择器,CSS复合选择器
  2. json动态生成复杂表头excel_Excel办公用品管理系统,全函数统算,图表动态展示高效轻松...
  3. vue ui没反应如何解决?
  4. 网页页面禁止用户复制源代码
  5. 通过源码理解反射与注解是什么东西?
  6. Socket通信学习(二):序列化与反序列化
  7. Open3d之计算源点云与目标云的距离
  8. android jni 机器码,NDK构建
  9. 虚函数指针(vptr)与虚函数表(vptb)
  10. xadmin实现表单验证