martes, 27 de julio de 2010

Tecno-evo III

Cuando hablamos de evolución se nos vienen muchas ideas a la mente, algunas de ellas erróneas. En primer lugar se piensa que por "evolución" se implica un mejoramiento, que las versiones modernas son superiores en todo aspecto sobre las antiguas, cuando en realidad solo implica una adaptación, una "superioridad" válida solo en un momento y un ambiente. Por otra parte se cree que solo existe la evolución Darwiniana, siendo que está es solo la mas conocida, la que gobierna el mundo natural, pero se puede tener, por ejemplo, una evolución artificial. Un caso muy particular es lo que hemos hecho con los animales que hemos domesticado, como los perros, en cuyo caso, a base de ir seleccionando crías de lobos cada vez mas mansas y amistosas a nosotros fuimos, poco a poco generando los perros actuales.


Árbol evolutivo de la especie humana constituye ejemplo típico para especies biológicas.

Pero existen sistemas artificiales que también están sometidos a una evolución Darwiniana. En particular los programas de computadoras, el software puede ser sometido a procesos de selección, que si bien son artificiales tienden a simular la selección natural por la complejidad en se dan. Pero antes de continuar, hablaremos un poco sobre un programa muy particular que ha evolucionado con una gran similitud a la forma en que evolucionan las especies biológicas. Este software es el sistema operativo Linux. Linux, si bien es un conjunto de programas, lo trataré como un sistema, compuesto por varias partes que interactúan y se necesitan mutuamente.

Linux es un sistema operativo, es decir un programa que se encarga de administrar los recursos de una computadora e interactuar con el usuario. Es decir, es el "mayordomo" que se encarga de mantener la computadora funcionando y coordinar a los programas que usamos como usuarios. Es decir el deseamos usar un procesador de textos, el sistema operativo lo llama y atiende para que pueda cumplir su cometido. Por ejemplo si mandamos al procesador de textos grabar el archivo en el que estamos trabajando, el sistema operativo ayuda a dicho programa traduciendo la orden de "grabar el archivo" en instrucciones tan específicas que la computadoras pueda ejecutar.


Tux, la mascota y emblema de Linux (no tengo idea de por que es un pinguino).

La mayoría de las personas utilizan alguna versión del sistema operativo "Windows" (sin saber que tienen opción, y que ese sistema venía con la computadora por un acuerdo comercial impuesto por Microsoft). Las curiosas propiedades evolutivas de Linux se deben a su origen. Linux nació como un proyecto de tesis de Linus Torvalds (el nombre de "Linux" viene del nombre propio de su creador salvo por el remplazo de la "s" por una "x"). La tesis de Torvalds tenia bastante sentido. En aquel tiempo existía (y aún existe) un sistema operativo llamado Unix, el cual era conocido entre los computólogos por su estabilidad y confiabilidad. Pero tenía un problema, en ese tiempo (1991) no cualquier computadora tenía los recursos para funcionar con Unix, este era usado en aplicaciones donde el funcionamiento de grandes sistemas de computo era vital (bancos, gobiernos, hospitales, etc), de aquí que poco después nació una version pequeña de Unix, llamada Minix, creada por Andrew Tanenbaum, el cual si funcionaba en cualquier PC. Pero Minix carecía de la funcionalidad de Unix, no podía hacer todo el abanico de acciones de las que era capaz Unix. De aquí la idea de crear un híbrido, una cruza de ambos sistemas operativos, tan pequeño y ligero como Minix, pero tan versátil y confiable como Unix, el resultado fue Linux.

El objetivo, entonces, de Linus Torvalds era crear un sistema operativo tan ligero que cualquier computadora, sin importar que tan pocos recursos tenga, lo pueda mantener y al mismo tiempo debía ser confiable y seguro (la política era: que la computador atrabaje para uno, no uno para la computadora). Así que Linux se centró en hacer el uso mas eficiente posible de los recursos, tan es así que algunas distribuciones (luego aclararé que es una distribución) de Linux no requieren que la computadora tenga disco duro ni mas de 640 k de RAM. Bien pero el punto principal es que Linux fue creado con el propósito de cumplir una función en un sistema en particular, hacer funcionar programas en una computadora con pocos recursos. Esta fue la primera de las dos ideas detrás de Linux.

La segunda vino cuando se llego la hora de decidir como de distribuiría Linux. Casi todos los programas computacionales se distribuyen bajo una licencia de propietario, es decir, alguien, una compañía vende el derecho de poseer y usar el programa a alguien dándole ciertas libertades y restringiendo otras, en especial las condiciones en las que se instalará y usará el programa. Pero Torvalds decretó que Linux estaría bajo una licencia que ha evolucionado a lo que hoy se conoce como Licencia Pública General (LPG, o GPL en Inglés) la cual dice que una ves que uno es poseedor de Linux, sin importar como es que llegó a nuestro poder, podemos hacer lo que nos de la gana con él. Es decir, si queremos los instalamos o no, en las computadoras que queramos, lo podemos regalar, copiar, vender, regalar copias al primero que pase por la calle o en fin, hacer lo que nuestro cyber-corazoncillo o las voces en nuestra cabeza nos indiquen, PERO , con la condición de que siempre demos crédito al autor, digamos que donde lo obtuvimos nosotros y si es que lo vendemos o lucramos de alguna manera, se ofrezca una versión gratuita o digamos donde se puede obtener dicha versión y que el nuevo producto herede esta licencia y condiciones. Es decir, ustedes puede bajar Linux, modificarlo todo lo que deseen, y luego venderlo, pero están obligados a ofrecer una versión completamente funcional que sea gratis, luego alguien mas puede hacer lo mismo con ese producto. Un caso de esto es un distribución de Linux llamada SuSE (puedes comprar la versión de SuSE para empresas o bajar gratuitamente de internet la versión para le hogar, de alguna manera me parece muy adecuado eso de que las empresas paguen y el individuo no).

