guía práctica sobre software libre. su selección y aplicación local en américa latina y el...

110
Guía Práctica sobre UNESCO Organización de las Naciones Unidas para la Educación, la Ciencia y la Cultura Software Libre su selección y aplicación local en américa LATINA y el Caribe Oficina Regional de Ciencia para América Latina y el Caribe UNESCO Montevideo Sector Comunicación e Información Fernando da Rosa Federico Heinz

Upload: jose-daniel-guerrero-galvez

Post on 28-Jul-2015

196 views

Category:

Documents


0 download

DESCRIPTION

Da Rosa, F y Heinz, F. (2007). Guía práctica sobre software libre. Su selección y aplicación local en América Latina y el Caribe. Montevideo, Uruguay: UNESCO. Recuperado desde http://unesdoc.unesco.org/images/0015/001560/156096s.pdf

TRANSCRIPT

UNESCOOrganizacin de las Naciones Unidas para la Educacin, la Ciencia y la Cultura

Oficina Regional de Ciencia para Amrica Latina y el Caribe Sector Comunicacin e Informacin UNESCO Montevideo

su seleccin y aplicacin local en amrica LATINA y el Caribe

Software Libre

Gua Prctica sobre

Fernando da Rosa Federico Heinz

UNESCOOrganizacin de las Naciones Unidas para la Educacin, la Ciencia y la Cultura

Oficina Regional de Ciencia para Amrica Latina y el Caribe Sector Comunicacin e Informacin UNESCO Montevideo

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica LATINA y el Caribe

Fernando da Rosa Federico Heinz

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

Los autores se hacen responsables por la eleccin y presentacin de hechos que figuran en la presente publicacin y por las opiniones que aqu expresan, las cuales no reflejan necesariamente las de la UNESCO y no comprometen a la Organizacin. Las denominaciones empleadas en esta publicacin y la forma en que aparecen presentados los datos, no implican de parte de la UNESCO juicio alguno sobre la condicin jurdica de pases, territorios, ciudades o zonas, o de sus autoridades, ni sobre la delimitacin de sus fronteras o lmites.UNESCO Coordinador: Gnther Cyranek Autores: Fernando da Rosa y Federico Heinz Otros colaboradores: Beatriz Busaniche y Gustavo Boksar Diseo de Portada e Imagen: Jorge Ambiado Crdito de las fotos: Foto de Linus Torvalds, Tomado de la Wikipedia bajo licencia GNU Free Documentation License con permiso de Martin Streicher, Editor en Jefe de LINUXMAG. Foto de Richard Stallman, Fotografa de Bill Ebbesen, licenciada como Dominio Pblico. Fotos de Latinoware 2006, LACFREE 2005, Jornadas Regionales 2004. Fotografas de Fernando da Rosa Mapa Conceptual del Software Libre: realizado originalmente por Ren Mrou, bajo licencia GPL. Modificado por Fernando da Rosa, Jorge Ambiado y Gustavo Boksar

Por ms informacin, por favor dirjase a: Gnther Cyranek Sector de Comunicacin e Informacin Oficina Regional de Ciencia de la UNESCO para Amrica Latina y el Caribe Edificio MERCOSUR Dr. Luis Piera 1992 11200 Montevideo, Uruguay Telfono: (+598 2) 413 20 75 ext. 126 / 124 Fax: (+598 2) 413 20 94 Correo electrnico: [email protected] Oficina Regional de Ciencia de la UNESCO para Amrica Latina y el Caribe UNESCO 2007 ISBN 92-9089-103-3 Gua prctica sobre Software Libre. Su seleccin y aplicacin local en Amrica Latina y el Caribe. Fernando da Rosa y Federico Heinz. Paginado, impreso y encuadernado en: Mastergraf SRL - Gral. Pagola 1727 - CP 11800 - Tel.: 203 4760 Montevideo - Uruguay Depsito legal 339.016 - Comisin del Papel Edicin amparada al Decreto 218/96

agradecimientos

