12 mayo 2012

Magnetic core y core dump

El núcleo magnético fue durante dos décadas el método más común para tener una memoria RAM, estamos hablando de la prehistoria de la informática, entre 1955 y 1975, cuando los transistores no existían y menos los circuitos integrados.

A falta de tales recursos el ingenio humano había optado por varios caminos y el eléctrico-magnético parecía ser el más eficiente en esos tiempos.

Cada "bit" era un toroide magnético con cableado para leer y escribir el bit almacenado, un bit se almacenaba en dos sentidos, del reloj o al revés, siendo un estado un uno o un cero, con un pulso eléctrico se podía cambiar la polaridad y se pasaba de un uno a un cero o viceversa.

El acto de leer un bit provocaba su cambio de estado así que era una memoria destructiva, todo lo que se leía se perdía al instante.

Sin explicar electromagnetismo es complicado entenderlo, pero créanme, funciona. Para fines de los 70 fue completamente reemplazada por la memoria en semiconductores más cercana a la actual, el cambio implicaba no sólo una diferencia enorme en cómo se almacenaban los datos, si no en los tamaños y capacidades, donde antes entraba un pequeño núcleo ferroso, hoy entran millones de transistores.




En la foto, por ejemplo (tomada de Wikipedia) podemos ver un core de 64x64 bits que mide 10.8x10.8 centímetros, considerando que un chip de memoria de 1Gb mide 1x1 cm, el cambio ha sido tan significativo que es imposible entenderlo. Esos 4096 bits necesitaban 10 centímetros cuadrados para existir, eran carísimos, hechos a mano y super delicados.

El costo era enorme, cada bit costaba en sus comienzos un dólar (que por inflación serían como 4 dólares actuales), y con el tiempo y la industrialización del método llegó a costar 0.01 centavos, igual, si lo comparamos con el costo por bit de los semiconductores seguía siendo carísimo de producir.

Es en este tipo de primitiva memoria donde nace el famoso y archiconocido por todos los programadores serios "Core Dump". Los lenguajes modernos y sus intérpretes mantienen al programador muy lejos de esto, aquellos que osamos intentar programar en Linux en C, sabemos lo que significa

Es que en los años 60 cuando un programa reventaba violentamente, un típico crash, se hacía un "core dump" a papel para ver el estado en que estaba la memoria en el momento del crash.

En esa época se generaba una gran hoja con el estado al momento de crashear del programa. Con el tiempo el "Core Dump" se mantuvo como expresión pero cambió notablemente al momento de pasar a los sistemas operativos y los discos, ahora el "dump" se escribía en un archivo, un log.

Todavía se puede ver cuando un programa revienta y nos quiere mostrar una serie de códigos hexadecimales incomprensibles, sirve para hacer un debug y tratar de encontrar el problema, en aquellos tiempos era más básico: lenguaje de máquina bit a bit y andá a entenderlo

 

Tomado de: http://www.fabio.com.ar/verpost.php?id_noticia=4629

No hay comentarios: