1.2 计算机的发展
  1. 什么是 计算机系统

计算机系统 = 硬件 + 软件

硬件:计算机的实体部分,比如说 主机,外设,显卡 这些。(计算机的身体)

软件:由具有各类特殊 功能 的程序组成,比如说 操作系统,管理程序软件,应用程序软件 等等。(计算机的灵魂)有些时候,软件可以决定 发挥硬件 性能的多少

计算机性能的好坏 取决于 "软"、"硬" 的结合。比如说:我们知道 安卓手机 大多数都比 苹果手机硬件好,但是 苹果手机可以 通过 自家的IOS操作系统,和应用软件 达到 甚至比 安卓手机 更好的体验。


  1. 软件的大致分类

软件:大致可分为 系统软件 应用软件

系统软件:用来管理整个计算机系统,起着非常非常重要的作用,我们现如今写的程序,都要运行在 操作系统这样的 一个 平台上。(甚至是 如果没有操作系统帮我们 去完成 诸多的操作,现在的 程序员 工作 也并不会好做!而且 高级语言 甚至也不会诞生!)

操作系统 DBMS 数据库管理系统(比如 MySQL) 标准的程序库(编程时需要用到的) 网络软件 语言处理程序(就是高级语言翻译成汇编或机器语言) 服务程序(代码调试就是服务程序)

应用软件:按任务 需要编制成的 各种程序。(一般都是由一序列,一堆 指令组成的集合体 )

爱奇艺 网易云音乐 快手 b站 LOL(当然游戏也算是应用软件)


1.2.1 硬件的发展
  1. 第一台电子数字计算机:ENIAC(1946)埃尼亚克

计算机组成原理 02 计算机的发展_编程语言
占地面积约 170 平方米,耗电量 150 千瓦,运算速度 5000次 加法/秒 (在那个时代,计算机还主要是用来进行 加减乘除 计算的呢。所以 当然以 加法计算的速度来 衡量性能。)

该项目 在研发的时候,请了一个 资深的顾问:冯诺依曼

这台计算机采用的 逻辑元件 是 "电子管"。

所谓逻辑元件,就是 处理电信号 的最小的 元器件,在当时,电子管 算是最小的了。所以 我们 需要用 很多很多的 这东西 来进行组装 变成计算机。

计算机组成原理 02 计算机的发展_程序猿_02
在当时,其实也存在 "程序猿" 这样的生物,但是 他们要进行 编程的话,就需要 用 类似于 打孔机的东西,一个 0 一个 1 的 弄。也就是我们 说的 "机器语言" 因为 那个 时候 是 第一代计算机,所以你要编程的话,也是很原生态的。

  1. 晶体管计算机