Los autores quisieran agradecer a todos aquellos que han contribuido con esta gua, proporcionado informacin, opiniones y consejo. Un agradecimiento especial por cierto, a Richard Stallman, la Free Software Foundation y el proyecto GNU, por su incansable y visionaria labor de dos dcadas, sin la cual estaramos muy lejos de una comprensin cabal del fenmeno del software, de las consecuencias de sus modos de licenciamiento, y de la concrecin del software libre como una realidad cotidiana. Esta gua no hubiera sido posible sin la colaboracin, en la revisin del material, crtica constructiva y aportes de Beatriz Busaniche y Gustavo Boksar. Tambin deseamos agradecer los aportes siempre valiosos de Rodolfo Pilas y en general a toda la comunidad del Software Libre, la cual construye su reflexin en torno al Software Libre, de la misma manera en que lo desarrolla, aportando sobre la base de lo realizado anteriormente, en una dinmica que hace del movimiento del Software Libre algo en permanente desarrollo.

reproduccinEsta publicacin puede ser total o parcialmente fotocopiada, reproducida, almacenada en un sistema de recuperacin o transmitida en cualquier forma o por cualquier medio, o adaptada a las necesidades locales sin fines de lucro. Todas las formas de reproduccin, adaptacin y/o traduccin por medios mecnicos o electrnicos debern indicar como fuente de origen a UNESCO y los autores que correspondan. La notificacin de cualquier reproduccin, traduccin o adaptacin deber ser enviada a UNESCO junto con una copia del documento o una direccin electrnica donde fue almacenado.

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

Software Libremente

En 2001, al comenzar UNESCO a brindar apoyo al movimiento de software libre, se cumplieron 18 aos desde que lanzamos el movimiento y empezamos a desarrollar el sistema operativo GNU. Hemos recorrido un largo camino. En 1984 era imposible usar un sistema moderno de computadora sin instalar un sistema operativo propietario, que hubiera sido entonces obtenido bajo una licencia de uso restrictiva. Nadie tena permiso para compartir libremente el software con otros usuarios y prcticamente todos los usuarios tenan bloqueado el acceso que les hubiera permitido ajustar el software a sus propias necesidades. Los propietarios del software haban levantado paredes para dividirnos. El Proyecto GNU fue fundado para cambiar esto. Su primera meta: desarrollar un sistema operativo portable compatible con Unix que fuera hecho 100% de software libre. Ni 95%, ni 99.5%, sino 100%, de manera que los usuarios fueran libres de distribuir el sistema completo y de cambiar y contribuir con cualquier parte de l. El nombre del sistema, GNU, es un acrnimo recursivo que significa "GNU no es Unix" como manera de rendir homenaje a Unix y a la vez indicar que GNU es algo diferente. Tcnicamente GNU es como Unix. Pero GNU le da a sus usuarios libertad, y Unix no. Llev muchos aos de trabajo por parte de cientos de programadores, para desarrollar este sistema operativo. Algunos fueron contratados por la Free Software Foundation y por las compaas libres de software libre la mayora sin embargo eran voluntarios. Algunos se han vuelto famosos mientras que la mayora son conocidos principalmente entre sus pares, conocidos por otros hackers que usan o trabajan sobre su cdigo. Todos juntos han ayudado a liberar el potencial de uso de las computadoras para toda la humanidad.

En 1991 fue desarrollado el ltimo componente esencial de un sistema del estilo de Unix: Linux, el kernel libre escrito por Linus Torvalds. Hoy, la combinacin de GNU y Linux es usada por millones de personas alrededor del mundo y su popularidad est creciendo. El escritorio grfico de GNU hace ahora del sistema GNU/Linux un sistema casi tan fcil de usar como cualquier otro sistema operativo. Pero nuestra libertad no est asegurada para siempre. El mundo no se queda quieto y no podemos contar con el hecho de tener libertad dentro de cinco aos solamente porque la tenemos hoy. El software libre enfrenta desafos difciles y peligros. Sern necesarios ciertos esfuerzos para preservar nuestra libertad, as como llev esfuerzo obtener esta libertad al principio. Mientras tanto el sistema operativo es solamente el comienzo, ahora necesitamos aplicaciones libres que manejen toda la gama de trabajos que los usuarios quieren hacer. No importa el trabajo que uno quiera hacer con la computadora no se debera renunciar a la libertad de hacerlo. UNESCO siempre ha apoyado la extensin y la diseminacin del conocimiento humano. Le agradezco a UNESCO por reconocer que, en el dominio del software, el software libre disemina el conocimiento humano de una manera imposible de lograr por el software que no es libre Richard Stallman

CONTENIDO

Pgina 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14)Prlogo Introduccin Cdigo fuente y Software Libre Cmo seleccionar Software Libre Cmo migrar a Software Libre Software Libre en Educacin Software Libre en la Administracin Pblica Desarrollo de Software Libre Eventos de Software Libre de Amrica Latina con proyeccin internacional Organizaciones y puntos de contacto Anexo I: Software Libre seleccionado Anexo II: Tabla comparativa entre Software Privativo y Software Libre sustitutivo Bibliografa

8 11 25 37 41 51 55 61 67 73 83 91 103 Contratapa

Mapa Conceptual del Software Libre

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

PRLOGO

A partir de las recomendaciones surgidas del LACFREE 2005 (Conferencia Latinoamericana y del Caribe sobre Desarrollo y Uso del Software Libre), que tuviera lugar en Recife, Brasil, la UNESCO percibi la necesidad de proveer informacin concreta sobre las experiencias en el uso de software libre. Tanto los telecentros como los centros comunitarios multimedia estn interesados en introducir ms soluciones de software libre para sus usuarios en las comunidades locales. Los docentes buscan aplicaciones de cdigo abierto que les permitan incluir formas de aprendizaje interactivo en los temas de la curricula. Modelos, simulaciones, grficos, multimedia, comunicacin y diseo web requieren herramientas de software libre accesibles al mundo educativo. Los sistemas de gerenciamiento de aprendizaje de software libre poseen una amplia funcionalidad profesional y facilitan la organizacin institucional del aprendizaje virtual a nivel de escuelas y universidades. Las prioridades de la Informacin para Todos, apuntan a la reduccin de la brecha digital y, en muchos pases, son parte de la poltica nacional para el diseo de sociedades del conocimiento. El software libre puede contribuir con soluciones a esas demandas de inclusin digital y social, por ejemplo ofreciendo herramientas para que las personas con dficit visual o auditivo puedan aprovechar las bibliotecas y escuelas pblicas. Al mismo tiempo los expertos ven al software libre como una herramienta para desarrollar capacidades competitivas en ingeniera de software y en las industrias vinculadas a nivel nacional. Esta gua prctica presenta definiciones de lo que es el software libre de acuerdo a la Free Software Foundation y explica los procesos de desarrollo del software como una actividad basada en la comunidad.

Las recomendaciones de carcter prctico para migrar hacia el software libre facilitan el realizar estudios de factibilidad. La gua desarrolla cinco argumentos en cmo las administraciones pblicas y el concepto de gobierno electrnico pueden beneficiarse del uso del software libre y los formatos abiertos. Finalmente, esta gua para Amrica Latina y Caribe nos ayudar a entender el papel fundamental que el Software Libre pueden jugar en el uso de las tecnologas de la comunicacin y la informacin para un desarrollo sostenible.

Gnther Cyranek Consejero de Comunicacin e Informacin en el MERCOSUR y Chile Oficina Regional de Ciencia de la UNESCO para Amrica Latina y Caribe UNESCO - Montevideo Agosto 2007

PGINA

9

introduccion

PGINA

11

Una breve introduccion

e

s muy difcil comprender en forma cabal la importancia y proyeccin del Software Libre sin antes entender qu es el software, cmo se desarrolla y su rol dentro de los sistemas de

procesamiento de datos. Para esto necesitamos explorar conceptos bsicos vinculados a la informtica, tales como tecnologa, programa, cdigo fuente y cdigo objeto.

La computadora

