martes, 9 de septiembre de 2014

¿Que es el Código Abierto Parte? I/II


Portadas del números,2  de Ojos de Perro Azul. de Reinaldo Quintero (REIQ)



Estimados Amigos 



Hoy compartimos con ustedes un texto que iba a ser publicado en la fenecida publicación Ojos de Perro Azul. La revista tenía un tiraje de 1000 ejemplares y era distribuída en Valencia, Maracay, Caracas y Maracaibo. La revista Ojos de Perro Azul fue una iniciativa valenciana dedicada a divulgar las artes gráficas  pero también se había planteado tocar temas emergentes que poco a poco iban ganando interés en cierto porcentaje de la población lectora en Venezuela.  La informática era uno de esos temas y por esta razón solicitamos en su momento la colaboración de Jorge Castellanos, profesor de la Universidad de Carabobo para que sirviera de iniciador de nuestros seguidores en el mundo del GNU. Cuando Recibimos su colaboración esta resultó algo extensa para la longitud de la publicación. Por esta razón fue archivado con a intención de ser publicado en dos partes cuando ampliáramos la extensión del fanzine. Pero la revista no superó el número seis en el año 2006, curiosa coincidencia numérica. 


Ahora aprovechamos este medio digital para saldar nuestra deuda con el profesor Jorge Castellanos y le acercamos este excelente material que aunque tiene algún tiempo les será de mucha utilidad.



Deseamos disfruten la entrada.



Richard Montenegro



********


Bienvenida


Por: Jorge A. Castellanos Díaz (jorcas@cantv.net)

Universidad de Carabobo – Facultad de Ciencias y Tecnología



Es una ocasión especial, apreciado lector, este primer encuentro con aquello denominado “Código Abierto” (Open source). Antes de iniciar y respetuoso de mis principios y creencias les solicito su activa participación a través de mi correo electrónico con sus sugerencias y acertadas críticas para los temas tratados y por tratar.



No podía faltar una definición de Código Abierto






Cuando me planteé escribir este artículo, mi primera preocupación fue intentar conseguir una definición acorde que, en principio, me permitiera introducir este interesante tema. Acudí a Google (www.google.co.ve), esa fuente que parece que todo lo sabe y que nos permite conseguir rápidamente la información que necesitamos; allí encontré una referencia a la Wikipedia (es.wikipedia.org) y extraje esta definición: 


Software libre es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente en Internet o a precio del coste de la distribución a través de otros medios; sin embargo, no es obligatorio que sea así y, aunque conserve su carácter de libre, puede ser vendido comercialmente. Análogamente, el software gratuito (denominado usualmente Freeware) incluye en algunas ocasiones el código fuente; sin embargo, este tipo de software no es libre en el mismo sentido que el software libre, al menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.”


Cualquiera que esté leyendo este artículo y haya adquirido recientemente licencias para el uso de software comercial pensará (con sobradas razones) que es algo soñadora y utópica y que, lo mas seguro, es imposible que se desarrolle software bajo estos principios y en definitiva puede pensar que este tipo de producto no exista. Por lo tanto, para mostrar al lector que aunque parezca imposible, el software libre hoy en día es una realidad que nació por la iniciativa de un grupo de programadores y su desarrollo continúa muy activo cada día, basado en los principios consignados en una licencia creada para tal fin. Les hablaré de la historia de la computación, remontándome a sus inicios para ahondar en el espíritu de libertad de esta clase de software  para así comprender sus principios.




En los años ‘60 (1960) y ‘70 (1970) cuando se desarrollan los primeros computadores comerciales, los costos del hardware (componentes mecánicos y electrónicos del sistema) eran muy altos, mientras que el software (programas) no se consideraba como un producto tangible de gran valor; por tanto era una práctica común que los vendedores de computadores suministraran el software sin costo a sus clientes que estos pudieran usarlo en los equipos. En estos tiempos se crearon grupos de usuarios de computadoras donde se compartían libremente sus programas, unos con otros, sin restricciones de uso, de la misma forma que se han compartido libremente desde hace siglos las recetas de cocina entre los practicantes de las artes culinarias (según palabras de Richard Stallman).



Con el desarrollo de la computación, la necesidad de programas se incrementó y ya para finales de los años ‘70 las compañías fabricantes de computadores iniciaron el hábito de imponer restricciones a los usuarios en el uso del software y el hardware mediante los acuerdos de licencia.



Con el transcurrir del tiempo, los acuerdos de licencias desarrollados por los fabricantes de hardware y software fueron evolucionando hacia diversas formas de restricción en el uso de la computación con el objeto de incrementar su penetración en el mercado y sus ganancias, convirtiendo así a la computación en un negocio muy lucrativo.


A comienzos de los años ‘70, sucedió un afortunado incidente (que impulsó el desarrollo del software) con  los Laboratorios Bell de AT&T quienes desarrollaron el sistema operativo Unix. Como muchos saben, esta compañía es muy conocida por su presencia global en el área de las telecomunicaciones, por lo tanto no nos debe parecer extraño que al desarrollar este sistema operativo e intentar comercializarlo, una ley anti-monopolio norteamericana obligara a esta corporación a distribuir gratuitamente el código fuente (en lenguaje C) del sistema operativo en las principales universidades norteamericanas, institutos de investigación y oficinas del gobierno.



Con este insumo gratuito y de buena calidad, todos los usuarios en universidades e institutos de desarrollo empezaron a usar este poderoso sistema y a desarrollar muchas de las tecnologías las cuales hoy son parte de un sistema Unix. Entre estas nuevas tecnologías está la propia Internet.


