《计算机是怎样跑起来的》阅读笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MiMicoa/article/details/82780730

前言

  • 其实不仅是计算机,其他学问亦是如此。首先要划出一个“知识的范围”,精通一门学问所必知必会的知识都在这个范围内。其次是掌握该范围内每个知识点中“基础中的基础知识”。最后是能独当一面的“目标”,即掌握了这些知识可以做什么。

第1章 计算机的三大原则

1.3 软件是指令和数据的集合

  • 无论是哪个程序,其内容都是数值的罗列,每个数值要么是指令,要么是数据。

1.5 只要理解了三大原则,即使遇到难懂的最新技术,也能轻松应对

  • 所谓计算机的协同工作指的是,输入到一台计算机中的数据,可以通过互联网传送到与这台计算机相连的其他计算机上执行运算,运算所输出的结果再返回给这台计算机。像这样部署在其他计算机上能执行某种运算的程序就叫作XML Web服务。

第3章 体验一次手工汇编

3.1 从程序员的角度看硬件

  • 然而真正需要了解的硬件信息只有以下7种(如图3.1所示),所以没有必要在编程时还总是盯着详细的电路图看。

  • 即便是相同的机器语言,例如01010011,只要CPU的种类不同,对它的解释也就不同。

3.3 Z80 CPU的寄存器结构

  • 既然数据的运算是在CPU中进行的,那么在CPU内部就应该有存储数据的地方。这种存储数据的地方叫作“寄存器”。

  • PC寄存器也叫作“程序指针”,存储着指向CPU接下来要执行的指令的地址。PC寄存器的值会随着滴答滴答的时钟信号自动更新,可以说程序就是依靠不断变化的PC寄存器的值运行起来的。

第4章 程序像河水一样流动着

4.4 结构化程序设计

  • 简单地说,所谓结构化程序设计就是“为了把程序编写得具备结构性,仅使用顺序执行、条件分支和循环表示程序的流程即可,而不再使用跳转指令”。

  • 但是即使使用了结构化异常处理,在硬件上使用的也还是跳转指令,只是说在高级语言中不用再写相当于跳转指令的语句了。如果把用高级语言所编写的程序转换成机器语言,像结构化异常处理这样的语句还是会被转换为跳转指令。

4.5 画流程图来思考算法

  • 所谓算法(Algorithm),就是解决既定问题的步骤。想让计算机解决问题,就需要把问题的解法转换成程序的流程。

4.6 特殊的程序流程——中断处理

  • 像这样由于外部的原因使正常的流程中断,中断后再返回到之前流程的过程就是中断处理流程。

4.7 特殊的程序流程——事件驱动

  • 通常把用户在应用程序中点击鼠标或者敲击键盘这样的操作称作“事件”(Event)。负责检测事件的是Windows。Windows通过调用应用程序的WndProc()函数通知应用程序事件的发生。而应用程序则根据事件的类型做出相应的处理。这种机制就是事件驱动。可以说事件驱动也是一种特殊的条件分支,它以从Windows送来的通知为条件,根据通知的内容决定程序下一步的流程。

第5章 与算法成为好朋友的七个要点

5.2 要点1:算法中解决问题的步骤是明确且有限的

  • 而且请诸位注意这样一个条件,那就是“步骤必须是明确的并且步骤数必须是有限的”。

第7章 面向对象编程

7.8 观点6:面向对象编程通过在对象间传递消息驱动程序

  • 在时序图中,把用矩形表示的对象横向排列,从上往下表示时间的流逝,用箭头表示对象间的消息传递(即程序上的函数调用)。

第8章 数据库

8.4 通过拆表和整理数据实现规范化

  • 规范化的要点是在一个数据库中要避免重复存储相同的数据。

8.5 用主键和外键在表间建立关系

  • 当出现多对多关系时,可以在这两张表之间再加入一张表,把多对多关系分解成两个一对多关系(如图8.10所示)。加入的这张表被称作连接表(Link Table)。

8.7 设计用户界面

  • 只要通过拆表实现了规范化、设置了主键和外键、确保没有多对多关系、根据需要设置了参照完整性和索引,那么数据库的设计就告一段落了。

8.9 使用数据对象向DBMS发送SQL语句

  • 在Windows应用程序中,向DBMS发送SQL语句时,一般情况下使用的都是被称为数据对象(Data Object)的软件组件(参考第7章所介绍的类)。

第9章 TCP/IP 协议

9.2 实验1:查看网卡的MAC地址

  • 以太网中的每台计算机都需要先确认一件事:在网线上有没有其他的计算机正在传输电信号,也就是说要先确保没有人在占用网络,然后才能发送自己想传输的电信号。谁先抢到了网线的使用权,谁就先发送。万一遇到了多台计算机同时都想发送电信号的情况,只需要让这些计算机等待一段长度随机的时间后再重新发送相同的电信号即可。

  • 在每一块网卡所带有的ROM(Read Only Memory,只读存储器)中,都预先烧录了一个唯一的MAC地址。网卡的制造厂商负责确定这个MAC地址是什么。因为MAC地址是由制造厂商的编号和产品编号两部分组成的,所以世界上的每一个MAC地址都是独一无二的。

