[KongchangAI]
· 2 min read· 1,071 words

Did ENIAC Have a BIOS? Alan Kay Reveals the Early History of Computer Booting

Did ENIAC Have a BIOS? Alan Kay Reveals the Early History of Computer Booting

Alan Kay explains why ENIAC had no BIOS — the two belong to entirely different computing paradigms.

Using the question "Did ENIAC have a BIOS?" as its entry point, this article draws on Turing Award laureate Alan Kay's answer to reveal the fundamental architectural differences between early computers and modern PCs. ENIAC was configured through physical patch cables and switches with no stored-program structure, no operating system, and no multi-layered software stack — so there was simply no role for a firmware layer to play. The article traces the abstraction layers that emerged from ENIAC to the modern PC — stored programs, operating systems, firmware — each built to manage the complexity of what came before, and argues that Kay's core insight is the importance of understanding technology within its historical context.

A deceptively simple technical question — "Did ENIAC have a BIOS?" — opens a window, through computer science pioneer Alan Kay's answer, onto the profound architectural differences between early computers and modern PCs. The topic recently sparked lively discussion on Hacker News (144 upvotes, 42 comments), reflecting the tech community's enduring fascination with computing history.

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

Why the Question Itself Is Worth Asking

BIOS (Basic Input/Output System) is how most people today think about the computer boot process: press the power button, firmware initializes the hardware, and the operating system loads. But applying that mental model to a machine like ENIAC — born in the vacuum tube era — reflects a fundamental anachronism.

ENIAC (Electronic Numerical Integrator and Computer) was one of the world's earliest general-purpose electronic computers, and its "programming" looked nothing like what we know today. To understand why the concept of a "BIOS" simply doesn't apply, you first need to understand that ENIAC had no "stored-program" architecture in the modern sense. It was more like a massive calculator that had to be manually reconfigured via patch cables and switches — a general-purpose platform for running software it was not.

Why Alan Kay Is the Right Person to Answer This

Alan Kay is one of the founding figures of object-oriented programming, a key driver of the graphical user interface paradigm, and a Turing Award laureate. His understanding of computing history goes beyond technical details — it encompasses a sweeping view of how computational paradigms evolve.

When Kay addresses whether ENIAC had a BIOS, he's really correcting a common historical misconception: people tend to interpret early machines through the lens of technologies they're already familiar with. But the operational logic of early computers differs fundamentally from modern PCs built on the von Neumann architecture. The concept of a firmware layer like BIOS only emerged after a whole series of prerequisites had matured — stored-program computing, swappable operating systems, and standardized hardware interfaces among them.

What "Booting" Actually Meant for ENIAC

A modern computer's BIOS handles hardware self-tests, peripheral initialization, and OS bootstrapping. ENIAC had no operating system, no addressable program memory (at least not in its original form), and no software stack to be loaded at startup.

Configuring ENIAC to perform a new task required engineers to rewire cables and set switches — a process that could take days. Its "program" lived in the physical wiring, not in memory waiting to be loaded. Looking for ENIAC's "BIOS" is like looking for an "engine management system" on a horse-drawn carriage — that abstraction layer simply didn't exist, and there was no reason for it to.

That is the core value of Kay's answer: he reminds us that technical concepts have historical contexts, and cannot be understood apart from the conditions that gave rise to them.


ENIAC was built in 1945, occupied roughly 167 square meters, weighed 30 tons, and used approximately 18,000 vacuum tubes. It operated in decimal rather than binary, and consisted of 20 accumulator units, each capable of storing a 10-digit decimal number. "Programming" it meant configuring data flow paths and operation sequences through roughly 6,000 switches and a mass of patch cables — closer to configuring an analog circuit than executing digital instructions. After 1948, ENIAC was modified to gain limited read-only "function table" storage, allowing some instructions to run in a manner more resembling a stored-program machine — but this still differed fundamentally from the von Neumann ideal of programs and data sharing the same memory space. Because program logic was entirely "hardwired" into physical connections, with no software layer that needed to be dynamically loaded or initialized at runtime, the bridging role that a BIOS plays between hardware and software had no place to exist.


From ENIAC to BIOS: The Gradual Birth of Abstraction Layers

From ENIAC to the modern PC, computing went through several pivotal leaps of abstraction. The stored-program concept (the von Neumann architecture) allowed programs to be stored in memory just like data. Operating systems separated hardware management from application code. And the BIOS/firmware layer established a standardized bridge between hardware and the operating system.

Each abstraction layer emerged to manage the complexity introduced by the one before it. ENIAC didn't need a BIOS because the machines of that era had no multi-layered software structure for firmware to coordinate. Understanding this evolutionary arc is more meaningful than simply answering "yes or no."


BIOS (Basic Input/Output System) was first introduced by Gary Kildall in 1975 for the CP/M operating system, and was later standardized as a core firmware component of the PC architecture when IBM launched its PC in 1981 — stored on a read-only memory chip on the motherboard. Its core responsibilities include: the Power-On Self Test (POST), CPU and memory initialization, peripheral enumeration and configuration, and providing the operating system with a unified hardware access interface via an interrupt vector table. The significance of this design is that operating systems don't need to know the specific hardware underneath — they simply call the standard interfaces BIOS provides. From the 2010s onward, traditional BIOS has been progressively replaced by UEFI (Unified Extensible Firmware Interface), which supports larger storage drives, graphical interfaces, and more secure boot processes — but its essential role as a "hardware abstraction bridge" remains unchanged. This evolutionary path, from physical wiring to firmware abstraction, clearly illustrates how computer architecture manages ever-growing complexity by introducing intermediate layers.


What This Discussion Means for Us Today

In an era of rapid AI advancement and surging compute capacity, revisiting an origin point like ENIAC offers unique value. It reminds practitioners that every concept we take for granted today — from BIOS to operating systems to cloud computing — didn't arrive fully formed. Engineers built each one, step by step, to solve specific problems.

The enthusiasm with which the Hacker News community engaged with this topic also shows that even in a tech culture fixated on the cutting edge, rigorous attention to computing history is still deeply valued. By correcting what might seem like a minor conceptual misapplication, a pioneer like Alan Kay is really conveying something more important: a way of thinking that views technology historically and developmentally, rather than treating today's frameworks as eternal truths.

For readers who want to dive deeper into early computer architecture, Kay's original answer on Quora is well worth reading — it clarifies decades of technological evolution with admirable conciseness.

#ENIAC#BIOS#Alan Kay#computer history#stored-program architecture#firmware#von Neumann#early computers#computing abstraction#UEFI
Share:

Related articles