domingo, 24 de marzo de 2013

Tu computadora y tú: hora de aprender (i)

El largo camino de miles de millas comienza con un solo paso.


Había pensado comenzar esta entrada con algo del estilo de "... Ahora, reinicia tu computador y...", y vaya, primeros problemas. Si lo haces inmediatamente, no leerás el resto de la entrada; vale, puedes imprimirlo... si tienes impresora (¡¡papel y tinta!!); o puede que estés viendo el blog desde un móvil de estos supermodernos... en fin, que sin pretenderlo he dado con el primer paradigma que quiero exponer: aunque sea cierto que cualquier tecnología avanzada (como establece la Tercera Ley de Clarke) es indistinguible de la magia, lo cierto es que la tecnología, por sí sola, no hace milagros.

En estas y otras entradas pretendo introducir la informática (real) en personas a las que interese este tema, pero que por una u otra razón no han aprendido. Esto sirve para aprovechar y redondear algunos artículos anteriores del blog, en especial los referidos a Internet.

El otro paradigma, y el que guiará todo lo dicho hoy, es
si bien es cierto que la informática para un usuario es fácil, también lo es que nadie nace aprendido.
Al igual que en cualquier otra disciplina, el resultado obtenido dependerá principalmente del tesón y esfuerzo dedicado a su aprendizaje. De hecho, los Hackers suelen verse reflejados en los grandes maestros de las artes o las ciencias. Es la dedicación, el entusiasmo y el inmenso trabajo durante mucho tiempo lo que te permite ser un maestro en tales disciplinas, y no podía ser menos para llegar a ser todo un hacker.

Mas no es el objetivo conseguir que el lector devenga hacker. Si quiere hacerlo, puede serguir los consejos al uso que dan ellos mismos.

El principio


Como para poder aprender cualquier cosa, debemos comenzar por amueblar nuestra cabeza. Y es que no hay disciplina cuyo dominio no implique el conocimiento de un buen número de conceptos e ideas.

En informática eso se resume en que el aprendiz debe de aspirar a entender cosas como el sistema numérico binario, un poco de arquitectura de computadores, alguna dosis de programación... y es donde el aprendiz inglés toma mucha ventaja sobre el español y otros (salvo, sorprendentemente, sobre los hindúes!). Los nombres tienen significado, y el aprendiz que domine inglés puede leer/escuchar un nombre y en su cerebro se formará ya la metáfora apropiada: una sencilla descripción del concepto técnico entonces será suficiente para su comprensión casi eterna.

Pensemos en un ejemplo muy básico y sencillo: el bit. En inglés, la palabra bit designa a un pedazo minúsculo, mínimo de algo. Aplicado a la informática, un bit es la unidad de información mínima, y se representa con un cero o con un uno. Es la base del sistema numérico binario (que sólo tiene esos dos números para combinar, a diferencia del decimal, por ejemplo, que tiene 10). Uno/Cero. Perfecto para representar lo mínimo que puedes saber de algo: verdadero/falso; sí/no. Que de paso es la base de nuestro sistema de lógica.

Piensa en ello un momento: ¿llueve? No importa si apenas cae un poquito de llovizna o te puedes ahogar en una tormenta tropical; tampoco importa si ha llovido o si parece muy probable que vaya a llover pronto. ¿Llueve? ¿ o no?

El sistema binario es muy curioso. ¿uno más uno? 10, por supuesto. ¿y uno por uno? uno, como era de esperar. De esta manera de contar diremos más cosas después.

Sigamos con otra palabra: word (palabra). Una palabra es un conjunto de letras, y una word es un conjunto de bits. La diferencia entre la palabra usual del lenguaje y la informática es que aquella puede tener una o varias letras, mientras que la palabra informática sólo tiene un número dado de bits. Y dicho número depende de la arquitectura del sistema informático de turno. Pueden ser 8, 16, 32, etc. Que recuerde, los PC modernos que utilizamos la mayoría de las personas hoy por hoy tienen palabras de 16 bits (y forman dobles, triples o cuádruples palabras). Pensad que la comunicación es a base de palabras, y veréis la misma metáfora que instintivamente ve un inglés al leer el vocablo informático word

