计算机组成原理(1):计算机发展历程

写在前面

计算机的世界变化之快、跨度之大,远超绝大部分工科领域。从 1946 年第一台电子数字计算机诞生,到今天我们手中轻盈而强悍的智能手机,整个行业只用了不到 80 年。

这背后不仅是硬件技术的狂飙突进,也是软件生态的繁荣爆炸,更是一场关于人类智慧、工程技术与产业革命的宏大交响。

接下来,我们按计算机的发展脉络,从系统定义、硬件演化、软件升级,到行业巨头的兴衰,一次性讲透。


一、什么是计算机系统?------硬件 + 软件两大支柱

如果要理解计算机发展史,首先必须理解:什么是计算机系统(Computer System)?

既然我们要聊计算机系统,所以我们首先应该给计算机系统下一个定义。

所以一句话:

计算机系统 = 硬件 + 软件

这不是形式化的教科书定义,而是真正影响计算机技术方向的两大核心力量。

1. 硬件(Hardware):计算机的物理基础

所谓硬件,就是你看得见、摸得着、能拆开、能组装的实体。

包括:

  • 主机(CPU、内存、主板等)
  • 外设(鼠标、键盘、显示器、打印机)

硬件决定的是:这个系统的能力天花板有多高。

CPU 决定算多快,内存决定能装多少,硬盘决定能存多大,GPU 决定能否跑 3D 或深度学习。

所以说,从工程的角度,硬件是最根本的生产力基础。

2. 软件(Software):计算机的灵魂与能力发挥层

软件看得见,但摸不着。

它负责:

  • 把硬件组织起来形成真正"能工作"的系统
  • 扩展硬件的使用方式
  • 提供用户交互界面

我们熟悉的:

  • Windows、Linux、Android(系统软件)
  • 微信、QQ、微博(应用软件)
  • 编译器、数据库、驱动程序(系统软件)

都属于软件范畴。

3. 软件的进一步分类:系统软件 与 应用软件

在计算机世界中,软件有两大类:

● 系统软件(System Software)

用来管理整个系统 、协调硬件、为应用提供支持。

包括:

  • 操作系统(Windows / Linux / iOS)
  • 数据库管理系统(DBMS)
  • 网络协议栈(TCP/IP)
  • 标准程序库
  • 语言处理程序(编译器 / 汇编器)
  • 调试器等服务程序

这是整个软件世界的地基。

● 应用软件(Application Software)

根据某个具体需求 开发的软件。

例如:

  • 微信
  • 浏览器
  • IDE(VSCode, PyCharm)
  • 办公软件

这也是我们生活中最常接触到的软件类型。


硬件是计算机系统的物理基础,它决定了这个计算机系统它的天花板瓶颈在哪,而软件又决定了我们可以把这个硬件的性能发挥到什么样的程度。**所以当我们在评判一个计算机系统的好坏优劣的时候。我们除了看硬件功能怎么样之外,也需要看软件功能够不够优秀。

这也是为什么很多同学他喜欢用苹果手机的原因,很多安卓手机的硬件都要秒杀苹果,但是如果再结合苹果的这些软件生态,确实有的时候苹果计算机系统要好用一点。


二、计算机硬件的发展:从 ENIAC 到 超大规模集成电路

硬件的发展是推动计算机行业前进的发动机。从 1946 年至今,硬件技术大致经历了四个重要阶段(有些教材分得更细,但本质一致):

  1. 电子管时代(第一代)
  2. 晶体管时代(第二代)
  3. 中小规模集成电路时代(第三代)
  4. 大规模 & 超大规模集成电路时代(第四代)

下面我们逐一深入拆解。


第 1 阶段:电子管时代(1946 ------ 1957)

这一切始于 1946 年,世界第一台电子数字计算机------ENIAC(埃尼亚克)

它不是一台普通计算机,而是一场科技革命的起点。

1. ENIAC 为何诞生?

二战末期,美国军方需要计算武器射程、弹道等复杂轨迹。人工计算速度极慢,于是提出:

造一台能自动进行数学运算的机器!

这时出现了一个关键人物:冯·诺依曼(John Von Neumann)

他不仅参与 ENIAC 的研发,还提出了沿用至今的「冯诺依曼体系结构」。

2. 电子管是什么?为什么那么大?

ENIAC 使用 电子管(Vacuum Tube) 作为逻辑元件。

计算机在进行这种数字计算的时候,本质上它就是在处理一些电信号,那所谓逻辑元件就是用来处理这些电信号的最小的一个基本单元。那这样的一台计算机要把很多很多个逻辑元件用线路把它们连接起来,从而实现用电路来运算的一个功能。

