Translate

30 may 2014

Historia de la Informática

Bueno, son muchas las personas que hoy en día usamos un ordenador u otro dispositivo de comunicación, sin embargo, pocos saben cómo empezó todo este mundo, incluso yo desconocía hasta hace un año o dos cómo estaban estructurados los ordenadores y de dónde partió todo, como si fuese una cortina de humo. Por esa razón he decidido crear la entrada, para que gente curiosa pueda comprender mejor este enorme paradigma.

La historia de la informática comenzó desde que surgió la necesidad de contar, así es, de hacer cálculos, y el ser humano decidió empezar con sus propias manos, como los niños cuando aprenden a contar; más tarde llegaron las piedras u otros objetos pequeños como las manzanas y las peras; y finalmente apareció el ábaco, el cual le permitía por ejemplo llevar la cuenta de su ganado o cositas así, siendo el primer instrumento de cálculo.

Muchos siglos adelante, exactamente en el año 1642, surgió el objeto denominado "La Pascalina", diseñada y creada por Blaise Pascal a los 18 años de edad con la intención de ayudar a su padre, el cual recaudaba impuestos. El objeto tenía aspecto de caja de zapatos, y contaba con unas ruedas dentadas que eran giradas mediante una pequeña manivela. Cuando una de estas ruedas alcanzaba la vuelta completa, movía la siguiente de forma que pudiese representar el sistema decimal de numeración, avanzando esta última un nivel. Cada rueda contaba con el intervalo de niveles comprendido entre el cero y el nueve, siendo un total de ocho ruedas: seis para números enteros y dos más para los decimales. Para sumar por ejemplo solo bastaba con girar una rueda una vez mediante la manivela.

Posteriormente, en 1700, el matemático y político Gottfried Wilhelm Leibniz inventó la máquina multiplicadora, la cual permitía ya realizar operaciones más veloces (hay que recordar que una multiplicación equivale a determinada cantidad de sumas, al igual que una división a una cantidad de restas).

A finales del siglo XVIII, con el auge de la industria textil, se diseñaron máquinas para agilizar y automatizar el proceso y reducir los costes. Fue Basile Bouchon quien creó una tarjeta perforada para “programar” el diseño de los tejidos. Y sería a comienzos del siglo XIX cuando Charles Babbage construye la máquina diferencial con el propósito de calcular polinomios, una máquina programable mediante tarjetas perforadas.

Pero la cosa no quedó ahí, sino que en 1854 fue George Boole quien ideó la lógica booleana, la cual es muy simple:
AND: 0 + 0 = 0
         0 + 1 = 0
         1 + 0 = 0
         1 + 1 = 1
OR:   0 + 0 = 0
         0 + 1 = 1
         1 + 0 = 1
         1 + 1 = 1
NOT: 0 = 1
         1 = 0

Pero, traducida esta lógica a nuestro idioma, ¿qué significa? Muy sencillo, la expresión AND equivale al “y”, es decir, si yo le digo a alguien “Dame un billete de 50€ Y un billete de 100€”, me tendrá que dar ambos. La lógica del OR equivale al “ó”, por ejemplo: “Dame un billete de 50€ ó uno de 100€”, obviamente, esa persona me dará el de 50€. Y la lógica NOT es la negada, es decir, se invierten los valores de 0 y 1.
0 y 1 son los bits, cero es ausencia de información, y 1 es lo contrario. Este concepto queda más claro a la hora de programar.

Más adelante, Thomas Edison patentó la conocida Válvula de vacío. Componente electrónico empleado para amplificar, conmutar o modificar una señal eléctrica, y sirvió para el desarrollo de la electrónica durante el siglo XX.

En 1879 Herman Hollerith es contratado para realizar el censo norteamericano, y para ello, diseñó la máquina tabuladora, la cual funcionaba de forma muy lenta (¡tardó dos años en completar el censo!) y necesitaba de tarjetas perforadas. Este hombre más tarde fundó la empresa TCM (Tabulating Machine Company), compañía que se fusiona en 1924 con otras dos para pasar a ser la famosa IBM (International Business Machine).