En algunos libros de informática se hacen un lío con los bytes. Un byte es un grupo de 8 bits, que no es casualidad que sea una potencia de 2 (23, para ser más precisos). En algunos equipos un byte podría ser equivalente a una palabra, pero sólo en equipos de 8 bits.

El arte de contar



El sistema binario es la base de la informática. Usa dos símbolos (0 y 1) y tiene una serie de propiedades curiosas. Destaca el hecho de que sólo necesitas dos operaciones para poder hacer cualquier operación aritmética: el complemento (la capacidad de cambiar de un valor al opuesto) y la suma. Sí, en binario ¡las restas y divisiones no son más que sumas!!

En la wikipedia tratan bastante bien algunas cuestiones informáticas, y el artículo sobre el sistema binario tiene buena pinta. Leedlo y tratad de aprender algo sobre algo tan curioso. No dejéis de ver la curiosa y antigua historia de este sistema de numeración. También es curioso como las mismas propiedades del sistema binario fueron empleadas en otros tiempos, como este sistema de multiplicación del antiguo Egipto.

Breve historia de los computadores


En los textos informáticos se suele hablar de cuatro generaciones (y una quinta que sería la "moderna") para agrupar las características básicas de los computadores informáticos a lo largo de los últimos 60 años.

Hay cierto acuerdo de que el primer computador se desarrolló en la Segunda Guerra Mundial para descifrar el código de los mensajes alemanes; no obstante, la llamada "Primera Generación" (y con ella, el inicio del tiempo informático) la suele marcar la creación de ENIAC en 1941. A esta era de enormes computadores la sigue el desarrollo de los llamados lenguajes de "Alto Nivel" que marcan la llamada "Segunda Generación". En la Primera Generación, los computadores son programados en sistema binario o en ensamblador (un código nemotécnico para abreviar las instrucciones binarias).

En la década de 1950 se desarrollan los primeros lenguajes más próximos al lenguaje natural (inglés). Dichos lenguajes, como es de esperar, permiten simplificar la programación de los computadores. Esto lleva a desarrollar computadoras de propósito general. La generación concluye cuando IBM presenta la serie 360.

La "Segunda Generación" llega con el uso de los transistores. Esto hace que los nuevos computadores sean más baratos, rápidos y eficientes.

La "Tercera Generación" tiene como protagonista el desarrollo del circuito integrado, que acabará posibilitando los primeros microchips, que a su vez sientan las bases de los mucho después llamados "computadores personales".

El salto de la tercera generación a la cuarta está marcado por Unix. En esos tiempos, los computadores típicos son en realidad redes formadas por una potente máquina central a la que se conectan los usuarios desde otros computadores o bien desde terminales: los terminales constaban del equipamento mínimo para conectarse a una red que permitiese acceder al servidor donde el usuario tenía una cuenta de acceso.

Los microprocesadores permiten que los computadores personales rompan esa dependencia de un gran servidor central, posibilitando que cualquier usuario utilice un computador de forma aislada, ya fuese en su casa, en el trabajo, etc. Es la hora de la "Cuarta Generación": la era del "Computador Personal". En los tiempos actuales, tenemos un montón de computadoras personales (y otros dispositivos computadores: tabletas, smartphones,...) conectados entre sí a través de la "Red de Redes": InterNET.

Dicho esto, puede que un lector avisado haya pensado que el uso de un smartphone con sus applets que utilizan servicios de distintos proveedores a través de internet es curiosamente similar al de los antiguos terminales Unix. Bien, muy bien ;)

Cosas de la arquitectura


Un breve esbozo de la arquitectura de un computador tenderá a dejarse fuera un buen puñado de cosas. Pero eso no es excusa para tratar de formarse una imagen mental de cómo funciona un computador.

En un principio, tenemos un computador que se compone de una memoria (RAM), un procesador (microprocesador) que a su vez se compone de dos elementos (la Unidad de Control que como es de esperar controla a todo el sistema, y la Unidad Aritmético-Lógica, que se encarga de efectuar las operaciones aritméticas y lógicas que forman la base de la informática), y una serie de elementos denominados periféricos, que sirven para que el mundo se comunique con la memoria y el procesador: un teclado para escribir blogs, una pantalla para leer blogs, un ratón, una impresora, un disco duro donde guardar las cosas, un pendrive para llevarlas por ahí...