Pero aparte de la pesadilla que la LPG implica para los comerciantes al atentar contra los monopolios, esta licencia dió lugar a que Linux se fuera modificando. Aquí es donde entra en acción la evolución. Al tener todo el derecho de obtener Linux y modificarlo, muchos programadores iniciaron un ciclo que continua hasta hoy, en el cuál le agregan programas y opciones a Linux, le dan o quitan "características" para generar un mejor Linux (según lo que cada quién entienda por mejor). Por ejemplo, digamos que mis dos hermanos (un antropólogo y el otro adicto a la historia) y yo bajamos una versión dada de Linux. Podríamos estar de acuerdo en que nos gusta, pero que estaría mejor con algunos pequeños cambios, cada uno buscaría los cambios que mejor se acomoden a sus necesidades. Por ejemplo, el historiador podría buscar que el sistema operativo maneje mejor enormes archivos sin tener problemas de fragmentación o de saturación de RAM, el antropólogo podría buscar que el S.O. trabaje en una máquina sometida a toda clase de condiciones adversas la hacer investigación de campo tales como altas temperaturas, funcionar a base de baterías, etc. Mientras que yo como físico buscaría que el S.O. sea bueno y rápido haciendo cálculos. De esta manera (si fuéramos realmente buenos programando) crearíamos cada uno una versión nueva que "evolucionó" de la versión antigua que los tres bajamos y las podríamos pasar a nuestros respectivos colegas, estas diferentes versiones de Linux (diferentes pero todas compatibles entre si, son las distribuciones, yo podría llamar al mi distribución PabloxLinux, mientras que supongo que saldrían también JuanixLinux y OmaxLinux). Cada una de las distribuciones puede irse adaptando al ir apareciendo versiones mejoradas y eventualmente alguien la puede alterar tanto que genera una nueva distribución.


Árbol de distribuciones de Linux, se puede ver la evolución de unas a partir de otras en respuesta a cambios en las necesidades del usuario y disponibilidad de recursos.

A diferencia de los programas tradicionales que cambian de una versión a otra según se decreta en una compañía "guiada" por investigación de mercado (y lo que salga mas barato y se venda mas caro). Linux cambia según las necesidades algún grupo de personas. Cambia cuando esta cometido a condiciones diferentes, según en que tipo de computadora se use y para qué. Así que como ven, las distribuciones de Linux se comportan como las especies biológicas en el sentido de evolucionar en función de su ambiente y la potencial competencia(por usuarios) entre sí. El medio ambiente serían las computadoras de los usuarios. Y los atributos de cada distribución las herramientas que tendrán para sobrevivir ya que si me gusta Linux, pero no me satisface mi distribución simplemente cambiaré a otra (esto me pasó al cambiar de ser usuario de SuSE a Ubuntu).

En este punto se puede ver claramente como un sistema artificial como Linux puede evolucionar de forma Darwiniana, con procesos de selección en los que se generan nuevas especies (distribuciones), selección que nace de la competencia entre las distribuciones para ocupar el mayor espacio posible del ecosistema (computadoras de usuarios) y eventuales proceso de extinción. Y esto es un aspecto muy relevante de la evolución de la tecnología ya que genera soluciones tecnológicas que son ajustadas a las necesidades precisas del usuario. Por ejemplo, en un computadora con Windows, obtengo un sistema operativo genérico que trata a una laptop y una PC de forma casi igual salvo por los controladores (archivos que ayudan al sistema operativo a usar las partes de la computadora) específicos (que serán decretados por el fabricante), pero al instalar Ubuntu Linux (el sistema operativo que uso) el sistema se ajusta a mi computadora, tengo por ejemplo, el mismo sistema en mi Laptop y una PC y se puede notarla diferencia en el uso de los recursos, es decir, el sistema averigua con que recursos dispone y se adecúa a estas necesidades.

Así que se tiene que la tecnología puede evolucionar de forma que siga solo la practicidad de la miniaturización o especialización (ver Tecno-Evo I), la implementación de tecnologías por razones políticas, las iniciativas privadas que dan origen a una gran cantidad de soluciones (ver Tecno-Evo II), y bajo algunas condiciones especiales, una evolución darwiniana que genera nuevos sistema que se están mejorando continuamente optimizándose para un medio en particular y que han de cambiar al cambiar el medio.

En sí, lo que tiene la última palabra es la utilidad que le encontramos a una tecnología en particular. Y así como hace 50 años nuestros aparatos cotidianos serían inimaginables, dentro de 50 años nos reiremos de lo que tenemos hoy y lo que esperábamos del futuro.





No hay comentarios:

Publicar un comentario en la entrada

Hola, sus comentarios y preguntas siempre son bienvenidos. Les agradecería si incluyen su nombre (o un "nick" cualquiera) para hacer la interacción mas amena. Pueden poner el nombre que deseen usando la penúltima opción de "Comentar como:"