Ahora entra en escena Alan Turing, quien durante la Segunda Guerra Mundial trabajó con el objetivo de descifrar código de la máquina nazi “Enigma”. En 1936, para esta tarea, utilizó la Máquina de Turing, la cual constaba de una cinta ilimitada con bits (ceros y unos), y un escáner iba bit a bit y saltando de un lado a otro de la secuencia. Durante esa época, otro personaje llamado Claude Shannon, llegó a la conclusión de que la lógica booleana podía representarse mediante la electrónica, usando circuitos eléctricos; combinando distintos circuitos se podían realizar operaciones AND, OR o NOT. Pero aquí tampoco termina el asunto, porque fue Vincent Atanasoff quién, visto obligado a realizar muchos cálculos de forma rápida y basándose en las teorías de Pascal y Babbage, creó la primera calculadora digital que operaba en sistema binario de numeración (en ceros y unos).

Continuando, lamentablemente, con la Segunda Guerra Mundial, el ejército norteamericano subvencionó la creación del primer gran ordenador: una máquina que llegó a pesar 30 toneladas y ocupar unos 160 metros cuadrados. Su finalidad no era otra que calcular la trayectoria de proyectiles, y funcionaba mediante válvulas de vacío y muchos cables; para programar un programa en esta máquina se tenían que insertar cables en uno u otro lado, presionar interruptores, y cambiar válvulas, una tarea titánica. Fue apodada como ENIAC, y pese a toda la publicidad machista de la época, en este proyecto intervinieron numerosas mujeres licenciadas en matemáticas y física.

En 1944 se decidió cambiar del sistema binario al decimal (de ceros y unos a números normales y corrientes), pero la idea no llegó a buen puerto, veamos por qué. El proyecto fue creado por Howard Aiken, colaborando con IBM; ambos crearon una gran máquina electromecánica que no llegó muy lejos y se vio rápidamente superada por otros diseños que usaban el sistema de numeración binario, pues la información representada en ceros y unos hacía del dispositivo algo mucho más rentable y productivo.

Dos años más tarde, John Von Neumann propone el EDVAC, versión mejorada del ENIAC, proponiendo el sistema de numeración binario (que simplificaba los circuitos eléctricos, junto con las ventajas comentadas arriba), y juntar las instrucciones básicas e importantes en un mismo sitio, dando lugar a la CPU. La idea era almacenar datos e instrucciones (los programas, vamos) en memoria, mientras la CPU iba leyendo estos contenidos e iba ejecutando operaciones en consecuencia.

En 1953 IBM diseña el IBM 701, destinada a la investigación científica. Al año siguiente sacó a la luz la que sería hermana del 701, la IBM 705 para aplicaciones comerciales, empleando por primera vez memorias con núcleos de ferrita y manteniéndose como la cabeza mundial del mundo de la informática.

Pero claro, las válvulas de vacío y esos cables enormes tendrían, algún día, que desaparecer, y así fue cuando entraron en escena los transistores en 1958. Estos aparatos consumían menos corriente y producían menos calor, siendo más rentables, pues además, ayudaron a reducir el tamaño de los ordenadores. Por esta época aparecieron también los primeros lenguajes de programación, como el FORTRAN o COBOL (sustituyendo estos lenguajes al cableado o las tarjetas perforadas).

Pocos años más tarde, 1964/1965, comenzaron a aparecer los graciososos chips cucarachas, en los cuales se alojaban numerosos circuitos electrónicos para realizar operaciones y conducir la electricidad. La aparición de los microchips conllevó a lo mismo que los transistores: reducir el tamaño de las maquinas.

