Fijaos que hasta ahora, en la primera parte del post, sólo he hablado de cosas físicas. Todos los componentes de los que he tratado son, en mayor o menor escala, puramente materiales: lo eléctrico, lo electrónico o lo mecánico. A eso es a lo que se le llama hardware. Pero a todo el mundo le suena que, frente a eso, también existe otro concepto: el de software.
5.- Estableciendo las reglas del juego: el software
«Software» es una de esas palabras que hace tiempo que se usa en el lenguaje popular. ¿Pero qué es exactamente? Básicamente es la información, incluyendo los datos y las instrucciones que existen sobre ellos, que hacen operar un sistema informático. Podríamos entenderlo como un lenguaje, como un idioma. Algo así como las palabras y su gramática. Como las reglas del juego y los acontecimientos que ocurren durante el partido. Por eso se le suele llamar la parte «lógica», que «corre» (más correctamente, se ejecuta) sobre la parte física que es el hardware. Metafóricamente, sería como decir que «las ideas» corren sobre «los cerebros».
Para no perdernos demasiado, vamos a centrar el tiro en los dos tipos de software más visibles: los sistemas operativos y las aplicaciones:
- Probablemente, el software más importante de cualquier aparato es su Sistema Operativo. Es el que gestiona los recursos de la máquina y los pone a servicio de las aplicaciones. Es decir, es el que le dice a los programas: «Atento, procesador de textos, lo que diga ahora el teclado es para ti. ¿Cuánto espacio de memoria necesitas, 200k? Venga, ahí tienes. Monitor, vete mostrando en pantalla lo que se escribe, ¿ok? Ah, espera, ¿que ahora cierran el programa? Pues devuélveme esa memoria, tú, para que la use otro». Es algo así como el gobierno. Sólo que, en ocasiones, funciona bien.
- Sobre ese sistema operativo están las aplicaciones. Son herramientas que sirven para realizar funciones concretas. Ese «autómata universal» que comentábamos en la primera parte del post se convierte, gracias a las aplicaciones, en un autómata más específico. Le dicen al ordenador, exactamente, qué deben hacer con unos datos. Por ejemplo, el photoshop sabe bien cómo trabajar con imágenes y el skype enviar señales de voz a otro ordenador remoto. Los navegadores pueden comunicarse con otros ordenadores que publican las páginas web e interpretar lo que estos les devuelven para que nosotros podamos ver el vídeo del gatito esmorrándose por las escaleras… ¿Por qué? Porque es lo que las personas quieren hacer con sus ordenadores. Y eso, siempre tiene siempre que ver con las aplicaciones que utilizan, ya que son las que nos permiten hacer cosas que tengan un sentido. Por muy chorra que sea ese sentido.

El sistema operativo es la estructura y los pivotes de giro. Las aplicaciones pueden o no estar activas y sirven para cosas específicas.
Quienes saben programar, casi siempre, se dedican a programar software. Y utilizan diferentes lenguajes para que indicarle al ordenador como deben comportarse. Algunos son de alto nivel, se parecen más a la forma de entender el mundo que tenemos los humanos y suelen ser más fáciles de aprender. Otros son de bajo nivel y están más cerca de como trabajan los ordenadores con sus ceros y unos, requieren conocer mejor la arquitectura del hardware que hay por debajo y suelen ser más eficientes.
6.- Poniendo en común: Las redes
Ahora imaginad que en una oficina, todo el que tuviera un ordenador tuviera que tener su propia impresora. Habría que comprar una a cada empleado (seguramente barata y limitada) y se pasaría el 99% del tiempo sin ser utilizada. A alguien se le puede ocurrir pensar, «Oye, ¿y no sería mejor tener una pedazo de impresora chupiguay, un pepino, y la usamos entre todos?» Y, efectivamente, la impresora pasa a estar funcionando más tiempo para dar un servicio de más calidad a todo el mundo. Resultado: se aprovecha mejor y hasta resulta más barata.
Pues ahí está el concepto que origina las redes: compartir.
Se pueden aprovechar mucho mejor los recursos, cuando se comparten. Y esos recursos pueden ser, básicamente, cualquiera de las cosas comentadas antes. Información, elementos de hardware, software, capacidad de computación, etc… Es una idea bastante hippie y que funciona.

Compartir información recuerda a compartir fuego. Uno gana y el otro no pierde.
Muy unido al concepto de red está el tema de los protocolos de comunicaciones, que vienen a ser los lenguajes que utilizan entre sí los distintos dispositivos para entenderse. Al igual que con todo lo demás, los hay más cercanos al mundo físico y los que están más cercanos al entendimiento humano. (No quiero volver loco a nadie, pero si alguien quiere profundizar en esto, puede empezar leyendo sobre el modelo de referencia OSI).
Y luego está internet, sí, que, en realidad, no es más que una red. Una red mundial, pública y descentralizada en la que se pueden compartir todas las cosas en las que estáis pensando ahora …y las que estén por llegar. Pero una red, al fin y al cabo. En internet abundan (aunque no son únicas) las llamadas arquitecturas cliente-servidor. En las que un ordenador -normalmente potente- presenta sus servicios concretos a otros ordenadores, los de los usuarios, llamados clientes. Cuando le das al play en un vídeo de youtube, tu ordenador le está diciendo a un servidor de google: «¿Oye, me pones una de «contigo no bicho«? Y el otro responde «¡Maaaarchando!»
7.- Una vueltita más de tuerca: La virtualización
Ya, para terminar, está el tema de la virtualización. Suele pasar por ser algo nuevo pero, como todo lo demás, es un concepto que viene de hace décadas. Virtualizar es simular la existencia de un determinado recurso informático a través de un software. Un caso típico es el de un programa que simula un ordenador completo. Ese sistema «virtual» se comporta, en la práctica, como si fuera un ordenador independiente, pero en realidad es un programa que puede copiarse, borrarse o transmitirse como un elemento de información más. Es lo importante: la máquina virtual en sí, sólo es información.
¿Y si en vez de 100 guardias de tráfico ponemos uno y lo reflejamos con espejos?
En los últimos tiempos están cobrando mucha relevancia porque permiten hacer aparecer en tiempos mínimos sistemas nuevos y listos para ser utilizados y eliminarlos cuando ya no se usan, ganando en eficiencia. Pero, por supuesto, al final tienen que correr sobre un hardware, como cualquier otro tipo de software. Magia, magia, ninguna, por supuesto.
Bueno, espero que con esto haya ayudado a alguien a entender, al menos, los diferentes niveles de cosas que hay funcionando por detrás de los ordenadores. Explicar algunos de los conceptos claves y sus relaciones.
Y una última reflexión, si a toda esta inevitable complejidad le añadimos la cantidad de cosas que se hacen mal, bien sea por errores humanos o por pura malicia (como los virus y demás), entenderéis que lo milagroso es que los trastos lleguen, en algún momento, a funcionar medianamente bien. Pensadlo la próxima vez que os entre un ataque de nervios…
Fantástico(s) post(s), la verdad. Muy bien explicado para aquellos que anden un poco perdidos en el tema.
Gracias, Noelia. Esa era, precisamente, mi intención. ;)