[控场AI]
· 4 分钟阅读· 2,205 字

ENIAC有BIOS吗?Alan Kay揭秘早期计算机启动史

ENIAC有BIOS吗?Alan Kay揭秘早期计算机启动史

Alan Kay解释了为何ENIAC没有BIOS:两者属于不同的技术范式,后者是存储程序时代才出现的抽象层。

这篇文章以"ENIAC有BIOS吗"这一看似简单的问题为切入点,借助图灵奖得主Alan Kay的解答,揭示了早期计算机与现代PC在架构逻辑上的本质差异。ENIAC通过物理插线和开关配置程序,不具备存储程序结构,也没有操作系统,因此根本不存在需要固件层来协调的多层软件结构,BIOS的概念在那个时代既不存在也无必要。文章进而梳理了从ENIAC到现代PC的抽象演进路径——存储程序、操作系统、固件层——每一层都是为应对前一阶段的复杂性而逐步构建的。Kay的核心洞见在于:技术概念有其特定的历史语境,用当下框架回溯早期设备会造成根本性的误解,这种历史性、发展性的技术思维方式是本文真正想传递的价值。

一个看似简单的技术问题——"ENIAC有BIOS吗?"——在计算机科学先驱Alan Kay的回答下,牵出了早期计算机架构与现代PC概念之间的深刻差异。这个话题近期在Hacker News上引发热议(获得144个点赞、42条评论),折射出技术社区对计算历史的持续兴趣。

rss source: Alan Kay's answer to “Did the ENIAC have a BIOS”?

为什么这个问题本身就值得追问

BIOS(基本输入输出系统)是现代人对计算机启动过程的默认认知:按下电源键,固件初始化硬件,加载操作系统。但把这套逻辑套用到ENIAC这样诞生于电子管时代的机器上,本身就存在时代错位。

ENIAC(电子数值积分计算机)是世界上最早的通用电子计算机之一,它的"编程"方式与今天截然不同。要理解为什么"BIOS"这个概念不适用,需要先理解ENIAC根本没有我们今天所说的"存储程序"结构。它更像是一台需要通过插线板和开关手工配置的巨型计算器,而非运行软件的通用平台。

Alan Kay为何是回答这个问题的合适人选

Alan Kay是面向对象编程的奠基人之一、图形用户界面思想的重要推动者,也是图灵奖得主。他对计算历史的理解不仅停留在技术细节,更在于对"计算范式演进"的宏观把握。

当他回答ENIAC是否有BIOS时,实际上是在澄清一个常见的历史误解:人们习惯用当下熟悉的技术框架去回溯理解早期设备,但早期计算机的运作逻辑与现代冯·诺依曼架构下的PC存在本质区别。BIOS作为固件层的概念,是在存储程序计算机、可替换操作系统、标准化硬件接口等一系列前提成熟之后才出现的产物。

ENIAC的"启动"到底是怎么回事

现代计算机的BIOS承担着硬件自检、初始化外设、引导操作系统等职责。而ENIAC没有操作系统,没有可寻址的程序存储器(最初版本如此),也没有需要在启动时加载的软件栈。

配置ENIAC执行一个新任务,工程师需要重新连接线缆、设置开关,这个过程可能耗费数天。它的"程序"存在于物理布线之中,而非存储在内存里等待被引导。因此,寻找ENIAC的"BIOS",就像在马车上寻找"发动机管理系统"——那个抽象层在当时根本不存在,也没有存在的必要。

这正是Kay回答的核心价值:他提醒人们,技术概念是有历史脉络的,不能脱离其诞生的语境去理解。

ENIAC建造于1945年,占地约167平方米,重达30吨,使用约18000支真空管。它采用十进制而非二进制运算,由20个累加器单元组成,每个单元可存储一个10位十进制数。所谓"编程",实际上是通过约6000个开关和大量插线(patch cables)来设定数据流路径与运算顺序——这更接近于模拟电路的配置,而非数字指令的执行。1948年后,ENIAC经过改造获得了有限的"功能表"只读存储能力,使得部分指令可以以更接近存储程序的方式运行,但这与冯·诺依曼架构中程序与数据共享同一内存空间的理念仍有本质区别。正因为程序逻辑完全"固化"在物理连接中,不存在任何需要在运行时动态加载或初始化的软件层,BIOS所承担的"在硬件与软件之间建立桥梁"的职责也就无从谈起。

从ENIAC到BIOS:抽象层的逐步诞生

从ENIAC到现代PC,计算机经历了几次关键的抽象跃迁。存储程序概念(冯·诺依曼架构)让程序可以像数据一样存放在内存中;操作系统的出现将硬件管理从应用程序中剥离;而BIOS/固件层则在硬件与操作系统之间建立了标准化的桥梁。

每一层抽象的出现,都是为了解决前一阶段的复杂性问题。ENIAC时代不需要BIOS,是因为当时的机器没有需要固件去协调的多层软件结构。理解这一演进过程,比单纯回答"有没有BIOS"更有意义。

BIOS(Basic Input/Output System)最早由Gary Kildall在1975年为CP/M操作系统引入,随后在1981年IBM PC推出时被标准化为PC架构的核心固件组件,存储在主板上的只读存储芯片中。它的核心职责包括:上电自检(POST,Power-On Self Test)、初始化CPU与内存、枚举并配置外设,以及通过中断向量表向操作系统提供统一的硬件访问接口。这一设计的意义在于,操作系统无需了解底层硬件的具体型号,只需调用BIOS提供的标准接口即可。2010年代后,传统BIOS逐渐被UEFI(统一可扩展固件接口)取代,后者支持更大容量硬盘、图形化界面和更安全的启动流程,但其作为"硬件抽象桥梁"的本质角色并未改变。这条从物理布线到固件抽象的演进路径,清晰地展示了计算机架构如何通过引入中间层来管理日益增长的复杂性。

这场讨论对今天的启示

在AI与算力飞速发展的当下,回顾ENIAC这样的原点,有其独特价值。它让技术从业者意识到:今天习以为常的每一个概念——从BIOS到操作系统再到云计算——都不是天然存在的,而是工程师们为应对具体问题逐步构建起来的抽象。

Hacker News社区对这个话题的热烈讨论也说明,即便在追逐前沿的技术圈,对计算历史的严谨梳理依然被高度重视。像Alan Kay这样的先驱通过纠正一个看似微小的概念误用,实际上传递了一种更重要的思维方式:用历史的、发展的眼光去看待技术,而不是把当下的框架当作永恒的真理。

对于想深入了解早期计算机架构的读者,Kay在Quora上的原始回答值得一读,它以简洁的方式厘清了跨越数十年的技术演进逻辑。

分享:

相关推荐