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

读《计算机是怎样跑起来的》体会

缘起

该书是对着初学者从原理开始娓娓道来,因此感觉既可以对以往不稳固的根基夯实,其次由这本小书缘起,正式进入CS的世界,为接下来的计组打基础,在此记录有感,对于及其基础的就一带而过。

第二章(计算机硬件)

接上:
计算机的三大原则:

  1. 计算机是执行输入、运算、输出的机器
  2. 程序是指令和数据的集合
  3. 计算机的处理方式有时与人们的思维习惯不同
    组成:
  4. 硬件的基础:输入,运算,输出
  5. 软件是指令和数据的集合

计算机硬件组成

制作微型计算机需要:CPU,内存,I/O

CPU 是计算机的大脑,负责解释、执行程序。内存负责存储程 序和数据。I/O 是 Input/Output(输入/输出)的缩写,负责将计算机和 外部设备(周边设备)连接在一起。

微型计算机的电路图

请添加图片描述
Z80 CPU:该电脑的CPU
TC5517 :内存
Z80 PIO :I/O

TC5517 是可以存储 2K 的 8 比特数据的内存。在计算机的世 界里,K 表示 210 = 1024。TC5517 的容量是 8 比特 ×2×1024 = 16384 比特, 即 2K 字节。

辅助元件:

  1. 发出“时钟信号”的电信号——时钟发生器
  2. 指拨开关

电路图读法:

  1. 判断电路交叉时是否构成通路:
    在这里插入图片描述
    数IC的引脚:按逆时针方向依次带有一个从1开始递增的序号。
    在这里插入图片描述

然后开始连接电源、数据、和地址总线
连接I/O,
连接时钟信号
连接用于区分读写对象是内存还是I/O的引脚
连接剩余的控制引脚
连接外部设备,通过DMA输入程序
连接用于输入输出的外部设备
最后测试程序并进行调试。

第三章(汇编)

(空)待后续学完汇编来补坑

第六章(数据结构)

数据结构基础

6.1-6.2,从IC开始介绍了内存,变量,以及为什么引入数组

典型数据结构

再到算法简化的过程——四大基础:栈、队列、链表、二叉树:


  1. LIFO
    使用数组、栈顶指针、入栈,出栈函数实现栈
  2. 队列(四个元素)
    FIFO
    一个数组,两个变量(用于存放排在队头、队尾的数据对应索引)
    两个函数(存取数据,从队列提出数据)
  3. 链表
    为处理大量数据,链表非常合适,对数据的处理只需要改变结构体内的指针的指向值。
  4. 二叉树
    多用于搜索数据的算法

第七章(面向对象编程——OOP)

面向对象的由来

为了提高开发效率,便于维护代码,一种新的编程方法就被发明出来了,即把程序中有关联的函数和变量汇集到一起编成组。这里的组就是类。把若干类组装到一起就可以构建一个完整的程序,使之后的维护与应用也只需要修改或改装对应的模块即可。因此更加适用于开发大型程序。
接口
即对于类的使用规则这种关于规范的描述称为接口,不同的语言会有对应定义接口的语法。
总之,面向对象编程就是把类似人脑的直觉带给了电脑,创造了一种顺应人类思维的开发方法。
为现实世界建模
即满足“组件化”和“省略化”。

借助UML设计程序

UML(统一建模语言(Unified Modeling Language)是一种面向对象的建模语言,它可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言。)
分为九种图:
Figure1

通过在对象间传递消息驱动程序

由此出现面向对象与面向过程的区别:
面向过程是步骤型,因此用“流程图”表现。
而面向过程可以用“时序图”和“协作图”表示
Figure2

使用继承、封装、多态

继承指的是通过继承已存在的类所拥有的成员而生成新的类。封 装指的是在类所拥有的成员中,隐藏掉那些没有必要展现给该类调用 者的成员。多态指的是针对同一种消息,不同的对象可以进行不同的 操作。

继承、封装、多态优点:
继承、封装、多态优点
类是对象的定义,对象是类的实例

第八章(数据库(Database)初识)

链接在此:数据库(Database)初识

Java与C的优劣与推荐

在实际项目开发中使用的 是 Java,企业也希望新员工被分配 到岗后就可以立刻用 Java 开始编写 程序:
Java 是一种在屏蔽了计算机 构造的框架中使用的编程语言。 虽然使用了 Java 就可以进行面向 对象编程,但这却是一种不用考 虑计算机底层状况的编程方法。 只要使用了 Java 提供的类库(代 码的集合),不需要考虑算法和数 据结构就能解决问题。举例来说, Java 的程序员在使用栈这种数据 结构时,只需要调用类名为 Stack 的类就可以轻易地实现功能,因 为该类为程序员提供了栈结构本 身以及入栈(Push)和出栈(Pop) 方法。程序员完全可以无视栈顶 指针 A 的存在。
因此先精通 C 语言再学习 Java 语言比较好
C 语言。因为它既能够使 程序员感知到计算机的构造,又迫 使程序员殚精竭虑地去思考如何才 能亲手实现算法和数据结构。
以 C 语 言 为 基 础 发 展 出 了 C++ 语言,而 Java 又是以 C++ 为 基础开发出的编程语言。如果精通 了 C 语言,不但能够理解 Java 的 优点(高效开发和易于维护),而 且能够平滑地过渡到 Java 的语法 结构上。虽然在新人培训上也是 有时间限制的,但正所谓欲速则 不达。笔者总觉得通过花费与培 养一个 Java 程序员相同的时间, 是可以培养出一个熟练掌握 C 语 言的程序员的。然而对于后者, 他的经验在 Java 上也是可以发挥 作用的。