可以看到,每一个电子管的体积都是很大的,有我们半个手掌那么大,那第一台计算机总共使用了1.8万个电子管,所以把这么多个电子管把它们连接起来,把它们组装成一台计算机,就需要很多很多的空间。

整台 ENIAC 使用了 18,000 个电子管,因此需要:

  • 占地面积:170 平方米(相当于一个大教室)
  • 功耗:150 kW(开机等于点亮整个小型工厂)
  • 每秒运算:约 5000 次加法

优缺点非常鲜明:

所以当时第一台计算机的占地面积高达170平方米。

同时由于电子管的这种物理特性,导致了它的耗电量也很高,达到一百五十千瓦

除了占地面积大,耗电量惊人之外,它的运算速度也不是特别快,每秒只能进行5000次左右的加法运算。

以埃尼亚克为代表的这一代计算机,我们把它称为电子管时代,原因就是这一代的计算机使用电子管作为逻辑元件,体积大,耗电量高,同时计算速度还比较慢 ,在这一阶段程序员都是直接使用机器语言来编程的。

3. 为什么程序错误叫"bug"?

ENIAC 时代使用纸带打孔 来写程序,有孔表示 0,无孔表示 1。

如果一只小虫子死在纸带上,就会导致机器读取错误。

于是程序错误被称为:BUG(臭虫)

这个词沿用至今,成为程序员永恒的噩梦。


第 2 阶段:晶体管时代(1957 ------ 1965)

电子管太大太耗电,后来有一个著名的实验室,贝尔实验室发明了一个改变历史的元件:晶体管(Transistor)

晶体管的优势是压倒性的:

  • 体积极小
  • 功耗低
  • 运行速度更快
  • 更稳定

上面小小的一点,是晶体管;下面巨大的玻璃管,是电子管。

晶体管的这种电气特性可以用来替代电子管,而每一个晶体管的体积大小要比电子管要小得多,看一下这个图,左边这个小啾啾,它就是一个晶体管,右边是电子管。体积缩小了很多,所以用晶体管替代电子管作为计算机的逻辑元件,可以让计算机的体积得到大幅的降低。

以前本来需要用一整间房子才可以放得下的计算机,现在我们只需要大概一个厕所的大小就可以了。所以计算机逻辑元件的一个革命,导致了我们计算机体积减小,功耗降低。同时由于我们可以用晶体管来设计更复杂的电路,因此,计算机的运行速度,计算速度也达到了一个质的飞跃,可以达到每秒计算几十万次这样的一个级别。

1. 第二代计算机的新特征

  • 使用晶体管构建逻辑电路
  • 功耗下降一个数量级
  • 速度达到每秒几十万次计算
  • 出现第一批高级语言(Fortran)
  • 出现早期操作系统

但是仍然有问题:

  • 一个计算机需要几万到几十万个晶体管
  • 这些晶体管必须 手工焊接在电路板上
  • 焊点太多导致系统不可靠

这时,世界需要一个新的突破。

2.新的编程语言与操作系统雏形

第二代计算机的程序语言从机器语言发展到汇编语言。 接着,高级语言FORTRAN语言和COBOL语言相继开发出来并被广泛使用。

同时为了让计算机能够有自我管理的功能,连续的完成一系列的任务,所以这个时候开始出现操作系统。


第 3 阶段:中小规模集成电路(1965 ------ 1975)

1959 年,仙童半导体公司发明了集成电路(Integrated Circuit)

这是计算机史上又一个颠覆性的技术革命。中小规模集成电路时代会把这些一个一个的逻辑元件,把它们集成在一个基片上,采用集成电路的制造工艺。使得我们的计算机变得越来越小,同时功耗更低。同时这种集成电路的可靠性要比晶体管手动焊接的那种电路可靠性要高得多。

集成电路让:

  • 更小体积容纳更多逻辑元件
  • 功耗更低
  • 成本下降
  • 可靠性大幅提升

这一阶段出现:

  • 分时系统(Time-sharing OS)
  • 大量高级语言快速发展

但电脑仍 mainly 用于:

  • 科学计算
  • 企业用途

在这一阶段,各种高级语言开始迅速发展,同时有了分时操作系统。在这一阶段计算机主要还是用于科学计算等一些专业的用途,还并没有步入个人的生活。


第 4 阶段:大规模/超大规模集成电路(1975 ------ 至今)

随着半导体工艺不断突破,集成电路迎来爆炸式发展。