9.3 实验2:查看计算机的IP地址

  • 通常把设定了IP地址的计算机称为“主机”(Host)。因为路由器也算是计算机的一种,所以它们也有IP地址。在TCP/IP网络中,传输的数据都会携带MAC地址和IP地址两个地址。

  • 子网掩码中,值为1的那些位对应着IP地址中的网络地址,后面值为0的那些位则对应着主机地址。因此255.255.255.240这个子网掩码就表示,其所对应的IP地址前28比特是网络地址,后4比特是主机地址。

9.5 实验4:路由器是数据传输过程中的指路人

  • 分布在世界各地的LAN中的路由器相互交换着信息,互联网正是由于这种信息的交换才得以联通。这种信息被称作“路由表”,用来记录应该把数据转发到哪里。

9.7 实验6:DNS服务器可以把主机名解析成IP地址

  • 诸位的计算机都有一个主机名,每个LAN也都有一个域名。举例来说,笔者所使用的计算机的主机名是ma50j(源于这台计算机的型号),所在的LAN的域名是yzw.co.jp把主机名和域名组合起来所形成的ma50j.yze.co.jp,就是能够标识笔者这台计算机的一个世界范围内独一无二的名字,这个名字与IP地址的作用是等价的。通常把这种由主机名和域名组合起来形成的名字称作FQDN(Fully Qualified Domain Name,完整限定域名)。

第11章 XML究竟是什么

  • 通常把用于定义新语言的语言称作元语言。通过使用XML可以定义出各种各样的新语言。

11.1 XML是标记语言

  • 通常把通过添加标签为数据赋予意义的行为称为“标记”。为这种给数据赋予意义的行为定义规则的语言就是“标记语言”。HTML是用于编写网页的标记语言,更简单地说法就是HTML决定了可用于编写网页的标签。

11.2 XML是可扩展的语言

  • XML本身并不会限定标签的种类,反倒是允许XML的使用者随心所欲地创建标签。也就是说,在“<”和“>”中的单词可以是任意的。这就是所谓的“可扩展”。

11.3 XML是元语言

  • XML并没有限定标签的使用方式,使用什么样的标签都可以。可以说XML仅仅限定了进行标记时标签的书写格式(书写风格)。也就是说通过定义要使用的标签种类,就可以创造出一门新的标记语言。通常把这种用于创造语言的语言称作“元语言”。

11.4 XML可以为信息赋予意义

  • 也就是说,XML的主要用途是为在互联网上交换的信息赋予意义(如图11.9所示)。当然,在互联网以外的场景也可以使用XML。只不过在XML诞生的过程中互联网一直伴随其左右。

11.9 XML可用于各种各样的领域

  • SOAP(Simple Object Access Protocol,简单对象访问协议)可用于分布式计算。所谓分布式计算,就是把程序分散部署在用网络连接起来的多台计算机上,使这些计算机相互协作,充分发挥计算机整体的计算能力。简单地说,SOAP就是使运行在A公司计算机中的A程序,可以调用运行在B公司计算机中的B程序。

第12章 SE负责监管计算机系统的构建

12.3 系统开发过程的规范

  • 在瀑布模型中,每完成一个阶段,都要书写文档(报告)并进行审核。进行审核时还需要召开会议,在会上由SE为开发团队的成员、上司以及客户讲解文档的内容。若审核通过了,就可以从上司或客户那里得到批准,继续进入后续的开发阶段。若审核没有通过,则不能进入后续的阶段。一旦进入了后续的阶段,就不能回退到之前的阶段。为了避免回退到上一阶段,一是要力求完美地完成每一个阶段的工作,二是要彻底地执行审核过程,这些就是瀑布模型的特征。

12.7 技术能力和沟通能力

  • 正如之前讲解的那样,SE所要具备的能力是多种多样的。这些能力大体上可以分为两类——技术能力(Technical Skill)和沟通能力(Communication Skill)。所谓技术能力,是指灵活运用硬件、软件、网络、数据库等技术的能力。而所谓沟通能力,是指和他人交换信息的能力,而且这里要求的是双向的信息交换能力。一个方向是从客户到SE,即SE倾听客户等的需求;另一个方向是从SE到客户,即SE向客户等人传达信息。

12.10 大幅提升设备利用率的多机备份

  • 专家也好普通人也罢,只有为社会做出了贡献才能有成就感,才会觉得工作有意义。可能有人会觉得“这么说来,即使是程序员,只要能意识到自己也是在为社会做贡献不就好了吗?”能这样想就对了!SE也好程序员也罢,所有和计算机相关的工程师都要有这样一种意识:我们要让计算机技术服务于社会。如果能有这样的决心,就应该能作为一生的事业和计算机愉快地相处下去了吧。

阅读感受

★★★☆☆
语言组织上通俗易懂是个亮点,但内容相对有点老旧,作为基础的入门材料可以看看。

版权信息

书名:计算机是怎样跑起来的
作者:[日]矢泽久雄
译者:胡屹
出版社:人民邮电出版社
出版时间:2015-05


以上就是本文的全部内容,如果您喜欢这篇文章,欢迎将它分享给朋友们。

感谢您的阅读,祝您生活愉快!

作者:小美哥
2018-09-20

猜你喜欢

转载自blog.csdn.net/MiMicoa/article/details/82780730