Cómo comprender eficazmente la memoria convencional
Honestamente, intentar explicar los diferentes tipos de memoria en una computadora puede ser bastante complejo. Tenemos ROM, RAM, DRAM, SRAM, NAND, memoria flash NOR: son muchísimas. Y, siendo honestos, la mayoría se usan en nichos específicos hoy en día. Muchos de los tipos «más antiguos», como la memoria convencional, han caído en desuso, pero es interesante ver cómo encajan en la historia de la informática. Por ejemplo, la ROM, que solía ser fundamental para almacenar la BIOS y el firmware, ha sido prácticamente reemplazada por la memoria flash, que es más económica y regrabable. Normalmente, se trata de memoria flash NOR, pero las memorias flash NAND también son comunes ahora. Sin embargo, a veces, todavía se habla de «memoria convencional», aunque en su mayoría sea un término histórico que confunde a los principiantes.
Una breve lección de historia sobre la PC
Las PC no siempre se parecían a las elegantes máquinas de hoy. En su época, eran voluminosas, caras y bastante débiles. Básicamente, solo las grandes empresas y organizaciones podían permitírselas, y el mundo del software era un caos: no había descargas fáciles, ni navegadores (porque, bueno, ¿internet? Eso aún no existía), y definitivamente, ni siquiera imágenes de gatos adorables. Las primeras computadoras se controlaban principalmente por línea de comandos, y la mayoría solo hacía una cosa realmente bien: estaban diseñadas para tareas específicas. El costo era una gran barrera, lo que significaba que no eran precisamente accesibles para el ciudadano promedio.
Luego llegó la IBM PC, que en cierto modo cambió las reglas del juego. No creó internet ni los gatos, pero sí hizo que las computadoras fueran prácticamente para todos. Era una máquina de uso general, no muy barata, pero lo suficientemente asequible como para que se adoptara de forma generalizada. Gracias a eso, el término «PC» perduró, aunque ahora esté en declive. Claro que, con la popularidad, llegaron los problemas habituales: limitaciones, problemas de compatibilidad, etc. Pero mucho de eso se ha solucionado con los años, aunque persisten algunas peculiaridades en los sistemas antiguos.
El Intel 8086
Esta CPU era básicamente la columna vertebral de las primeras PC. Fue la primera CPU verdaderamente de propósito general, pero traía algunas desventajas. Solo podía manejar 1 MB de memoria, no más. Y eso no se limitaba a la RAM; abarcaba todo lo que estaba mapeado en la memoria: BIOS, gráficos, periféricos, etc. Los primeros 640 KB estaban dedicados a la RAM, llamada «memoria convencional», y los 384 KB restantes se reservaban para otras funciones del sistema, lo que generaba mucha confusión, especialmente por cómo se etiquetaban los tamaños de memoria (piensen en la diferencia entre 1000 y 1024).Este detalle histórico explica por qué las capacidades de los discos duros a veces parecen un poco diferentes de lo anunciado, debido a la diferencia entre los prefijos decimales y binarios.
Como les gustaba explorar los límites, las primeras PC usaban un método llamado segmentación de memoria para sortear estas restricciones. Sin embargo, los sistemas modernos ahora usan direcciones de memoria virtual, que simplemente asignan memoria física, de modo que los programas ya no tienen que lidiar con esos límites. Aun así, resulta curioso que estas antiguas restricciones influyan en nuestra percepción del hardware incluso hoy en día.
Legado
Con el tiempo, diferentes trucos y mejoras tecnológicas permitieron a las PC acceder a más memoria, pero el problema principal era el limitado espacio de direcciones de la CPU 8086. Hoy en día, los sistemas operativos utilizan memoria virtual, lo que significa que ocultan la distribución real de la memoria física al software, lo que aumenta considerablemente la flexibilidad. En lugar de acceder directamente a las direcciones de memoria reales, las aplicaciones obtienen direcciones virtuales que el sistema operativo traduce. Por ello, el antiguo concepto de «memoria convencional» prácticamente ha desaparecido, reemplazado por un sistema que hace que toda la memoria *parezca* accesible, independientemente de los límites físicos reales.
En términos prácticos, es por eso que casi nunca se escucha hablar de esas antiguas limitaciones de memoria, pero comprender esta historia aún es útil cuando se solucionan problemas en sistemas muy antiguos o se intenta ejecutar software heredado.
Resumen
Básicamente, la «memoria convencional» consistía en los primeros 640-680 KiB del espacio direccionable de 1 MiB en las primeras PC, determinado por las limitaciones de la CPU Intel 8086. Ese fragmento servía como RAM del sistema, mientras que el resto se utilizaba para la BIOS, la memoria gráfica y los periféricos. Hoy en día, ese término está completamente obsoleto, ya que las computadoras modernas utilizan arquitecturas de 64 bits con memoria virtual, lo que permite acceder a *mucho* más: hasta 16 EiB en teoría. Las direcciones de memoria física se han abstraído, y el concepto de segmentos o límites fijos prácticamente ha desaparecido.
No sé por qué a veces persiste en las discusiones, pero al menos comprender las causas facilita un poco la resolución de problemas o el manejo de software heredado. Porque, claro, a los fabricantes de Windows y de hardware les encanta complicar las cosas más de lo debido.