Académique Documents
Professionnel Documents
Culture Documents
SUBTEMAS
Aspectos legales. 1.3.1 La licencia GPL 1.3.2 La licencia BSD 1.3.3 Otras licencias. Desarrollo bajo modelos libres 1.4.1.- Motivacin 1.4.2.- Economa
1.4
II.
2.1 2.2
La catedral y el bazar Procesos en el software libre Definicin Historia La Open Source Initiative Linux Free BSD gcc make bison Apache GNOME KDE Mozilla Mono Sistemas APM (Apache-Php y MySQL
III.
IV.
Estudio de casos
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11
La libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prjimo.
La libertad de mejorar el programa y hacer pblicas esas mejoras a los dems, de modo que toda la comunidad se beneficie.
1.2.- Historia
Richard Stallman, creador del concepto de software libre y fundador de la Free Software Foundation. Entre los aos 1960 y 1970, el software no era considerado un producto sino un aadido que los vendedores de las grandes computadoras de la poca (las mainframes) aportaban a sus clientes para que stos pudieran usarlos. En dicha cultura, era comn que los programadores y desarrolladores de software compartieran libremente sus programas unos con otros. Este comportamiento era particularmente habitual en algunos de los mayores grupos de usuarios de la poca, como DECUS (grupo de usuarios de computadoras DEC). A finales de la dcada de 1970, las compaas iniciaron el hbito de imponer restricciones a los usuarios, con el uso de acuerdos de licencia. En 1971, cuando la informtica todava no haba sufrido su gran boom, las personas que hacan uso de ella, en mbitos universitarios y empresariales, creaban y compartan el software sin ningn tipo de restricciones. Con la llegada de los aos 1980 la situacin empez a cambiar. Las computadoras ms modernas comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar condiciones restrictivas que impedan realizar modificaciones a dicho software. En caso de que algn usuario o programador encontrase algn error en la aplicacin, lo nico que poda hacer era darlo a conocer a la empresa desarrolladora para que sta lo solucionara. Aunque el programador estuviese capacitado para solucionar el problema y lo desease hacer sin pedir nada a cambio, el contrato le impeda que modificase el software. El mismo Richard Stallman cuenta que por aquellos aos, en el laboratorio donde trabajaba, haban recibido una impresora donada por una empresa externa. El dispositivo, que era utilizado en red por todos los trabajadores, pareca no funcionar a la perfeccin, dado que cada cierto tiempo el papel se atascaba. Como agravante, no se generaba ningn aviso que se enviase por red e informase a los usuarios de la situacin. La prdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes. Richard Stallman decidi arreglar el problema, e implementar el envo de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al cdigo fuente de los controladores de la impresora. Pidi a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, qu era lo que pretenda realizar. La empresa se neg a entregarle el cdigo fuente. En ese preciso instante, Stallman se vio en una encrucijada: deba elegir entre aceptar el nuevo software propietario firmando acuerdos de no revelacin y acabar desarrollando ms software propietario con licencias restrictivas, que a su vez deberan ser ms adelante aceptadas por sus propios colegas. Con este antecedente, en 1984, Richard Stallman comenz a trabajar en el proyecto GNU, y un ao ms tarde fund la Free Software Foundation (FSF). Stallman introdujo la definicin de software libre y el concepto de "copyleft", que desarroll para otorgar libertad a los usuarios y para restringir las posibilidades de apropiacin del software.1
Copyleft
Hay que hacer constar que el titular de los derechos de autor (copyright) de un software bajo licencia copyleft puede tambin realizar una versin modificada bajo su copyright original, y venderla bajo cualquier licencia que desee, adems de distribuir la versin original como software libre. Esta tcnica ha sido usada como un modelo de negocio por una serie de empresas que realizan software libre (por ejemplo MySQL); esta prctica no restringe ninguno de los derechos otorgados a los usuarios de la versin copyleft. Tambin podra retirar todas las licencias de software libre anteriormente otorgadas, pero esto obligara a una indemnizacin a los titulares de las licencias en uso. En Espaa, toda obra derivada est tan protegida como una original, siempre que la obra derivada parta de una autorizacin contractual con el autor. En el caso genrico de que el autor retire las licencias "copyleft", no afectara de ningn modo a los productos derivados anteriores a esa retirada, ya que no tiene efecto retroactivo. En trminos legales, el autor no tiene derecho a retirar el permiso de una licencia en vigencia. Si as sucediera, el conflicto entre las partes se resolvera en un pleito convencional.
La motivacin tica, abanderada por la Free Software Foundation, heredera de la cultura hacker, y partidaria del apelativo libre, que argumenta que el software es conocimiento y debe poderse difundir sin trabas. Su ocultacin es una actitud antisocial y la posibilidad de modificar programas es una forma de libertad de expresin. La motivacin pragmtica, abanderada por la Open Source Initiative y partidaria del apelativo abierto, que argumenta ventajas tcnicas y econmicas, con respecto a evitar una tragedia de los anticomunes mejorando los incentivos.
Aparte de estas dos grandes motivaciones, la gente que trabaja en software libre suele hacerlo por muchas otras razones, que van desde la diversin a la mera retribucin econmica, que es posible debido a modelos de negocio sustentables. Ventajas del Software libre:
Bajo costo de adquisicin: Se trata de un software econmico ya que permite un ahorro de grandes cantidades en la adquisicin de las licencias. Innovacin tecnolgica: Esto se debe a que cada usuario puede aportar sus conocimientos y su experiencia y as decidir de manera conjunta hacia donde se debe dirigir la evolucin y el desarrollo del software. Este es un gran avance en la tecnologa mundial. Independencia del proveedor: Al disponer del cdigo fuente, se garantiza una independencia del proveedor que hace que cada empresa o particular pueda seguir contribuyendo al desarrollo y los servicios del software. Escrutinio pblico: Esto hace que la correccin de errores y la mejora del producto se lleven a cabo de manera rpida y eficaz por cada uno de los usuarios que lleguen a utilizar el producto. Adaptacin del software: Esta cualidad resulta de gran utilidad para empresas e industrias especficas que necesitan un software personalizado para realizar un trabajo especfico y con el software libre se puede realizar y con costes mucho ms razonables. Lenguas: Aunque el software se cree y salga al mercado en una sola lengua, el hecho de ser software libre facilita en gran medida su traduccin y localizacin para que usuarios de diferentes partes del mundo puedan aprovechar estos beneficios.
22
1.4.2.- Economa
El negocio detrs del software libre se caracteriza por la oferta de servicios adicionales al software como: la personalizacin y/o instalacin del mismo, soporte tcnico, donaciones, patrocinios; en contraposicin al modelo de negocio basado en licencias predominante en el software de cdigo cerrado.7 Una vez que un producto de software libre ha empezado a circular, rpidamente est disponible a un costo muy bajo. Al mismo tiempo, su utilidad no decrece. El software, en general, podra ser considerado un bien de uso inagotable, tomando en cuenta que su costo marginal es pequesimo y que no es un bien sujeto a rivalidad (la posesin del bien por un agente econmico no impide que otro lo posea). Puesto que el software libre permite el libre uso, modificacin y redistribucin, a menudo encuentra un hogar entre usuarios para los cuales el coste del software no libre es a veces prohibitivo, o como alternativa a la piratera. Tambin es sencillo modificarlo localmente, lo que permite que sean posibles los esfuerzos de traduccin a idiomas que no son necesariamente rentables comercialmente. La mayora del software libre se produce por equipos internacionales que cooperan a travs de la libre asociacin. Los equipos estn tpicamente compuestos por individuos con una amplia variedad de motivaciones, y pueden provenir tanto del sector privado, del sector voluntario o del sector pblico. Existen muchas posturas acerca de la relacin entre el software libre y el actual sistema poltico-econmico:
Algunos consideran el software libre como un competidor contra el centralismo en empresas y gobiernos, una forma de orden espontneo o de anarquismo prctico.6 Algunos consideran el software libre como una forma de trabajo colaborativo en un modelo de mercado, tal como se haba planteado el cooperativismo. Algunos comparan el software libre a una economa del regalo, donde el valor de una persona est basado en lo que sta da a los dems, sin que incurra valor monetario formal de por medio. Grupos como Oekonux e Hipatia consideran que todo debera producirse de esta forma y que este modelo de produccin no se limita a reemplazar el modelo no libre de desarrollo del software. La cooperacin basada en la libre asociacin puede usarse y se usa para otros propsitos (tales como escribir enciclopedias, por ejemplo). Hay proyectos de desarrollo con impulso gubernamental que utilizan software libre, as como en proyectos de voluntariado en pases del tercer mundo.
Las implicaciones polticas y econmicas del software libre, o su afinidad con el antiautoritarismo, son discutidas. Mientras para unos estas implicaciones son notorias y representan un factor importante a tomarse en cuenta, para otros si bien podra existir una leve relacin, no tiene suficiente relevancia.
Uno de los principios bsicos de este modelo de desarrollo es considerar a los usuarios como codesarrolladores. Ha de tratrseles con mimo, no slo porque pueden proporcionar publicidad mediante el boca a boca, sino tambin por el hecho de que realizarn una de las tareas ms costosas que existe en la generacin de software: las pruebas. Al contrario que el codesarrollo, que es difcilmente escalable, la depuracin y las pruebas tienen la propiedad de ser altamente paralelizables. El usuario ser el que tome el software y lo pruebe en su mquina bajo unas condiciones especficas (una arquitectura, unas herramientas, etc.), una tarea que multiplicada por un gran nmero de arquitecturas y entornos supondra un gran esfuerzo para el equipo de desarrollo. Si se trata a los usuarios como desarrolladores puede darse el caso de que alguno de ellos encuentre un error y lo solucione, enviando un parche al desarrollador del proyecto para que el problema est solucionado en la siguiente versin. Tambin puede suceder, por ejemplo, que una persona diferente al que descubra un error sea la que finalmente lo entienda y corrija. En cualquier caso, todas estas circunstancias son muy provechosas para el desarrollo del software, por lo que es muy beneficioso entrar en una dinmica de esta ndole. Esta situacin se torna ms efectiva con entregas frecuentes, ya que la motivacin para encontrar, notificar y corregir errores es alta debido a que se supone que va ser atendido inmediatamente. Adems, se consiguen ventajas secundarias, como el hecho de que al integrar frecuentemente -idealmente una o ms veces al da- no haga falta una ltima fase de integracin de los mdulos que componen el programa. Esto se ha denominado publicacin frecuente (en la terminologa anglosajona se conoce como release often) y posibilita una gran modularidad narduzzo: modularity: 03 a la vez que maximiza el efecto propagandstico que tiene publicar una nueva versin del software. Nota: La gestin de nuevas versiones depende lgicamente del tamao del proyecto, ya que la problemtica a la que hay que enfrentarse no es igual cuando el equipo de desarrollo tiene dos componentes a cuando son cientos. Mientras en los proyectos pequeos en general este proceso es ms bien informal, la gestin de entregas en los proyectos grandes suele seguir un proceso definido no exento de cierta complejidad. Existe un artculo titulado Release Management Within Open Source Projects ehrenkrantz03: release que describe detalladamente la secuencia que se sigue en el servidor web Apache, el ncleo del sistema operativo Linux y el sistema de versiones Subversion. Para evitar que la publicacin frecuente asuste a usuarios que prioricen la estabilidad sobre la rapidez con la que el software evoluciona, algunos proyectos de software libre cuentan con varias ramas de desarrollo en paralelo. El caso ms conocido es el del ncleo Linux, que tiene una rama estable -dirigida a aquellas personas que estiman su fiabilidad- y otra inestable -pensada para desarrolladores- con las ltimas innovaciones y novedades.
compilarlo para diferentes arquitecturas reis:mozilla:02. Los errores detectados se notifican a una lista de correo de desarrolladores. Sin embargo, las pruebas automticas no estn muy arraigadas. Por lo general sern los propios usuarios, dentro de la gran variedad de usos, arquitecturas y combinaciones, los que las realizarn. Esto tiene la ventaja de que se paralelizan a un coste mnimo para el equipo de desarrollo. El problema que plantea este modelo es cmo organizarse para que la realimentacin por parte de los usuarios exista y sea lo ms eficiente posible. En cuanto al mantenimiento del software en el mundo del software libre -refirindonos con ello al mantenimiento de versiones antiguas-, es una tarea cuya existencia depende del proyecto. En proyectos donde se requiere una gran estabilidad, como ncleos del sistema operativo, etc., se mantienen versiones antiguas del proyecto, ya que un cambio a una nueva versin puede resultar traumtico. Pero, por lo general, en la mayora de los proyectos de software libre, si se tiene una versin antigua y se encuentra un error, los desarrolladores no suelen ponerse a corregirlo y aconsejan utilizar la versin ms moderna con la esperanza de que haya desaparecido por el hecho de que el software ha evolucionado.
Cdigo abierto es el trmino con el que se conoce al software distribuido y desarrollado libremente. El cdigo abierto tiene un punto de vista ms orientado a los beneficios prcticos de compartir el cdigo que a las cuestiones ticas y morales las cuales destacan en el llamado software libre.
Historia
Artculo principal: Historia del cdigo abierto.
Su uso naci por primera vez en 1998 de la mano de algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en ingls del software libre (free software). Free en ingls significa dos cosas distintas dependiendo del contexto: gratuidad y libertad. Lo cual implica, para el caso que nos ocupa, "software que podemos leer, modificar y redistribuir gratuitamente" (software gratuito) y, adems, software libre, segn la acepcin espaola de libertad. El trmino para algunos no result apropiado como reemplazo para el ya tradicional free software, pues eliminaba la idea de libertad, confundida usualmente con la simple gratuidad. No obstante, el trmino cdigo abierto contina siendo ambivalente, puesto que se usa en la actualidad por parte de programadores que no ofrecen software libre pero, en cambio, s ofrecen el cdigo fuente de los programas para su revisin o modificacin previamente autorizada por parte de sus pares acadmicos. Dada la ausencia de tal ambigedad en la lengua espaola, el trmino software libre es adecuado para referirse a programas que se ofrecen con total libertad de modificacin, uso y distribucin bajo la regla implcita de no modificar dichas libertades hacia el futuro. De hecho en ingls tambin se usa el trmino "libre software" para evitar ambigedades semnticas. Desde el punto de vista de una "traduccin estrictamente literal", el significado textual de "cdigo abierto" es que "se puede examinar el cdigo fuente", por lo que puede ser interpretado como un trmino ms dbil y flexible que el del software libre. Sin embargo, ambos movimientos reconocen el mismo conjunto de licencias y mantienen principios equivalentes. Sin embargo, hay que diferenciar los programas de cdigo abierto, que dan a los usuarios la libertad de mejorarlos, de los programas que simplemente tienen el cdigo fuente disponible, previa restricciones sobre su uso o modificacin. En la actualidad el cdigo abierto se utiliza para definir un movimiento nuevo de software (la Iniciativa Open Source), diferente al movimiento del software libre, incompatible con este ltimo desde el punto de vista filosfico, y completamente equivalente desde el punto
de vista prctico, de hecho, ambos movimientos trabajan juntos en el desarrollo prctico de proyectos. La idea bajo el concepto de cdigo abierto es sencilla: cuando los programadores (en Internet) pueden leer, modificar y redistribuir el cdigo fuente de un programa, ste evoluciona, se desarrolla y mejora. Los usuarios lo adaptan a sus necesidades, corrigen sus errores a una velocidad impresionante, mayor a la aplicada en el desarrollo de software convencional o cerrado, dando como resultado la produccin de un mejor software.
27 de septiembre de 1983: Richard Stallman inicia el proyecto GNU. 25 de agosto de 1991: Linus Torvalds publica un mensaje en el grupo de noticias USENET comp.os.minix acerca del nuevo kernel de tipo Unix (Linux) que ha estado desarrollando. 22 de enero de 1998: Netscape anuncia que liberar el cdigo fuente de Navigator. 3 de febrero de 1998: en la reunin de Palo Alto se acua el trmino "open source" y durante la semana siguiente Bruce Perens y Eric S. Raymond lanzan opensource.org. 31 de marzo de 1998: el cdigo de Navigator ya est disponible: en unas horas, mejoras del programa invaden la red. 7 de mayo de 1998: Corel Corporation anuncia Netwinder, un ordenador econmico que corre bajo GNU/Linux. 11 de mayo de 1998: Corel anuncia sus planes de adaptar WordPerfect y el resto de sus programas de ofimtica a GNU/Linux. 28 de mayo de 1998: Sun Microsystems y Adaptec se unen a Linux International, las primeras grandes empresas vendedoras de equipos y sistemas operativos en hacerlo. 13-17 de julio de 1998: Oracle e Informix anuncian que conectarn sus bases de datos a GNU/Linux. 10 de agosto de 1998: Sun Microsystems ofrece Solaris a usuarios individuales e instituciones educativas o sin nimo de lucro. 1 de noviembre de 1998: se publican los Halloween Documents: planes de Microsoft contra GNU/Linux y otros proyectos open source. 16 de diciembre de 1998: IDG anuncia que la cuota de mercado del GNU/Linux se increment un 212% en 1998. 1-5 de marzo de 1999: LinuxWorld Conference and Expo: primera exposicin sobre GNU/Linux. HP, IBM, SAP inician el comienzo del apoyo de las firmas comerciales. 15 de marzo de 1999: Apple lanza Darwin bajo licencia open source. 4 de junio de 1999: Microsoft afirma que Linux vende ms que Windows 98 en las grandes superficies.1
Entre 1998 y 2000 se observ un gran crecimiento en la popularidad de GNU/Linux y de la formacin de muchas empresas "pro software de cdigo abierto". El movimiento tambin captur la atencin de la principal industria del software, llevando al software de cdigo
abierto las ofertas de compaas de software consolidadas como Sun Microsystems con StarOffice e IBM con OpenAFS.
Mapa conceptual del software libre y de cdigo abierto. La idea del cdigo abierto se centra en la premisa de que al compartir el cdigo o, el programa resultante tiende a ser de calidad superior al software propietario, es una visin tcnica. Por otro lado, el software libre tiene tendencias filosficas e incluso morales: el software propietario, al no poder compartirse, es "antitico" dado que prohibir compartir entre seres humanos va en contra del sentido comn. Al igual que el software libre, el cdigo abierto u open source tiene una serie de requisitos2 necesarios para que un programa pueda considerarse dentro de este movimiento, stos son:
Libre redistribucin: el software debe poder ser regalado o vendido libremente. Cdigo fuente: el cdigo fuente debe estar incluido u obtenerse libremente. Trabajos derivados: la redistribucin de modificaciones debe estar permitida. Integridad del cdigo fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas slo como parches. Sin discriminacin de personas o grupos: nadie puede dejarse fuera. Sin discriminacin de reas de iniciativa: los usuarios comerciales no pueden ser excluidos. Distribucin de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa La licencia no debe ser especfica de un producto: el programa no puede licenciarse solo como parte de una distribucin mayor.
La licencia no debe restringir otro software: la licencia no puede obligar a que algn otro software que sea distribuido con el software abierto deba tambin ser de cdigo abierto. La licencia debe ser tecnolgicamente neutral: no debe requerirse la aceptacin de la licencia por medio de un acceso por clic de ratn o de otra forma especfica del medio de soporte del software.
Este declogo es compatible con las cuatro libertades del software libre.