Esto se llama "Arquitectura Von-Newman" y forma la base del diseño de la práctica totalidad de los computadores de hoy en día. Lo más importante de la misma es comprender que la información que maneja cualquier computador debe de estar cargada previamente en la memoria principal del sistema. Aquí también hay libros que se lían mucho, por el hecho de que en un computador puede haber varios procesadores que se complementan entre sí, y muchos computadores pueden colaborar en un sistema único. En fin.

Cargada es de esos términos informáticos con un significado preciso: cargar algo es copiar ese algo en la memoria principal. De paso, en la jerga informática es frecuente utilizar la preposición a en lugar de en. Así, muchas veces se dirá "copiar algo a Memoria". En mi opinión, es una costumbre que pretende clarificar el sentido en el que se efectúa la acción cuando se efectúa un movimiento de información: copias algo del disco, copias algo al disco.

Los computadores modernos utilizan muchas memorias, aunque la Principal solo es una de ellas. La memoria de esta época es quizás la DDR SDRAM. Por supuesto, termina en RAM (Random Access Memory, que significa que acceder a cualquier parte de ella lleva lo mismo que acceder a cualquier otra parte). Después añadiré un matiz sobre las tarjetas de vídeo.

Otra memoria importante es la ROM. Esta es una memoria en la que el fabricante añade lo imprescindible (y a veces alguna cosa más) para arrancar un computador, o mejor dicho, para arrancar un Sistema Operativo. Hay muchos tipos: EEPROM, EFI... Incluso algunos computadores o smartphones pueden usar una memoria flash para esto.

El proceso de arranque de un computador es el que sigue: al encender, comienza a circular electricidad por el sistema: se ejecuta entonces lo alojado en la memoria ROM de turno, que suele consistir en un programa de comprobación del hardware mínimo y un sistema para ejecutar lo que quiera que se encuentre en el principio del disco duro (o del DVD, etc.). Los sistemas EFI/UEFI lo que hacen es cargar lo que exista en la partición EFI del disco duro de turno.

Este "lo que quiera" es alguna forma de "cargador de arranque", o sea, un programa que simplemente permite arrancar uno o varios Sistemas Operativos. Una instalación por defecto de Windows oculta este cargador, haciendo que el usuario crea que se carga directamente.

Del arranque se hablará en su momento de forma más extensa (se merece su propio artículo, o mejor dicho, varios de ellos :) ).

Queda por contar el matiz respecto a las tarjetas de vídeo. Un computador moderno utiliza varios elementos que por derecho propio consituyen a su vez otros computadores: constan de memoria y procesador. Los que se utilizan desde hace más tiempo son las llamadas "tarjetas de sonido" y "tarjetas de vídeo". En el caso de éstas, la tarea de mostrar vídeo es tan onerosa para el sistema que fueron incorporándose cada vez procesadores más potentes acompañados de cantidades cada vez mayores. A su vez, los procesadores fueron mejorando, tanto que pueden ser tan potentes como los procesadores estándar utilizados hace pocos años. Y en las gamas "altas", puede que incluso sean más potentes.

Y para finalizar la entrada: en el último párrafo utilizo la palabra procesador de forma deliverada, para asimilar su función dentro de la arquitectura de un computador. Sin embargo, el procesador de un computador personal suele denominarse "microprocesador", al ir integrado en un solo chip de tamaño reducido. A veces, el mundo de los computadores personales y portátiles es denominado por este motivo "microinformática".

Vale, no he prometido que no sería un rollo ;)

2 comentarios:

  1. Por dios!
    La fuente blanca sobre fondo negro para leer mucho es asesinar retinas!!

    Por lo demás bien, pero ahora voy a echarme un litro de colirio!!

    ResponderEliminar
  2. a buenas horas, hace tiempo que está así. Será que soy de la vieja escuela, pero es una combinación que leo cómodamente, pero bueno, será cuestión de buscar otra xdd

    ResponderEliminar