Esta es la segunda parte del artículo. Para leer la primer parte que trata principalmente sobre cómo funciona Internet pueden hacer clic en este enlace.

Cómo Funcionan las Computadoras

Siguiendo las entradas de explicaciones básicas hoy vamos a explicar en general y sin entrar en detalles muy técnicos o de ingeniería cómo funcionan las computadoras.

Dos Números Hacen la Magia

En nuestra civilización, como seres humanos, hemos llegado al punto en que podemos entender y estructurar ideas de diferentes maneras. Las matemáticas son un ejemplo de ciencias que se desarrollan desde hace miles de años, desde simples sumas hasta operaciones complicadas para calcular diferentes datos. Estas son las bases de la computación. La computación es muy nueva, como ciencias, pero ha avanzado exponencialmente desde sus inicios.

Es interesante conocer que el sistema decimal con el que nos manejamos día a día fué una elección natural ya que tenemos diez dedos en las manos. Existen otros sitemas pero el de diez, como base es el que a nosotros nos va mejor. Si hubieramos evolucionado para tener 16 dedos estarías usando el sistema Hexadecimal (1,2,3,4,5,6,7,8,9,0, A, B, C, D, E, F)… o si fueramos computadoras… el binario (0,1).

Las computadoras solo saben 0 y 1 porque no tienen dedos… y más aun,porque se manejan con electricidad. O no hay electricidad (0) o la hay (1). Este es el concepto fundamental de la electrónica y la computación. El cómo se traducen esos dos números a sumas y restas y al sistema decimal con el que tantas cosas hacemos día a día se pueden entender con electrónica y matemáticas.

Por el momento es suficiente para nosotros saber que es posible, que no es magia, que con matemática podemos contar más allá del 1 con el sistema binario: 0=0, 1=1, 10=2, 11=3, 100=4, 101=5, 111=6… etc. Y que con las mismas matemáticas y la electronica podemos hacer operaciones con esos números. Las matemáticas, como se nos enseña en las escuelas y universidades (a veces) es un lenguaje universal. Con matemáticas se puede representar en papel cosas más complicadas: ondas de sonido, a?eas, el crecimiento económico y todo tipo de estadísticas, orbitas de planetas y lo que a usted se le ocurra. Es decir, las matemáticas pueden transformar cosas que vemos, oimos, escribimos y hacemos a números.

Las computadoras, con el sistema binario como base son simples máquinas que almacenan grandes cantidades de datos y son la herramienta para hacer más rápidamente todas estas funciones por nosotros y han evolucionado en los últimos años para dejar de ser herramientas de ingenieros para pasar a ser aparatos domésticos y de oficina.

Funcionamiento por Capas

Desde la parte de circuitos las matematicas y la electrónica hacen posible que las computadoras pueden hacer uentas y otros calculos complejos. Pero también estas ciencias junto con otras ciencias proveen laos métodos para crear otras tecnologías para que estos datos, resultado de los calculos, puedan ser almacenados para futuro uso.
Las computadoras hablan en ese lenguaje, pero para el usuario final los datos tienen que estar representados de una manera más humana. Para alcanzar ese objetivo y dar el paso de hardware (componentes) hace falta otra cosa: esa otra  cosa es el Kernel. El Kernel es la base de los sistemas operativos y ofrece la capa que actúa como intermediario entre el hardware y el software. Es el que traduce los 0 y 1 y el lenguaje de los componentes de una PC a algo más “empaquetado” y simple para que sobre esa base se puedan construir otros programas como el Sistema Operativo que es lo que termina de traducir el lenguaje de máquina a algo representable para un ser humano.
El Sistema Operativo es un Programa base que ofrece las herramientas al usuario para interactuar con el equipo, el hardware y los programas que se le pueden correr al sistema operativo en sí para realizar otras taras como crear y almacenar textos, escuchar música, etc.
Existen otras capas, pero para entender solo es necesario saber que tenemos: hardware > Kernel > Sistema Operativo. Después podríamos mencionar programas. Todos en función de traducir complejidad a visualización.

Volviendo a los ejemplos de una página Web. En un servidor Linux tenemos: hardware, el kernel de Linux y el sistema operativo, por ejemplo Red Hat Linux 5 (que es una distribución de Linux). Aclaramos acá que Linux es en realidad el Kernel, asi como también existe un Kernel de Windows solo que Windows, al haber sido el primer sistema operativo masivo se convirtió en un sinónimo de sistema operativo. Linux es un Kernel y los sistemas basados en Linux se llaman distribuciones. Podemos decir que Linux tiene varias distribuciones (Ubuntu, RedHat, Suse, Mandriva) y que Windows solo tiene una : Windows (en sus diferentes sabores y versiones: Vista, XP, 2000, ME, etc.).

