p. 1
software libre jesús gonzález barahona joaquín seoane pascual gregorio robles xp03/90783/01935 código 0,75 créditos introducción al software libre
[close]
p. 2
david megías jiménez coordinador ingeniero en informática por la uab magíster en técnicas avanzadas de automatización de procesos por la uab doctor en informática por la uab profesor de los estudios de informática y multimedia de la uoc jordi mas coordinador coordinador general de softcatalà y desarrollador del procesador de textos libre abiword miembro fundador de softcatalà y de la red telemática redbbs en calidad de consultor ha trabajado en empresas como menta telépolis vodafone lotus eresmas amena y terra españa jesús gonzález barahona autor grupo de sistemas y comunicaciones escet universidad rey juan carlos de madrid jgb@gsyc.escet.urjc.es joaquín seoane pascual autor departamento de ingeniería de sistemas telemáticos de la universidad politécnica de madrid joaquin@dit.upm.es gregorio robles autor grupo de sistemas y comunicaciones escet universidad rey juan carlos de madrid grex@gsyc.escet.urjc.es primera edición noviembre 2003 © fundació per a la universitat oberta de catalunya av tibidabo 39-43 08035 barcelona material realizado por eureca media sl © autores jesús gonzález barahona joaquín seoane pascual y gregorio robles depósito legal b-38.682-2003 isbn 84-9788-028-5 se garantiza permiso para copiar distribuir y modificar este documento según los términos de la gnu free documentation license version 1.2 o cualquiera posterior publicada por la free software foundation sin secciones invariantes ni textos de cubierta delantera o trasera se dispone de una copia de la licencia en el apéndice a junto con una tradición no oficial en el apéndice b puede encontrarse una versión de la última versión de este documento en http curso-sobre.berlios.de/introsobre.
[close]
p. 3
introducción al software libre © fuoc · xp03/90783/01935 Índice prólogo materiales previos agradecimientos 11 11 13 1 introducción al software libre 1.1 el concepto de libertad en el software 1.1.1 definición 1.1.2 términos relacionados 1.2 motivaciones 1.3 consecuencias de la libertad del software 1.3.1 para el usuario final 1.3.2 para la administración pública 1.3.3 para el desarrollador 1.3.4 para el integrador 1.3.5 para el que proporciona mantenimiento y servicios 1.4 otros recursos libres 1.4.1 documentación de programas 1.4.2 otra documentación 1.4.3 artículos científicos 1.4.4 leyes y estándares 1.4.5 enciclopedias 1.4.6 cursos 1.4.7 colecciones y bases de datos 1.4.8 hardware 1.4.9 literatura y arte 15 15 16 17 19 19 20 21 22 22 22 23 23 24 25 25 28 28 29 30 30 2 un poco de historia 2.1 el software libre antes del software libre 2.1.1 y en el principio fue libre 2.1.2 años 1970 y primeros 1980 2.1.3 desarrollo temprano de unix 2.2 el comienzo bsd gnu 2.2.1 richard stallman gnu fsf nace el movimiento del software libre 31 32 32 34 35 36 36 3 anotaciones
[close]
p. 4
© fuoc · xp03/90783/01935 software libre 2.2.2 el csrg de berkeley 2.2.3 los comienzos de internet 2.2.4 otros proyectos 2.3 todo en marcha 2.3.1 en busca de un kernel 2.3.2 la familia bsd 2.3.3 gnu/linux entra en escena 2.4 tiempos excitantes 2.4.1 finales de 1990 2.4.2 principios de los 2000 2.5 el futuro ¿una carrera de obstáculos 2.6 algunas fechas de la historia del software libre 38 40 43 43 44 44 45 47 47 52 57 58 3 aspectos legales 3.1 breve introducción a la propiedad intelectual 3.1.1 derechos de autor 3.1.2 secreto comercial 3.1.3 patentes y modelos de utilidad 3.1.4 marcas y logotipos 3.2 licencias en el software libre 3.2.1 licencias tipo bsd 3.2.2 la licencia pública general de gnu gnu gpl 3.2.3 la licencia pública general menor de gnu gnu lgpl 3.2.4 otras licencias de programas 3.2.5 distribución bajo varias licencias 3.3 licencias de otros recursos libres 3.3.1 licencia de documentación libre de gnu 3.3.2 licencias de creative commons 3.4 resumen 69 69 70 72 73 74 75 76 79 81 82 86 87 87 88 89 4 el desarrollador y sus motivaciones 91 4.1 introducción 91 4.2 ¿quiénes son los desarrolladores 91 4.3 ¿qué hacen los desarrolladores 93 4.4 distribución geográfica 94 4.5 dedicación 96 4.6 motivaciones 98 4.7 liderazgo 99 4.8 resumen y conclusiones 102 anotaciones 4 5 economía 103
[close]
p. 5
introducción al software libre © fuoc · xp03/90783/01935 5.1 financiación de proyectos de software libre 5.1.1 financiación pública 5.1.2 financiación privada sin ánimo de lucro 5.1.3 financiación por quien necesita mejoras 5.1.4 financiación con beneficios relacionados 5.1.5 financiación como inversión interna 5.1.6 otros modos de financiación 5.2 modelos de negocio basados en software libre 5.2.1 mejor conocimiento 5.2.2 mejor conocimiento con limitaciones 5.2.3 fuente de un producto libre 5.2.4 fuente de un producto con limitaciones 5.2.5 licencias especiales 5.2.6 venta de marca 5.3 otras clasificaciones de modelos de negocio 5.3.1 clasificación de hecker 5.4 impacto sobre las situaciones de monopolio 5.4.1 elementos que favorecen los productos dominantes 5.4.2 el mundo del software propietario 5.4.3 la situación con software libre 5.4.4 estrategias para constituirse en monopolio con software libre 103 104 107 108 109 111 113 116 118 120 122 124 126 127 127 128 129 130 131 132 134 156 156 5 anotaciones 6 iniciativas públicas 6.1 impacto del software libre en las administraciones públicas 6.1.1 impactos principales 6.1.2 dificultades de adopción 6.2 actuaciones de las administraciones públicas en el mundo del software 6.2.1 ¿cómo satisfacer mejor las necesidades de las administraciones públicas 6.2.2 promoción de software 6.2.3 fomento de la investigación 6.3 iniciativas legislativas 6.3.1 proyectos de ley en francia 6.3.2 proyecto de ley en brasil 6.3.3 proyectos de ley en perú 6.3.4 proyectos de ley en españa 6.4 textos de algunas propuestas legislativas y documentos relacionados 6.4.1 proyecto de ley de laffitte trégouet y cabanel francia 137 137 138 142 144 145 148 150 151 151 152 153 155
[close]
p. 6
© fuoc · xp03/90783/01935 software libre 6.4.2 proyecto de ley de le déaut paul y cohen francia 159 6.4.3 proyecto de ley de villanueva y rodrich perú 164 6.4.4 cartas de microsoft perú y del congresista villanueva 177 6.4.5 decreto de medidas de impulso de la sociedad del conocimiento en andalucía 197 7 ingeniería del software libre 7.1 introducción 7.2 la catedral y el bazar 7.3 liderazgo y toma de decisiones en el bazar 7.4 procesos en el software libre 7.5 crítica a la catedral y el bazar 7.6 estudios cuantitativos 7.7 trabajo futuro 7.8 resumen 199 199 200 203 205 207 208 212 214 8 entornos y tecnologías de desarrollo 8.1 caracterización de entornos herramientas y sistemas 8.2 lenguajes y herramientas asociadas 8.3 mecanismos básicos de colaboración 8.4 gestión de fuentes 8.4.1 cvs 8.4.2 otros sistemas de gestión de fuentes 8.5 documentación 8.5.1 docbook 8.5.2 wikis 8.6 gestión de errores 8.7 sistemas de gestión de flujo de trabajos 8.8 soporte para otras arquitecturas 8.9 sitios de soporte al desarrollo 8.9.1 sourceforge 8.9.2 herederos de sourceforge 8.9.3 otros sitios y programas 217 217 218 219 221 222 226 228 230 231 233 234 235 236 236 239 239 anotaciones 6 9 estudio de casos 9.1 linux 9.1.1 historia de linux 9.1.2 el modo de trabajo de linux 9.1.3 estado actual de linux 241 243 243 245 247
[close]
p. 7
introducción al software libre © fuoc · xp03/90783/01935 9.2 freebsd 249 9.2.1 historia de freebsd 250 9.2.2 desarrollo en freebsd 250 9.2.3 toma de decisiones en freebsd 251 9.2.4 empresas alrededor de freebsd 252 9.2.5 estado actual de freebsd 253 9.2.6 radiografía de freebsd 253 9.2.7 estudios académicos sobre freebsd 256 9.3 kde 256 9.3.1 historia de kde 257 9.3.2 desarrollo de kde 258 9.3.3 la liga kde 259 9.3.4 estado actual de kde 261 9.3.5 radiografía de kde 262 9.4 gnome 265 9.4.1 historia de gnome 265 9.4.2 la fundación gnome 266 9.4.3 la industria alrededor de gnome 268 9.4.4 estado actual de gnome 270 9.4.5 radiografía de gnome 271 9.4.6 estudios académicos sobre gnome 274 9.5 apache 274 9.5.1 historia de apache 274 9.5.2 desarrollo de apache 276 9.5.3 radiografía de apache 277 9.6 mozilla 278 9.6.1 historia de mozilla 279 9.6.2 estado actual de mozilla 282 9.6.3 radiografía de mozilla 283 9.7 openoffice.org 284 9.7.1 historia de openoffice.org 285 9.7.2 organización de openoffice.org 286 9.7.3 radiografía de openoffice.org 286 9.8.1 historia de red hat 288 9.8.2 estado actual de red hat 290 9.8.3 radiografía de red hat 291 9.9 debian gnu/linux 293 9.9.1 radiografía de debian 295 9.9.2 comparación con otros sistemas operativos 298 bibliografía 301 7 anotaciones 9.8 red hat linux 288
[close]
p. 8
© fuoc · xp03/90783/01935 software libre appendix a gnu free documentation license 317 a.1 preamble a.2 applicability and definitions a.3 verbatim copying a.4 copying in quantity a.5 modifications a.6 combining documents a.7 collections of documents a.8 aggregation with independent works a.9 translation a.10 termination a.11 future revisions of this license a.12 addendum how to use this license for your documents 317 318 320 320 321 324 324 325 325 326 326 326 apéndice b licencia de documentación libre de gnu 329 b.1 preÁmbulo b.2 aplicabilidad y definiciones b.3 copia literal b.4 copiado en cantidad b.5 modificaciones b.6 combinaciÓn de documentos b.7 colecciones de documentos b.8 agregaciÓn con trabajos independientes b.9 traducciÓn b.10 terminaciÓn b.11 revisiones futuras de esta licencia b.12 adenda cómo usar esta licencia en sus documentos 329 330 332 334 336 337 338 338 338 338 339 339 anotaciones 8
[close]
p. 9
introducción al software libre © fuoc · xp03/90783/01935 lista de tablas 4-1 países con mayor número de desarrolladores de debian 4-2 dedicación en horas semanales 4-3 grado de conocimiento de desarrolladores importantes 9-1 estado actual de linux 9-2 lenguajes de programación utilizados en linux 9-3 estado actual de freebsd 9-4 lenguajes de programación utilizados en freebsd 9-5 estado actual de kde 9-6 lenguajes de programación utilizados en kde 9-7 estado actual de gnome 9-9 estado actual de apache 9-10 lenguajes de programación utilizados en apache 9-11 estado actual de mozilla 9-12 lenguajes de programación utilizados en mozilla 9-13 estado actual de openoffice.org 9-14 lenguajes de programación utilizados en openoffice.org 9-15 estado actual de red hat linux 9-16 lenguajes de programación utilizados en red hat 9-17 estado actual de debian 9-18 lenguajes de programación utilizados en debian gnu/linux 9-19 lenguajes más utilizados en debian 9-20 comparación con sistemas propietarios 95 97 100 248 249 255 256 263 264 272 278 278 283 284 287 287 292 293 296 297 297 299 9 anotaciones
[close]
p. 11
introducción al software libre © fuoc · xp03/90783/01935 prólogo la primera versión de estos apuntes fue escrita por jesús m gonzález barahona joaquín seoane pascual y gregorio robles entre los meses de abril y septiembre del 2003 aunque llevábamos tiempo hablando sobre preparar un material de este tipo para la asignatura software libre que joaquín y jesús impartimos en los programas de doctorado de nuestros respectivos departamentos la iniciativa fue de la universitat oberta de catalunya uoc de encargarnos un material para la asignatura de introducción a su máster de software libre lo que nos decidió finalmente a ponernos manos a la obra en este encargo fue fundamental la labor de jordi mas coordinador académico del máster que no sólo nos propuso para este trabajo y nos puso en contacto con la uoc sino que nos acompañó en las relaciones con ellos durante el proyecto materiales previos algunos textos de estos apuntes están basados en materiales previos normalmente de los propios autores en algunos casos de terceras personas utilizados con permiso cuando no han sido completamente reelaborados entre ellos podemos mencionar los siguientes a riesgo de olvidar alguno importante · hay algunos fragmentos sobre todo en los capítulos de historia y economía inspirados en el documento free software open source information society opportunities for europe que jesús gonzález barahona coeditó para la comisión europea sin embargo los fragmentos en cuestión han sido ampliados retocados y actualizados tanto que en muchos casos pueden ser difíciles de reconocer · el apartado sobre los monopolios y el software libre está reelaborado basándonos en el artículo software libre monopolios y otras yerbas de jesús m gonzález barahona 11 lectura complementaria lectura complementaria [ver bibliografía apartado 66 anotaciones [ver bibliografía apartado 111]
[close]
p. 12
© fuoc · xp03/90783/01935 software libre lectura complementaria [ver bibliografía apartado 84 · los apartados sobre iniciativas legislativas e iniciativas de administraciones públicas en relación con el software libre están en parte basados en iniciativas de las administraciones públicas en relación al software libre gracias a pedro de las heras por permitirnos utilizar ese material del que es coautor · parte del apartado sobre los motivos para usar software libre en las administraciones públicas está basado en el artículo de jesús m gonzález barahona · la traducción de la licencia de documentación libre de gnu es una actualización adaptada de la realizada por igor támara y pablo reyes para la versión 1.1 a los que agradecemos el haberla realizado y su permiso para modificarla · el capítulo de ingeniería del software libre es una adaptación de un artículo sobre el estado del arte de la ingeniería del software aplicada al software libre de jesús m gonzález barahona y gregorio robles para la revista novática · en el capítulo de estudios de casos la parte dedicada al desarrollo de linux se basa en una presentación que realizó juan-mariano de goyeneche durante el curso de doctorado programas libres de la universidad politécnica de madrid durante el curso 2002-03 · la parte histórica del estudio pormenorizado de gnome ha sido tomada de la introducción histórica incluida en el libro desarrollo de aplicaciones en gnome2 elaborado por gnome hispano y realizada por uno de los autores de este libro lectura complementaria [ver bibliografía apartado 67 anotaciones 12 · el caso de estudio de freebsd se basa en parte en la ponencia presentada por jesús rodríguez en el iii congreso hispalinux celebrado en madrid en el año 2000 · los casos de estudio de debian y red hat parten del trabajo previo de gonzález barahona et al que han plasmado en varios artículos los resultados del análisis cuantitativo de estas dos distribuciones.
[close]
p. 13
introducción al software libre © fuoc · xp03/90783/01935 agradecimientos los autores agradecen a la fundación para la universitat oberta de catalunya http www.uoc.edu la financiación de la primera edición de esta obra enmarcada en el máster internacional en software libre ofrecido por la citada institución 13 anotaciones
[close]
p. 15
introducción al software libre © fuoc · xp03/90783/01935 1 introducción al software libre ¿qué es el software libre ¿qué es y qué implicaciones tiene la licencia de un programa libre ¿cómo se está desarrollando el software libre ¿cómo se financian los proyectos de software libre qué modelos de negocio se están experimentando relacionados con ellos ¿qué motiva a los desarrolladores especialmente a los que son voluntarios a involucrarse en proyectos de software libre ¿cómo son estos desarrolladores ¿cómo se coordinan en sus proyectos y cómo es el software que producen en resumen ¿cuál es la panorámica general del software libre Éste es el tipo de preguntas que trataremos de responder en este texto porque aunque el software libre está cada vez más en los medios de comunicación en las conversaciones de los profesionales de la informática e incluso empieza a estar en boca de los ciudadanos en general aún es un desconocido para muchos y muchas veces los que lo conocen lo hacen sólo de algunos de sus aspectos desconociendo completamente otros para empezar en este capítulo vamos a presentar los aspectos específicos del software libre centrándonos fundamentalmente en explicar sus bases para los que se aproximen al tema por primera vez y en motivar su importancia entre estas bases nos detendremos en la definición del término para saber de qué vamos a hablar y en las consecuencias principales del uso y la mera existencia del software libre también presentaremos otros recursos libres distintos del software y que han ido apareciendo en parte bajo el impulso y ejemplo de aquél 1.1 el concepto de libertad en el software desde hace más de 30 años nos hemos acostumbrado a que quien me vende un programa me impone las condiciones bajo las que puedo usarlo prohibiéndome por ejemplo que se lo pase a un amigo a pesar de ser software no puedo adaptarlo a mis necesidades ni siquiera corregir errores debiendo esperar a que el fabricante los arre15 anotaciones
[close]