|
Software Libre (Parte II)
por Pedro M. Rosario Barbosa
Thursday, Dec. 16, 2004 at 2:30 AM
pmrb@coqui.net
Esta es la segunda parte del artículo titulado "Software Libre (Parte I) publicado el 17 de octubre del 2004. Este artículo continúa la exposicion de cómo
En 1991, un estudiante de la Universidad de Helsinki en Finlandia quería desarrollar un sistema operativo que se pareciera mucho a la experiencia que tuvo con SunOS, un sistema operativo derivado de Unix.
Él estaba familiarizado con algunos programas del Proyecto GNU, tales como el GNU C Compiler (hoy GNU Compiler Collection). También quiso familiarizarse con el proceso de crear sistemas operativos, y estudio de Minix, un microkernel que Andrew Tanembaum hizo disponible con propósitos didácticos. Sin embargo, Minix es un microkernel, es decir un kernel dividido en varios servidores que se comunican entre sí, y que cumplen todos distintas funciones. Al dividir el kernel en servidores, el kernel completo no tiene que encargarse de todas las funciones, y por lo tanto se simplificaría más la comunicación entre los programas con el kernel.
Para Torvalds, esta simplicidad era una falsa simplicidad. Vamos a suponer que dividimos el kernel en dos servidores, el servidor A y el servidor B. El servidor A tiene unas funciones, y el servidor B tiene otras. Ambos servidores tienen que comunicarse entre sí para coordinar estas funciones. Ahora vamos a suponer que tenemos tres servidores: A, B y C. Eso quiere decir que para coordinar sus funciones, A se debe comunicar con B y viceversa, debe comunicarse con B y viceversa; B tiene que comunicarse con A y viceversa, y con C y viceversa; C tiene que comunicarse con A y con B, etc. Y mientras más se divide el kernel en servidores, la comunicación entre ellos es mucho más compleja.
Ejemplo de las dificultades del desarrollo de este tipo de kernel, es la experiencia del Proyecto GNU. Como indiqué en la Parte I, todos los componentes de GNU ya estaban listos menos el kernel. El Proyecto GNU quería desarrollar un kernel llamado GNU HURD. (La palabra "HURD" significa: "HIRD of Unix-Replacing Daemons"; ¿que significa HIRD? Significa: "HURD of Interfaces Representing Depth"... El primer acrónimo recursivo entre dos nombres). El GNU HURD es un microkernel que corre sobre el microkernel de bajo nivel de Mach. El mismo Stallman reconoce que una de las razones por la que el HURD tardó tantos años en crearse es la enorme dificultad que tuvo en corregir errores ("bugs") de las comunicaciones entre los mismos servidores.
Por esta razón, Linus Torvalds escogió el modelo de kernel monolítico, en que el kernel es una sóla entidad indivisible. Este modelo realmente rindió frutos. Mientras el Proyecto GNU tardaba considerablemente en crear su primera versión de desarrollo del HURD, ya para 1991 Torvalds tenía su primera versión de desarrollo del kernel, y solicitó en un grupo de Minix en internet, que lo ayudaran a desarrollar este microkernel al que eventualmente llamó "Linux". El año siguiente, 1992, lo liberó bajo la GNU GPL, y se convirtió en software libre por primera vez.
Programadores y hackers de todas partes del mundo comenzaron a trabajar con Linux, añadiéndole características, corrigiendo errores de programación, mejorando el programa, organizándolo mejor, etc. Stallman había experimentado algo similar con su GNU Emacs. Como medida para financiar su Fundación para Software Libre, Stallman vendía su editor de texto GNU Emacs con su código fuente. Como la GPL permitía a todos añadir características y modificar el programa, él terminó recibiendo cartas, cintas y correos electrónicos sugiriéndole correciones a Emacs, y añadiduras a Emacs. Esto le ayudó en gran medida a mejorar significativamente su programa, hasta el nivel de ser prácticamente uno de los editores de texto más prestigiosos que existe hoy día. Tiene tantas características (juegos, navegación por Internet, compilación de programas, etc.) que algunos afirman que Emacs es como un sistema operativo que de lo único que carece es de un kernel. Stallman recibió tanta correspondencia de sugerencias de mejoras a Emacs que tuvo muchísimo trabajo mantenerse al día con ella.
Dice él sarcásticamente: "¡Claro está! ¡Microsoft no tiene este problema!" Microsoft utiliza un modelo propietario y tiene muchísimas dificultades para mejorar sus programas y mantenerlos libres de errores y defectos. La explicación de esto es bien sencilla: el acceso al código fuente nada más lo tienen los programadores de Microsoft, y son los únicos autorizados a modificarlo. En el mundo del software libre, todo el mundo tiene acceso al código fuente, y cualquiera puede corregirlo y modificarlo. Y por lo tanto la probabilidad de corregir un programa más rápido y mejorarlo considerablemente es mucho mayor. Linus Torvalds quiso desarrollar Linux de esta manera, hasta convertirlo en un kernel muy estable, aún en aquellos momentos que estaba en etapa de desarrollo.
Muchos programadores comenzaron a jugar con Linux y con los programas desarrollados por el Proyecto GNU, y para todos los efectos prácticos llenaron ese último componente que le faltaba a GNU, y crearon por primera vez el sistema operativo GNU/Linux.
GNU/Linux sirvió en gran medida como un estímulo para el desarrollo de negocios en torno a software libre. Stallman siempre apoyó la idea de utilizar los programas libres como una forma de crear un mercado de servicio. Bajo el modelo de software propietario, el servicio es un monopolio. Si uno compra un programa propietario de Microsoft, digamos Windows, esta empresa tendrá el monopolio del servicio. Mientras tanto, en un mercado de software libre, permitiría a muchas empresas ofrecer servicios para corregir, modificar y añadir características importantes a los programas.
Michael Tiemman, por ejemplo, creó la empresa Cygnus, que después la empresa Red Hat Linux compró. En el caso de Larry Augustine, descubrió que podía crear, proveer y vender distribuciones de GNU/Linux, ya que el costo de un sistema operativo como GNU/Linux sería inferior a la de cualquier sistema operativo propietario. También buscó junto a Eric Raymond, Linus Torvalds, Bruce Perens, entre otros una manera mucho más efectiva de promover software libre.
Debido al término equívoco "free software" hubo muchos malentendidos con el término "free" ya que puede querer decir "libre", pero puede querer decir "gratis". Tampoco las compañías estaban felices con las aseveraciones de Stallman con respecto a la noción de "propiedad intelectual". Así que en vez de llamar a estos programas "software libre", decidieron llamarlos de otra manera: "software de código abierto" (open source software). Ellos fundaron lo que se conoce como la definición de "código abierto", y empezaron a promover GNU/Linux bajo el nombre de "Linux".
La doctrina de este movimiento de software de código abierto es ver estas libertades de software como una medida bien importante para mejorar la tecnologia. Esta tesis está esbozada en el libro de Eric S. Raymond The Cathedral and the Bazaar. Allí Raymond explica las ventajas de mantener el código de un programa abierto: mayor probabilidad de corregir problemas, mayor insumo para su desarrollo, y mayor calidad: todo porque el código puede ser modificado, copiado, corregido, redistribuido, etc. A diferencia de la Fundación para Software Libre, el movimiento de código abierto afirma que puede haber una co-existencia entre software propietario y software de código abierto.
En otras palabras, en el mundo de software libre ahora coexisten dos organizaciones, el movimiento de software libre que está estrechamente vinculado a la Fundación para Software Libre, y el movimiento de Software de Código Abierto que se identifica con el Open Source Initiative. ¿Cuáles han sido sus frutos? Lo veremos en la tercera parte de esta serie.
prosario-2000.0catch.com
|