¿Por qué los PCs estaban limitados a 640K? ¿Fue culpa de Bill Gates?

En la época de los primeros ordenadores, existía una limitación que forma parte de las mayores rarezas de la historia de la tecnología: la famosa barrera de los 640K en los PC. ¿De dónde viene ese extraño límite de 640K?

Lo primero que podemos preguntarnos es por qué los PC estaban limitados a 640K de RAM. Es una cantidad ridícula para la época actual, en la que el smartphone más básico tienes varios gigabytes de RAM.

Un poco de historia

El primer ordenador personal de IBM, el IBM PC 5150, se presentó en 1981 con una CPU que permitía un máximo de 1 MB de RAM direccionable. Pero, ¿por qué esa extraña cifra de 640K para la RAM del sistema?

IBM reservó el espacio de direcciones de memoria por encima de 640K para otros usos como ROM (memoria de sólo lectura) y periféricos de hardware. En realidad, se trataba de una división razonable, teniendo en cuenta las limitadas aplicaciones y capacidades de hardware de la época.

Es famosa la frase atribuida erróneamente a Bill Gates: «640K deberían ser suficientes para cualquiera». Sin embargo, Gates siempre ha negado haber hecho esta afirmación.

La leyenda de la frase de Bill Gates

He aquí la leyenda: en una feria de informática en 1981, Bill Gates supuestamente pronunció esta frase, en defensa del límite de 640 KB de RAM utilizable del recién presentado IBM PC: «640K deberían ser suficientes para cualquiera».

El propio Gates ha negado enérgicamente haber hecho el comentario. En una columna periodística que escribió a mediados de los noventa, Gates respondió a la pregunta de un estudiante sobre la cita: «He dicho algunas estupideces y cosas equivocadas, pero no eso. Nadie relacionado con la informática diría jamás que una determinada cantidad de memoria es suficiente para siempre».

Más adelante en la columna, añadió: «Sigo tropezando con esa cita tonta que se me atribuye y que dice que 640K de memoria son suficientes. Nunca hay una cita; la cita simplemente flota como un rumor, repetido una y otra vez».

Gates también insistió en una entrevista de 2001 con U.S. News & World Report en que él no había hecho ese comentario. «¿Te das cuenta del dolor que sufrió la industria cuando el IBM PC se limitó a 640K? En un momento dado, la máquina iba a ser de 512K, y no dejamos de aumentarla», declaró a la revista. «Nunca dije esa afirmación: dije todo lo contrario».

En cualquier caso, encarna el espíritu de una época en la que 640K parecía una cantidad ingente de memoria. ¿Quién podría necesitar más?

La solución a los escasos 640K de RAM

El software empezó a crecer en complejidad y sofisticación. Los desarrolladores de juegos, las empresas de software de procesamiento de textos y otras mentes creativas estaban ansiosas por disponer de más memoria.

De repente, 640K no era una cantidad enorme de memoria, sino una limitación. Los desarrolladores se tomaron la limitación de memoria de 640K como un reto, ideando formas de superar las limitaciones de la arquitectura del IBM PC.

La Especificación de Memoria Ampliada (EMS) y la Especificación de Memoria Extendida (XMS) fueron dos soluciones inteligentes para superar la limitación de memoria de 640K en los primeros PC. EMS utilizaba una técnica llamada «page framing» y «bank switching», que consistía en dividir la memoria adicional en páginas e intercambiarlas dentro y fuera de una ventana específica en el área superior de memoria, entre 640K y 1MB.

Esto permitía a los programas acceder dinámicamente a diferentes páginas de memoria expandida según fuera necesario. EMS fue desarrollada originalmente por Lotus, Intel y Microsoft.

XMS, por otro lado, aprovechaba procesadores más nuevos como el Intel 80286, que permitía acceder a más memoria en un Modo «Protegido» especial. Este enfoque también utilizaba un Área de Memoria Alta (HMA) justo por encima del límite de 1MB y utilizaba un Gestor de Memoria Extendida para estandarizar la forma en que los programas accedían a esta memoria adicional. XMS también fue desarrollado por Lotus, Intel y Microsoft.

La transición a los procesadores Intel 80286 y 80386, con sus avanzadas capacidades de gestión de memoria, ayudó a superar la barrera de los 640K. Estos chips permitían acceder a enormes cantidades de memoria que habrían sido impensables sólo unos años antes.

El 80286 podía direccionar hasta 16 MB de RAM en modo protegido, pero no en modo real, que era compatible con las aplicaciones DOS. El 80386 podía direccionar hasta 4 GB de RAM en ambos modos utilizando una técnica llamada paginación. Sin embargo, el acceso a la memoria extendida en Modo Real requiere software especial como los extensores DOS o los gestores de memoria.

Los juegos fueron el punto de inflexión

A finales de los 80 y principios de los 90, los videojuegos pasaron de ser simples sprites a convertirse en mundos inmersivos. Esta evolución exigía más memoria. Juegos como «Doom» en 1993, que requerían un mínimo de 4 MB de RAM, significaron un momento crítico en el que 640K ya no eran suficientes.

Es difícil pensar en otro tipo de software que justificara unas cantidades de RAM tan relativamente altas en una época tan temprana del mercado de los ordenadores personales, sobre todo para los usuarios domésticos.

Sin embargo, una vez que el PC doméstico disponía de RAM para los juegos más exigentes en memoria, los desarrolladores de aplicaciones podían esperar razonablemente más RAM para su propio software. Con el 80386, la multitarea se convirtió en una realidad, aprovechando al máximo la memoria disponible.