Los sistemas operativos para lograr esta “traducción” entre la máquina y el lenguaje cotidiano ofrecen una estructura de carpetas como en un archivo en donde el archivo es la base, el disco duro en sí (Root Directory) y las carpetas ofrecen la funcionalidad para almacenar y agrupar archivos. Muchas carpetas son explusivas del Sistema Operativo para guardar archivos propios y otras son para el usuario, como la Carpeta Mis Documentos o Documentos.

Los Sistemas Operativos, al igual que la PC solo reconocen datos, pero pueden etiquetar cada tipo de datos según su contenido: archivos de datos de audio (música), archivos de datos de texto, etc. Cada uno tiene su estructura para reconocerlos y es lo que al final nosotros vemos en pantalla como iconos que nos permiten identificar rapidamente que tipo de archivo estamos viendos.

Después vienen los programas que nos permiten crear/ modificar (y borrar) estos archivos. Un programa que retoca fotos, como Photoshop de la empresa Adobe provee las herramientas para leer archivos con datos de fotos, interpretarlos y ofrecerlos al usuario con una interfase (o pantalla de presentación) que contiene herramientas para poder hacer modificaciones y guarar los resultados de vuelta a un archivo. Los mecanimos por los cuales esto es posible ocurren en todas las capas… desde el hardware hasta el Kernel y el Sistema Operativo en el cual el programa (Photoshop en este caso) están funcionando.

Con esto queremos decir que muchos programas (también llamados aplicaciones) dependen del sistema operativo y éste del hardware en el que funcionan. Esto se llama plataforma. Es común en programación preguntar sobre qué plataforma funciona un programa… o sobre qué plataforma “corre” un programa: correo bajo ¿Windows? ¿Linux? ¿Web? Una de las cosas interesantes para notar es que Web, Internet es un protocolo (un lenguaje) de comunicación y funciona en muchas plataformas ya que como mencionamos anteriormente nació de una necesidad de comunicación por lo tanto fué diseñado para funcionar sobre casi cualquier plataforma. Es en la parte de los programas en donde se ven en evidencia las incompatibilidades entre plataformas.

Para resumir veamos un ejemplo de punta a punta: tengo una Laptop que cuenta con un Kernel Linux y por consiguiente con un Sistema Operativo basado en Linux,  Ubuntu Linux en mi caso. En el mismo hardware (los componentes que hacen la Laptop) o podría cambiar Linux por Windows. Los dos Sistemas Operativos están diseñados para entender el mismo hardware.

En mi caso uso Ubuntu y uso el progrma OpenOffice para escribir este texto que ustedes ven. OpenOffice (al igual que Office en Windows) me ofrecen las herramientas necesarias para ver en pantall el textoy todos los formatos y opciones para darle forma al texto. A la hora de guardarlo el Sistema Operativo (que utiliza en cierta manera su propia programación y lenguaje, basados en un lenguaje de programación) transforma el texto en formato digital, en un archio de teto y lo guarda en donde yo le indico. En ese proceso desde el procesador de texto hasta el hardware han interactuado en todos sus niveles, desde la matemática hasta la programación para poder almacenar el archivo. Han funcionado: el procesador de mi laptop como núcleo para las operaciones matemáticas que hacen posible desde la traducción de 0 y 1 hasta el lenguaje de todas las capas hasta el disco duro que ofrece, mediante el sistema operativo, la opción de guardar en forma digital los datos de este documento. También funcionó la memoria para almacenar el programa que estoy usando (OpenOffice Writer) y que luego será eliminado de la memoria cuando cierre el programa hasta que lo vuelva a abrir. De vuelta, no confundir memoria con disco duro. También funcionó el Kernel al traducir el movimiento del mouse para seleccionar texto en algo entendible para el hardwre y el Sistema Operativo, y éste último ofreció sus servicios para que yo lo pueda ver, como una flecha en la pantalla.

Además, pasan otras miles de cosas pero es sufucuente con entender la interacción de todas estas cosas para conocer cómo es el funcionamiento de una PC, desde el hardware, el Kernerl, el Sistema Operativo y todos los lenguajes de programación que crean programas que peuden ser usados para diferentes tareas por los usuarios. Eso es el funcionamiento de la PC y el uso que le damos ya depende de nosotros y de los programas que utilicemos para alcanzar nuestros objetivos.

Espero haber podido aclarar algunas dudas sobre este tema 😀