A finales de los ‘70, el uso del sistema operativo Unix en los ambientes académicos y de investigación norteamericanos se había generalizado y los estudiantes de pregrado y postgrado ya egresados que usaron Unix en sus universidades deseaban continuar utilizando este sistema operativo en sus nuevos lugares de trabajo. Esta nueva necesidad provoca que todos los grandes vendedores de computadores y muchos aún mas pequeños estén mercadeando sus propias versiones comerciales (aún divergentes) del sistema Unix optimizado para sus propias arquitecturas de computadora y luciendo sus muchas diferentes fortalezas y características.


Ya para los inicios de los ‘80 se empieza a popularizar el uso de computadores debido en gran parte a una drástica reducción en los costos del hardware y hace su aparición en el mercado el primer computador personal. Mientras que el hardware reducía sus costos, no sucedía lo mismo con el software, cuyas necesidades se incrementaban y su relación de costos software-hardware era más alta para los nuevos equipos. 


Para cada nuevo computador, el usuario necesitaba un sistema operativo; si no lo tenía, no podía empezar a usar su computador. Para iniciar la utilización del computador se debía adquirir previamente una licencia para instalar el software en el equipo y comenzar su utilización, aún cuando ya el usuario tuviera el software disponible por una compra anterior. Generalmente este sistema operativo no contaba con aplicaciones básicas como procesador de palabras y hojas de cálculo, cuyas licencias debían ser adquiridas por separado. Además, ya para esta época casi todo el software era privativo, es decir, las compañías que lo desarrollaron prohibían expresamente e impedían mediante el acuerdo de licencia la cooperación entre los usuarios.

Un joven Richard Stallman


En 1984, Richard Stallman comenzó a trabajar en el proyecto GNU (No Unix) que consiste en el desarrollo de un sistema operativo y un juego de aplicaciones totalmente libre y compatible con Unix. Pero, ¿Quién es Richard Stallman? Es un físico que empezó a trabajar en el MIT (Massachtsetts  Institute of Technology - Instituto Tecnológico de Massachtsetts) en 1971; en un grupo que usaba exclusivamente software libre, en la época que hasta las grandes compañías distribuían software libre. Como se había comentado, ya para los ‘80, la mayoría del software se había vuelto privativo (ó propietario), esto hizo que en 1983, Richard Stallman concibiera la Fundación de Software Libre (FSF: Free Software Foundation) y en ésta, el proyecto GNU como una forma de recuperar el espíritu cooperativo de los primeros días de la computación, y posibilitar nuevamente la cooperación sacando los obstáculos impuestos por los dueños del software propietario. 


Stallman también introdujo una definición para software libre (free software) y el concepto de “copyleft” (en contraste con el copyright: derecho reservado), el cual desarrolló para dar a los usuarios libertad y para restringir las posibilidades de apropiación del software libre.

De acuerdo con tal definición, el software es “libre” si garantiza:

·         La libertad para ejecutar el programa con cualquier propósito (llamada “Libertad 0”)

·         La libertad para estudiar y modificar el programa (“Libertad 1”)

·         La libertad de copiar el programa de manera que puedas ayudar a tu vecino (“Libertad 2”)

·         La libertad de mejorar el programa, y hacer públicas tus mejoras, de forma que se beneficie toda la comunidad (“Libertad 3”) 


El trabajo que se propuso en sus inicios Richard Stallman en el proyecto GNU fue titánico porque un sistema operativo no es sólo el núcleo; sino que también incluye compiladores, editores, formateadores de texto, software de correo y muchas otras cosas. Se necesitaron muchos años para lograrlo. La decisión de hacer el sistema operativo compatible con Unix fue porque el diseño -en general- ya estaba probado y era portable; además, la compatibilidad facilitaba a los usuarios de sistemas operativos tipo Unix (Unix-like) cambiarse de Unix a GNU.


Ya para los ‘90 el proyecto GNU y la FSF habían escrito (y aún mejorado) la mayoría de los principales componentes de un sistema operativo tipo Unix, entre ellos los compiladores que son la herramienta fundamental para la creación de software, porque permiten generar el código ejecutable de máquina a partir de un código fuente escrito en lenguaje de programación de alto nivel. Para que el proyecto estuviera completo faltaba una pieza muy importante, y esta era el núcleo del sistema operativo (Kernel). El núcleo del sistema operativo es la capa de software de bajo nivel que provee un nivel de abstracción sobre el hardware (permite a las aplicaciones hacer uso del hardware), control de discos y sistema de archivos, multitarea, balance de carga, comunicación en red y medidas de seguridad, entre otros. 

Linus Torvalds


En estos años (1993) aparece “Linux” como un proyecto personal del entonces estudiante de maestría Linus Torvalds (Universidad de Helsinski), que se basó en el Minix de Andy Tanenbaum (profesor que creó su propio clon de UNIX para PC-XT para usarlo en su docencia y que estaba disponible en su muy conocido libro de Sistemas Operativos). A través de la naciente Internet y con la colaboración de muchos voluntarios, Torvalds desarrolla desde cero el núcleo del sistema operativo que en el futuro se conoce como Linux. Este producto se distribuye libremente con la licencia GNU y permanece activo actualmente (www.kernel.org).

Combinando el núcleo de sistema operativo Linux con el resto del sistema GNU se llegó a la meta inicial de un sistema operativo libre: el sistema GNU basado en Linux (GNU/Linux). Se estima que hoy hay millones de usuarios de Linux (ver http://counter.li.org). 

  
Jorge A. Castellanos Díaz

Continuará 


Enlace Relacionado:




1 comentario:

  1. Seguramente con doble intencion me hiciste referencia a este articulo por facebook. Felicitaciones por el blogspot, prometo desde hoy espiarlo. Un abrazo, Cristobal Guevara...

    ResponderEliminar