逻辑元件可以被集成到极小的面积上,微处理器(CPU)由此诞生。

1. 微处理器的出现

1971 年,第一个微处理器 Intel 4004 出现,由此开始:

  • 微型计算机(PC)诞生
  • 个人电脑时代拉开序幕
  • Windows、Linux 等操作系统出现

如今的 CPU 工艺已经达到:

  • 7nm
  • 逻辑元件达 85 亿个(指甲盖大小)

这是超大规模集成电路技术的巅峰成果。

总之芯片技术的进步导致微处理器的诞生,同时也导致很多微型计算机的诞生。之后微型计算机开始逐渐的步入每一个人的生活,同时这个阶段也开始诞生。我们现在耳熟能详的一些操作系统比如windows, linux。


三、CPU 的发展与英特尔的崛起:从 8086 到 奔腾,再到 64 位架构

CPU 是计算机硬件发展史的核心。

下面是一段你必须了解的历史:

1. 英特尔 CPU 的关键节点

型号 机器字长 特点
8080 8 位 早期微处理器
8086 16 位 x86 架构起点
80286 16 位 加入保护模式
80386 32 位 现代 OS 的基础
奔腾系列 64 位 家用电脑主流

所谓"字长",决定 CPU 一次能处理多少位二进制数。

例如:

  • 8 位 CPU:一次只能处理 8 位数据
  • 16 位 CPU:一次处理 16 位
  • 64 位 CPU:一次处理 64 位(速度 ×8)

这意味着:

字长越大,CPU 处理速度越快,性能越强。

比如使用8080 cpu,你想要计算16个二进制位的加法,那么你必须进行两次的整数运算,因为每一次你只能处理八位。

而如果采用8086这款cpu,那你只需要进行一次的整数运算,自从进入奔腾处理器系列之后。英特尔的这些cpu基本上就是保持了64位这样的一个机器字长,我们个人使用的微型计算机基本上就是随着微处理器技术的发展而发展的。


四、「仙童八叛徒」与半导体帝国的诞生

你可能听过英特尔(Intel)和 AMD,但你未必知道它们的真正来源。

真正改变世界的,是一个叫做 仙童半导体(Fairchild Semiconductor) 的公司。

1. 仙童的诞生:来自一个失败的老板

晶体管之父 肖克利(Shockley) 创立了 "肖克利实验室"。

但他管理极差,导致 8 位天才工程师集体愤而离职。

肖克利愤怒地称他们为:"八叛徒(Traitorous Eight)"

然而这 8 个人后来:

  • 创办了仙童半导体
  • 发明了集成电路
  • 培养了大量芯片行业巨头创始人

仙童成为半导体行业的"人才炼狱"。

2. 两位关键人物的离开改变了世界

1968 年,"八叛徒"之一的 戈登·摩尔(Gordon Moore) 和罗伯特·诺伊斯离开仙童,创立:

英特尔(Intel)

一年后,仙童另一个负责人桑德斯创立:

AMD(Advanced Micro Devices)

因此:

Intel 与 AMD 都是仙童的"孩子"。

仙童的技术与人才奠定了整个现代 CPU 行业。


五、摩尔定律:支配半导体行业 50 年的铁律

摩尔在 1965 年提出著名的:

