《计算机是怎样跑起来的》小结

版权声明:本文为博主原创文章,未经博主允许不得转载

前言:

  1. 真正的了解计算机,探索其本质,培养对技术本质的兴趣。
  2. 不要把技术当作是黑盒子。
  3. 如何学习一门学问:(1)要划出一个“知识的范围”,让精通这门学问所必知必会的知识都在这个范围内。(2)掌握这个范围内每个知识点中“基础的基础知识”。(3)以独当一面为目标,掌握了这些知识可以来做什么?
  4. 了解有关计算机技术的知识范围(本书目的)。
     

一、计算机的三大原则

1、计算机的三大根本性原则

1)计算机是执行程序(输入、运算、输出)的机器(三者一定成套出现。计算机无法自己产生数据,不运算就是电线,不输出就是个垃圾桶)

2)程序是指令和数据的集合(数据分两类—指令执行对象的输入数据、处理结果的输出数据)、(机器语言代码每个数值要么是指令要么是数据)

3)计算机的处理方式有时与人们的思维习惯不同(能力不同决定)

  • 一般编程过程,先编译再执行。编译就是把用C语言等编程语言编写的文件(源文件)转换成用机器语言(原生代码)编写的文件。
  • 计算机用数字表示所有信息。
  • 编码是信息从一种形式或格式转换为另一种形式的过程;编码(coding)是指用代码来表示各组数据资料,使其成为可利用计算机进行处理和分析的信息。代码是用来表示事物的记号,它可以用数字、字母、特殊的符号或它们之间的组合来表示。编码:为了便于计算机处理而经过数字化处理的信息。
  •  GBK字符编码一个汉字占用2个字节。UTF-8字符编码下,一个汉字占用3个字节。
  • 面向组件编程是通过将组件(程序的零件)组装到一起完成程序;面向对象编程是先如实地对现实世界的业务建模,之后再把模型搬到程序中。使用符合人类思维习惯的编程方法,可以实现高效率的开发。ps,面向过程编程就是面向解决问题的步骤(过程)进行编程。

硬件和软件

二、试着制造一台计算机吧

要彻底掌握计算机的工作原理,最好的方法就是自己搜集零件,自己组装一台微型计算机,微型计算机(MicroCom)是Micro Computer的缩写,字面含义是微小的计算机,但一般也可用于指代IC(Intergrated Circuit,集成电路)元件外露的、用于控制的计算机。

2、计算机的组成:CPU(处理器)、内存和I / O。

  1. CPU是计算机的大脑,负责解释、执行程序。
  2. 内存负责存储程序和数据。
  3. I/O是输入/输出,负责将计算机和外部设备连接在一起通信。
  • 时钟信号是为了驱动CPU运转。时钟发生器(CPU内含)中的“晶振”根据自身振动频率产生时钟信号。时钟信号的频率可以衡量CPU的运转速度。
  • 电阻(欧姆)是用于阻碍电流流动、降低电压值的元件。电容(法拉)是存储电荷的元件。
  • 1个二进制数表示的信息称作“1比特(bit)”;将8个二进制数(8比特)称作“1字节(byte)”。1byte=8bit。比特是信息的最小单位,字节是信息的基本单位。
  • 地址总线”为了指定输入输出数据时的源头或目的地。A表示地址总线引脚(Address地址)。“数据总线”为了进行数据的输入输出,传递数据。D表示数据总线引脚(Data数据)。
  • 寄存器”是位于CPU和I/O中的数据存储器。端口(Port)就是I/O与外部设备之间输入输出数据的场所。
  • 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。中断就是让CPU根据外部输入的数据执行特定的程序。
  • 总线是连接到CPU中数据引脚、地址引脚、控制引脚上的电路的统称。
  • 不经过CPU而直接从外部设备读写内存的行为叫做DMA(直接存储器访问)。DMA主要功能是传输数据,但是不需要占用CPU,即在传输数据时,CPU可以做别的事,像多线程。数据传输从外设到存储器或者从存储器到存储器。
  • CPU只能解释执行一种编程语言,那就是由二进制构成的机器语言(原生代码)。

