乐趣区

计算机的诞生和简史

背景

从第一台计算机诞生到现在已经七十多年了,计算机已经和我们的生活息息相关,很多小伙伴上来就接触高端设备,计算机过去是怎么发展起来的,我觉得还是了解一下会比较好,我是历史爱好者,所以我个人认为学习任何东西都要了解它的过去,就像我以前历史老师跟我说的“不了解过去的人,不会了解现在和未来”,这篇文章就像讲故事,轻松的大家回顾下计算机的发展简史

从发展的里程碑来说,可以分为五个阶段:

  1. 第一代计算机:真空管计算机 1945 年~1955 年
  2. 第二代计算机:晶体管和大型机 1955 年~1965 年
  3. 第三代计算机:集成电路和小型机 1965 年~1980 年
  4. 第四代计算机:个人计算机和移动终端 1980 年~ 至今
第一代计算机:真空管计算机 1945-1955
二战带来的礼物

二战期间,美国和德国都需要精密的计算工具来计算弹道和破解电报获取情报,美军当时要求实验室为陆军炮弹部队提供火力表,千万不要小看区区的火力表,每张火力表都要计算几百条弹道,每条弹道需要非常复杂的非线性方程组来计算,也只能求出近似值,虽然只是得出近似值但是也不是容易的事情,当时实验室的计算工具,即使雇佣 200 多名计算员加班加点也需要二到三个月才能完成一张火力表

在战争期间,时间就是胜利,没有人能等这么久,按这种速度可能计算结果出来,战争都已经打完了,在当时的大环境下和美军的资助下,
宾夕法尼亚大学的 William Mauchley 和他的学生 J.Presper Eckert 建造了 ENIAC,将计算弹道的时间缩短至 30 秒内,ENIAC 是通过用真空三极管让计算机通过控制栅极电流,效率是机电计算机的上千倍,所以同时代的 ENIAC(美国),Colossus(英国),Z3(德国)才被看作是现代计算机时代的开端

第二代计算机:晶体管和大型机
第一代计算机留下的问题

第一代电子管计算机存在很多的毛病,例如体积庞大,使用寿命短,就如上章的 ENIAC 长 30 米,占地面积 170 平方米,重达 30 吨,耗电量 150 千瓦,ENIAC 包含了 18000 个真空管,但凡有一个真空管烧坏了机器就不能运行,必须人为的把烧坏的真空管找出来,所以制造,维护,使用都非常困难

晶体管的诞生

晶体管也称半导体,是贝尔实验室的肖克利 (William Bradford Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain)所发明,晶体管大多数场合都可以完成真空管的功能,而且体积小,重量轻,速度快,所以很快就替代真空管,成为电子设备的核心组件。

晶体管的诞生直接导致计算机可以批量生产,期间的代表机型有 IBM 7090,PDP-1(后来贝尔实验室的 Ken Thompson 在一台闲置的 PDP- 7 主机上创造了 UNIX 操作系统)

二代计算机主要用于科学和工程计算,如解偏微积分方程,大多是使用 FORTRAN 语言和汇编语言和 IBSYS 系统

第三代计算机:集成电路和小型机
更高的性价比

1958 年,德州仪器与仙童公司先后研制出集成电路 IC,所谓 IC,就是采用一定的工艺技术把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连在一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内(其实就是封装),这是一个巨大的进步。集成电路的规模生产能力,可靠性,电路设计的模块化方法确保了快速采用标准化集成电路代替了设计使用离散晶体管。

人月神话

集成电路的发明,促使 IBM 决定召集六万多名员工,创建五座新工厂,研发 System/360 这台机器,这是一次著名的商业豪赌,当时出货时间不断顺延,当时项目经理佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)事后根据这项计划的经验,写作《人月神话:软件项目管理之道》记述人类史一项里程碑式的大型复杂软件系统开发的经验

UNIX 的诞生

由于当年计算机售价昂贵,IBM System/360 当年售价 200~250 万美元(合约现在 2000 万美元),只有政府,银行,航空和少数学校才能负担的起,为了让更多人用上计算机,麻省理工学院,贝尔实验室和通用电气公司共同研发 分时多任务操作系统 Multics(UNIX 的前身,几乎所有现代操作系统都深受 Multics 的影响,无论是直接 (Linux, OS X) 或间接 (Microsoft Windows))

Multics 的概念是希望计算机的资源可以为多终端用户提供计算服务(这个思路和云计算的基本是一致的),后因 MULTICS 难度太大,项目进展缓慢,贝尔实验室和通用相继退出此项目,曾参与 MULTICS 开发的贝尔实验室的程序员 Ken Thompson 因为需要新的操作系统来运行他的《星际旅行》游戏,在申请机器经费无果的情况下,他找到无用使用的 PDP-7 小型机,和 Dennis 共同开发简化版的 MULTICS,就是第一版的 UNIX 操作系统,K & R 等人为了方便在 UNIX 上编写程序共同发明了 C 语言,然后又用 C 语言重写的 UNIX,奠定了 UNIX 坚实的基础(UNIX 后续的分支发展可以后面再聊)

第四代计算机:个人计算机和移动终端
苹果的图形界面

Goug Engelbart 发明图形用户界面,包括窗口 / 图标 / 菜单以及鼠标,这些思想被 Xerox PARC 的研究人员采用,苹果的 Steve Jobs 访问 PARC 时候发现了 GUI 的潜在价值,而 Xerox 的管理层恰好没有认识到

Jobs 随后设计带有 GUI 的苹果计算机,并且在第二代 Macintosh 取得巨大成功,苹果公司采用卡内基梅隆大学的 Mach 微核,尽管界面不同,但 MAC OS X 是基于 UNIX 的操作系统

微软的发展

80 年代早期 IBM 设计了 IBM PC 并且找到 Bill Gates 询问操作系统相关事宜,Bill Gates 推荐了 Digital Research,Digital Research 在做出史上最糟糕的商业决策后拒绝与 IBM 会面,IBM 便希望 Bill Gates 能提供操作系统,Bill Gates 找到当时的 Seattle Computer Products 购买了 DOS 系统,并且雇佣了 DOS 作者 Tim Paterson 修改为 MS-DOS,IBM PC 配合 Intel CPU 和 MS-DOS 在市场中得到广泛应用

微软受到 Macintosh 成功的影响,开发了称为 Windows 的 GUI 系统,后续发布了 Windows 95,Windows 98,底层仍大量使用 16 位的 Intel 汇编语言,Windows NT 和 Windows 2000 的失败让微软发布了 Windows 98 的另一个版本,名为 Windows Me,2001 年微软发布了 Windows 2000 的一个升级版称为 Windows XP,基本替代了 Windows 所有的原先版本

再后来就是我们熟悉的 Windows Vista,Windows 7,Windows 8,Windows 10 的产品迭代了

移动终端

20 世纪 90 年代诺基亚,爱立信发布了承载操作系统的智能手机,并在后续十年中大多主流手机品牌运行着 Symbian OS,也有手机品牌选择其他系统,例如 RIM 公司的 Blackberry OS,微软的 Windows Phone

目前市场主流的系统是苹果的 IOS,谷歌基于 Linux 的 Android,到了这里大家就很熟悉了,就不多描述了。
更多技术咨询,请关注公众号,find me !

退出移动版