摩尔定律(Moore's Law):集成电路上晶体管数量约每 18--24 个月翻一倍

这意味着:

  • 同样价格 → 性能 ×2
  • 同样面积 → 功能 ×2
  • 同样成本 → 存储容量 ×2

这条定律不仅影响 CPU,也影响:

  • 主存(DRAM)
  • 硬盘(SSD)
  • 显卡 GPU

即便今天工艺逼近物理极限,摩尔定律的精神仍在推动技术进步。


六、软件发展的演化:语言、系统与生态的进步

硬件解决了"能不能跑",软件解决"能跑什么"。

软件的发展同样经历了三个阶段。


1. 机器语言(0/1):人类与机器的直接对话

初期软件必须用:

  • 0 和 1
  • 或纸带打孔

程序员需要了解:

  • 机器架构
  • 指令格式
  • 寄存器布局

这样的语言可读性很差,写程序极其困难,因此造成了这个时期的软件数量极少。


2. 汇编语言:更接近人类思维但仍底层

机器语言太痛苦,因此有人发明了:

汇编语言(Assembly)

汇编语言其实和机器语言本质上都是一样的,只不过汇编语言会把机器语言转换成人类,更方便记忆的一些符号。

比如用助记符(MOV、ADD、JMP)代替 0/1,让程序员更轻松。

这个阶段程序员编写一些软件是很困难的,这也就注定了在这个阶段软件不可能特别多,不可能很丰富。


3. 高级语言:软件世界爆发的基础

为了让编程更方便,慢慢的开始出现了一些高级的编程语言------Pascal、C、C++:

  • 程序员不必关注 CPU 指令细节
  • 只关注问题本身
  • 软件数量呈指数级增长

至此程序员只需要专注于他要解决的问题就可以了,因为这些高级语言是接近我们人类所使用的自然语言的,有了这些高级语言作为基础,我们的软件世界也越来越丰富,随着计算机网络技术的发展。又出现了一些类似于java python之类的,更适用于网络环境的一些编程语言

  • Java
  • Python
  • JavaScript

编程语言这个东西,它就是用来制造软件的。编程语言是否好用,是否方便,就直接决定了我们的软件世界是否足够丰富。


七、操作系统的发展:从命令行到图形界面再到移动系统

除了应用软件的发展之外,也有操作系统。

这种系统软件的发展像刚开始的操作系统,比如说Dos系统,我们只能用命令行的方式来操作计算机,后来逐渐的出现了一些图形化的界面,比如说windows,还有现在我们很喜欢用的安卓ios, 这些系统。

其演化大致经历:

  1. DOS:命令行时代
  2. Windows 3.1 / 95 / 98:图形化普及
  3. Linux:服务器时代崛起
  4. Android / iOS:移动时代统治

八、计算机发展的两个未来方向

目前来看,我们的计算机系统有两极分化的这种发展趋势,其中一极是微型计算机,向着更微型化,更加网络化,更加高性能,更加多用途的方向发展。比如说我们的智能穿戴设备,还有手机,是可以做得越来越小,但是用途越来越广。

1. "微型化、网络化、多用途化"方向

典型产物:

  • 智能穿戴设备
  • 手机
  • 平板
  • 物联网设备

特点:

  • 越来越小
  • 功耗越来越低
  • 功能越来越多

另一极是朝着巨型化,超高速并行处理,智能化的方向发展。比如说中国现在最快的一个超级计算机叫做神威太湖之光,这个名字听起来就很厉害,可以每秒进行9.3亿次的浮点运算,这个是很厉害的,在全世界这台超级计算机的速度可以排到第24名(以前第三)

大家想去看看的可以去这个网站:http://www.top500.org

2. "巨型化、超高速并行化、智能化"方向

代表技术:

  • 超级计算机
  • 大规模并行计算
  • AI 专用算力中心
    例如中国的"神威·太湖之光"超级计算机,能达到:

每秒 9.3 亿亿次浮点运算(93 PFLOPS)

这代表了计算能力的巅峰。


九、总结:计算机发展史的核心逻辑

回顾计算机 80 年的发展历程,我们能总结出一条简单而深刻的主线:

硬件每一次革命 → 软件世界随之大爆发

  • 电子管 → 第一台计算机
  • 晶体管 → 体积缩小、速度提升
  • 集成电路 → 可靠性提升、成本下降
  • 超大规模集成电路 → 微处理器 + PC 时代的到来
  • 高级语言 → 软件数量指数级增长
  • 操作系统 → 交互方式彻底改变

这就是现代计算机世界的底层逻辑:

硬件给边界,软件给灵魂,架构给规则,人才给未来。

计算机行业仍在高速发展,而未来几十年,我们将继续见证各种不可思议的技术突破。


相关推荐
霸王大陆5 小时前
《零基础学 PHP:从入门到实战》模块十:从应用到精通——掌握PHP进阶技术与现代化开发实战-4
开发语言·php
李拾叁的摸鱼日常5 小时前
Redis 实现仓储单据异步提交技术方案
java·后端
脾气有点小暴5 小时前
JavaScript 数据存储方法全解析:从基础到进阶
开发语言·javascript·ecmascript
步步为营DotNet5 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库
繁华似锦respect5 小时前
C++ 内存分配器-allocator
开发语言·c++·设计模式
沐知全栈开发5 小时前
Swift 基本语法
开发语言
CoderYanger5 小时前
动态规划算法-子数组、子串系列(数组中连续的一段):21.乘积最大子数组
开发语言·算法·leetcode·职场和发展·动态规划·1024程序员节
_OP_CHEN5 小时前
【Git原理与使用】(一)告别文件混乱!Git 初识:从版本灾难到高效管理的终极方案
linux·运维·git·github·运维开发·版本控制·企业级组件
qq_479875435 小时前
protobuf[1]
java·开发语言