计算机​​工作原理:CPU在时钟信号的控制下解释、执行内存中存储的程序,按照程序中的指令从内存或I/O中把数据输入到CPU中,在CPU内部进行运算,再把运算结果输出到内存或I/O中。

3、体验一次手工汇编

通过编写程序使诸位亲身体验计算机的运行机制,为了达到这个目的,就需要使用一种叫做“汇编语言”的编程语言来编写程序,然后再把编好的程序通过手工作业转换成CPU可以直接执行的机器语言。这样的转换工作叫做“手工汇编”(HandAssemble)。体验过后,应该能加深诸位对计算机的理解,不仅能因“我能看懂程序了”,而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。

  • 程序的作用是驱动硬件工作。
  • 机器语言就是只用0和1两个二进制数书写的编程语言。机器语言就是处理器CPU可以直接理解的编程语言。
  • 时钟信号的频率就是由时钟信号发生器发送给CPU的电信号频率,单位是MHz。
  • 每个地址都标识着一个内存中的数据存储单元,而这些地址所构成的范围就是内存的地址范围。
  • 只要用CPU控制I/O的寄存器,就可以设定I/O的功能,与周边设备进行数据的输入输出。
  • I/O的地址空间,是指用于指定I/O寄存器的地址范围。
  • 在内存中,每个地址的功能都一样,即可用于存储指令又可用于存储数据。而I/O则不同,地址编号不同(即寄存器的类型不同),功能也就不同。
  • 与I/O寄存器不同,CPU寄存器不仅能存储数据,还具备对数据进行运算的能力。
  • 小端序”:数据存储顺序是:低8位在前,高8位在后。“大端序”:数据存储顺序是由高位到低位。

二、知识的范围

编程

4、程序河水一样流动着