Al mismo tiempo, apareció el concepto de multitarea, es decir, la ejecución de diversos programas al mismo tiempo, porque hay que pensar que las primeras máquinas ya comentadas solo podían ejecutar un programa a la vez. Imaginad que sin este concepto, para cambiar de programa (del Skype al navegador) tuviésemos que recablear y cambiar todos los componentes de la máquina. Claro, estos conceptos fueron surgiendo a medida que había mayores necesidades, las máquinas evolucionaban pero los programas eran lentos y tediosos (¡no existía siquiera interfaz gráfica!).

Y claro, muchas empresas tampoco se querían quedar atrás, los Laboratorios Bell, por ejemplo, diseñaron el sistema operativo Multics, que a pesar de no ser un éxito rotundo, dio muchas ideas nuevas. En 1969 se desarrolló el sistema UNIX por K. Thompson y D. Ritchie, basados en Multics e implementando el lenguaje de programación C, basado en el lenguaje B.

Con todos estos avances en unas pocas décadas, ya en 1976 se usaban pequeños discos duros (de pocos megas de memoria), memorias semiconductoras y ordenadores personales más rápidos y baratos, como pudo ser el caso del Altair 8800, que a pesar de no tener monitor, funcionada mediante lucecitas y botones. Steve Jobs por esta época, en un garaje, creó junto a su socio Steve Wozniak el Apple I, primer ordenador con monitor y teclado. En 1977 apareció el Apple II con microprocesador MOS.

En 1981 IBM entra en este mundillo y crean los IBM PC, con procesador Intel 8088 de 8 bits y sistema operativo PC-DOS de Microsoft. Tuvieron un éxito enorme, pues comenzaron a salir en el mercado muchos clónicos de estos ordenadores, y los cuales han marcado el factor de forma de los equipos actuales, como la arquitectura de procesador x86 (32 bits) o el sistema operativo MSDOS, que pasó más adelante a ser Windows NT, XP, 7, 8... Se diseñaron además ordenadores portátiles que… ¿pesaban más de 10 kilos? Sí, y un ejemplo es el Osborne 1.

Bill Gates terminó comercializando el sistema MSDOS, que era en modo texto o comando, y se hizo el hombre más rico del mundo (creo que ni él se lo creyó). Y el primer ordenador con ratón apareció en 1984, denominado Apple Macintosh (MAC), con procesador Motorola 68000, el cual cambió en 1994 al PowerPC, y finalmente en 2006 se pasan a procesadores Intel.

Y durante la recta final del siglo, se hicieron más frecuentes las videoconsolas o los sistemas operativos con interfaces gráficas, incorporando ya periféricos como el ratón, discos duros, teclados, monitores… Casos así son el Windows 1.0, Windows 2.0 (aparecen Excel y Word), Windows 3.0 en 1990 (convirtiendo a IBM en el principal competidor de Apple), Windows 95, 98 y NT. A partir de aquí, los sistemas operativos como Windows 2000, XP, Vista, 7 u 8/8.1 se basaron exclusivamente en el NT, que a su vez estaba basado en el sistema OS/2, el cual pretendió ser el sucesor del DOS.

Muchos ordenadores de los años 80/90 pueden ser el Commodore 64, Dragon MSX, Atari 800 XL, Sony MSX, Sinclair ZX Spectrum, NCR y Commodore Amiga. Pero claro, todos estos dispositivos y sistemas eran caros, y no todo el mundo podía acceder a ellos, por estas nobles y sencillas razones, el hombre llamado Richard Stallman propone crear un sistema UNIX libre, uniéndose con Linus Torvalds, un mero estudiante que había diseñado un kernel independiente del sistema operativo MINIX (basado este en UNIX), y Richard decidió incorporar este núcleo a su proyecto GNU (GNU’s Not Unix), y surgiendo así el sistema operativo Linux, junto con la maravillosa licencia de Software Libre.


Espero que no se os haya hecho pesada la lectura y hayáis disfrutado un poquito descubriendo cosas, un saludo ^^