or mucho que se hable de dispositivos inteligentes, pocas cosas hay ms tontas que el procesador de una computadora. Si vamos a su esencia, un procesador elemental slo sabe manejarse con un alfabeto de dos letras (0 y 1) y dadas dos letras de este alfabeto, calcular su suma. Por lo general, las computadoras no operan sobre letras individuales (llamadas bits), sino sobre palabras de ocho letras, llamadas bytes, por ejemplo 01100101. Hay un total de 256 palabras distintas que se pueden escribir con ocho bits. Estas 256 palabras que, si las interpretamos como nmeros binarios, representan los nmeros del cero al 255, constituyen el vocabulario completo de la computadora. Cmo es posible que con slo 256 palabras en su vocabulario una computadora pueda hacer tantas cosas? Cmo es posible que slo sumando pueda hacer clculos complejos?PGINA

13

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

El secreto est en que la computadora es programable. La computadora sabe obedecer rdenes, y tiene la capacidad de ejecutar millones de instrucciones en un solo segundo, ejecutando operaciones sobre los millones de bytes que constituyen su memoria. Combinando instrucciones, podemos escribir programas que combinen e interpreten las palabras almacenadas en la memoria de distinta manera de acuerdo al contexto: como cada una de las letras de este texto, como nmeros, o notas musicales, o colores. Enviando los datos de la manera adecuada a una pantalla, una impresora o una tarjeta de sonido, el programa puede impresionar nuestros sentidos. Aceptando datos desde el teclado y el ratn, puede responder a nuestros comandos. Las computadoras son dispositivos de propsito general, a las que podemos configurar para cumplir tareas especficas: imprimir documentos, tocar msica, mostrar videos, interconectar redes, por s mismas son incapaces de realizar ninguna. Para ello, necesitan que alguien les provea instrucciones detalladas acerca de cmo interpretar la informacin y cmo comunicarse con el usuario. Un programa es un conjunto de instrucciones para la computadora, que le permite llevar adelante una tarea especfica. Ese programa se escribe, como se escribe este texto o cualquier relato. Los encargados de escribir esos textos son los programadores, que dominan un determinado lenguaje de programacin para realizar esta tarea, como nosotros dominamos el espaol, su gramtica y su sintaxis para construir este texto.

Qu es el cdigo fuente?El programa ara que el milagro de hacer tantas cosas con un lenguaje de slo 256 palabras sea posible, es necesario darle instrucciones precisas al procesador de la computadora, indicarle paso a paso qu hacer con esos unos y ceros, combinados en palabras de ocho letras. Un buen ejemplo de lo complejo que esto puede ser, es el cuento Instrucciones para subir una escalera de Julio Cortzar.

En realidad, por detalladas que suenen las instrucciones de Julio Cortzar, una computadora que intentara seguirlas las encontrara exasperantemente abstractas. An si dejramos de lado el detalle de que levantar no tiene sentido sin antes ponernos de acuerdo dnde es arriba, y suponiendo que sabemos qu es un pie, una simple instruccin como levantar el pie deja a la computadora fuera de combate. Hay que levantarlo, s, pero cmo? Ms acertado sera enumerar las articulaciones de la pierna que deben moverse, y especificar a qu ngulo deben flexionarse en cada instante del tiempo, pero esto tampoco sera suficientemente detallado. Lo que en realidad hay que describir es el detalle de los impulsos nerviosos que hay que enviarle a cules msculos... con menos de esto, la mquina no sabra por dnde empezar.

Para subir una escalera se comienza por levantar esa parte del cuerpo situada a la derecha abajo, envuelta casi siempre en cuero o gamuza, y que salvo excepciones cabe exacta mente en el escaln. Puesta en el primer peldao dicha parte, que para abreviar llamaremos pie, se recoge la parte equivalente de la izquierda (tambin llamada pie, pero que no ha de confundirse con el pie antes citado), y llevndola a la altura del pie, se le hace seguir hasta colocarla en el segundo peldao?

J ulio Cortzar

PGINA

15

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