第九章(TCP/IP网络)

链接此处细解:TCP/IP初识

第十章(加密数据)

问题引入:

在数字签名中使用的信息摘要是什么?
回答:信息摘要是指从作为数字签名对象的文件整体中计
算出的数值。
解释:
对比由文件整体计算出的信息摘要,可以证明文件的 内容有没有被篡改。加密处理过的信息摘要就是数字签名。

注:以 https:// 开头,表示数据正在使用加密的方式进行传输。(第一次听说!)
本节以VBS语言为基础(在记事本上操作即可)

加密(对象仅限于文本)

  1. 字符集:字符集分为 ASCII 字符集、JIS 字 符集、Shift-JIS 字符集,EUC 字符集、Unicode字符集等若干种。
    例如ASCII中:“A——Z”对应“65——90”
  2. 加密:将明文转化成密文;
  3. 解密:将密文转化成明文。
  4. 加密方式——(对称密钥加密技术):
    错开加密法、
    XOR运算加密。(eXclusive OR,逻辑异或运算)

用 XOR 运算加密后的密文,可以 通过相同的 XOR 运算解密。也就是说,一个程序既可用于加密又可用 于解密,很方便。
在这里插入图片描述
。。。。

  1. 密钥越长,解密越困难。

互联网的公开密钥加密技术

概念:
在公开密钥加密技术中,用于加密的密钥可以公开给全世界,因 此称为“公钥”,而用于解密的密钥是只有自己才知道的秘密,因此称 为“私钥”。
图解:
在这里插入图片描述

广泛运用的RSA算法:
注:无论 是公钥还是私钥都包含着两个数值,两个数值组成的数对儿才是一个 完整的密钥。
即:用公钥加密,私钥解密。
在这里插入图片描述

数字签名

数字签名可以证明数据的发送者是谁。 (使用私钥进行加密、使用公钥进行解密) 在实际中计算数字签名时,使用的是通过更加
复杂的公式计算得出的、被称作 MD5(Message Digest5)的信息摘要。 由于 MD5
经过了精心的设计,所以使得两段明文即使只有略微的差 异,计算后也能得出不同的信息摘要。

第十一章(XML——Extensible Markup Language(可扩展标记语言))

链接此处传送:XML初识

系统开发过程——瀑布模型

规范中:瀑布模型要进行7个阶段的开发:(记得在计算机导论中有所涉及)
在这里插入图片描述
因此,设计就是拆解
对于一个软件的开发,就是从需求分析到程序设计,不断的拆解业务,从编码实现到部署、维护阶段,所进行的工作则是集成,把 拆解后的细小要素转换成程序的模块,再把这些模块拼装在一起构成计算机系统。

过程:
先根据每个要素的设计图制成小零件(程序中 的模块),待每个小零件的测试(单元测试)都通过了,剩下的就只是 一边看着整体的设计图,一边把这些零件组装起来了。然后再来一轮测试(集成测试),测试组装起来的零件是否能正确地协作运转。大型 的计算机系统就是这样构建出来的

列出几个具有代表性的程序设计方法:
在这里插入图片描述
可以发现:面向对象法确实有效简化了系统维护工作。

个人总结感悟:

看完全书,从一开始在第二三章的迷惑不解到四五六章的熟悉再到后六章新知识的学习,这本书可以说用浅显易懂的语言加上生动的图解方法把计算机的流程从硬件到内在给大致全面解释,使初学者明白了自己要学什么,以后要做什么,可以说给我的启发很多。可以说是真真正正的入门书。
第一、二、三章
从原则到硬件构成到汇编基础,将微型计算机最底层的东西浅显易懂的解释,通过动手操作,对电路图有了更好的了解。
第四-七章
就是计算机科班出身的专业内容,虽然不深,但也有了大致方向,知道了可以用流程图画出逻辑,用算法和数据结构来简化时间,用面向对象编程来提高编程及后续维护的效率。可以说都是编程的知识。
第八-十一章
数据库,TCP/IP,加密,XML
每一个都是一部巨著,但作者通过极高的技术经验凝练成短短数十页给初学者有了一个初次正确认识他们的渠道,好像是播下了一颗种子,至于后续的生根发芽就需要我们不断地汲取养分向更深处探索。
到了最后一章更是经典,从SE开始,以过来人的语气徐徐介绍了一个项目是如何建立并实现的。对计算机这门行业有了更深的体会。
可以当作闲书的汲取养分是再美好不过的事了。有了这个种子,以后继续掌握里面的专业术语也就有了兴趣和信心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值