ADR-002 CORE accepted

Windows NT: Hardware Abstraction Layer Architecture

1988-10-31
Authors: billg, cutler

Windows NT: Hardware Abstraction Layer Architecture

Context

By 1988, Microsoft faced a strategic dilemma:

  1. DOS/Windows 3.x dominated consumer PCs but couldn't scale to enterprise
  2. OS/2 (with IBM) was too slow and IBM-controlled
  3. UNIX owned the enterprise but Microsoft had no credible offering
  4. Intel 386 enabled protected mode, but DOS couldn't use it

The solution: build a completely new OS from scratch that could compete with UNIX in the enterprise while maintaining Microsoft's independence.

Decision

Recruit Dave Cutler from Digital Equipment Corporation (DEC) and build Windows NT with:

  1. Hardware Abstraction Layer (HAL) — Portable across CPU architectures
  2. Microkernel-inspired design — Modular, reliable, secure
  3. Protected memory — Applications can't crash the system
  4. Symmetric multiprocessing — Scales to multiple CPUs
  5. Win32 API — Compatibility with Windows applications

Why Dave Cutler?

Cutler designed VMS at DEC—the gold standard for enterprise reliability. He brought:

  • 20 years of OS architecture experience
  • A team of elite DEC engineers
  • Deep understanding of what enterprises need
  • Legendary coding ability and work ethic

Alternatives Considered

Option A: Improve DOS/Windows

Rejected: Fundamental architectural limitations. 16-bit, single-tasking, no memory protection.

Option B: Continue OS/2 with IBM

Rejected: IBM controlled the roadmap. Too slow. "Big Blue" culture incompatible with Microsoft speed.

Option C: License UNIX

Rejected: Would make Microsoft dependent on AT&T/others. No differentiation.

Option D: Build New OS (Chosen)

Pros:

  • Full control of architecture
  • Can target enterprise AND eventually consumer
  • Portable across chips (hedge against Intel)
  • Fresh codebase without legacy constraints

Cons:

  • 5+ year development timeline
  • Massive investment ($150M+)
  • Risk of failure

Architecture Details

The HAL Layer

block-beta
    columns 1
    Applications
    Win32["Win32 Subsystem"]
    Executive["NT Executive<br/>(Memory, Process, I/O, Security)"]
    HAL["Hardware Abstraction Layer"]
    Hardware["Hardware (x86, MIPS, Alpha)"]

The HAL isolates hardware-specific code, enabling:

  • Same NT binary across different motherboards
  • Portability to MIPS, Alpha, PowerPC
  • Future-proofing against CPU architecture shifts

Key Design Decisions

DecisionRationale
Protected memoryEnterprise reliability
Preemptive multitaskingServer workloads
Unicode throughoutInternational markets
Security from ground upGovernment/enterprise sales
Multiple subsystemsOS/2, POSIX compatibility

Consequences

Positive

  • +Enterprise credibility — NT competed with UNIX
  • +Server market — Windows Server became dominant
  • +Long-term foundation — NT kernel still powers Windows 11
  • +Azure foundation — NT architecture scaled to cloud
  • +CPU independence — Smooth ARM transition decades later

Negative

  • 5-year timeline — NT 3.1 shipped July 1993
  • Resource drain — Diverted from Windows 3.x improvements
  • Initial bloat — NT required expensive hardware
  • Two Windows problem — Consumer (9x) vs Enterprise (NT) until XP

Metrics

VersionYearSignificance
NT 3.11993First release
NT 3.51994Performance improvements
NT 4.01996Windows 95 UI on NT
Windows 20002000NT for mainstream enterprise
Windows XP2001Consumer/Enterprise unified

Legacy

Dave Cutler's NT architecture is Microsoft's most important technical asset. It:

  • Powered every Windows version since XP
  • Enabled Azure's hypervisor (based on NT kernel)
  • Continues to evolve 35+ years later

Cutler himself remained at Microsoft, later building Azure's core infrastructure. He continues coding today.

"Dave is the best systems programmer in the world." — Bill Gates

ADR-002 Authors: billg, cutler