本章的主题是程序的流程,程序员一般都是先考虑程序的流程再开始编写程序的。只有编写过程序的人才能体会到“程序是流动着的”,一个人编写的程序如果不能按照预期运行,就说明他还没有很好地掌握“程序是流动着的”这一概念。作为计算机大脑的CPU在同一时刻基本上只能够解释、执行一条指令,把指令和作为指令操作对象的数据排列起来就形成了程序。

  • 流程图(Flow Chart)是指用图的形式表示程序的流程。
  • Windows应用程序的运行就是由事件驱动的。用户的操作等产生事件后,由事件决定程序的流程。
  • 计算机大脑CPU在同一时刻基本上只能解释、执行一条指令。把指令和作为指令操作对象的数据排列起来就形成了程序。CPU依次处理程序。
  • 计算机的运作方式:计算机的硬件系统有CPU、I/O和内存三部分构成。内存中存储着程序,也就是指令和数据。CPU配合着由时钟发生器发出的滴答滴答的时钟信号,从内存中读出指令,然后再依次对其进行解释和执行。
  • PC(程序计数器)寄存器,负责存储内存地址,该地址指向下一条即将执行的指令。每解释执行完一条指令,PC寄存器的值就会自动被更新为下一条指令的地址。
  • 顺序执行:是按照指令记录在内存中的先后顺序依次执行的一种流程。
  • 循环:是在程序的特定范围内反复执行若干次的一种流程。
  • 条件分支:是根据若干个条件的成立与否,在程序的流程中产生若干个分支的一种流程。
  • 程序块:就是程序中代码的集合。程序中要被处理的部分,就是一种程序块。
  • 结构化程序设计:就是为了把程序编写得具备结构性,仅使用顺序执行、条件分支和循环表示程序的流程即可,而不再使用跳转指令。
  • 算法:就是解决既定问题的步骤。想让计算机解决问题,就需要把问题的解法转换成程序的流程。
  • 思考算法两步走,先从整体上考虑程序的粗略流程,再考虑程序各个部分细节的流程。即:“初始化处理”--->“循环处理”---> “收尾处理”
  • 特殊的程序流程——中断处理和事件驱动
  • 中断处理(Interrupt是指计算机使程序的流程突然跳转到程序中的特定地方,这样的地方被称为中断处理例程(Routine)或是中断处理程序(Handler),而这种跳转是通过CPU所具备的硬件功能实现的。
  • 事件驱动机制就是:让驴拉磨,它不拉,你用鞭抽一下,它就开始拉了。然后又停了,你再抽一下,它又继续拉了这叫用“鞭”驱动“驴”拉磨。在程序里,程序停止在那不动,你点击一个按钮,它就有反应了,过一会,又没反应了,你再点一下,它又继续运行。这叫用“事件”去驱动“程序”运行简单地说就是你点什么按钮(即产生什么事件,如鼠标点击,文字改变,程序退出等),电脑执行什么操作(即调用什么函数)

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

程序是用来在计算机上实现世界中的业务和娱乐活动的,为了达到这个目的,程序员们需要结合计算机的特性,用程序来表示现实世界中对问题的处理步骤,即处理流程。在绝大多数情况下,为了达到某个目标的需要进行若干步处理,而这些处理步骤就被称为算法。

算法:Algorithm

  •   流程图解释算法,先整体后局部。
  •   辗转相除法的算法实现(多种)。
  •   哨兵:含有特殊值得数据,一般用来标识数据的结尾。
  •   只要理清楚现实世界解决问题的步骤,结合计算机的特性,创造算法。常思常想才能培养解决问题能力。

学习算法的7个要点:

要点1:算法中解决问题的步骤是明确且有限的;(与人的直觉思维形成对比)

要点2:计算机不靠直觉而是机械地解决问题;(计算机不能自发地思考)

要点3:了解并应用典型算法;(总结学习)

要点4:利用计算机的处理速度;(计算机计算速度比人快的特性)

要点5:使用编程技巧提升程序执行速度;(执行速度快才是最终目的,有些技巧比算法还有用,学习这些技巧-如哨兵)

要点6:找出数字间的规律;( 所有信息都可以表示成为数据,找出数据间的关系或者规律。)

要点7:先在纸上考虑算法,活用流程图。算法必须和数据结构一起考虑。

6、与数据结构成为好朋友的七个要点

学习数据结构的7个要点:

要点1:了解内存和变量的关系;

要点2:了解作为数据结构基础的数组;

要点3:了解数组的应用--作为典型算法的数据结构;

要点4:了解并掌握典型数据结构的类型和概念;

要点5:了解栈和队列的实现方法;

要点6:了解结构体的组成;

要点7:了解链表和二叉树的实现方法。

  • 变量是数据的容器。
  • 把若干个数据沿着直线排列起来的数据结构是数组。使用数组可以高效地处理大量的数据。数据的实质是连续分配的一块特定大小的内存空间。
  • 中数据的存取形式是LIFO(先进后出)。队列中数据存取形式是FIFO(先进先出)。
  • 程序员有必要把算法(处理问题的步骤)和数据结构(作为处理对象数据的排列形式)两者放在一起考虑。选用的算法和数据结构两者要相互匹配这一点很重要。
  • 计算机中,内存内部被分割成了若干个数据存储单元,每个单元可以存储8bit的数据。为了区分各个单元,每个单元都被分配了一个编号,这个编号就是“地址”。
  • 使用指定地址的方式编程很麻烦,故使用变量把数据存储进内存或从内存读数据。
  • 变量是程序中数据存储的最小单位,每个变量都对应着一块物理上的内存空间。
  • 数组是通过指定数据名和数组所包含的元素个数来定义数组供使用。数组实际上是为了存储多个数据而内存上集中分配出的一块内存空间,并为这块空间整体赋予了一个名字。
  • 数组是数据结构的基础。因为数组反映了内存的物理结构本身。
  • 冒泡排序:从头到尾地比较数组中每对儿相邻的元素的数值,然后反复交换较大的数值和较小的数值的位置。
  • 数组是一种直接利用内存物理结构(计算机特性)的最基本的数据结构。
名称 数据结构的特征
把数据像小山一样堆积起来。
队列 把数据排成一队。
链表 可以任意地改变数据的排列顺序。
二叉树 把数据分成两路排列。二叉树其实是链表的特殊形态。
  • 栈、队列、链表、二叉树,这些数据结构都是通过程序从逻辑上改变了内存的物理结构,即数据在内存上呈现出的连续分布状态。
  • 结构体是把若干个数据项汇集到一处并赋予其名字后所形成的一个整体。
  • 指针是存储着地址的变量。“*”是指针的标志。
  • 自我引用的结构体是引用了与自身相同的数据类型。(结构体指针)。
  • 链表中只要改变连接信息,元素就可以呈现出新顺序,不同于其在内存上的物理排列顺序。
  • 数据结构的基础都是数组,灵活地运用数组是关键

7、成为面向对象编程的程序员吧

面向对象编程(OOP,Object Oriented Programming)是一种编写程序的方法,旨在提升开发大型程序的效率,使程序易于维护。

观点1:OOP通过把组件拼装到一起构建程序;

观点2:OOP能够提升程序开发效率和可维护性;

观点3:OOP是适用于大型程序的开发方法;

观点4:OOP就是在为现实世界建模;

观点5:OOP可以借助UML设计程序;

观点6:OOP通过在对象间传递消息驱动程序;

观点7:在OOP中使用继承、封装和多态。

  • 面向对象编程(OOP,Object Oriented Programming)是一种编写程序的方法,旨在提升开发大型程序的效率,使程序易于维护。
  • 面向对象编程的方法:将关注点置于对象(Object)本身,对象的构成要素包含对象的行为及操作,以此为基础进行编程。这种方法使程序易于复用,软件的生产效率因而得以提升。其中使用的主要编程技巧有继承、封装、多态三种。
  • 在面向对象编程中,将表示事物行为的函数也放入了这个整体,这就形成了对象的概念,使得这个整体既能描述属性,又能描述行为。
  • 对象的构成要素包括对象的行为及操作,只有通过编程实践才能真正理解面向对象是什么。
  • “类”,通过把若干个类组装到一起构建一个完整的程序。从这一点来看,可以说类就是程序的组件(Component)。面向对象编程的关键在于是否灵活地运用类
  • C语言中,用“函数”表示指令,用“变量”表示数据。程序就是函数和数据的集合。
  • 面向对象编程中,把程序中有关联的函数和变量汇集到一起编成组,这里的组就是类。通常把汇集到类中的函数和变量统称为类的“成员”(Member)。
  • C语言中结构体是数据的集合,它将数据绑定在一起,使得我们可以将这些数据看作是一个整体。而在面向对象的编程中将数据的行为也放在了这个整体中,形成了对象的概念。对象既能描述属性(数据),又能描述行为。
  • 大部分的类都已内置于面向对象编程语言中(库),这些类供各个领域程序员使用。通常将像这样的一组类(一组组件)称作“类库”。
  • 对于类的使用者而言“类看起来是什么样子的”这种关于规范描述通常被称为“接口”。(就是说明类的作用)
  • 面向对象编程可以借助UML设计实现。UML   — Unified ModelingLanguage(统一建模语言)
  • UML规定了9种图,理解了UML图的作用就能从宏观上理解面向对象编程的思
  • 面向对象和传统开发的区别:在进行面向对象编程的设计时,要在一开始就把所需要的类确定下来,然后再在每个类中列举出该类应该具有的函数和变量,而不要到了后面才把零散的函数和变量组织到类中。也就是说,要一边观察作为程序参照物的现实世界,一边思考待解决的问题是由哪些事物(类)构成的。而传统的开发中,进行设计则是要先考虑程序应该由什么样功能和数据构成,然后立即确定与之对应的函数和变量。
  • 面向对象编程通过在对象间传递消息驱动程序。(对象间调用)
  • 消息传递:一个对象去调用某个对象所拥有的函数。
  • 继承(Inheritance),封装(Encapsulation)和多态(Polymorphism)被称为面向对象编程的三个基本特性。
  • 继承指的是通过继承已存在的类所拥有的成员而生成新的类。封装指的是在类所拥有的成员中,隐藏掉那些没有必要展现给该类调用者的成员。多态指的是针对同一种消息,不同的对象可以进行不同的操作。
  • 补充:封装可以隐藏实现细节,使得代码模块化,信息隐藏,继承可以扩展已存在的模块,它们目的都是为了:代码重用。而多态是为了实现另一个目的:接口重用
  • 类是对象的定义,而对象是类的实例。“类是做饼干的模具,用模具做出来的饼干是对象”。
  • 类的三种使用方法:1)仅调用类所持有的个别成员(函数和变量);2)在类的定义中包含其他的类(该法称作组合);3)通过继承已存在的类定义出新的类。
  • Jave和.NET其实是位于操作系统之上,旨在通过隐藏操作系统的复杂性从而提升开发效率的程序集,这样的程序集也被称为“框架”(Framework)。框架由两部分构成,一部分是负责安全执行程序的“执行引擎”,另一部分是作为程序组件集合的“类库”。

  • 开发环境是通过隐藏系统的复杂性从而提升开发效率的程序集(或者说是框架,框架包括执行引擎和类库)。
  • 不要把面向对象当成一门学问,它是一个工具。程序员是工程师,工程是实践活动。不要被面向对象的各种概念以及所谓的技巧所束缚住。