27 may 2014

¿Qué es un disco duro?

He decidido crear la entrada para explicar detalladamente qué es un disco duro, así como sus características principales, pues tengo pensadas futuras entradas del blog para manipular los datos de un disco de diversas formas, y me gustaría que el lector, al menos, pudiese aferrarse a algo en caso de no conocer bien este dispositivo.

Una vez explicado eso, paso a resumir lo que viene a ser un disco duro, así como su historia: Un disco duro,  o en inglés (Hard Disk Drive), es un dispositivo de almacenamiento no volátil y de soporte magnético. Está compuesto principalmente por una serie de platos en su interior, unidos todos por un mismo eje y dispone además de un conjunto de "cabezales" que sirven para escribir o leer datos de dichos discos.

¿Qué quiere decir que no es volátil? La información que manipulamos al usar el ordenador se tiene que almacenar en algún lugar, que por lo general es el disco duro (hay más memorias, como la RAM, la caché o los registros, pero no voy a detallar eso aquí), y cuando apagamos el ordenador, esos datos se mantienen ahí, intactos (obviamente, si rompemos físicamente el dispositivo esos datos se perderán, ¡vaya!), viene a ser, en definitiva, una especie de almacén para nuestro equipo. Se dice que es de soporte magnético, porque en principio los discos están recubiertos por un material magnético que permite a los cabezales leer o escribir datos.

Pero... ¿cómo sabemos que escribimos o leemos datos? Es muy fácil de detectar, puesto que son todos los datos que se almacenan en nuestro ordenador, por ejemplo, al guardar en un archivo de Word o en un bloc de notas nuestros cambios, esos datos se están escribiendo en el disco duro; podemos comprobar que los datos no se pierden porque al reiniciar el equipo, o al apagarlo y volverlo a iniciar, esos datos que hemos escrito se mantienen.

Los primeros discos duros fueron fabricados por la gloriosa empresa de IBM en 1956, y han sido considerados como memoria secundaria desde siempre. Obviamente, con el paso del tiempo los discos duros han cambiado su arquitectura y su capacidad, por ejemplo, los discos duros de toda la vida son de acceso no-aleatorio, esto quiere decir que tardamos en recoger los datos dependiendo de dónde están ubicados, hay que tener en cuenta que no es lo mismo buscar en el primer disco que en el último, pues los cabezales tienen que hacer un recorrido mucho mayor, desgastando el dispositivo.

El primer disco duro tenía una capacidad de 5MB, ¡cinco! Cuando mi disco duro ahora mismo contiene 1Tera de memoria. Esto tenemos que agradecerselo a dos hombres en cuestión: Albert Fert y Peter Grünberg, ambos eran físicos, siendo el primero francés y el segundo alemán. Estas dos personas consiguieron desarrollar unos cabezales mucho más sensibles que pudiesen compactar los bits (la información), de tal manera que obtuvieron un mayor acceso al disco e incrementando la capacidad del mismo. Y tanto que incrementó su capacidad, porque en 1992 rondaban los 250MB, cuando hoy en día, 22 años después, cuentan con teras de memoria. Verdaderamente asombroso, sí.

Entre las características de un disco duro, podemos tener en cuenta su velocidad de rotación (o revoluciones por minuto), que consiste en la velocidad a la que giran los platos; el tiempo de acceso, lectura y escritura, donde el cabezal correspondiente se sitúa en el plato correspondiente para extraer o no información y enviarla al equipo, y la interfaz o puerto que conecta el disco con el ordenador, que bien puede ser IDE/PATA, SATA, USB, Firewire... los cables para enchufarlo al ordenador, vamos.