晶体管的体积要比 电子管小的多。计算机组成原理 02 计算机的发展_程序猿_03
也因此,我们可以 用更多的晶体管 去组成 计算机。这一样的话 计算机 就变得 更加的 完善,复杂。为了让其 拥有 各种功能,我们在那个年代,引入了 第一个 面向过程的编程语言 "FORTRAN" 而且 操作系统也有了 雏形。(如果计算机 比以前更能实现逻辑化,为什么不让它自力更生呢?这是当时的一个想法,当然也持续至今。计算机组成原理 02 计算机的发展_程序猿_04

  1. 中小规模集成电路

把元器件缩的更小,然后 放在一起,集成在 一个 基片上。这样 即保证了 小巧,又保证了 安全性。不用再去自己 手动的 焊接。
计算机组成原理 02 计算机的发展_应用软件_05
从此,计算机主要用于 科学计算等专业用途

也因此,高级语言 迅速的发展了起来。随着高级语言的发展,操作系统 也越来越 显著,在那时 已经 从所谓的 雏形,变成了 发版,可以供 我们使用。

  1. 大规模、超大规模集成电路

由于 更加的 小,而且 集成的 基片 也很小了。也就代表着 可以有 更多的 组合,更多的可能性。更多的逻辑处理,数据处理,等等 各种东西 快速的 发展。
计算机组成原理 02 计算机的发展_高级语言_06
计算机组成原理 02 计算机的发展_高级语言_07
也从这个阶段开始,计算机 步入了 人类的生活。我们终于 有了 "个人计算机"

而用于 考虑到 人性化,有几个操作系统 也脱颖而出了。比如:Windows MacOS Linux . . .


1.2.2 微处理器的发展

首先要先了解一下 机器字长:机器字长指的是,计算机在进行一次 整数运算 所能处理的二进制位数。

如果机器字长 比较大,就可以 对 复杂的运算,只进行 一次!如果 机器字长 小,就要进行 多次的运算。而 计算的次数,也决定了 性能!

计算机组成原理 02 计算机的发展_程序猿_08

计算机组成原理 02 计算机的发展_计算机组成原理_09

摩尔这个人 不仅 创立了 Intel 而且还提出了 "摩尔定律"

计算机组成原理 02 计算机的发展_应用软件_10
注意: 他只是为了 揭示了信息技术进步的速度(即一个 在当时发展速度的预言,而不是说明 这个 定律会一直有效!或一定有效!)

集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍

由于 确实硬件在这样的定律下 发展,也导致了 业界的一句话:"加量不加价!" 如果你在现在 花2000元买的电子设备,再在两年后 同样买的 电子设备,不仅比你当初买的 先进,性能高,小巧。而且 价格 还可能 比 2000 元要低一些。。

存储器 其实也 符合 摩尔定律哟 ~ (毕竟都是电子器件嘛)
计算机组成原理 02 计算机的发展_高级语言_11
不过一定要注意的是,现在 好像这个 定律 已经被撼动了。似乎 不成立了呢。(毕竟 只是 摩尔 当初为了 揭示了信息技术进步的速度 随意提的这么一嘴罢了。

1.2.3 软件的发展

说到 软件发展,那就肯定 要从 编程语言 说起。

如果没有编程语言,那么 计算机 也不会 有真正意义的软件!!

计算机组成原理 02 计算机的发展_程序猿_12

说起 第一代 编程语言,和第二代,就是一把辛酸泪。

第一代编程语言,由于 其不好记,而且还复杂。每个 CPU 架构都有自己的 二进制代码。这就使得 当初 基本 没有 程序猿。至少 只有 一些科学家 兼职着 程序猿的工作。

后来的第二代,也就是 汇编语言,通过 英文单词这样的 助记符,翻译成 对应的 二进制代码,可以使得 开发的效率提高,难度大大下降。变得 可以 让人们接受。这才 让 一些 普通人,开始接触了 编程 这个东西,我国著名的第一代程序猿之一 雷军 就是从 汇编语言 开始学起的。

但是 我们知道 汇编语言 只不过是 对 二进制代码 进行了一下 翻译的工作。实际上 对于 不同的 CPU 架构 你写的 代码 还是 会 出现各种 异常。即 在什么 硬件上编写的程序,就必须在 该硬件上运行!

这也代表着,注定着 在那个时期,不可能产生 多少软件。(编写极难,完全没有可移植性这个概念

计算机组成原理 02 计算机的发展_应用软件_13

后来 出现了 第二代语言,就是我们说的 "高级语言"

这些语言,解决了两个问题。

第一个就是 编写的难度,这些语言,完全把 二进制代码,变成了 我们 人类能够 读懂的 英文,甚至还具有 独特的 易于理解的 语法结构。

第二个就是 可移植性的引入,在操作系统出现后,可移植性 也就正式有了话题。如果 可以通过 操作系统 对 程序 进行 一个 调节。不就可以 在相应的 操作系统下 运行程序了吗?(这就不需要 考虑 硬件的事情了。实际上 是 操作系统帮我们 解决了 硬件差异的问题。)从此之后,才有了真正意义上的 程序!

不过这也 导致了一个问题,如果 我么说 操作系统 是我们 普通用户 直接接触的东西。那么 操作系统 一旦不支持 某个 硬件。这个硬件 也就会被 迅速的 淘汰!!!

题外话:随着 网络的迅速发展,网络对我们计算机 时代的影响越来越大,最后 从计算机时代,来到了 互联网 时代。在互联网时代,也萌发了一款新的编程语言 Java 而随着互联网 时代的不断发展,Java 变成了 现如今 世界上最受欢迎,最火爆的 高级语言之一。

操作系统发展:DOS --> Windows/MacOS/Linux --> Android/IOS计算机组成原理 02 计算机的发展_高级语言_14


1.2.4 目前计算机的发展趋势

"两级" 分化:

  1. 微型计算机向更微型化、网络化、高性能、多用途方向发展。
    计算机组成原理 02 计算机的发展_编程语言_15

  2. 巨型机 向巨型化、超高速、并行处理、智能化方向发展。

计算机组成原理 02 计算机的发展_编程语言_16
计算机组成原理 02 计算机的发展_编程语言_17