martes, 9 de agosto de 2016

El código máquina...

Eran tiempos revueltos en mi vida cuando alguien me contó como funcionaban realmente las máquinas, como era realmente la vida de un ordenador.

En aquel tiempo yo programaba ya bastante bien en el basic del Spectrum, de hecho hacía mis programas de contabilidad, mis horarios, las chuletas para estudiar en el colegio, los primeros juegos... Luego lo guardaba en cinta y andando.

Pero en las revistas que me llegaban a casa con programas aparecía siempre una palabra, la palabra "POKE", que significaba meter, y luego una cadena de caracteres o de pares de números alfanuméricos, que tenías que meter uno a uno y sin confundirte, ya que si no, el programa o el juego no funcionaba.

Todo eso llamó mi atención y leyendo aquí y allá entendí que lo que hacía el poke era meter una información en un dirección de memoria. 

En aquellos días me dieron un libro, que si mal no recuerdo era "El Zilog Z80", en el cual me explicaban que lo el ordenador lo que hacía era colocar información en memoria, y mandarla a los periféricos.

Pero el ordenador ni siquiera funcionaba con esos hexadecimales sino que funcionaba con 0 y 1, con largas series de 0 y 1 que eran mandatos de la forma pon esto aquí o llevaló allí, o cambia el estado de tal posición...

Eso era el código máquina, el código que usaba el ordenador para mover la información de un lado a otro, para "MOV" o "GO" o "ADD"... Ese código máquina era tan difícil de leer y tan farragoso que lo que se había hecho es crear un lenguaje algo más legible, el lenguaje ensamblador, que correspondía uno a uno a aquellos códigos que yo metía en el POKE.

Ese lenguaje ensamblador era muy complejo en aquellos tiempos y lo que habían hecho los creadores del Spectrum era crear un interprete, es decir, un traductor que se encargaba de hacer que lo que yo escribía en Basic fuera entendido por el ordenador en código máquina. De esta forma cuando ponías print el Basic lo traducía a un código más entendible al ordenador:

print "jose" era traducido a una cadena de comandos de ensamblador que hacían que la cadena jose apareciera en la pantalla, de modo que primero se seleccionaba la traducción del comando PRINT y luego se pasaba a código binario la cadena jose, y se iba imprimiendo punto a punto cada letra de la cadena "jose" en la pantalla.

En los ordenadores actuales, cuando tu enciendes un ordenador y lo haces funcionar, nada se hace en inglés o en español o chino, todo se actualiza a 0 y 1 y fluye de una zona a otra en forma de bits de un lado a otro de tu ordenador o tu movil o tu tablet.

Por eso es tan importante saber que existe y qué es el código máquina.

lunes, 1 de agosto de 2016

Los que hacen todo: Navegadores

Ya hace tiempo os he hablado de la guerra de Explorer y Netscape, y hemos hablado algo de Safari y Chrome... Pero no nos damos cuenta de la suerte que tenemos... Simplemente teniendo este traductor que se llama navegador.

El navegador, y la palabra fue muy bien buscada, nos sirve para "viajar" entre una url y otra url, entre una dirección de internet y otra, o siguiendo con la metáfora entre un puerto y otro, como si estuviéramos en un mar, navegamos de una dirección ip a otra ip.

Y es que lo primero que hubo que hacer al crear un navegador es que este fuera capaz de ir de un sitio a otro, y para ello necesitaba un mapa, este mapa eran las dns, un directorio que cambiara el nombre que yo pongo por un conjunto de números que llamaran a la dirección de un servidor, es decir, que pusieran en comunicación mi ordenador con el ordenador al que quiero acceder.

En tiempos, cuando lo único que teníamos eran lineas telefónicas, ya era algo increíble el conectar por modem con un ordenador a distancia, oyendo el ruido de inicio de conversación entre ambos.

Mi primera vez fue genial cuando entré en un ordenador de una revista de Amstrad y conseguí identificarme para bajar un pequeño programa... Todo eran comandos, palabras clave...

Después tuve acceso a máquinas Unix, que permitían el acceso a ordenadores de otras universidades donde otros locos por la informática como yo habían puesto sus programas y los compartían para poder descargarlos.

Aquello requería una conexión telnen y luego un ftp, es decir, usar un file transfer protocol, un protocolo de transferencia de ficheros, un acceso normalmente anonymous, y luego una descarga.

Ahora tu pones google en el buscador de google y estás en conectado al ordenador de Google, y si haces click en este supervínculo joscarmartom estarás en mi canal de youtube.

Pero es que cuando tu entras en una web, a parte de abrir un canal de comunicación directamente lo que haces es descargar partes del código que está en ese servidor.

Cuando entras en una web, descargas un fichero de texto, aunque no lo sepas descargas un programa que le dice a tu navegador como tiene que colocar las cosas, los textos, las imágenes y los vídeos, el orden en que tienen que aparecer, y la forma y los colores.

Si volvemos de nuevo en el tiempo, al principio las páginas web que se mostraban no eran más que textos, ya que la velocidad de trasmisión era muy pequeña, y si alguien ponía una imagen, eso podía ser una hora para poder verla.

Recuerdo aquellos días, queriendo bajar alguna foto, poniendo el hash para ver el proceso de descarga y llegar a tardar una hora para ver una imagen de una flor con 4 colores... Ahora arrancas el móvil y de pronto ya tienes la foto que tu madre hizo a sus nietos hace dos minutos, o incluso el vídeo de un resbalón en segundos.

Esos primeros navegadores funcionaban poniendo numeritos, y esos numeritos estaban en listados de las universidades, ucla, por ejemplo, y según el tráfico que hubiera así llegaba la información.

Ahora si te tarda en descargar una imagen te desesperas, porque ahora tu navegador descarga en paralelo, descarga a la vez el texto y las imágenes, y te lo va mostrando a toda velocidad, porque ahora todo está comprimido en origen y es decodificado en tu terminal al momento, porque ahora tienes una velocidad de transmisión increible y una de procesado fuera de lo normal.

Y ese navegador al que no prestas atención  es el que se encarga de ordenar todo para que tu lo disfrutes.