Eso s: provista con instrucciones suficientemente detalladas, la computadora las cumple rpidamente y sin cuestionarlas. Si las instrucciones contienen alguna equivocacin que la llevan a patear la escalera hasta convertirla en astillas (o, si es una escalera dura, hasta destrozar el pie), lo har sin dudar, pues la computadora est hecha slo para obedecer rdenes. Para poder manejar la complejidad que requiere dar una descripcin tan detallada y precisa, la exquisita prosa de Julio Cortzar no slo es demasiado abstracta, sino peligrosamente ambigua. En vez de usar castellano, o ingls, los programadores utilizan lenguajes formales fuertemente apoyados en la matemtica, y derivan de ella el poder de expresar relaciones abstractas en trminos de elementos ms concretos. En estos lenguajes formales se escriben los programas y se desarrolla el denominado cdigo fuente, el que luego se traduce al lenguaje super detallado que requiere la mquina, el lenguaje mquina.

Lenguaje de mquina

diferencia de los objetos materiales, que se fabrican, los programas se escriben. Quizs parte de la fascinacin que la programacin ejerce sobre quienes la practican se deba a la magia aparente de lograr que una mquina cumpla las rdenes que le impartimos verbalmente. Para que pueda entender lo que le ordenamos, sin embargo, debemos comunicarnos con ella de una manera especial: el procesador, dentro de cada computadora, slo comprende instrucciones escritas en su propio lenguaje, denominado lenguaje de mquina (a veces mencionado como cdigo binario o cdigo objeto). Existen muchos tipos distintos de procesador y cada uno de ellos tiene un lenguaje de mquina distinto, diseado por su fabricante. Esa es la razn por la que no es posible ejecutar cualquier programa en cualquier computadora. Los programas escritos en lenguajes de mquina son, bsicamente, largusimas listas de nmeros. Cada uno de estos nmeros representa una operacin elemental (por ejemplo, 1: sumar, 2: restar, 3: almacenar en memoria, etc), o un operando, o una combinacin de ambas cosas. Para que el lector pueda darse una idea concreta de cmo es un programa codificado en lenguaje de mquina, lo ilustrar con un ejemplo: lo que sigue es una pequea porcin de un programa, escrito en el lenguaje de mquina de los procesadores de la familia Intel funcionando bajo el sistema operativo GNU/Linux. Este programa imprime la raz cuadrada de un nmero cualquiera. Si elPGINA

17

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

nmero resulta ser negativo, el programa imprime un mensaje de error (recordemos que no es posible sacar la raz cuadrada de un nmero negativo):

Una computadora moderna est en condiciones de ejecutar millones de instrucciones de mquina como estas por segundo. Construir un programa complejo a partir de instrucciones tan elementales y codificadas en un formato tan poco amigable es, sin embargo, una tarea muy complicada para un ser humano. Tambin es extremadamente difcil entender cmo funciona un programa si slo disponemos de l en lenguaje de mquina. Para comprender cmo funciona el programa citado ms arriba no slo es necesario recordar qu nmero corresponde a cual operacin, tambin debemos identificar cules partes de los nmeros representan operaciones, cules representan operandos, cules datos, y muchas otras cosas ms. Debido a detalles tcnicos, modificarlo es mucho ms difcil an, ya que para eliminar o agregar instrucciones no basta con insertarlas o borrarlas en la lista: tambin hay que modificar los valores de muchas de las dems instrucciones. Por ello, modificar un programa del que slo tenemos una copia en lenguaje de mquina, o traducirlo para que funcione en una mquina con un lenguaje de mquina distinto, es una tarea virtualmente impracticable.

Lenguajes de programacin

Dado que las personas tienen serias dificultades para leer, escribir y modificar programas en lenguaje de mquina, pero son esas mismas personas las que deben escribir y mantener los programas, se inventaron los lenguajes de programacin. A diferencia de los lenguajes mquina, que estn diseados con el nico objetivo de facilitar al procesador la ejecucin de las instrucciones a gran velocidad (podramos llamarlo tambin lenguaje de ejecucin), la finalidad de los lenguajes de programacin es facilitar a los seres humanos la comprensin, la escritura y la modificacin de los programas. El objetivo primordial de un programa expresado en un lenguaje de computacin no es ser ejecutado directamente por una computadora (lo que es imposible), sino comunicar, de manera comprensible para un ser humano, lo que una computadora debe hacer para resolver un determinado problema. Dado que la naturaleza de la computacin est ntimamente ligada a las matemticas, los lenguajes de programacin generalmente son una mezcla un tanto idiosincrtica de notacin matemtica entrelazada con una gramtica rudimentaria, por lo general basada (remotamente) en el ingls. A modo de ejemplo, veamos cmo se expresa el mismo programa citado ms arriba en un lenguaje de programacin muy difundido, llamado C:

PGINA

19

Gua Prctica sobre Software Libre

su seleccin y aplicacin local en amrica Latina y el Caribe

An para personas que no conocen el lenguaje C, este texto es ms comprensible que el programa en lenguaje de mquina de ms arriba, ya que hay algunos elementos claramente distinguibles. Quizs lo ms notable para el lego sean las notas aclaratorias en castellano, entre los smbolos /* y */. Estos textos (llamados comentarios) no afectan la funcin del programa, pero s son importantes para dejar plasmada la intencin del programador. En otras palabras, cumplen el rol de notas adhesivas, en las que el programador aclara el objetivo de cada parte del programa. Esto es muy til cuando otro programador intenta comprender cmo funciona el programa, o incluso cuando el mismo programador debe revisar ese mismo programa un tiempo despus de haberlo escrito. Ms all de los comentarios, si sabemos que en ingls if quiere decir si (condicional, no afirmativo), y que else quiere decir de lo contrario, es relativamente sencillo advertir que la sentencia if (x Novtica [en lnea]. Barcelona : Asociacin de Tcnicos en Informtica, 1975. 2005, nm. 175 : El software libre como objeto de estudio. [Fecha de consulta : 23/06/07]. Disponible en 2003, nm. 163 : Conocimiento abierto (open knowledge). [Fecha de consulta . 23/06/07]. Disponible en http://www.ati.es/novatica/2003/163/ nv163sum.html 2001, nm. 154 : Software libre : fuente abierta hacia la madurez. [Fecha de consulta : 23/06/07]. Disponible en http://www.ati.es/novatica/2001/154/nv154sum.html OFSET Organization for Free Software in Education and Teaching [En lnea] Disponible en: http://www.ofset.org/ [Fecha de consulta: 20 de Junio de 2007] RAYMOND, S. Eric. La Catedral y el Bazar Wikisource [En lnea] Disponible en: [fecha de consulta: 22 de Junio de 2007] Optaros Open Source Catalogue 2007 [En lnea] Disponible en: http://www.optaros.com/en/publications/white_papers_reports/open_source_catalogue_2007 [fecha de consulta: 19 de Junio de 2007] REFERENCIAS: software libre en los Estados del mundo [En lnea]. Chile: softwarelibre.cl, 2002. Disponible en: < http://www.softwarelibre.cl/drupal/?q=referencias> [Fecha de consulta: 22 de junio de 2007] STALLMAN, Richard. Software libre para una sociedad libre. [en lnea]. Disponible en: [fecha de consulta: 22 de junio de 2007].

The IDA Open Source Migration Guidelines [en lnea] Disponible en: http://www.netproject.com/docs/migoss/ [Fecha de consulta: 22 de junio de 2007] UNESCO y el Software Libre[en lnea] Disponible en: http://www.unesco.org.uy/informatica/consorcio/stallman.html [Fecha de consulta: 12 de Octubre de 2007 ] Unofficial Translations GNU Project Free Software Foundation (FSF) [En lnea] Disponible en: http://www.gnu.org/licenses/translations.html [Fecha de consulta: 19 de Junio de 2007 ]

Bibliogr afas complementar iasFree/Open Source Software Academic Bibliography [en lnea] Disponible en: http://wwwai.wu wien.ac.at/%7Ekoch/forschung/sweng/oss_list.html [ Fecha de consulta: Martes, 19 de Junio de 2007] Open Source Software and Libraries Bibliography [en lnea] Disponible en: [fecha de consulta: Martes, 19 de Junio de 2007] Women in Open Source/Free Software bibliography | LinuxChix [en lnea] Disponible en: http://www.linuxchix.org/womenopensourcefreesoftwarebibliography.html [fecha de consulta: Martes, 19 de Junio de 2007]

107

PGINA