数据库

8、一用就会的数据库

所谓数据库(Database)就是数据(Data)的基地(Base)。计算机是一种工具,它可以执行输入、计算、输出三种操作,并可以通过这一系列的操作处理某种数据。因此可以说计算机就是处理数据的装置。因为,可以说计算机基本上就是被当作数据库来利用的,只要不是游戏程序,几乎所有的应用程序中,人们都在巧妙地运用着数据库。为了了解计算机,数据库是门必修课。

  1. 数据库是数据的基地
  2. 数据文件、DBMS和数据库应用程序
  3. 设计数据库
  4. 通过拆表和整理数据实现规范化
  5. 用主键和外键在表间建立关系
  6. 索引能够提升数据的检索速度
  7. 设计用户界面
  8. 向DBMS发送CRUD操作的SQL语句
  9. 使用数据对象向DBMS发送SQL语句
  10. 事务控制也可以交给DBMS处理

  • 数据库中(Table)就是被整理成表格形式的数据。
  • DBMS是Database Management System(数据库管理系统)的简称。
  • ”用于设定表和表之间的关系,“索引”是提升数据检索速度的机制。
  • 数据库(Database)就是数据(Data)的基地(Base)。
  • “卡片型数据库”,卡片与卡片之间缺乏关联性,不适合大规模数据存储。而“关系型数据库”中,数据被拆分整理到多张表中,同时表与表之间的关系也可以被记录下来。
  • 数据库的实质虽然是某种数据文件,但是编写得应用程序并不是直接去读写这些数据文件,而是DBMS作为中介间接地读写。DBMS不但可以使应用程序轻松地读写数据文件,而且还具有一致并且安全地存储数据的功能。
  • 数据库系统分为:“独立型系统”,“文件共享型系统”,“客户端/服务器系统”,“Web系统”
  • 在关系型数据库中,把录入到表中的每一行数据都称为记录(,把构成一条记录中的各个数据项所在的列都称作字段(。记录有时候也被称为行或元组,字段有时也被称为列或属性。
  • 规范化,就是将一张大表分割成多张小表,然后再在小表之间建立关系,以此来达到整理数据库结构的目的。
  • 规范化的要点是在一个数据库中要避免重复存储相同的数据。
  • 为了在表间建立关系,加入能反映表与表之间关系的字段,所添加的新字段就被称为(Key)。
  • 首先在表中加入“主键”(Primary Key),该字段的值能够唯一地标识表中的一条记录。而其他的字段都是“外键”(Foreign Key)。主键既可以只由一个字段充当,也可以将多个字段组合在一起形成复合主键。
  • 通过加入“连接表”,把多对多关系分解成两个一对多关系,实现多对多的关系。
  • 索引仅仅是提升数据检索和排序速度的内部机制。一旦在字段上设置了索引,DBMS就会自动为这个字段创建索引表。
  • 索引表是一种数据结构,存储这字段的值以及字段对应记录的位置。“索引==目录”。每次向表插入数据,DBMS都必须更新索引表。只有频繁的进行检索和排序的字段才需设置索引,因为加入索引会降低插入或更新数据的速度。
  • 只要通过拆表实现了规范化、设置了主键和外键、确保没有多对多关系、根据需要设置了参照完整性和索引,那么数据库的设计就告一段落了。
  • 数据库设计完成,为了利用数据库中的数据需要编写数据库应用程序。设计一个带用户界面的能操作其中数据的应用程序就很方便了。设计系统的重要顺序是:优先设计数据库,然后再设计用户界面。
  • 对数据库的操作称为CRUD。即:记录的插入(CREATE)、获取(REFER)、更新(UPDATE)、删除(DELETE)。
  • 为了对数据库进行CRUD操作,就必须从应用程序向DBMS发送命令。这里使用的命令就是SQL语言(Structural Query Language,结构化查询语言)。一旦向DBMS发送了一条命令(SQL语句),与此相应的操作就会立刻被执行。
  • 事务由若干条SQL语句构成,表示对数据库一系列相关操作的集合。

网络

9、通过七个简单的实验理解TCP/IP网络

通常,人们把通过连接多台计算机所组成的、可用于交换信息的系统称为“网络”(Network)。互联网作为网络的一种,可以使我们计算机和远在千里之外的计算机连接在一起,而用于把全世界的计算机彼此相连的网线已然交织成了一张网。因为信息可以以电信号的形成在网线中传播,所以计算机彼此之间就能进行信息交换。但为了交换信息,还必须在发送者和接收者之间事先确定发送方式,这种对信息发送方式的规定或约束就称为“协议”(Protocol)。小到公司内部网络,大到互联网,TCP/IP(Transmission Control Protocol/Internet Protocol)协议已然成为了现行的标准。

  • 实验环境
  • 实验1:查看网卡的MAC地址

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

  • 实验3:了解DHCP服务器的作用

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

  • 实验5:查看路由器的路由过程

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

  • 实验7:查看IP地址和MAC地址的对应关系

  • TCP的作用及TCP/IP网络的层级模型
  • LAN是Local Area Network(局域网)的缩写。部署在办公室内的小规模网络。WAN是企业与企业联结起来的大规模网络
  • TCP/IP是Transmission Control Protocol/Internet Protocol(传输控制协议和网络协议)的缩写。
  • MAC地址就是能够标识网卡的(NIC)编号。MAC地址是由制造商的编号和产品编号两部分组成的,所以世界上的每一个MAC地址都是独一无二的。
  • “集线器”(Hub)是负责把各台计算机的网线相互连接在一起的集线设备。
  • “路由器”(Router)是转发数据,负责把公司内的网络和互联网连接起来的设备。路由器负责将LAN连接到WAN上。
  • CSMA/CD(带冲突检测的载波监听多路访问)。所谓载波监听(Carrier Sense),指的是这套机制会去监听表示网络是否正在使用电信号。多路复用(Multiple Access)指的是多个设备可以同时访问传输介质。带冲突检测(with Collision Detection),表示这套机制会检测因同一时刻的传输而导致的电信号冲突。这种机制要先确保没有人占用网络,然后才能发送想传输的电信号,谁先抢到了网络的使用权,谁先发送。CSMA/CD只是一种适用于LAN的机制。
  • 在TCP/IP网络中,除了硬件上的MAC地址,还需要为每台计算机设定一个软件上的编号。这个编号就是IP地址。在传输数据时都会携带MAC地址和IP地址两个地址。
  • IP地址由网络地址主机地址组成。
  • “子网掩码”的作用是标识在32比特的IP地址中,从哪一位到哪一位是网络地址,从哪一位到哪一位是主机地址。
  • DHCP(动态主机设置协议)是自动设置IP地址和子网掩码,统一管理IP地址分配
  • “路由器”,是决定数据传输路径的设备。其工作原理就是查看附加到数据上的IP地址中的网络地址部分,若发现数据不是发送给LAN内计算机,就把它发送到LAN外,即互联网世界中。
  • “路由表”,用来记录数据转发到哪里。在一台路由器的路由表中,只会记录通往与之相邻的路由器的路径,而不会记录世界范围内的所有传输路径。
  • DNS(域名系统)可以将主机名(域名)解析为IP地址。
  • ARP(地址解析协议)用于实现IP地址到MAC地址的转换。
  • IP协议”用于指定数据发送目的地的IP地址以及通过路由器转发数据。
  • TCP协议”用于通过数据发送者和接收者相互回应对方发来的确认信号,可靠地传输数据。把这张传输方式称为“握手”(Handshake)。
  • TCP协议中规定,发送者要先把原始的大数据分割成以“包”(Packet)为单位的数据单元,然后再发送,而接受者要把收到的包拼装在一起还原出原始数据。TCP协议中用“TCP端口号”的数字来是被上层的应用程序。
MAC信息 IP信息 TCP信息          数据   错误检查信息

10、试着加密数据吧

对于公司内部网络而言,由于只是将员工的电脑彼此相连,可能就不太需要对其间传输的数据进行加密。但在互联网中,由于它联结的是全世界范围的企业和个人,所以会面临很多需要对数据进行加密处理的情况。举例来说,在网购时用户输入的信用卡卡号,就是应该被加密传输的代表性数据。假设卡号未经加密就被发送出去,那么就会面临卡号被同样接入互联网的某人盗取,信用卡被其用来肆意购物的危险。因为像这种网店页面的URL,通常都是https://开头,表示数据正在使用加密的方式进行传输。

  • 什么是加密
  • 错开字符编码的加密方式
  • 密钥越长,解密越困难
  • 适用于互联网的公开密钥加密技术
  • 数字签名可以证明数据的发送者是谁

11、XML究竟是什么

XML是eXtensible Markup Language的缩写,译为可扩展标记语言。只有在像互联网那样的环境中,运行在不同机器中的不同应用程序相互连接,XML才会大有作为。在分布式计算中,如果由不同种类的机器互联组成的系统,那么使用基于XML的SOAP才有意义。反之如果环境中的机器和应用程序全部来自同一厂商,那么使用厂商自定义的格式而并非XML的格式,反而可以更加快捷的处理信息。XML是通用的,但不是万能的。

  • XML是标记语言
  • XML是可扩展的语言
  • XML是元语言
  • XML可以为信息赋予意义
  • XML是通用的数据交换格式
  • 可以为XML标签设定命名空间
  • 可以严格地定义XML的文档
  • 用于解析XML的组件
  • XML可用于各种各样的领域

三、目标

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

SE(System Engineer,系统工程师),负责构建计算机系统。SE的地位比程序员的高吗?不一定,想当一辈子程序员也很好,但要立志成为计算机行业的专家,就不能仅仅关注技术。虽然有懂技术又懂计算机确实让人感到兴奋,但如果只是这样的话,早晚有一天工作就会变得没那么有意义了。有些人在30左右就会选择离开计算机行业,不是因为他们追赶不上技术前进的步伐,而是因为他们感到工作变得无聊了。专家也好普通人也罢,只有为社会作出贡献才能有成就感,才会觉得工作有意义。

  • SE是自始至终参与系统开发过程的工程师
  • SE未必担任过程序员
  • 系统开发过程的规范
  • 各个阶段的工作内容及文档
  • 所谓设计,就是拆解
  • 面向对象法简化了系统维护工作
  • 技术能力和沟通能力
  • IT不等于引进计算机
  • 计算机系统的成功与失败
  • 大幅度提升设备利用率的多机备份

总结能够很好的系统的重新认识计算机,以前知道会用,但是不了解它的基本原理;读完此书后,能全面的了解计算机,包括它的实现逻辑,及运用场景等。印象最深刻的是关于网络和和数据加密这块,让我明白了什么是MAC地址、IP地址、子网掩码,以及RSA加密和MD5加密,有一种恍然大悟的感觉。

参考1:https://blog.csdn.net/qifu_8/article/details/51684590

参考2:https://blog.csdn.net/fly19951216/article/details/52892588

发布了21 篇原创文章 · 获赞 16 · 访问量 8356

猜你喜欢

转载自blog.csdn.net/rentan0930/article/details/89675048