Cuenta la leyenda que en 1981 Bill Gates dijo que "640K deberían ser suficientes para cualquiera". Él mismo negó más tarde haberlo dicho, y lo cierto es que no hay pruebas claras de que lo hiciera. Lo que sí existió desde luego fue ese límite para los programadores de los viejos IBM PC, y la barrera la impuso la propia IBM, dominadora absoluta del mercado en la época.
Aquel límite definió toda una generación de ordenadores. Una que empezaba a tratar de separar la informática "de juguete" de los ordenadores de 8 bits convencionales de esos IBM PC que con procesadores como el Intel 8086 o el 8088 quiso demostrar que, efectivamente, 640K serían todo lo que el mundo necesitara. Al menos durante un tiempo.
Gates y la cita maldita que nunca se pronunció
Como explicaban en ComputerWorld hace casi una década, aquella asombrosa metedura de pata nunca existió. Mucho más real fue la que el fundador de Digital Equipment, Ken Olsen, hizo en 1977 cuando dijo aquello de que "no hay razón para que una persona normal tenga un ordenador en su casa".
Olsen se cubrió de gloria, desde luego, y aunque luego intentó escapar de aquella frase, su visión de futuro le perseguiría el resto de su carrera, y lo haría porque ciertamente se lo merecía. Gates, por contra, ha sido perseguido por esa cita a pesar de haber negado una y otra vez haberla pronunciado y de que nadie ha conseguido demostrar que lo dijera. Contestando a un estudiante sobre el tema a mediados de los 90, el cofundador de Microsoft explicaba aquella pesadilla:
He dicho algunas cosas estúpidas y otras incorrectas, pero no esa. Nadie involucrado en la informática te podría decir que cierta cantidad de memoria podría ser suficiente para siempre. Sigo encontrándome con esa absurda cita atribuida a mí que dice que 640K de memoria son suficientes. Nunca hay una referencia, la cita simplemente fluye como un rumor, repitiéndose una y otra vez.
Así era el mundo en 640K
Cuando se produjo esa cita IBM era algo así como la Facebook de nuestros días. Omnipresente y aparentemente invulnerable, con un monopolio de facto en el mundo del PC que acabaría escapándosele entre los dedos.
Aquellos IBM PC contaban con procesadores como los Intel 8086 y los 8088, CPUs de 8 bits que no obstante contaban con un bus de direcciones de 16 bits. En este apartado había distintas filosofías: Motorola tenía un bus de direcciones unificados en el que las direcciones de la memoria RAM y las de los periféricos de entrada y salida compartían el mismo espacio de memoria, mientras que Intel prefirió dividir ambos espacios.
De hecho, los 8086 y 8088 tenían un bus de memoria de 20 bits que permitía direccionar hasta 1 MB de memoria, mientras que los Motorola 68000 tenía un bus de direcciones de 24 bits (16 Mbytes), un salto que Intel acabó dando con los Intel 286.
Aunque esos procesadores de Intel podían llegar a direccionar un espacio de direcciones de 1 MB, en realidad tanto el chipset como el sistema operativo acababan dictando los límites. Y si había un verdadero dictador en esa época, ese era MS-DOS, el sistema operativo de aquellos equipos.
La "maldición" de la memoria convencional
La barrera de los 640 KB que fue impuesta por IBM y el sistema operativo MS-DOS, y se conoce como "memoria convencional". Esa parte del espacio de direcciones físicas disponibles estaba destinada a la RAM, y estaba disponible desde el primer momento para todo tipo de aplicaciones y, por supuesto, para el propio sistema operativo DOS.
Los 384 KB restantes (recordemos, 1 MB = 1024 KB) que podía direccionar el 8088 de los IBM PC estaban reservados para la llamada Upper Memory Area (UMA), reservada por ejemplo para el mapa de memoria del adaptador gráfico de la época (el legendario Color Graphics Adapter o CGA), para la IOS y para memoria compartida para dispositivos físicos como adaptadores de red.
El problema es que esa limitación de los 640 KB pronto afectó a aplicaciones y juegos que trataban de ofrecer más prestaciones, y eso hizo que a medida que pasaban aquellos años de la década de los 80 se acabaran creando técnicas para liberar memoria convencional que por ejemplo llegaron con DR-DOS 5.0 y con MS-DOS 5.0.
Seguro que algunos de nuestros lectores recordarán hacer uso del controlador EMM386 de aquella versión de MS-DOS, aunque otras alternativas como QEMM también se hicieron populares. Para ello sobre todo se trasladaban los controladores de dispositivos a los bloques de memoria de la UMA , algo que no hacía necesario cambios hardware y que preservaba la compatibilidad de las aplicaciones.
Aquella legendaria barrera no desaparecería fácilmente: mantener la compatibilidad de aplicaciones y del sistema operativo con sus versiones anteriores hizo que tuviera vigor incluso tras el lanzamiento del Intel 286. Aquel microprocesador permitía direccionar hasta 16 MB de memoria en modo protegido, pero si el procesador funcionaba en "modo real" (para ofrecer esa compatibilidad total) volvíamos a contar con 1 MB de memoria direccionable, sin más.
De hecho y como indican la Wikipedia, incluso los PCs actuales con procesadores Intel tienen ese área de memoria entre los 640 y los 1024 KB reservada (PDF), pero en realidad esas direcciones son invisibles para los programas y para los sistemas operativos modernos, que hace años que pasaron a ofrecer un sistema de memoria virtual que hace que no tengan que trabajar con direcciones físicas de memoria.
Los 640KB en perspectiva: ¿cuánto consumen las aplicaciones actuales?
Mucho ha llovido desde que Intel lanzara aquellos procesadores y MS-DOS dominara la informática personal. Casi cuatro décadas después los avances han permitido que las ganancias en potencia de proceso y prestaciones hardware sean asombrosas. Los micros de hoy en día de 64 bits soportan en teoría 16 exabytes, pero los espacios de direcciones reales son inferiores, sobre todo por limitaciones impuestas por cada sistema operativo.
En Windows 10, por ejemplo, ese límite depende de la edición en la que nos encontremos: podríamos instalar 128 GB de RAM en Windows 10 Home, pero en el resto de ediciones (Pro, Education, Enterprise) ese límite asciende a unos increíbles 2 TB (con "T" de tera, ya sabéis). En Red Hat Enterprise Linux 6 ese límite llega a los 16 TB (aunque el espacio virtual de direcciones puede llegar a los 128 TB), mientras que en macOS podremos llegar a los 128 GB.
Esas cifras mareantes nos hablan desde luego de la evolución que hemos vivido en estos años, y que también se ha notado en la memoria que aprovechan las aplicaciones durante su ejecución. Aquellos 640 KB con los que tenían que "jugar" los desarrolladores en los 80 contrastan con cantidades que varían según la configuración pero que por norma rondan los 4 u 8 GB de RAM en equipos de sobremesa y portátiles y que suelen rondar los 2 GB en dispositivos móviles.
Eso, claro, hace que las aplicaciones disfruten de mucho margen de maniobra para poder funcionar en nuestros PCs y desde luego en nuestros móviles. Las cantidades de memoria utilizadas por estas aplicaciones son asombrosas, y hacen que nos demos cuenta de lo mucho que se hacía con tan poco hace casi cuarenta años; baste una imagen:
La idea aquí era comparar la memoria que consumen algunos procesos en nuestros móviles y ordenadores actuales para poner las cosas en perspectiva. En mi móvil la sesión actual de Firefox estaba consumiendo 139 MB de memoria, por los 211 de Chrome con otra sesión de prueba, los 59,6 MB de la galería, los 211 MB de una prueba con Netflix o los 145 MB del cliente oficial de Twitter.
En el PC la cosa se complica, porque si uno contabiliza la memoria de las 16 pestañas que tenía abiertas en el momento de comprobar ese consumo la cifra se disparaba (incluyendo plugins) a algo más de... ¡2 GB! según el gestor de tareas de Windows 10. Incluí por tanto Spotify, Slack y una ventana del explorador de Windows como ejemplos para esta referencia básica.
Como se puede ver, el consumo de memoria de todos estos ejemplos es enormemente alto en comparación con el de las aplicaciones y juegos en MS-DOS. De hecho hemos querido crear una breve comparación indicando "cuántos bloques de 640KB consumirían" esas aplicaciones en aquel momento si se hubieran podido combinar varios bloques de 640 KB para dar vida a estas herramientas. En el caso de Chrome o Netflix, por ejemplo, el resultado es claro: ambas consumen 132 veces más que ese máximo del que "nunca habló" Bill Gates. Curioso, y a la vez una prueba más de todo lo que ha avanzado el segmento.
En Xataka | Los 28 mejores juegos de la época MS-DOS para jugar ahora y gratis en el navegador