Vale, todo muy guay hasta aquí, un disco duro es un cacharro que almacena información, tiene discos magnéticos que giran dentro y tiene como objetivo el mantener los datos intactos dentro del sistema. Pero, ¿cómo se compone a nivel lógico, realmente? En este punto hay que aclarar dos conceptos muy importantes: el nivel físico y el nivel lógico. La mayoría de las cosas en informática tienen una aplicación física y una aplicación lógica (hardware y software), el hardware del disco es lo que hemos visto hasta ahora, cómo vemos nosotros el aparato en nuestras manos, pero el software, la parte lógica, es muy diferente, y más compleja.

El nivel lógico de un disco duro depende mucho del sistema operativo con el que trabajemos (Windows XP, Windows 7, Windows 8, Ubuntu, OSX...), porque es el sistema el que organiza la estructura del disco, dividiendo cada plato en sectores, pistas o clústers, ¿muy asustados? Bueno, dejo una imagen para aclarar mejor el concepto:
Eso vendría a ser un platito del disco duro, y según la leyenda de la imagen... la A sería una pista o cilindro (si vemos los platos de frente, en vertical, veremos que los discos forman un cilindro, y eso equivale a una pista, si no lo entendéis, imaginad que la zona roja es un círculo que sigue hasta abajo como una lata), la B sería un sector (un sector reúne un determinado conjunto de información, por ejemplo, el sistema operativo está almacenado en el primer sector del disco duro, siempre), la C sería el sector de una pista (combinamos los conceptos anteriores), y la D es un clúster (los clústers son diversos sectores contiguos agrupados como un solo sector, y su gestión depende del sistema operativo, imaginad que pocos clústers (pocos sectores contiguos) consumen menos memoria, pero el disco tardará más en buscar la información, y lo contrario sucede en el caso contrario, valga la redundancia cachis, que el disco hará menos esfuerzo pues localiza los sectores más rápido y los barre por los clústers, pero consume más energía).

El nivel lógico de un disco duro puede también representarse como una caja de galletas, porque nosotros, los humanos, no podemos saber exactamente qué clúster contiene qué sectores y dónde están ubicados en memoria estos clústers, etc. Por esa razón, muchos sistemas operativos ofrecen herramientas para manipular de forma lógica un disco duro: Un paquete de galletas, un rectángulo, que representa la totalidad del disco con su capacidad. Podemos mencionar además las particiones, y pensaréis, ¿¡pero qué me estás contando, maldita extraterrestre!? Nada complicado, vaya xD

Una partición es una zona del disco duro que ha sido dividida del resto del disco, por ejemplo, todo disco duro tiene una partición principal donde se guardan los programas de arranque y el sistema operativo, una partición reservada para el SO, luego tenemos particiones primarias (el disco en sí es una partición primaria, por así decirlo), y solo podemos tener hasta cuatro particiones primarias en un disco. Podemos sustituir estas particiones (por ejemplo, la cuarta primaria, osea, la última), por una extendida, que contiene particiones lógicas (dependiendo de los discos, se pueden cientos de lógicas o unas pocas).

Este tema de las particiones tiene mucho más contenido teórico detrás, contenido sobre sistemas operativos, memoria virtual, sectores de arranque (boot loader y master boot record), y más cosas que incluso yo desconoceré. Por esa razón dejaré aparte el tema del particionado, al menos en esta entrada (se supone que va orientada para alguien que no tiene conocimientos, mérito tiene haberlo entendido todo xD).

Y otro aspecto físico que quería destacar de los discos duros, es que los hay de dos clases: HDD, y SSD, la principal diferencia es que los primeros son los típicos de toda la vida (los magnéticos con los platitos), y los segundos funcionan como un pendrive, es decir, tienen una especie de chip que funciona mediante electricidad (no tiene cabezales, y es mucho más rápido que un HDD), pero claro, estos últimos tienen menos capacidad. Explico esto por si algún día queréis comprar en una tienda un disco duro, y veréis discos corrientes y SSD, al menos con esto tendréis una vaga idea que creo que os podrá ayudar.

Y con eso todo por ahora, espero que haya sido de vuestro agrado, un saludo ^^