Page 1

“Software Libre y GNU/Linux” Apunte Te´orico Universidad Nacional de La Matanza Ingenier´ıa Inform´ atica Taller de GNU/Linux Recopilaci´on y edici´on realizada por Diego J. Brengi 7 de mayo de 2009


2


Prefacio El taller de GNU/Linux 1 naci´ o en el a˜ no 2001 como un curso optativo para los alumnos de ingenier´ıa en inform´atica de la Universidad Nacional de La Matanza 2 . Su objetivo principal es el de iniciar a los alumnos en la utilizaci´ on del sistema operativo, fomentar su uso y ense˜ nar la filosof´ıa que ha hecho posible su nacimiento y evoluci´on. El taller comienza con una introducci´ on al mundo del “software libre” y complementa esto con clases pr´acticas frente a la computadora. Desde sus inicios comenc´e una tarea de recolecci´on de material did´ actico y a apartir del a˜ no 2006 debo agradecer la importante colaboraci´on de Alejandro Casas para llevar adelante el curso. Tratando de mantener cierta coherencia seg´ un los objetivos y tiempos del taller hemos tenido que complementar y editar los art´ıculos, donde el autor original lo permite. En este apunte, que se ha convertido casi en un libro, se ha condensado todo el material asociado a los aspectos hist´ oricos, filos´oficos y estructurales necesarios para comenzar a comprender el “software libre” y el sistema operativo GNU/Linux, sin entrar en detalles demasiado t´ecnicos. Cabe aclarar que muchos de los art´ıculos aqu´ı expuestos expresan opiniones propias de cada autor, las cuales podr´an agradar o no al lector. Su inclusi´on responde a la relevancia hist´ orica de estos art´ıculos y la gran difusi´on que tienen dentro del mundo del “software libre”. Los ap´endices se brindan como lectura complementaria, pero pr´ acticamente obligatoria para quienes cursan el taller. La mayor parte de este apunte est´a compuesta por textos e im´agenes obtenidos de la red, con permiso expreso de reproducci´ on por parte de sus autores. Se aclara al final de cada cap´ıtulo el origen de cada secci´ on. A principios de 2008 se han migrado todos los apuntes desde OpenOffice a LATEX por cuestiones pr´acticas a la hora de actualizar el material. Por supuesto esto hace que aparezcan nuevos errores y se sumen a los viejos. Sepa el lector comprender y disculpar esta situaci´on. Ing.Diego J. Brengi 1 2

http://tallergnulinux.sf.net http://www.unlm.edu.ar


4


´Indice general ´ Indice general

5

´ Indice de figuras

11

1. El sistema operativo UNIX 1.1. Introducci´ on . . . . . . . . . . . . . . . . . 1.2. Historia . . . . . . . . . . . . . . . . . . . 1.3. El laboratorio de inteligencia de Berkeley 1.4. Breve biograf´ıa de Kenneth Thompson . . 1.5. Breve biograf´ıa de Dennis M. Ritchie . . . ´ 1.6. Arbol de familias UNIX . . . . . . . . . . 1.7. Autores del cap´ıtulo . . . . . . . . . . . .

. . . . . . .

2. Historia del Proyecto GNU 2.1. El proyecto GNU . . . . . . . . . . . . . . 2.1.1. El t´ermino GNU . . . . . . . . . . . 2.1.2. Compatibilidad con UNIX . . . . . . 2.1.3. Licencia . . . . . . . . . . . . . . . . 2.1.4. Financiamiento . . . . . . . . . . . . 2.1.5. Avances . . . . . . . . . . . . . . . . 2.1.6. Herramientas GNU . . . . . . . . . . 2.1.7. Desarrollos . . . . . . . . . . . . . . 2.2. La Free Software Foundation . . . . . . . . 2.3. Actividades principales de la FSF . . . . . . 2.4. Biograf´ıa breve de Richard M. Stallman . . 2.5. Nacimiento del proyecto GNU . . . . . . . . 2.6. El Proyecto GNU por Richard Stallman . . 2.6.1. La primera comunidad que comparte 2.6.2. El colapso de la comunidad . . . . . 2.6.3. Una elecci´ on moral severa . . . . . . 2.6.4. Libre como en libertad . . . . . . . . 2.6.5. Software GNU y el sistema GNU . . 2.6.6. El inicio del proyecto . . . . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

13 13 14 18 20 20 21 22

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . el software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

25 25 25 25 26 26 26 28 28 29 30 32 33 33 34 34 36 37 38 38

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .


6

´ INDICE GENERAL 2.6.7. Los primeros pasos . . . . . . . . . . . . . . . 2.6.8. GNU Emacs . . . . . . . . . . . . . . . . . . 2.6.9. ¿Es libre el programa para cualquier usuario? 2.6.10. Copyleft y la GNU GPL . . . . . . . . . . . . 2.6.11. La Fundaci´ on para el Software Libre . . . . . 2.6.12. Asistencia para el Software Libre . . . . . . . 2.6.13. Metas t´ecnicas . . . . . . . . . . . . . . . . . 2.6.14. Computadoras donadas . . . . . . . . . . . . 2.6.15. La lista de tareas de GNU . . . . . . . . . . . 2.6.16. La GPL para Bibliotecas de GNU . . . . . . 2.6.17. ¿Rascarse una comez´ on? . . . . . . . . . . . . 2.6.18. Desarrollos inesperados . . . . . . . . . . . . 2.6.19. El GNU Hurd . . . . . . . . . . . . . . . . . . 2.6.20. Alix . . . . . . . . . . . . . . . . . . . . . . . 2.6.21. Linux y GNU/Linux . . . . . . . . . . . . . . 2.6.22. Desaf´ıos en nuestro futuro . . . . . . . . . . . 2.6.23. Hardware secreto . . . . . . . . . . . . . . . . 2.6.24. Bibliotecas no libres . . . . . . . . . . . . . . 2.6.25. Patentes de software . . . . . . . . . . . . . . 2.6.26. Documentaci´ on libre . . . . . . . . . . . . . . 2.6.27. Debemos hablar acerca de la libertad . . . . 2.6.28. ((Open Source)) . . . . . . . . . . . . . . . . . 2.6.29. ¡Pru´ebelo! . . . . . . . . . . . . . . . . . . . . 2.7. Autores del cap´ıtulo . . . . . . . . . . . . . . . . . .

3. El kernel Linux 3.1. Kernel . . . . . . . . . . . . . . . . . . . . . . 3.2. Nacimiento del kernel Linux . . . . . . . . . . 3.3. Licencia . . . . . . . . . . . . . . . . . . . . . 3.4. Avances . . . . . . . . . . . . . . . . . . . . . 3.5. Linux y el proyecto GNU . . . . . . . . . . . 3.6. La lista de desarrollo . . . . . . . . . . . . . . 3.7. Desarrolladores . . . . . . . . . . . . . . . . . 3.8. Identificaci´ on de versiones antiguas del kernel 3.9. Identificaci´ on de versiones actuales del kernel 3.10. Estructura monol´ıtica . . . . . . . . . . . . . 3.11. Arquitecturas de hardware . . . . . . . . . . . 3.12. El c´odigo fuente . . . . . . . . . . . . . . . . . 3.13. Cambiando el kernel . . . . . . . . . . . . . . 3.14. Kernels precompilados . . . . . . . . . . . . . 3.15. Instalando un kernel compilado a medida . . 3.15.1. Obteniendo el c´odigo fuente . . . . . . 3.15.2. Aplicar parches . . . . . . . . . . . . . 3.15.3. Configuraci´on . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

39 39 40 41 42 42 43 43 44 44 45 46 46 47 47 48 48 48 49 50 51 52 52 53

. . . . . . . . . . . . . . . . . .

55 55 55 57 58 58 59 60 61 63 64 65 65 65 66 66 67 67 67


´ INDICE GENERAL 3.15.4. Compilaci´on . . . 3.15.5. Instalaci´ on . . . . 3.15.6. Otras variantes . . 3.16. El arranque . . . . . . . . 3.17. Los m´ odulos . . . . . . . . 3.18. Logo . . . . . . . . . . . . 3.19. Lecturas complementarias 3.20. Autores del cap´ıtulo . . .

7 . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

4. Distribuciones GNU/LINUX 4.1. ¿Qu´e es una distribuci´on de GNU/Linux? . . . . . . . . . . 4.2. ¿Que partes componen una distribuci´on? . . . . . . . . . . . 4.2.1. Programa de instalaci´ on . . . . . . . . . . . . . . . . 4.2.2. Kernel Linux . . . . . . . . . . . . . . . . . . . . . . 4.2.3. Herramientas GNU y sistema base . . . . . . . . . . 4.2.4. Programas de aplicaci´on con licencias libres . . . . . 4.2.5. Programas de aplicaci´on “privativos” . . . . . . . . . 4.2.6. Configuraciones por defecto . . . . . . . . . . . . . . 4.2.7. Herramientas de configuraci´ on y administraci´on . . . 4.2.8. Documentaci´ on . . . . . . . . . . . . . . . . . . . . . 4.2.9. Actualizaciones de seguridad y correcciones de bugs 4.2.10. Integraci´on de todo el sistema . . . . . . . . . . . . . 4.2.11. Soporte para el usuario . . . . . . . . . . . . . . . . 4.2.12. Motivaci´ on y objetivos . . . . . . . . . . . . . . . . . 4.3. Clasificaci´ on de distribuciones . . . . . . . . . . . . . . . . . 4.3.1. Activas e inactivas . . . . . . . . . . . . . . . . . . . 4.3.2. Dependencia de otra distribuci´on . . . . . . . . . . . 4.3.3. Pa´ıs de origen y desarrollo . . . . . . . . . . . . . . . 4.3.4. Popularidad . . . . . . . . . . . . . . . . . . . . . . . 4.3.5. Precio . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.6. Licencias involucradas . . . . . . . . . . . . . . . . . 4.3.7. Manejo de paquetes de software . . . . . . . . . . . . 4.3.8. Tipo de uso . . . . . . . . . . . . . . . . . . . . . . . 4.3.9. Soporte principal . . . . . . . . . . . . . . . . . . . . 4.3.10. Arquitecturas de hardware . . . . . . . . . . . . . . 4.4. ¿En qu´e basar la elecci´ on? . . . . . . . . . . . . . . . . . . . 4.5. ¿C´omo obtener una distribuci´on? . . . . . . . . . . . . . . . 4.6. ¿Qu´e distribuciones existen? . . . . . . . . . . . . . . . . . . 4.7. L´ınea de tiempo de distribuciones . . . . . . . . . . . . . . . 4.8. Autores del cap´ıtulo . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

68 69 69 69 69 71 71 72

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73 73 73 73 73 74 74 74 75 75 76 76 76 77 77 77 78 78 78 78 78 79 79 80 80 80 82 83 84 89 89


8 5. Categor´ıas de software libre y no libre 5.1. Software libre . . . . . . . . . . . . . . . . 5.2. Software de c´odigo abierto (Open source) 5.3. Software de dominio p´ ublico . . . . . . . . 5.4. Software protegido con copyleft . . . . . . 5.5. Software libre no protegido con copyleft . 5.6. Software cubierto por la GPL . . . . . . . 5.7. El sistema GNU . . . . . . . . . . . . . . 5.8. Programas GNU . . . . . . . . . . . . . . 5.9. Software de GNU . . . . . . . . . . . . . . 5.10. Software no libre . . . . . . . . . . . . . . 5.11. Software semilibre . . . . . . . . . . . . . 5.12. Software privativo . . . . . . . . . . . . . 5.13. Freeware . . . . . . . . . . . . . . . . . . . 5.14. Shareware . . . . . . . . . . . . . . . . . . 5.15. Software privado . . . . . . . . . . . . . . 5.16. Software comercial . . . . . . . . . . . . . 5.17. Autores del cap´ıtulo . . . . . . . . . . . .

´ INDICE GENERAL

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

6. Licencia de este libro A. Conceptos de sistemas operativos A.1. ¿Qu´e es el Sistema Operativo? . . . . . . A.2. Funciones b´asicas de un sistema operativo A.3. Caracter´ısticas . . . . . . . . . . . . . . . A.3.1. Administraci´on de tareas . . . . . A.3.2. Administraci´on de usuarios . . . . A.3.3. Manejo de recursos . . . . . . . . . A.4. Historia de los Sistemas Operativos . . . . A.4.1. A˜ nos 40 . . . . . . . . . . . . . . . A.4.2. A˜ nos 50 . . . . . . . . . . . . . . . A.4.3. A˜ nos 60 . . . . . . . . . . . . . . . A.4.4. A˜ nos 70 . . . . . . . . . . . . . . . A.5. Autores del cap´ıtulo . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

93 93 95 95 96 96 97 97 98 98 98 98 99 100 100 100 101 101 103

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

105 . 105 . 105 . 106 . 106 . 106 . 107 . 107 . 107 . 107 . 108 . 110 . 111

B. Licencia P´ ublica GNU 113 B.1. Traducci´on al castellano . . . . . . . . . . . . . . . . . . . . . 113 B.2. Pre´ambulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 B.3. T´erminos y condiciones para la copia, distribuci´on y modificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 B.4. Ap´endice: C´ omo aplicar estos t´erminos a sus nuevos programas120 C. El t´ ermino “Open Source” 123 C.0.1. Definici´on de Open Source . . . . . . . . . . . . . . . . 123


´ INDICE GENERAL D. Trampa en el Cyberespacio D.1. Armario con cajones y lavado de cerebros . . . . D.2. El impuesto a la informaci´ on . . . . . . . . . . . D.3. El car´acter espec´ıfico del software . . . . . . . . . D.4. Los fabricantes atrapados en la trampa . . . . . . D.5. El pa´ıs de los tecnocretinos... . . . . . . . . . . . D.6. ...no est´a muy lejos . . . . . . . . . . . . . . . . . D.7. Pr´ acticas dudosas . . . . . . . . . . . . . . . . . . D.8. Bordeando la ley . . . . . . . . . . . . . . . . . . D.9. Una mirada al posible futuro de la educaci´ on . . D.10.Lo que esta en juego: el control de la informaci´ on D.11.Una oportunidad para Europa y el empleo . . . . D.12.Una posible alternativa: los programas libres . . D.13.Para concluir . . . . . . . . . . . . . . . . . . . . D.14.Agradecimientos . . . . . . . . . . . . . . . . . . D.15.Copyright . . . . . . . . . . . . . . . . . . . . . . D.16.References . . . . . . . . . . . . . . . . . . . . . . D.17.About this document... . . . . . . . . . . . . . . .

9

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

127 . 129 . 132 . 132 . 135 . 136 . 137 . 139 . 140 . 142 . 143 . 145 . 146 . 147 . 148 . 148 . 148 . 150

E. GNU Free Documentation License 1. APPLICABILITY AND DEFINITIONS . . . . . . . . . 2. VERBATIM COPYING . . . . . . . . . . . . . . . . . . 3. COPYING IN QUANTITY . . . . . . . . . . . . . . . . 4. MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . 5. COMBINING DOCUMENTS . . . . . . . . . . . . . . . 6. COLLECTIONS OF DOCUMENTS . . . . . . . . . . . 7. AGGREGATION WITH INDEPENDENT WORKS . . 8. TRANSLATION . . . . . . . . . . . . . . . . . . . . . . . 9. TERMINATION . . . . . . . . . . . . . . . . . . . . . . . 10. FUTURE REVISIONS OF THIS LICENSE . . . . . . . ADDENDUM: How to use this License for your documents

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

151 151 153 153 154 155 156 156 156 157 157 157


10

´ INDICE GENERAL


´Indice de figuras 1.1. Uno de los logos de la empresa Bell. . . . . . . . . . . . . . . 1.2. Computadora de la serie GE600 utilizada en el desarrollo de MULTICS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Ken Thompson y Dennis Ritchie. . . . . . . . . . . . . . . . . 1.4. Dennis Ritchie, Ken Thompson y la PDP-11 [UNIX 1972]. . . 1.5. Logo del BSD UNIX. . . . . . . . . . . . . . . . . . . . . . . . 1.6. Kenneth Thompson. . . . . . . . . . . . . . . . . . . . . . . . 1.7. Dennis M. Ritchie. . . . . . . . . . . . . . . . . . . . . . . . . 1.8. L´ınea de tiempo simplificada de versiones UNIX. . . . . . . . 1.9. Versiones UNIX y su evoluci´on de c´odigo. . . . . . . . . . . . 2.1. 2.2. 2.3. 2.4. 2.5. 2.6.

Logo del proyecto GNU. . . . . . . . . . . . . . . . . . . . . . Richard M. Stallman en la actualidad. . . . . . . . . . . . . . Logo Web de la Free Software Foundation. . . . . . . . . . . . Logos de las licencias GPLv3, LGPLv3 y AGPLv3. . . . . . . Richard M. Stallman hace tiempo. . . . . . . . . . . . . . . . En esta imagen, dos pancartas envuelven a un n ˜u, una de ellas muestra ((What’s GNU?)) (¿Qu´e es GNU?) y la otra ((GNU’s Not Unix!)) (¡GNU No es Unix!). En el centro de la imagen una cara similar a la cabeza de un n ˜u reposa orgullosamente. Damos las gracias a Etienne Suvasa por dibujar esta imagen de ((What’s GNU)). . . . . . . . . . . . . . . . . . . . . . . . .

14 15 16 17 19 21 22 23 24 26 27 30 31 32

33

3.1. Arquitectura general del Kernel Linux. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones. . . . . . . . . . . . . 56 3.2. Diagrama conceptual y simplificado de las capas de un sistema operativo GNU/Linux. . . . . . . . . . . . . . . . . . . . . 56 3.3. Arquitectura general del S.O. GNU/linux. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones. . . . . . . . . . . . . 57 3.4. Linus Torvalds. . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.5. Peque˜ na historia de las releases m´ as importantes. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones). . . . . 59 3.6. Alan Cox, desarrollador del Kernel Linux. . . . . . . . . . . . 60


12

´ INDICE DE FIGURAS 3.7. Diagrama conceptual de la jerarqu´ıa de desarrolladores. . . 3.8. N´ umero de desarrolladores y empresas involucradas. . . . . 3.9. Aporte de desarrolladores y empresas. . . . . . . . . . . . . 3.10. Ciclo de desarrollo del kernel. . . . . . . . . . . . . . . . . . 3.11. Configuraci´on del kernel con la opci´ on “make menuconfig”. 3.12. Configuraci´on del soporte para carga de m´ odulos. . . . . . . 3.13. Tux, logo del Kernel Linux creado por Larry Ewing. . . . .

. . . . . . .

61 62 63 64 68 70 72

4.1. Distribuciones que se ofrecen a la venta en cajas estampadas. 4.2. GNU/Linux Distro Timeline. Versi´ on 7.6 by Lundqvist. Obtenida de http://futurist.se/gldt/. Parte1 . . . . . . . . . . 4.3. GNU/Linux Distro Timeline. Versi´ on 7.6 by Lundqvist. Obtenida de http://futurist.se/gldt/. Parte2 . . . . . . . . . .

79

91

5.1. Diagrama dise˜ nado por Chao-Kuei para explicar las diferentes categor´ıas de software. . . . . . . . . . . . . . . . . . . . . . .

94

90

D.1. Roberto Di Cosmo. http://www.pps.jussieu.fr/∼ dicosmo/Library/Images/dicosmo.gif128


Cap´ıtulo 1

El sistema operativo UNIX 1.1.

Introducci´ on

Luego casi cuatro d´ecadas de uso, el sistema operativo UNIX y sus derivados son considerados como los sistemas operativos m´ as potentes, vers´atiles y flexibles dentro del mundo de la computaci´ on. Su popularidad se debe a muchos factores, incluyendo su habilidad para correr sobre una gran variedad de computadoras, desde micros hasta supercomputadoras, y por su portabilidad. UNIX nace de las cenizas del proyecto MULTICS, el objetivo del proyecto era desarrollar un sistema operativo interactivo y multiusuario que contase con muchas innovaciones, entre ellas mejoras en las pol´ıticas de seguridad. Este esfuerzo de varias compa˜ n´ıas no fue exitoso, pero los u ´ltimos sobrevivientes de este proyecto en los laboratorios Bell volvieron a intentarlo y obtuvieron un sistema operativo que ofrec´ıa a sus usuarios un entorno de trabajo sencillo, poderoso y elegante para su ´epoca. El sistema tambi´en propici´o una visi´on distinta al dise˜ no del software: “ Solucionar un problema interconectando herramientas sencillas en vez de crear grandes programas monol´ıticos.” Hoy d´ıa, la palabra UNIX se utiliza para denotar diferentes conceptos dependiendo del contexto en que es usada. Esto suele dar lugar a confusiones: La familia UNIX: Desde el punto de vista t´ecnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de dise˜ no e interoperabilidad en com´ un. Esta familia incluye m´ as de 100 sistemas operativos desarrollados a lo largo de 20 a˜ nos. No obstante, es importante se˜ nalar que esta definici´on no implica necesariamente que dichos sistemas operativos compartan c´odigo o cualquier propiedad intelectual.


14

El sistema operativo UNIX El sistema operativo UNIX original: Desde el punto de vista hist´ orico, UNIX se refiere a la subfamilia de sistemas operativos que descienden de la primera implementaci´ on original de AT&T. El t´ermino “descendencia” ha de interpretarse como trabajos derivativos que comparten propiedad intelectual con la implementaci´ on original. La marca UNIX: Desde el punto de vista legal, Unix es una marca de mercado. Dicha marca es propiedad de “The Open Group” (http:// es.wikipedia.org/wiki/The_Open_Group), una organizaci´on de estandarizaci´ on que permite el uso de dicha marca a cualquier sistema operativo que cumpla con sus est´andares publicados en “Single Unix Specification” (http://es.wikipedia.org/wiki/Single_Unix_Specification). Todo ello independientemente de que el sistema operativo en cuesti´ on sea descendiente o cl´ onico del Unix original. Resumiendo, la marca Unix no es propiedad de ninguna compa˜ n´ıa.

1.2.

Historia

Algunos de los puntos m´ as importantes en la historia del UNIX son los siguientes: A˜ no 1965 En 1965 los Laboratorios Bell de At&T se une con el MIT (Massachusetts Institute of Technology) y General Electric para el desarrollo de un sistema operativo nuevo llamado MULTICS, que proveer´ıa soporte multiusuario, multi-procesador, y sistema de archivos jer´ arquico, entre muchas de sus caracter´ısticas.

Figura 1.1: Uno de los logos de la empresa Bell.

A˜ no 1969 En 1969 AT&T abandona el proyecto Multics por estar disconformes con los adelantos del mismo. Cuando Bell Labs abandon´ o el proyecto, sus investigadores, (K. Thompson, Ritchie, M. D. McIlroy, J. F. Ossanna), dise˜ naron


1.2 Historia

15

Figura 1.2: Computadora de la serie GE600 utilizada en el desarrollo de MULTICS. en papel un sistema de archivos que luego evolucion´o hasta una versi´ on primitiva del sistema de archivos de UNIX. Thompson escribi´ o un programa llamado “Space Travel” para un sistema GECOS (el cual corr´ıa en una Honeywell 635), pero era dif´ıcil controlar la nave espacial y muy costoso para correr en esa m´ aquina. Entonces Thompson trat´o de pasar su juego a una PDP-7 (Programmed Data Processor con 4K de memoria para programas), y con el fin de tener un mejor ambiente para el desarrollo de programas, reescribi´o MULTICS en ensamblador, junto con su sistema de archivos, el subsistema de procesos y unas cuantas librer´ıas. A˜ no 1970 Brian Kernighan llam´o al nuevo sistema UNICS (UNiplexed Information and Computing Service) por referencia a MULTICS, aunque despu´es se cambi´ o por UNIX. A˜ no 1971 El primer uso real de UNIX fue como una herramienta de procesamiento de textos para la secci´ on de patentes de los Laboratorios Bell. Esto justific´ o que el grupo de programadores continuaran su investigaci´on y desarrollo. UNIX fue acogido entre los programadores porque se dise˜ n´o con estas caracter´ısticas: Ambiente para programadores


16

El sistema operativo UNIX Interfaz simple para el usuario Utilidades simples que pueden combinarse para ejecutar funciones poderosas. Sistema de archivos jer´ arquico Interfaz de perif´ericos simple y consistente con el formato de los archivos Sistema multi-usuario y multi-proceso Arquitectura independiente y transparente al usuario.

Se traslad´o el sistema a una PDP-11/20 y despu´es a la PDP-11/45 y PDP-11/75. Como el pasar el sistema de una m´ aquina a otra implicaba reescribirlo, Thompson decidi´o reescribir UNIX en un lenguaje de alto nivel de su propio dise˜ no, llamado B. B era una forma simplificada de BCPL, el cual era una forma simplificada de CPL. Debido a ciertas debilidades, B no tuvo ´exito, pero ser´ıa la base de un lenguaje mucho m´ as poderoso. La primera edici´ on de “UNIX PROGRAMMER’S MANUAL” por K. Thompson y D. M. Ritchie tiene fecha del 3 de Noviembre de 1971. Inclu´ıa cerca de 60 comandos como: b (compilar un programa B); boot (reiniciar el sistema); cat (concatenar archivos); chdir (cambiar directorio de trabajo); chmod (cambiar permisos de acceso); chown (cambiar propietario); cp (copiar archivos); ls (listar contenido de directorios); mv (mover o renombrar archivos); wc (contar palabras); who (usuarios en el sistema). La carencia principal era el mecanismo de pipes.

Figura 1.3: Ken Thompson y Dennis Ritchie.


1.2 Historia

17

A˜ no 1972 Ritchie reescribe el “B” y llama al nuevo lenguaje “C”. Thompson crea el pipe: un mecanismo uniforme para conectar la salida de un programa a la entrada de otro. Esto establece las bases para la filosof´ıa de las herramientas UNIX: “Escribir programas que hagan s´ olo una cosa y que la hagan bien. Escribir programas para que trabajen juntos. Escribir programas que manejen flujos de texto porque son una interfaz universal.” Aparece la segunda edici´ on de UNIX.

Figura 1.4: Dennis Ritchie, Ken Thompson y la PDP-11 [UNIX 1972].

A˜ no 1973 En 1973, se reescribi´o UNIX en C (lenguaje desarrollado por Dennis Ritchie) para facilitar la labor de implementar el Unix en las nuevas computadoras. Salen la tercera y la cuarta edici´on de UNIX. A˜ no 1974 En 1974 Thompson y Ritchie publicaron un art´ıculo en The Communications of the ACM en el que describieron el nuevo Sistema Operativo Unix.


18

El sistema operativo UNIX

Este art´ıculo genera entusiasmo en la comunidad acad´emica que ve en ´el una poderosa herramienta de ense˜ nanza en el estudio del desarrollo de los sistemas de programaci´ on. Por problemas legales con el decreto de Concesi´on de 1956 a la compa˜ n´ıa AT&T se le prohibe comercializar el Unix. Debido a esto AT&T cede el Unix a las Universidades para prop´ ositos educativos y a otras entidades comerciales. Aparece la quinta edici´on de UNIX. El Departamento de Computaci´on Cient´ıfica de Berkeley comienza a utilizar UNIX. Mas tarde aparecen muchas variantes del sistema UNIX. Una de las m´ as importantes es la BSD (Berkeley Software Distribution ) que le incorpora soporte para memoria virtual y el stack TCP/IP para comunicaci´ on en red.

1.3.

El laboratorio de inteligencia de Berkeley

El inter´es de la comunidad universitaria por el sistema Unix cristaliza particularmente en la Universidad de Berkeley, California. En 1974 un grupo de investigadores y estudiantes de Inform´atica adquiere el Unix de AT&T. La empresa les ha cedido por una cantidad razonable el c´odigo fuente del sistema. Pero el sistema AT&T requiere para funcionar correctamente en las m´ aquinas de Berkeley algunas mejoras y adaptaciones que aportar´ an en particular dos j´ovenes estudiantes de Inform´atica, Chuck Halley y Bill Joy, con la ayuda del mismo Ken Thompson. De este trabajo (estructurado en torno a a un peque˜ no equipo de pioneros) saldr´a, a principios de 1977, la Berkeley Software Distribution (BSD), una versi´ on del sistema Unix mejorada por los hackers de la Universidad de Berkeley. El sistema BSD, que conoce un verdadero ´exito entre los equipos universitarios de todo el mundo, se pondr´ a al d´ıa regularmente durante los a˜ nos siguientes gracias a las m´ ultiples contribuciones y aportaciones de los mismos usuarios. En seguida dos versiones Unix, pero sobre todo dos culturas Unix, corren paralelamente para luego enfrentarse. La de Unix System Labs de AT&T por un lado y la de Computers Systems Research Group (CSRG) de Berkeley por el otro; por un lado los mecanismos de innovaci´ on de empresa, por otro un proceso cooperativo de innovaci´ on en el seno de una comunidad (si bien restringida). El ´exito de BSD plantea un problema en seguida a AT&T, que en 1992 lleva al CSRG a los tribunales por haber sobrepasado los t´erminos de la licencia acordada y haber hecho p´ ublicos “secretos industriales”. Ser´ a el comienzo de una larga batalla jur´ıdica que no acabar´ a hasta 1994, con la venta por parte de AT&T de los Unix System Blacks a la empresa Novell, que se apresura a llegar a un acuerdo. El proyecto BSD no sobrevive sin embargo a la aventura judicial. El acuerdo al que se lleg´o entonces permite de todos modos sacar una u ´ltima versi´ on del sistema BSD llamada “4.4


1.3 El laboratorio de inteligencia de Berkeley

19

BSD Lite”, bajo licencia libre y desembarazada de toda huella de c´odigo perteneciente a AT&T.

Figura 1.5: Logo del BSD UNIX. El final del desarrollo del Unix BSD, a causa de la epopeya judicial del copyright, pone fin a una ´epoca. La inform´atica pasa de la era de los pioneros a la de la producci´ on industrial de mercado. Numerosos hackers hist´ oricos abandonan los laboratorios para formar su propia empresa o se integran en los mayoristas del sector. La empresa Sun, por ejemplo, surge directamente del vivero de la Universidad de Berkeley donde fue concebida la versi´ on BSD de Unix. Esta situaci´on tiene dos consecuencias principales. En primer lugar, la de conducir a una verdadera balcanizacion de los diferentes sistemas basados en Unix, hasta las diferentes tentativas de relanzar el proyecto BSD fuera del marco universitario (NetBSD, FreeBSD, OpenBSD). Cada una desarrolla sus propia variantes, sus propias implementaciones en detrimento la mayor parte de las veces de la compatibilidad. Y, en segundo lugar, encierra al desarrollo inform´atico en lo que ser´a llamado “sistema propietario”, es decir, la aplicaci´on estricta por parte de las empresas del principio de propiedad privada a toda producci´ on de software, excluyendo as´ı toda publicidad del c´odigo y por lo tanto toda participaci´on de los usuarios en su desarrollo. Lo que, en otros t´erminos, lleva a impedir cualquier innovaci´ on en el seno de un producto terminado.


20

1.4.

El sistema operativo UNIX

Breve biograf´ıa de Kenneth Thompson

1943 Nace en New Orleans, Louisiana. 1965-66 Se grad´ ua en Ingenier´ıa El´ectrica en la Universidad de California en Berkeley. 1966 Se incorpora al Departamento de Investigaci´on Computacional en los Laboratorios Bell para trabajar en el proyecto MULTICS. 1969 Desarrolla el sistema operativo UNIX. 1970 Escribe el lenguaje B, precursor del lenguaje “C” de Dennis Ritchie. 1971 Porta UNIX desde una PDP-7 a una PDP-11. 1973 Reescribe UNIX en el lenguaje “C” de Ritchie. 1973 Reescribe partes del UNIX para incluir el concepto de pipes de Doug McIlroy. 1975-6 Profesor invitado en la Universidad de California, Berkeley. 1980 “Belle”, una computadora que juega ajedrez que desarrolla junto a Joe H. Condon, gana el Campeonato (mundial y de U.S.) de Ajedrez con computadora. 1980 Elegido para la “U.S. National Academy of Engineering”. 1983 Recibe junto con Dennis Ritchie el premio ACM Turing. 1980 Elegido para la “U.S. National Academy of Science”. 1988 Profesor en la Universidad de Sydney, Australia 1998 Recibe junto con Dennis Ritchie la Medalla Nacional de Tecnolog´ıa por el desarrollo del sistema UNIX. 2000 Se retira de los laboratorios Bell.

1.5.

Breve biograf´ıa de Dennis M. Ritchie

1941 Nace en Bronxville, N.Y. 1963 Se grad´ ua en F´ısica en la Universidad de Harvard. 1968 Obtiene en Harvard un Ph.D. en matem´ aticas.


´ 1.6 Arbol de familias UNIX

21

Figura 1.6: Kenneth Thompson. 1967 Se une a los Laboratorios Bell, siguiendo a su padre Alistair E. Ritchie que pose´ıa una larga carrera all´ı. 1968 Se une al grupo del proyecto MULTICS en los Laboratorios Bell. 1972 Crea el lenguaje “C”. 1989 Recibe con Ken Thompson el premio NEC C&C por su importante contribuci´ on a la computaci´ on. 1988 Elegido para la “U.S. National Academy of Engineering”. 1995 Encabeza el esfuerzo para crear el sistema operativo Plan 9. 1996 Encabeza el esfuerzo para crear el sistema operativo Inferno(TM). 1998 Recibe junto con Kenneth Thompson la Medalla Nacional de Tecnolog´ıa por el desarrollo del sistema UNIX.

1.6.

´ Arbol de familias UNIX

Para entender en forma general las relaciones entre versiones UNIX y su fragmentaci´ on se exponen distintos gr´ aficos. Las figuras 1.8 y 1.9 fueron obtenidas de http://en.wikipedia.org/wiki/Unix


22

El sistema operativo UNIX

Figura 1.7: Dennis M. Ritchie.

1.7.

Autores del cap´ıtulo

Apunte compilado por Diego J. Brengi. Posee partes originales y material obtenido de la red. La aclaraci´on inicial sobre el t´ermino UNIX realizada por Rub´en Alejandro Casas. P´ arrafo: “El laboratorio de inteligencia de Berkeley” extra´ıdo del art´ıculo “Cooperaci´on y producci´ on inmaterial en el software libre.” por Laurent Moineau y Aris Papath´eodorou. http://www.sindominio.net/biblioweb/ telematica/cooperacion.html. Los ´ arboles de versiones UNIX fueron obtenidos de http://en.wikipedia. org/wiki/Unix Los derechos de las im´agenes obtenidas de la red pertenecen a sus respectivos autores.


1.7 Autores del cap織覺tulo

Figura 1.8: L織覺nea de tiempo simplificada de versiones UNIX.

23


24

El sistema operativo UNIX

Figura 1.9: Versiones UNIX y su evoluci´ on de c´ odigo.


Cap´ıtulo 2

Historia del Proyecto GNU 2.1.

El proyecto GNU

El proyecto GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo completo libre: El sistema GNU . El 27 de septiembre de 1983 se anunci´o p´ ublicamente el proyecto por primera vez en el grupo de noticias net.unix-wizards. Al anuncio original, siguieron otros ensayos escritos por Richard Stallman como el “Manifiesto GNU”, que establecieron sus motivaciones para realizar el proyecto GNU, entre las que destaca: “Retornar al esp´ıritu de cooperaci´ on que prevaleci´ o en los tiempos iniciales de la comunidad de usuarios de computadoras”.

2.1.1.

El t´ ermino GNU

GNU es un acr´onimo recursivo que significa “GNU No es Unix”. Stallman sugiere que se pronuncie, en ingl´es, como “guh-noo” (se puede observar que el logo es un n ˜u) para evitar confusi´ on con new (nuevo). En espa˜ nol, GNU se pronuncia fon´eticamente o simplemente mencionando las letras.

2.1.2.

Compatibilidad con UNIX

UNIX es un sistema operativo no libre muy popular, porque est´a basado en una arquitectura que ha demostrado ser t´ecnicamente estable. El sistema GNU fue dise˜ nado para ser totalmente compatible con UNIX. El hecho de ser compatible con la arquitectura de UNIX implica que GNU est´e compuesto de peque˜ nas piezas individuales de software, muchos de los cuales ya estaban disponibles, como el sistema de edici´on de textos TeX y el sistema gr´ afico X Window, que pudieron ser adaptados y reutilizados; otros en cambio tuvieron que ser reescritos.


26

2.1.3.

Historia del Proyecto GNU

Licencia

Para asegurar que el software GNU permaneciera libre para que todos los usuarios pudieran “ejecutarlo, copiarlo, modificarlo y distribuirlo”, el proyecto deb´ıa ser liberado bajo una licencia dise˜ nada para garantizar esos derechos al tiempo que evitase restricciones posteriores de los mismos. La idea se conoce en Ingl´es como copyleft (en clara oposici´on a copyright), y est´a contenida en la Licencia General P´ ublica de GNU (GPL).

2.1.4.

Financiamiento

En 1985, Stallman cre´ o la Free Software Foundation (FSF o Fundaci´on para el Software Libre) para proveer soportes log´ısticos, legales y financieros al proyecto GNU. La FSF tambi´en contrat´o programadores para contribuir a GNU, aunque una porci´ on sustancial del desarrollo fue (y continua siendo) producida por voluntarios. A medida que GNU ganaba renombre, negocios interesados comenzaron a contribuir al desarrollo o comercializaci´on de productos GNU y el correspondiente soporte t´ecnico. El m´ as prominente y exitoso de ellos fue Cygnus Solutions, ahora parte de Red Hat.

2.1.5.

Avances

En 1990, el sistema GNU ya ten´ıa un editor de texto llamado Emacs, un exitoso compilador (GCC), y la mayor parte de las librer´ıas y utilidades que componen un sistema operativo UNIX t´ıpico. Pero faltaba el componente

Figura 2.1: Logo del proyecto GNU.


2.1 El proyecto GNU

27

primario llamado n´ ucleo (kernel en ingl´es). En el manifest´ o GNU, Stallman mencion´ o que “un n´ ucleo inicial existe, ´ se refer´ıa a pero se necesitan muchos otros programas para emular Unix”. El TRIX, que es un n´ ucleo de llamadas remotas a procedimientos, desarrollado por el MIT y cuyos autores decidieron que fuera libremente distribuido; Trix era totalmente compatible con UNIX versi´ on 7. En Diciembre de 1986 ya se hab´ıa trabajado para modificar este n´ ucleo. Sin embargo, los programadores decidieron que no era inicialmente utilizable, debido a que solamente funcionaba en “algunos equipos sumamente complicados y caros” raz´on por la cual deber´ıa ser portado a otras arquitecturas antes de que se pudiera utilizar. Finalmente, en 1988, se decidi´o utilizar como base el n´ ucleo Mach desarrollado en la CMU. Inicialmente, el n´ ucleo recibi´o el nombre de Alix (as´ı se llamaba una novia de Stallman), pero por decisi´ on del programador Michael Bushnell fue renombrado a Hurd. Desafortunadamente, debido a razones t´ecnicas y conflictos personales entre los programadores originales, el desarrollo de Hurd acab´o estanc´ andose.

Figura 2.2: Richard M. Stallman en la actualidad. En 1991, Linus Torvalds empez´ o a escribir el n´ ucleo Linux y decidi´o distribuirlo bajo la GPL. R´apidamente, m´ ultiples programadores se unieron a Linus en el desarrollo, colaborando a trav´es de Internet y consiguiendo paulatinamente que Linux llegase a ser un n´ ucleo compatible con UNIX. En 1992, el n´ ucleo Linux fue combinado con el sistema GNU, resultando en un sistema operativo libre y completamente funcional. El sistema operativo formado por esta combinaci´on es usualmente conocido como “GNU/Linux” o como una “distribuci´on Linux” y existen diversas variantes. (Ver tambi´en:


28

Historia del Proyecto GNU

Controversia por la denominaci´on GNU/Linux en Wikipedia). En la actualidad (2004), Hurd contin´ ua en activo desarrollo y ya es posible obtener versiones experimentales del sistema GNU que lo emplean como n´ ucleo.

2.1.6.

Herramientas GNU

Es frecuente hallar componentes de GNU instalados en un sistema UNIX no libre, en lugar de los programas originales para UNIX. Esto se debe a que muchos de los programas escritos por el proyecto GNU han demostrado ser de mayor calidad que sus versiones equivalentes de UNIX. A menudo, estos componentes se conocen colectivamente como “herramientas GNU”. Muchos de los programas GNU han sido tambi´en portados a otras plataformas como Microsoft Windows y Mac OS X.

2.1.7.

Desarrollos

Algunos de los programas desarrollados por el proyecto GNU son: Bison: Generador parser dise˜ nado para substituir a yacc Bash: Int´erprete de comandos BFD: Archivos de bibliotecas Binutils: Ensamblador GNU, Enlazador GNU, y herramientas relacionadas Classpath: Librer´ıas para Java DotGNU: Substituto de .NET Emacs: Editor de texto extensible y autodocumentado GCC: Compilador optimizado para varios lenguajes, particularmente C GDB: Depurador de aplicaciones GIMP: Programa de edici´on fotogr´ afica glibc: Biblioteca para lenguaje C GMP: Programa para calculos arbitrarios GNOME: Ambiente de escritorio gr´ afico Sistema de construcci´ on para GNU GNUnet: Red descentralizada de comunicaciones personales, dise˜ nada para resistir interferencias no autorizadas


2.2 La Free Software Foundation

29

GNUstep: Implementaci´ on del conjunto de bibliotecas OpenStep, as´ı como herramientas para programar aplicaciones gr´ aficas GSL: Biblioteca Cient´ıfica para GNU Gzip: Aplicaciones y bibliotecas para compresi´ on de datos Hurd: Un microkernel y un conjunto de servidores que funcionan del mismo modo que el n´ ucleo UNIX Maxima: Un sistema para c´alculos algebr´ aicos Octave: Un programa para c´omputo num´erico similar a MATLAB GNU MDK: Un conjunto de herramientas para la programaci´ on en MIX Texinfo: Sistema de documentaci´ on El proyecto GNU tambi´en ayuda con el desarrollo de otros paquetes, como: CVS - sistema de control de versiones para c´odigo fuente DDD - herramientas gr´ aficas para detecci´ on y depuraci´on de errores

2.2.

La Free Software Foundation

Organizaci´ on creada en Octubre de 1985 a partir del esfuerzo de Richard Stallman y otros entusiastas del software libre con el prop´ osito de difundir este movimiento. “La Fundaci´ on para el Software Libre (FSF) est´a dedicada a eliminar las restricciones sobre la copia, redistribuci´ on, entendimiento, y modificaci´ on de programas de computadoras. Hacemos esto, promocionando el desarrollo y uso del software libre en todas las ´areas de la computaci´ on, pero muy particularmente, ayudando a desarrollar el sistema operativo GNU. Muchas organizaciones distribuyen cualquier software libre que est´e disponible. En cambio, la Fundaci´ on para el Software Libre se concentra en desarrollar nuevo software libre, y en hacer de este software un sistema coherente, el cual puede eliminar la necesidad de uso del software privativo o no libre. Adem´ as de desarrollar GNU, FSF distribuye copias de software GNU y manuales por un costo de distribuci´on, y acepta donaciones deducibles de impuestos (en los Estados Unidos), para apoyar el desarrollo de software GNU. Muchos de los fondos de la FSF provienen de los servicios de dis´ tribuci´ on. Esta es la raz´on por la que pedimos que compren CD-ROMs y manuales (pero especialmente CD-ROMs) de la FSF cuando pueda.”


30

Historia del Proyecto GNU

c Copyright 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved. (Se permite la distribuci´ on y la copia literal de este art´ıculo en su totalidad, sin regal´ıas y por cualquier medio siempre y cuando se conserve esta nota.)

Figura 2.3: Logo Web de la Free Software Foundation.

2.3.

Actividades principales de la FSF

El Proyecto GNU El prop´ osito original de la FSF1 fue promover los ideales del software libre; pero la organizaci´on tambi´en ten´ıa a cargo el desarrollo del sistema operativo GNU. Ejecuci´ on GPL La FSF dispone de los recursos y la voluntad para hacer cumplir la licencia GPL y otras licencias GNU, pero solo para el software que del cual posee los derechos de autor; software GPL administrado por otros, deben de ser defendidos por su propios due˜ nos, ya que la FSF no tiene autoridad legal para hacer valer la GPL para ellos. FSF maneja alrededor 50 violaciones GPL por a˜ no e intenta traer a la otra parte a cumplimiento sin intervenci´on de la corte. Licencias GNU La licencia GNU GPL es la m´ as utilizada para proyectos de software libre. La FSF se encarga de mantener actualizada la licencia GPL acorde las nuevas necesidades del software libre. Actualmente la GPL est´a en su versi´ on 3, publicada en Junio de 2007. La FSF ha publicado tambi´en la licencia GNU Lesser General Public License (LGPL), la GNU Free Documentation License (GFDL) y la Affero GPL. 1

Free Software Foundation


2.3 Actividades principales de la FSF

31

Figura 2.4: Logos de las licencias GPLv3, LGPLv3 y AGPLv3. Guardian de los derechos de autor La FSF Posee los derechos de autor para la mayor´ıa del software GNU y algunos no-GNU Free Software. Esto requiere documentos de cesi´on de derechos de autor de cada contribuyente para los paquetes GNU desarrollados, de esa manera FSF puede defender el software en los tribunales si surge alguna controversia, por lo que si existiera la necesidad de cambiar la licencia de un trabajo, puede ser cambiada sin tener que contactar a todos los contribuyentes que han trabajado en el software. Prensa GNU El departamento de publicaci´on de la FSF es responsable de la publicaci´ on de los libros en ciencia de la computaci´ on usando licencias libremente distribuibles. El directorio de Software Libre Este es un listado de los paquetes de software que han sido verificados como software libre. Cada paquete contiene 47 piezas de informaci´ on tales como la p´agina del proyecto, desarrolladores, lenguaje de programaci´ on, etc. Los objetivos son proveer un motor de b´ usqueda para el software libre, y proveer una referencia cruzada para que los usuarios verifiquen si un paquete fue comprobado como software libre. La FSF ha recibido una peque˜ na cantidad de financiaci´ on de la UNESCO para este proyecto. Se espera que el directorio pueda ser traducido en varios lenguajes en el futuro. Mantenimiento de la definici´ on de Software Libre La FSF mantiene varios de los documentos que definen el movimiento del Free Software. Educaci´ on Legal La FSF realiza seminarios sobre aspectos legales utilizando la GPL, y ofrece un servicio de consultor´ıa para abogados.


32

Historia del Proyecto GNU

Hosting de Proyecyos La FSF provee Hosting de proyectos a trav´ez del sitio web Savannah.

2.4.

Biograf´ıa breve de Richard M. Stallman

Richard Stallman es el fundador del Proyecto GNU, iniciado en 1984 para desarrollar el sistema operativo libre GNU (un acr´onimo de ”GNU is Not Unix”) y, por lo tanto, dar a los usuarios de computadoras la libertad que la mayor´ıa de ellos han perdido. GNU es software libre: todos tienen libertad para copiarlo y redistribuirlo, as´ı como para hacerle cambios grandes o peque˜ nos.

Figura 2.5: Richard M. Stallman hace tiempo. En la actualidad se usan ampliamente diversas variantes del sistema GNU combinadas con el n´ ucleo Linux desarrollado por Linus Torvalds. Se estima que hoy en d´ıa existen m´ as de 10 millones de usuarios de sistemas GNU/Linux. Autor principal del Compilador C de GNU, un compilador optimizador transportable que fue dise˜ nado para apoyar diversas arquitecturas y m´ ultiples lenguajes. El compilador ahora apoya m´ as de 30 arquitecturas distintas de computadoras y 7 lenguajes de programaci´ on. Escribi´o el depurador simb´olico GNU (GDB), GNU Emacs y algunos otros programas GNU. Recibi´o el Premio Grace Hopper de la Association for Computing Machinery de 1991 por el desarrollo del primer editor Emacs en la d´ecada de los setenta.


2.5 Nacimiento del proyecto GNU

33

En 1990 fue premiado con una beca de la MacArthur Foundation y en 1996 se le concedi´ o un doctorado honorario del Royal Institute of Technology de Suecia. En 1998 recibi´ o el Pioneer Award de la Electronic Frontier Foundation conjuntamente con Linus Torvalds. En 1999 recibi´ o el Premio Yuri Rubinski. En 2002 se publica el libro “Free as in Freedom” Richard Stallman’s Crusade for Free Software realizado por Sam Williams. Este libro se publica bajo licencia FDL y puede obtenerse libremente en internet.

2.5.

Nacimiento del proyecto GNU

Nadie mejor que el propio RMS para explicar el porqu´e del proyecto GNU y la FSF, su origen y la filosof´ıa asociada. Esta historia se encuentra relatada en: http://www.gnu.org/gnu/thegnuproject.es.html y se copia adem´ as en la siguiente secci´ on. Adem´ as del relato hist´ orico el texto posee opiniones, pareceres e ideales de su autor, lo que ayuda a comprender el concepto de “free software” aunque el lector pueda compartir o no su filosof´ıa.

2.6.

El Proyecto GNU por Richard Stallman

Art´ıculo publicado originalmente en el libro ((Open Sources)) y extra´ıdo de http://www.gnu.org/gnu/thegnuproject.es.html. Se publica este t´exto por su car´acter hist´ orico y para comprender las filosof´ıa que ha dado lugar al software libre. Algunos de los datos mencionados han quedado desactualizados.

Figura 2.6: En esta imagen, dos pancartas envuelven a un n ˜u, una de ellas muestra ((What’s GNU?)) (¿Qu´e es GNU?) y la otra ((GNU’s Not Unix!)) (¡GNU No es Unix!). En el centro de la imagen una cara similar a la cabeza de un n ˜u reposa orgullosamente. Damos las gracias a Etienne Suvasa por dibujar esta imagen de ((What’s GNU)).


34

2.6.1.

Historia del Proyecto GNU

La primera comunidad que comparte el software

Cuando comenc´e a trabajar en el Laboratorio de Inteligencia Artificial del MIT en 1971, me incorpor´e a una comunidad que compart´ıa el software que ya ten´ıa varios a˜ nos de existencia. El acto de compartir software no estaba limitado a nuestra comunidad en particular; es tan antiguo como las computadoras, de la misma manera que compartir recetas es tan antiguo como cocinar. Pero nosotros lo hac´ıamos en mayor grado que la mayor´ıa de los otros. El Laboratorio de IA usaba un sistema operativo denominado ITS (Incompatible Timesharing System) [Sistema incompatible de tiempo compartido] que los hackers 2 del staff hab´ıan dise˜ nado y escrito en lenguaje ensamblador para la PDP-10 de Digital, una de las m´ as grandes computadoras de la ´epoca. Mi trabajo como miembro de esta comunidad, como hacker de sistema en el staff del laboratorio de IA, era mejorar este sistema. No denomin´ abamos ((software libre)) a nuestro software porque dicho t´ermino no exist´ıa; pero ´eso es lo que era. Cuando alguien de otra universidad o compa˜ n´ıa deseaba portar y usar un programa, lo permit´ıamos con gusto. Si usted ve´ıa a alguien usando un programa interesante y poco conocido, siempre se pod´ıa pedir el c´odigo fuente para verlo, de manera que uno pod´ıa leerlo, cambiarlo, o canibalizar ciertas partes del mismo para hacer un nuevo programa.

2.6.2.

El colapso de la comunidad

La situaci´on cambi´ o dr´asticamente durante la primera parte de los 1980s cuando Digital discontinu´o la serie PDP-10. Su arquitectura, elegante y poderosa en los 60s, no se pudo extender naturalmente a los espacios de direccionamiento m´ as grandes que se hicieron factibles en los 80s. Esto signific´ o que pr´acticamente todos los programas que compon´ıan a ITS se volvieron obsoletos. La comunidad de hackers del laboratorio de IA ya se hab´ıa colapsado, cierto tiempo antes. En 1981, la compa˜ n´ıa derivada Symbolics hab´ıa contratado a casi todos los hackers del laboratorio de IA, y la despoblada comunidad ya no era capaz de mantenerse a s´ı misma. (El libro Hackers, de Steve Levy, describe estos eventos, y muestra un claro panorama de esta comunidad en sus comienzos.) Cuando el laboratorio de IA adquiere una nueva PDP-10 en 1982, sus administradores deciden utilizar el sistema no libre de tiempo compartido de Digital en lugar de ITS. Las computadoras modernas de esa ´epoca, como la VAX o el 68020, tienen sus propios sistemas operativos, pero ninguno de ellos es software libre: 2 El uso de ((hacker)) para referirse al ((quebrantador de la seguridad)) es una confusi´ on proveniente de los medios masivos. Nosotros los hackers nos negamos a reconocer dicho significado, y continuamos utilizando la palabra para indicar a ((alguien apasionado por la programaci´ on y que disfruta al ser h´ abil e ingenioso)).


2.6 El Proyecto GNU por Richard Stallman

35

usted debe firmar un ((acuerdo de no revelar)) (nondisclosure agreement) a´ un para obtener una copia ejecutable. Esto quiere decir que el primer paso para poder utilizar una computadora era prometer que no ayudar´ıa a su vecino. Se prohib´ıa la existencia de una comunidad cooperativa. La regla hecha por los due˜ nos de software propietario era: ((si usted comparte con su vecino, usted es un pirata. Si desea alg´ un cambio, ru´eguenos para que lo hagamos nosotros)). La idea de que el sistema social del software propietario –el sistema que dice que usted no tiene permitido compartir o cambiar el software– es antisocial, que no es ´etico, que est´a sencillamente equivocado, puede ser una sorpresa para algunos lectores. ¿Pero qu´e otra cosa podr´ıamos decir sobre un sistema que se basa en dividir el p´ ublico e impide socorrer a los usuarios? Los lectores que se sorprendan por esta idea es porque han tomado el sistema social del software propietario tal como se lo han dado, o porque lo han juzgado en funci´on de los t´erminos sugeridos por las empresas que hacen software propietario. Los publicadores de software han trabajado duro y parejo para convencer a las personas de que solamente hay una manera de ver este tema. Cuando los publicadores de software habla de ((hacer valer)) sus ((derechos)) o de ((detener la pirater´ıa)), lo que *dice* es secundario. El mensaje real de estas declaraciones est´a en las presunciones no declaradas que ellos dan por sentado; se supone que el p´ ublico debe aceptarlas de manera acr´ıtica. As´ı que examin´emoslas. Una de las presunciones es que las compa˜ n´ıas de software tienen un derecho natural incuestionable que las habilita para ser due˜ nas de un software, y por lo tanto a disponer de poder sobre todos los usuarios del mismo. (Si ´este fuera un derecho natural, entonces sin importar cu´ anto da˜ no le causare al p´ ublico, no podr´ıamos objetarlo.) De manera muy interesante, la Constituci´ on de los Estados Unidos de Am´erica y la tradici´on legal rechazan esta visi´on; el copyright no es un derecho natural, sino un monopolio artificial impuesto por el gobierno que limita el natural derecho a copia de los usuarios. Otra presunci´ on no declarada es que la u ´nica cosa importante sobre del software es qu´e trabajo le permite realizar a usted –que a nosotros los usuarios de computadoras no nos debe importar qu´e clase de sociedad nos permiten tener. Una tercera presunci´ on es que no tendr´ıamos software utilizable (o, que nunca tendr´ıamos un programa para hacer tal o cual trabajo en particular) si no le ofrecemos a una compa˜ n´ıa poder sobre los usuarios de dicho programa. Esta presunci´ on puede haber sonado plausible, antes de que el movimiento por el software libre demostrara que podemos hacer abundante software u ´til sin ponerle cadenas. Si nos resistimos a aceptar dichas presunciones, y juzgamos acerca de estos temas sobre la base moral que nos da el sentido com´ un ordinario y


36

Historia del Proyecto GNU

ponemos al usuario en primer lugar, arribaremos a conclusiones muy distintas. Los usuarios de computadoras deben tener libertad para modificar los programas para ajustarlos a sus necesidades, y libertad para compartir el software, porque la base de la sociedad est´a en ayudar a las otras personas. No se dispone aqu´ı del espacio necesario para explayarnos en el razonamiento que hay detr´ as de esta conclusi´ on, y por ese motivo pido al lector que vea la p´agina web : http://www.gnu.org/philosophy/why-free.es.html.

2.6.3.

Una elecci´ on moral severa

Al desaparecer mi comunidad, se hizo imposible continuar como antes. En lugar de ello, me enfrent´e a una elecci´ on moral severa. La elecci´ on f´acil era unirme al mundo del software propietario, firmar los acuerdos de no revelar, y prometer que no ir´ıa en ayuda de mi amigo hacker. Es muy probable que desarrollara software que se entregar´ıa bajo acuerdos de no revelar y de esa manera incrementara tambi´en las presiones sobre otra gente para que traicionen a sus compa˜ neros. Podr´ıa haber hecho dinero de esta manera, y tal vez me hubiese divertido escribiendo c´odigo. Pero sab´ıa que al final de mi carrera, al mirar atr´ as a los a˜ nos construyendo paredes para dividir a la gente, sentir´ıa que us´e mi vida para empeorar el mundo. Ya hab´ıa estado del lado en que se reciben los acuerdos de no revelar, por experiencia propia, cuando alguien se neg´o a entregarme, a m´ı y al Laboratorio de IA del MIT, el c´odigo fuente del programa de control de nuestra impresora. (La ausencia de ciertas caracter´ısticas en este programa hac´ıa que el uso de la impresora fuera frustrante en extremo.) As´ı que no pod´ıa decirme a m´ı mismo que los acuerdos de no revelar son inocentes. Me enoj´o mucho cuando ´el se neg´o a compartir con nosotros; no pod´ıa ahora cambiarme de lugar y hacerle lo mismo a todos los dem´as. Otra elecci´ on, f´acil pero dolorosa, era abandonar el campo de la computaci´ on. De esta manera no se usar´ıan mis habilidades para mal, pero a´ un as´ı se desperdiciar´ıan. Yo no ser´ıa culpable por dividir y restringir a los usuarios de computadoras, pero ello suceder´ıa igual. As´ı que busqu´e la manera en la cual un programador podr´ıa hacer algo para bien. Me pregunt´e: ¿habr´a alg´ un programa o programas que yo pueda escribir, de tal manera de otra vez hacer posible una comunidad? La respuesta era clara: lo primero que se necesitaba era un sistema operativo. Este es el software crucial para empezar a usar una computadora. Con un sistema operativo usted puede hacer muchas cosas; sin uno, ni siquiera puede funcionar la computadora. Con un sistema operativo libre, podr´ıamos tener de nuevo una comunidad de hackers cooperando–e invitar a cualquiera a un´ırsenos. Y cualquiera ser´ıa capaz de utilizar una computadora sin que de movida conspire a favor de la privaci´ on de sus amigas o amigos.


2.6 El Proyecto GNU por Richard Stallman

37

Como desarrollador de sistema operativo, tengo las habilidades apropiadas para esa tarea. As´ı que a´ un cuando no ten´ıa garant´ıas de ´exito, me d´ı cuenta que hab´ıa sido elegido para hacer ese trabajo. Decid´ı hacer que el sistema fuese compatible con Unix pues as´ı ser´ıa portable, y los usuarios de Unix podr´ıan cambiarse a ´el con facilidad. El nombre GNU se eligi´ o siguiendo una tradici´on hacker, como acr´onimo recursivo para ((GNU’s Not Unix)). Un sistema operativo es m´ as que un n´ ucleo, apenas suficiente para hacer funcionar otros programas. En los 1970s, todo sistema operativo digno de llamarse as´ı inclu´ıa procesadores de ´ordenes, ensambladores, compiladores, int´erpretes, depuradores, editores de texto, programas de correo, y muchos otros. ITS los ten´ıa, Multics los ten´ıa, VMS los ten´ıa, Unix los ten´ıa. El sistema operativo GNU tambi´en los incluir´ıa. M´ as adelante escuch´e estas palabras, atribu´ıdas a Hillel 3 : Si yo no me preocupo por m´ı mismo, ¿qui´en lo har´ a por m´ı? Si s´ olo me preocupo por m´ı mismo, ¿qu´e es lo que soy? Si no lo hago ahora, ¿cu´ ando? La decisi´ on de iniciar el proyecto GNU se bas´ o en un esp´ıritu similar.

2.6.4.

Libre como en libertad

El t´ermino ((free software)) 4 se malinterpreta a veces –no tiene nada que ver con el precio. El tema es la libertad. Aqu´ı, por lo tanto, est´a la definici´on de software libre: un programa es software libre, para usted, un usuario en particular, si: 1) Usted tiene libertad para ejecutar el programa, con cualquier prop´ osito. 2) Usted tiene la libertad para modificar el programa para adaptarlo a sus necesidades. (Para que esta libertad sea efectiva en la pr´actica, usted debe tener acceso al c´odigo fuente, porque modificar un programa sin disponer del c´odigo fuente es extraordinariamente dificultoso.) 3) Usted tiene la libertad para redistribuir copias, tanto gratis como por un c´anon. 4) Usted tiene la libertad para distribuir versiones modificadas del programa, de tal manera que la comunidad pueda beneficiarse con sus mejoras. 3

Como ateo que soy, no soy seguidor de ning´ un l´ıder religioso, pero algunas veces encuentro que admiro alguna cosa que dijo uno de ellos. 4 N. del T.: en ingl´es free = libre o gratis


38

Historia del Proyecto GNU

Como ((free)) [libre] se refiere a libertad y no a precio, no existe contradicci´ on entre la venta de copias y el software libre. De hecho, la libertad para vender copias es crucial: las colecciones de software libre que se venden en CD-ROM son importantes para la comunidad, y la venta de las mismas es una manera importante de obtener fondos para el desarrollo de software libre. Por lo tanto, si la gente no puede incluir un programa en dichas colecciones, dicho programa no es software libre. A causa de la ambig¨ uedad de ((free)), la gente ha estado buscando alternativas, pero nadie ha encontrado una alternativa apropiada. El idioma ingl´es tiene m´ as palabras y matices que ning´ un otro, pero carece de una palabra simple, no ambig¨ ua que signifique ((libre)), como en libertad –((unfettered)) [sin cadenas] es la palabra que m´ as se acerca en significado. Otras alternativas como liberated [liberado], freedom [libertad] y open [abierto] tienen el significado equivocado o alguna otra desventaja.

2.6.5.

Software GNU y el sistema GNU

El desarrollo de un sistema complejo es un proyecto de gran envergadura. Para ponerlo dentro de mi alcance, decid´ı adaptar y usar las piezas existentes de software libre siempre que fuera posible. Por ejemplo, en los mismos comienzos decid´ı que TeX ser´ıa el principal compaginador de texto; unos pocos a˜ nos m´ as tarde, decid´ı que usar´ıa el sistema X Window, en lugar de escribir otro sistema de ventanas para GNU. A causa de esta decisi´ on, el sistema GNU no coincide con la suma de todo el software GNU. El sistema GNU incluye programas que no son software GNU, programas que fueron desarrollados por otras personas y proyectos para sus propios prop´ ositos, pero que nosotros podemos utilizar porque constituyen software libre.

2.6.6.

El inicio del proyecto

En enero de 1984 renunci´e a mi trabajo en el MIT y comenc´e a escribir software GNU. Era necesario abandonar el MIT, para que el MIT no interfiriera con la distribuci´on de GNU como software libre. Si hubiese continuado como parte del staff, el MIT podr´ıa haber reclamado propiedad sobre el trabajo, y podr´ıa haber impuesto sus propios t´erminos de distribuci´on, o incluso podr´ıa haberlo transformado en un paquete de software propietario. Yo no ten´ıa la intenci´ on de hacer un trabajo enorme s´ olo para ver que perd´ıa la utilidad para la cual se hab´ıa realizado: crear una nueva comunidad para compartir software. Sin embargo, el Profesor Winston, por entonces a cargo del Laboratorio de IA del MIT, me invit´o amablemente a que contin´ ue utilizando las instalaciones del Laboratorio.


2.6 El Proyecto GNU por Richard Stallman

2.6.7.

39

Los primeros pasos

Poco despu´es de comenzar en el proyecto GNU, escuch´e acerca del Free University Compiler Kit [Kit de Compilador de la Universidad Libre], tambi´en conocido como VUCK. (La palabra alemana para free comienza con una V.) Se trataba de un compilador dise˜ nado para manejar m´ ultiples lenguajes, C y Pascal entre ellos, y para admitir m´ ultiples m´ aquinas destino. Le escrib´ı a su autor para consultarle si GNU lo podr´ıa usar. ´ me respondi´o burlonamente, dejando en claro que la universidad era El libre, pero el compilador no. Por lo tanto, decid´ı que mi primer programa para el proyecto GNU ser´ıa un compilador multilenguaje, multiplataforma. Con la esperanza de evitar tener que escribir todo el compilador por m´ı mismo, obtuve el c´odigo fuente del compilador Pastel, que era un compilador multiplataforma desarrollado en el ((Lawrence Livermore Lab)). Admit´ıa, y estaba escrito en una versi´ on extendida de Pascal, dise˜ nada para usarse como lenguaje de programaci´ on a nivel de sistema. Le agregu´e un front end para C, y comenc´e a transportarlo a la computadora Motorola 68000. Pero tuve que abandonar la idea al descubrir que el compilador necesitaba varios megabytes de espacio en la pila, y los sistemas Unix basados en 68000 s´ olo permit´ıan 64 kbytes. Fue entonces cuando me d´ı cuenta que el compilador Pastel funcionaba analizando el fichero de entrada completo y transform´andolo en un ´arbol sint´actico, luego convert´ıa todo el ´arbol sint´actico en una cadena de ((instrucciones)) y luego generaba el fichero entero de salida, y en ning´ un momento liberaba el espacio ocupado. En ese momento llegu´e a la conclusi´ on de que deber´ıa escribir un nuevo compilador partiendo desde cero. Ese nuevo compilador se conoce ahora como GCC; no hay nada del compilador Pastel en ´el, pero me las arregl´e para adaptar y usar el front end que hab´ıa hecho para C. Pero eso pas´ o unos a˜ nos m´ as tarde; primero, trabaj´e sobre GNU Emacs.

2.6.8.

GNU Emacs

Comenc´e a trabajar sobre GNU Emacs en setiembre de 1984, y al principio de 1985 ya empezaba a ser usable. Esto me permiti´o usar sistemas Unix para las tareas de edici´ on; como no ten´ıa ning´ un inter´es en aprender a usar vi o ed, hab´ıa realizado mis tareas de edici´on en otras clases de m´ aquinas hasta ese momento. A estas alturas, la gente comenz´ o a querer usar Emacs, con lo que apareci´o el tema de c´omo distribuirlo. Por supuesto, lo puse en el servidor de FTP an´ onimo de la computadora del MIT que usaba. (Esta computadora, prep.ai.mit.edu, se transform´o a causa de ello en la sede principal de distribuci´on a trav´es de FTP de GNU; cuando fue decomisada unos a˜ nos despu´es, transferimos el nombre a nuestro nuevo servidor FTP.) Pero en


40

Historia del Proyecto GNU

aquella ´epoca, mucha gente interesada no estaba en Internet y no pod´ıa obtener una copia por FTP. As´ı que la pregunta era: ¿qu´e tendr´ıa que decirles a ellos? Podr´ıa haber dicho, ((Busque un amigo que est´e en la red y que haga una copia para usted)). O podr´ıa haber hecho lo que hice con el Emacs para PDP-10 original, decirles: ((Env´ıeme por correo una cinta y un sobre con su direcci´on y los sellos de correo necesarios, y yo le devolver´e la cinta con Emacs dentro)). Pero no ten´ıa trabajo, y estaba buscando de qu´e manera pod´ıa hacer dinero con el software libre. Entonces anunci´e que le enviar´ıa la cinta a quien me la pidiera, mediante el pago de un c´anon de $150. De esta manera, inici´e un negocio de distribuci´on de software libre, el precursor de las compa˜ n´ıas que en la actualidad distribuyen completos sistemas GNU basados en Linux.

2.6.9.

¿Es libre el programa para cualquier usuario?

Si un programa es software libre cuando abandona las manos de su autor, esto no significa que ser´a software libre para todos los que tienen una copia de ´el. Por ejemplo, el software de dominio p´ ublico (software que no est´a sujeto al copyright de nadie) es software libre; pero cualquiera puede hacer una versi´ on modificada propietaria a partir de ´el. En ese mismo sentido, muchos programas libres est´an sujetos a copyright pero se distribuyen mediante sencillas licencias permisivas que admiten las versiones modificadas propietarias. El ejemplo paradigm´ atico de este problema es el X Window System. Desarrollado en el MIT, y entregado como software libre con un licencia permisiva, fue r´ apidamente adoptado por varias compa˜ n´ıas de computaci´ on. ´ Estas agregaron X a sus sistemas Unix propietarios, s´ olo en formato binario, y lo cubrieron con el mismo acuerdo de no revelar. Estas copias de X eran tanto (software) libres en cuanto lo era el Unix. Los desarrolladores del X Window System no consideraban que esto fuese un problema –esperaban y buscaban que esto sucediese. Su meta no era la libertad, s´ olo el ((´exito)), definido como ((tener muchos usuarios)). No les preocupaba si esos usuarios ten´ıan libertad, s´ olo que sean numerosos. Esto nos lleva a una situaci´on parad´ ojica en la cual dos maneras distintas de contabilizar la cantidad de libertad dan por resultado dos respuestas distintas a la pregunta ((¿Es libre este programa?)). Si usted juzga en base a la libertad que se proporcionaba con los t´erminos de distribuci´on de la entrega del MIT, dir´ıa que X es software libre. Pero si usted mide la libertad del usuario promedio de X, dir´ıa que X es software propietario. La mayor´ıa de los usuarios de X usan las versiones propietarias que vienen con los sistemas Unix, no la versi´ on libre.


2.6 El Proyecto GNU por Richard Stallman

2.6.10.

41

Copyleft y la GNU GPL

La meta de GNU era dar libertad a los usuarios, no s´ olo ser popular. Por lo tanto, deb´ıamos usar t´erminos de distribuci´on que impidieran que el software GNU se transformara en software propietario. El m´etodo que utilizamos se denomina ((copyleft)) 5 . El copyleft usa la ley de copyright, pero la da vuelta para servir a lo opuesto de su prop´ osito usual: en lugar de ser un medio de privatizar el software, se transforma en un medio de mantener libre al software. La idea central del copyleft es que le damos a cualquiera el permiso para correr el programa, copiar el programa, modificar el programa y redistribuir versiones modificadas –pero no le damos permiso para agregar restricciones propias. De esta manera, las libertades cruciales que definen al ((software libre)) quedan garantizadas para cualquiera que tenga una copia; se transforman en derechos inalienables. Para que el copyleft sea efectivo, las versiones modificadas deben ser tambi´en libres. Esto asegura que todo trabajo basado en el nuestro quedar´ a disponible para nuestra comunidad si se publica. Cuando los programadores que tienen trabajo como programadores se ofrecen como voluntarios para mejorar un software GNU, es el copyleft lo que impide que sus empleadores digan: ((no puede compartir esos cambios, porque los queremos usar para hacer nuestra versi´ on propietaria del programa)). El requerimiento de que los cambios deben ser libres es esencial si queremos asegurar la libertad para cada usuario del programa. Las compa˜ n´ıas que privatizaron el X Window System en general realizaron algunos cambios para transportarlo a sus sistemas y hardware. Estos cambios fueron peque˜ nos comparados con el gran tama˜ no de X, pero no fueron triviales. Si el hacer cambios fuera una excusa para negar libertad a los usuarios, ser´ıa f´acil para cualquiera tomar ventaja de la excusa. Un tema relacionado trata la combinaci´on de un programa libre con c´odigo no libre. Tal combinaci´on ser´a inevitablemente no-libre; cualesquiera libertades que falten a la parte no-libre, le faltar´an tambi´en al todo. Si se permiten tales combinaciones se abrir´ıa un agujero lo suficientemente grande como para hundir el barco. Por ello, un requerimiento crucial para el copyleft es que se tape este hoyo: cualquier cosa agregada a o combinada con un programa bajo copyleft debe ser tal que la versi´ on combinada total sea tambi´en libre y bajo copyleft. La implementaci´ on espec´ıfica de copyleft que usamos para la mayor´ıa del software GNU es la Licencia P´ ublica General de GNU (GNU General Public License) o GPL GNU para abreviar. Tenemos otras clases de copyleft 5 En 1984 o 1985, Don Hopkins (un compa˜ nero muy imaginativo) me env´ıo una carta por correo. En el sobre, escribi´ o varios dichos divertidos, entre ellos ´este: ((Copyleft –all rights reversed)) [Copyleft –todos los derechos “reversados”]. Utilic´e la palabra ((copyleft)) para denominar al concepto de distribuci´ on que estaba desarrollando en esa ´epoca.


42

Historia del Proyecto GNU

que se usan en circunstancias espec´ıficas. Los manuales GNU tambi´en est´an bajo copyleft, pero utilizamos un copyleft mucho m´ as simple, porque no es necesaria la complejidad de la GPL GNU para los manuales.

2.6.11.

La Fundaci´ on para el Software Libre

A medida que el inter´es en el uso de Emacs crec´ıa, otras personas se involucraron en el proyecto GNU, y decicimos que era el momento de buscar fondos nuevamente. Por ello en 1985 creamos la ((Free Software Foundation)) [Fundaci´ on para el Software Libre –FSL], una organizaci´on de caridad libre de impuestos para el desarrollo del software libre. La FSL tambi´en acapar´ o el negocio de distribuci´on en cinta de Emacs; m´ as adelante lo extendi´o al agregar otros productos de software libre (tanto GNU como no-GNU) a la cinta, y con la venta de manuales libres. La FSL acepta donaciones, pero la mayor´ıa de sus ingresos han provenido siempre de las ventas –de copias de software libre, y otros servicios relacionados. En la actualidad vende CD-ROMs de c´odigo fuente, CD-ROMs con binarios, manuales agradablemente impresos (todos con libertad para redistribuir y modificar), y las Distribuciones De Lujo (en las cuales incorporamos toda la colecci´ on de software lista para usar en la plataforma de su elecci´ on). Los empleados de la Fundaci´ on para el Software Libre han escrito y mantenido una cantidad de paquetes de software GNU. Dos notables casos son la biblioteca C y el shell. La biblioteca C de GNU es lo que usa todo programa que corre en un sistema GNU/Linux para comunicarse con Linux. Fue desarrollada por un miembro del staff de la Fundaci´on para el Software Libre, Roland McGrath. El shell que se usa en la mayor´ıa de los sistemas GNU/Linux es BASH, el Bourne Again SHell 6 , que fue desarrollado por Brian Fox, empleado de la FSL. Hemos provisto los fondos para el desarrollo de esos programas porque el proyecto GNU no se queda solamente en herramientas o un entorno de desarrollo. Nuestra meta era tener un sistema operativo completo, y esos programas eran necesarios para esa meta.

2.6.12.

Asistencia para el Software Libre

La filosof´ıa del software libre rechaza una pr´actica espec´ıfica de negocio ampliamente difundida, pero no est´a contra el negocio. Cuando los negocios respetan la libertad de los usuarios, les deseamos ´exito. La venta de copias de Emacs demostr´ o una clase de negocio con software libre. Cuando la FSL se apropi´o de ese negocio, necesit´e de otro medio de vida. Lo encontr´e en la venta de servicios relacionados con el software libre 6

((Bourne again shell)) es una broma sobre el nombre ((Bourne Shell)), que era el shell usual en Unix.


2.6 El Proyecto GNU por Richard Stallman

43

que hab´ıa desarrollado. Esto inclu´ıa la ense˜ nanza, sobre temas tales como c´omo programar GNU Emacs, y c´omo personalizar GCC, y desarrollo de software, en la mayor parte transportar GCC a otras plataformas. En la actualidad cada una de esas clases de negocios con software libre est´a puesta en pr´actica por una cantidad de corporaciones. Algunas distribuyen colecciones de software libre en CD-ROM; otras venden asistencia en niveles que van desde responder preguntas de usuarios, reparaci´on de errores, hasta el agregado de nuevas caracter´ısticas mayores. Incluso estamos viendo compa˜ n´ıas de software libre basadas en el lanzamiento de nuevos productos de software libre. Aunque, tenga cuidado –una cantidad de compa˜ n´ıas que se asocian a s´ı mismas con el t´ermino ((open source)) en realidad basan su negocio en software no-libre que trabaja con software libre. Ellas no son compa˜ n´ıas de software libre, sino compa˜ n´ıas de software propietario cuyos productos tientan a los usuarios a abandonar su libertad. Ellas usan la denominaci´on ((valor agregado)) lo que refleja los valores que desear´ıan que adoptemos: conveniencia por encima de libertad. Si valoramos m´ as la libertad, deber´ıamos denominarlos productos con ((libertades sustra´ıdas)).

2.6.13.

Metas t´ ecnicas

La meta principal de GNU era el software libre. A´ un en el caso que GNU no tuviese ventajas t´ecnicas sobre Unix, tendr´ıa una ventaja social, al permitir cooperar a los usuarios, y una ventaja ´etica, al respetar la libertad de los usuarios. Pero era natural que se apliquen los est´andares conocidos de buenas pr´acticas al trabajo –por ejemplo, reservar din´ amicamente las estructuras de datos para evitar l´ımites de tama˜ no fijo arbitrarios, y manejar todos lo posibles c´odigos de 8 bits cuando tuviese sentido. Adem´ as, rechazamos el enfoque de Unix para peque˜ nos tama˜ nos de memoria, al decidir que no trabajar´ıamos para m´ aquinas de 16 bits (era claro que las m´ aquinas de 32 bits ser´ıan la norma para cuando el sistema GNU estuviese terminado), y al no hacer ning´ un esfuerzo para reducir el uso de memoria, a menos que excediera el megabyte. En los programas para los cuales no era crucial el manejo de ficheros muy grandes, incentivamos a los programadores a leer el fichero completo en memoria, y luego explorar su contenido, sin tener que preocuparse por la E/S. Estas decisiones permitieron que muchos programas GNU sobrepasaran a sus contrapartidas UNIX en confiabilidad y velocidad.

2.6.14.

Computadoras donadas

A medida que la reputaci´on del proyecto GNU crec´ıa, la gente comenz´ oa ofrecer al proyecto donaciones de m´ aquinas con UNIX corriendo. Fueron muy


44

Historia del Proyecto GNU

u ´tiles porque la manera m´ as f´acil de desarrollar componentes de GNU era hacerlo en un sistema UNIX, y luego ir reemplazando los componentes del sistema uno a uno. Pero ellas trajeron una cuesti´ on ´etica: si era correcto para nosotros siquiera tener una copia de UNIX. UNIX era (y es) software propietario, y la filosof´ıa del proyecto GNU dice que no debemos usar software propietario. Pero, aplicando el mismo razonamiento que lleva a la conclusi´ on que la violencia en defensa propia est´a justificada, conclu´ı que era leg´ıtimo usar un paquete propietario cuando ello era crucial para desarrollar un reemplazo libre que ayudar´ıa a otros a dejar de usar el paquete propietario. Pero, a´ un cuando esto era un mal justificable, era todav´ıa un mal. En la actualidad ya no tenemos m´ as copias de Unix, porque las hemos reemplazado por sistemas operativos libres. En los casos en que no pudimos reemplazar el sistema operativo de una m´ aquina por uno libre, se procedi´o al reemplazo de la m´ aquina.

2.6.15.

La lista de tareas de GNU

A medida que prosegu´ıa el proyecto GNU, se desarrollaron o encontraron una cantidad creciente de componentes, y eventualmente se vio la utilidad de hacer una lista con los huecos faltantes. La usamos para reclutar desarrolladores para escribir las piezas faltantes. Esta lista comenz´ o a conocerse como la lista de tareas de GNU. Adem´ as de los componentes Unix faltantes, agregamos a la lista otros u ´tiles proyectos de software y documentaci´ on que, de acuerdo a nuestra visi´on, debe tener un sistema verdaderamente completo. En la actualidad, casi ning´ un componente Unix queda en la lista de tareas GNU –esos trabajos ya han sido terminados, fuera de algunos no esenciales. Pero la lista est´a llena de proyectos que algunos pueden denominar ((aplicaciones)). Cualquier programa q ue sea atrayente a m´ as de una estrecha franja de usuarios ser´ıa una cosa u ´til para a˜ nadir a un sistema operativo. A´ un los juegos est´an inclu´ıdos en la lista de tareas –y han estado desde el principio. Unix inclu´ıa juegos, as´ı que GNU deb´ıa incluirlos tambi´en. Pero la compatibilidad no es un problema para los juegos, as´ı que no seguimos la lista de juegos que Unix ten´ıa. En lugar de ello, listamos un espectro de diferentes clases de juegos que les podr´ıan gustar a los usuarios.

2.6.16.

La GPL para Bibliotecas de GNU

La biblioteca C de GNU usa una clase especial de copyleft denominada ((GNU Library General Public License)) [Licencia P´ ublica General para Bibliotecas de GNU] que da permiso para enlazar software propietario con la biblioteca. ¿Porqu´e hacer esta excepci´ on?


2.6 El Proyecto GNU por Richard Stallman

45

No es una cuesti´ on de principios; no hay ning´ un principio que diga que debemos incluir c´odigo de los productos de software propietario. (¿Porqu´e contribuir con un proyecto que se rehusa a compartir con nosotros?) El uso de la LGPL para la biblioteca C, o para cualquier otra biblioteca, es un tema de estrategia. La biblioteca C hace un trabajo gen´erico; todo sistema propietario o compilador viene con una biblioteca C. Por lo tanto, el hacer que nuestra biblioteca est´e s´ olo disponible para el software libre, no le dar´ıa al software libre ninguna ventaja –s´ olo hubiera desalentado el uso de nuestra biblioteca. Hay un sistema que es una excepci´ on a esto: en un sistema GNU (y esto incluye los sistemas GNU/Linux), la biblioteca C de GNU es la u ´nica biblioteca C. As´ı que los t´erminos de distribuci´on de la biblioteca C de GNU determinan si es posible compilar un programa propietario para un sistema GNU. No hay ninguna raz´on ´etica para permitir aplicaciones propietarias en un sistema GNU, pero estrat´egicamente parece que si no se permite, ello har´ a m´ as para desalentar el uso del sistema GNU que para alentar el desarrollo de aplicaciones libres. Por estas razones es que el uso de la GPL para Bibliotecas es una buena estrategia para la biblioteca C. Para otras bibliotecas, la decisi´ on estrat´egica necesita considerarse en cada caso particular. Cuando una biblioteca hace un trabajo especial que puede ayudar a escribir cierta clase de programas, y luego entregarla bajo la GPL, limit´andola s´ olo a programas libres, es una manera de ayudar a otros desarrolladores de software libre, al proporcionarles una ventaja contra el software propietario. Considere la GNU Readline, una biblioteca desarrollada para proporcionar la edici´ on en la l´ınea de ´ ordenes para BASH. Readline se entrega bajo la GPL GNU ordinaria, no bajo la GPL para Bibliotecas. De esta manera probablemente se reduce la cantidad de uso de Readline, pero eso no significa p´erdida para nosotros. Mientras tanto, al menos una u ´til aplicaci´on se ha transformado en software libre espec´ıficamente para poder usar Readline, y ´esa es una ganancia real para nuestra comunidad. Los desarrolladores de software propietario tienen las ventajas que el dinero proporciona; los desarrolladores de software libre necesitan crear ventajas entre s´ı. Tengo la esperanza de que alg´ un d´ıa tendremos una gran colecci´ on de bibliotecas cubiertas por GPL que no tengan parang´on entre el software propietario, que proporcionen u ´tiles m´ odulos que sirvan como bloques constructivos en nuevo software libre, y que sumen una mayor ventaja para adelantar el desarrollo de software libre.

2.6.17.

¿Rascarse una comez´ on?

Eric Raymond dice que ((Todo buen trabajo de software comienza con un desarrollador rasc´andose una comez´ on personal)). Puede que ocurra algunas veces, pero muchas de las piezas esenciales de software GNU se desarrollaron


46

Historia del Proyecto GNU

a los fines de tener un sistema operativo libre completo. Vinieron desde una visi´on y un plan, no desde el impulso. Por ejemplo, desarrollamos la biblioteca C de GNU porque un sistema del estilo Unix necesita una biblioteca C, el shell Bourne-Again (bash) porque un sistema del estilo Unix necesita un shell, y el tar GNU porque un sistema del estilo Unix necesita un programa tar. Lo mismo se aplica a mis propios progamas –el compilador GNU C, GNU Emacs, GDB y GNU Make. Algunos de los programas GNU se desarrollaron para tratar amenazas espec´ıficas a nuestra libertad. Por ello, desarrollamos gzip para reemplazar al programa Compress, perdido para nuestra comunidad a causa de las patentes LZW. Proporcionamos fondos para desarrollar LessTif, y m´ as recientemente iniciamos GNOME y Harmony, para lidiar con los problemas causados por cierta biblioteca propietaria (vea m´ as abajo). Estamos desarrollando el GNU Privacy Guard para reemplazar un software popular de cifrado no-libre, porque los usuarios no deben verse obligados a elegir entre privacidad y libertad. Por supuesto, la gente que escribe estos programas se interesa en el trabajo, y varias personas han agregado muchas caracter´ısticas para satisfacer sus propias necesidades e intereses. Pero ´ese no es el motivo por el cual existe el programa.

2.6.18.

Desarrollos inesperados

Al comienzo del proyecto GNU, imagin´e que desarrollar´ıamos el sistema GNU completo, y luego lo entregar´ıamos completo. No es as´ı como ha sucedido. Como cada componente de un sistema GNU se implement´o en un sistema Unix, cada componente pod´ıa correr en sistemas Unix, mucho antes de que existiera un sistema GNU completo. Algunos de esos programas se hicieron populares, y los usuarios comenzaron a extenderlos y transportarlos –a las distintas versiones incompatibles de Unix, y algunas veces a otros sistemas tambi´en. El proceso hizo que dichos programas sean m´ as potentes, y atrayeran tanto fondos como contribuyentes al proyecto GNU. Pero tambi´en demor´ o el completamiento de un sistema m´ınimo en funciones por varios a˜ nos, a medida que el tiempo de los desarrolladores GNU se usaba para mantener esos transportes y en agregar caracter´ısticas a los componentes existentes, en lugar de adelantar la escritura de los componentes faltantes.

2.6.19.

El GNU Hurd

En 1990, el sistema GNU estaba casi completo; el u ´nico componente importante faltante era el n´ ucleo. Decidimos implementar nuestro n´ ucleo como una colecci´ on de procesos servidores corriendo sobre Mach. Mach es un mi-


2.6 El Proyecto GNU por Richard Stallman

47

cron´ ucleo desarrollado en Carnegie Mellon University y luego en la University of Utah; el GNU HURD es una colecci´ on de servidores (o ((manada de n ˜us))) que corren sobre Mach, y se ocupan de las tareas del n´ ucleo Unix. El inicio del desarrollo se demor´ o mientras esper´abamos que Mach se entregue como software libre, tal como se hab´ıa prometido. Una raz´on para elegir este dise˜ no hab´ıa sido evitar lo parec´ıa ser la parte m´ as dura del trabajo: depurar el n´ ucleo sin un depurador a nivel de c´odigo fuente para utilizar. Esta parte del trabajo ya hab´ıa sido hecha en Mach, y esper´abamos depurar los servidores HURD como programas de usuario, con GDB. Pero llev´ o un largo tiempo hacer esto posible, y los servidores multihilo que se env´ıan mensajes unos a otros han sido muy dif´ıciles de depurar. Hacer que HURD trabaje s´ olidamente se ha tardado varios a˜ nos.

2.6.20.

Alix

El n´ ucleo GNU no se iba a llamar originalmente el HURD. Su nombre original era Alix –denominado as´ı a partir de una mujer que era mi amor de aquella ´epoca. Ella era administradora de sistema Unix y hab´ıa hecho notar que su nombre segu´ıa el patr´ on de nomenclatura com´ un a las versiones de sistema Unix; a modo de broma, le dijo a sus amigos, ((Alguien deber´ıa darle mi nombre a un n´ ucleo)). Yo no dije nada, pero decid´ı sorprenderla con un n´ ucleo llamado Alix. No se di´ o de esa manera. Michael Bushnell (ahora Thomas), el principal desarrollador del n´ ucleo, prefiri´o el nombre HURD, y redefini´ o Alix para referirse a cierta parte del n´ ucleo –la parte que captura las llamadas del sistema y las gestiona por medio del env´ıo de mensajes a los servidores HURD. M´ as tarde, Alix y yo nos separamos, y ella cambi´ o su nombre; independientemente, el dise˜ no de HURD se cambi´ o para que la biblioteca C env´ıe los mensajes directamente a los servidores, y esto hizo que el componente Alix desapareciera del dise˜ no. Pero antes que estas cosas sucedieran, un amigo de ella encontr´o el nombre Alix en el c´odigo fuente de HURD, y se lo mencion´ o. As´ı que el nombre cumpli´o su objetivo.

2.6.21.

Linux y GNU/Linux

El GNU HURD no est´a listo para el uso en producci´ on. Afortunadamente, est´a disponible otro n´ ucleo. En 1991, Linus Torvalds desarroll´o un n´ ucleo compatible con Unix y lo denomin´ o Linux. Cerca de 1992, al combinar Linux con el sistema no tan completo de GNU, result´o en un sistema operativo libre completo. (La combinaci´on en s´ı misma di´ o un considerable trabajo.) Es gracias a Linux que podemos ver funcionar un sistema GNU en la actualidad.


48

Historia del Proyecto GNU

Denominamos a esta versi´ on GNU/Linux, para expresar su composici´on como combinaci´on de un sistema GNU con Linux como n´ ucleo.

2.6.22.

Desaf´ıos en nuestro futuro

Hemos probado nuestra capacidad para desarrollar un amplio espectro de software libre. Esto no significa que somos invencibles o que nada nos puede detener. Muchos desaf´ıos hacen que el futuro del software libre sea incierto; estar a la altura de los mismos requerir´ a esfuerzos firmes y resistencia, algunas veces durante a˜ nos. Requerir´a la clase de determinaci´on que la gente muestra cuando valora su libertad y no deja que nadie se la quite. Las siguientes cuatro secciones discuten dichos desaf´ıos.

2.6.23.

Hardware secreto

Los fabricantes de hardware tienden cada vez m´ as a mantener las especificaciones de hardware secretas. Esto hace dif´ıcil la escritura de controladores libres, y de esa manera, que Linux y XFree86 puedan admitir nuevo hardware. Tenemos sistemas libres completos por hoy, pero no los tendremos ma˜ nana si no podemos usar las computadoras del ma˜ nana. Existen dos maneras de lidiar con este problema. Los programadores pueden hacer ingenier´ıa reversa para darse cuenta como usar el hardware. El resto de nosotros puede elegir el hardware que admite software libre; a medida que nuestro n´ umero crezca, el secreto de las especificaciones se transformar´a en una pol´ıtica contraproducente. La ingenier´ıa reversa es un trabajo enorme; ¿tendremos los programadores con la suficiente determinaci´on para realizarla? S´ı –si hemos constru´ıdo un fuerte sentimiento de que el software libre es un tema de principio, y de que los controladores no libres son intolerables. ¿Y una gran cantidad de nosotros estar´a dispuesto a gastar dinero extra, o incluso tiempo extra, para que podamos usar controladores libres? S´ı, si se difunde la determinaci´on para tener libertad.

2.6.24.

Bibliotecas no libres

Una biblioteca no libre que corre sobre un sistema operativo act´ ua como una trampa para los desarrolladores de software libre. Las caracter´ısticas atractivas de la biblioteca son el cebo; si usted usa la biblioteca, cae en la trampa, porque su programa no puede ser parte u ´til de un sistema operativo libre. (Estrictamente hablando, podemos incluir su programa, pero no funcionar´ a sin la biblioteca faltante.) Peor a´ un, si el programa que usa la biblioteca se hace popular, puede hacer caer a otros programadores incautos dentro de la trampa. La primer instancia de este problema fue el kit de herramientas Motif, all´ a en los 80s. Aunque a´ un no hab´ıa sistemas operativos libres, era claro el


2.6 El Proyecto GNU por Richard Stallman

49

problema que Motif iba a causarles m´ as adelante. El proyecto GNU respondi´ o de dos maneras: solicitando a los proyectos individuales de software libre que admitan tanto los widgets del kit libre de herramientas de X como el de Motif, y solicitando a alguien que escriba un reemplazo libre para Motif. El trabajo tom´ o varios a˜ nos; LessTif, desarrollado por Hungry Programmers [Programadores hambrientos] tom´ o la potencia necesaria como para admitir la mayor´ıa de las aplicaciones Motif reci´en en 1997. Entre 1996 y 1998, otra biblioteca kit de herramientas GUI no libre, denominada Qt, se us´ o en una sustancial colecci´ on de software libre: el escritorio KDE. Los sistemas libres GNU/Linux no pod´ıan usar KDE, porque no pod´ıamos usar la biblioteca. Sin embargo, algunos distribuidores comerciales de sistemas GNU/Linux que no eran tan estrictos al adherirse al software libre, agregaron KDE a sus sistemas –produciendo un sistema con m´ as capacidades, pero menos libertad. El grupo KDE instaba activamente a m´ as programadores a usar Qt, y millones de nuevos ((usuarios de Linux)) nunca escucharon la idea de que hab´ıa un problema con esto. La situaci´on se presentaba l´ ugubre. La comunidad del software libre respondi´o a este problema de dos maneras: GNOME y Harmony. GNOME, el GNU Network Object Model Environment [Entorno Modelo de Objetos en Red de GNU], es el proyecto de escritorio de GNU. En 1997 Miguel de Icaza lo inici´o, y se desarroll´ o con aporte de Red Hat Software, para proporcionar capacidades de escritorio similares, pero usando s´ olo software libre. Tiene tambi´en ventajas t´ecnicas, tales como admitir una variedad de lenguajes, no s´ olo C++. Pero su prop´ osito principal fue la libertad: evitar el uso de cualquier software no libre. Harmony es una biblioteca de reemplazo compatible, dise˜ nada para poder hacer funcionar el software KDE sin usar Qt. En noviembre de 1998, los desarrolladores de Qt anunciaron un cambio de licencia, que cuando se lleve a cabo, har´ a que Qt sea software libre. No hay manera de estar seguro, pero pienso que esto ocurri´o en parte debido a la firme respuesta de la comunidad frente al problema que presentaba Qt cuando no era libre. (La nueva licencia es inconveniente e injusta, as´ı que a´ un es deseable evitar su uso.) ¿C´omo responderemos a la siguiente biblioteca no libre que nos tiente? ¿Comprender´ a la totalidad de la comunidad la necesidad de mantenerse fuera de la trampa? ¿Alguno de nosotros entregar´a libertad por conveniencia, y generar´a un importante problema? Nuestro futuro depende de nuestra filosof´ıa.

2.6.25.

Patentes de software

La peor amenaza que enfrentamos proviene de las patentes de software, que pueden colocar a algoritmos y caracter´ısticas fuera de los l´ımites del


50

Historia del Proyecto GNU

software libre hasta por veinte a˜ nos. Las patentes del algoritmo de compresi´ on LZW se solicitaron en 1983, y hasta ahora no podemos entregar software libre que produzca GIFs adecuadamente comprimidos. En 1998, se tuvo que quitar de una distribuci´on un programa libre para producir audio comprimido MP3 a causa de la amenaza de un juicio por patente. Existen maneras de tratar con las patentes: podemos buscar evidencia de que la patente no es v´alida, y podemos buscar maneras alternativas de realizar el trabajo. Pero cada uno de estos m´etodos trabaja s´ olo ciertas veces; cuando ambos fallan, una patente puede forzar a que todo software libre carezca de alguna caracter´ıstica que los usuarios desean. ¿Qu´e haremos cuando esto suceda? Aquellos de nosotros que valoremos el software libre por la libertad nos apegaremos al software libre de cualquier manera. Nos las arreglaremos para tener nuestro trabajo realizado sin las caracter´ısticas patentadas. Pero aquellos que valoren el software libre porque esperan que sea t´ecnicamente superior, cuando las patentes lo obliguen a mantenerse atr´ as, es m´ as probable que piensen que se trata de una falla. Por lo tanto, si bien es u ´til hablar acerca de la efectividad pr´actica del modelo ((catedral)) de desarrollo, y de la confiabilidad y potencia de cierto software libre, no debemos detenernos all´ı. Debemos hablar acerca de libertad y principio.

2.6.26.

Documentaci´ on libre

La mayor deficiencia en nuestro sistema operativo libre no est´a en el software –es la falta de buenos manuales libres que podamos incluir en nuestros sistemas. La documentaci´ on es una parte esencial de cualquier paquete de software; cuando un paquete importante de software libre no viene con un buen manual libre, ´ese es un hueco importante. Tenemos muchos de esos huecos en la actualidad. La documentaci´ on libre, como el software, es un tema de libertad, no de precio. El criterio para un manual libre es muy parecido al del software libre: es una cuesti´ on de otorgar a los usuarios ciertas libertades. La redistribuci´ on (incluso la venta comercial) debe estar permitida, en l´ınea y en papel, de tal manera que el manual pueda acompa˜ nar a cada copia del programa. El permiso para modificarlo es tambi´en crucial. Como regla general, no creo que sea esencial que las personas tengan permiso para modificar toda clase de art´ıculos y libros. Por ejemplo, no creo que usted o yo estemos obligado a dar permiso para modificar art´ıculos como este, que describe nuestras acciones y nuestra visi´on. Pero existe una raz´on particular debido a la cual la libertad para modificar la documentaci´ on es crucial para el software libre. Cuando la gente ejercita su derecho a modificar el software, y agrega o cambia caracter´ısticas, si son concientes tambi´en cambiar´an el manual –as´ı proporcionar´an documentaci´ on precisa y u ´til con el programa modificado. Un manual que no


2.6 El Proyecto GNU por Richard Stallman

51

permite a los programadores ser concientes y terminar el trabajo, no satisface las necesidades de nuestra comunidad. La existencia de algunas clases de l´ımites acerca de c´omo se deben hacer las modificaciones no implica problemas. Por ejemplo, el requerimiento de preservar el aviso de copyright del autor original, los t´erminos de distribuci´on, o la lista de autores, est´an bien. Tampoco trae problemas requerir que la versi´ on modificada incluya un aviso de que fue modificada, e incluso que haya secciones completas que no puedan borrarse o cambiarse siempre y cuando dichas secciones traten temas que no sean de ´ındole t´ecnica. Estas clases de restricciones no son un problema porque no impiden al programador conciente que adapte el manual para ajustarlo al programa modificado. En otras palabras, no impiden a la comunidad del software libre la completa utilizaci´ on del manual. Sin embargo, debe ser posible modificar todo el contenido *t´ ecnico* del manual, y luego distribuir el resultado en todos los medios usuales, a trav´es de todos los canales usuales; si esto no es as´ı, las restricciones obstruyen la comunidad, el manual no es libre, y necesitaremos otro maual. ¿Ser´ a que loa desarrolladores de software libre tendr´ an la conciencia y determinaci´on para producir un espectro completo de manuales? Una vez m´ as, nuestro futuro depende de nuestra filosof´ıa.

2.6.27.

Debemos hablar acerca de la libertad

En la actualidad se estima que hay unos diez millones de usuarios de sistemas GNU/Linux, tales como el Debian GNU/Linux y Red Hat Linux. El software libre ha desarrollado ciertas ventajas pr´acticas que hacen que los usuarios est´en congreg´andose hacia all´ı por razones puramente pr´acticas. Las buenas consecuencias de esto son evidentes: mayor inter´es en el desarrollo de software libre, m´ as clientes para empresas de software libre, y mayor capacidad para animar a las compa˜ n´ıas a que desarrollen productos de software libre, en lugar de productos de software propietario. Pero el inter´es en el software crece m´ as r´apido que la conciencia acerca de la filosof´ıa sobre la cual est´a basado, y esto crea problemas. Nuestra capacidad de enfrentar los desaf´ıos y amenazas que se describieron m´ as arriba depende de la voluntad de mantenerse firmes del lado de la libertad. Para asegurarnos de que nuestra comunidad tiene esta voluntad, necesitamos esparcir la idea entre los nuevos usuarios a medida que ellos llegan a nuestra comunidad. Pero estamos fracasando en esto: los esfuerzos realizados para atraer nuevos usuarios a nuestra comunidad sobrepasan por lejos a los esfuerzos dedicados a la ense˜ nanza c´ıvica acerca de nuestra comunidad. Necesitamos hacer ambas cosas, y es necesario que mantengamos ambos esfuerzos balanceados.


52

2.6.28.

Historia del Proyecto GNU

((Open Source))

La ense˜ nanza acerca de la libertad a los nuevos usuarios se hizo m´ as dif´ıcil en 1998, cuando una parte de la comunidad decidi´o dejar de usar el t´ermino ((software libre)) y usar ((open source software)) en su lugar. Algunos de los que favorecieron este t´ermino ten´ıan como objetivo evitar la confusi´ on de ((free)) con ((gratis)) –una meta v´alida. Otros, sin embargo, apuntaban a apartar el esp´ıritu de principio que ha motivado el movimiento por el software libre y el proyecto GNU, y resultar as´ı atractivos a los ejecutivos y usuarios comerciales, muchos de los cuales sostienen una ideolog´ıa que pone las ganancias por encima de la libertad, de la comunidad, y de los principios. Por lo tanto, la ret´ orica de ((open source)) se centra en el potencial de realizaci´on de potente software de alta calidad, pero esquiva las ideas de libertad, comunidad y principio. Las revistas sobre ((Linux)) son un claro ejemplo de esto –est´an llenas de propagandas acerca de software propietario que funciona sobre GNU/Linux. Cuando aparezca la pr´oxima Motif o Qt, ¿incentivar´ an estas revistas a los programadores a apartarse de ellas, o pondr´ an propagandas de las mismas? El apoyo de las empresas puede contribuir a la comunidad de varias maneras; si todo lo dem´as se mantiene igual, esto es u ´til. Pero si ganamos su apoyo mediante el recurso de hablar menos de libertad y principio esto puede ser desastroso; hace que empeore el desbalance previo entre el alcance y la educaci´ on c´ıvica. ((Software libre)) y ((open source)) describen la misma categor´ıa de software, m´ as o menos, pero dicen diferentes cosas acerca del software, y acerca de los valores. El proyecto GNU contin´ ua utilizando el t´ermino ((free software)) [software libre] para expresar la idea de que la libertad, no solamente la tecnolog´ıa, es lo importante.

2.6.29.

¡Pru´ ebelo!

La filosof´ıa de Yoda (((No hay ’para probar’))) suena linda, pero no funciona conmigo. He realizado la mayor parte de mi trabajo con ansiedad por saber si podr´ıa llevarlo a cabo, y con la inseguridad de que no ser´ıa suficiente alcanzar la meta si lo lograba. Pero lo intent´e igual, porque no hab´ıa otro entre el enemigo y mi ciudad. Para mi propia sorpresa, algunas veces he tenido ´exito. Algunas veces he fallado; algunas de mis ciudades han ca´ıdo. Luego he encontrado otra ciudad amenazada, y me prepar´e para otra batalla. A lo largo del tiempo, aprend´ı a buscar las amenazas y ponerme entre ellas y la ciudad, y llamar a otros hackers para que se unan a m´ı. En la actualidad, con frecuencia no soy el u ´nico. Es un consuelo y un placer cuando veo un regimiento de hackers excavando para mantener la trinchera, y caigo en cuenta que esta ciudad sobrevivir´a –por ahora. Pero


2.7 Autores del cap´ıtulo

53

los peligros son mayores cada a˜ no que pasa, y ahora Microsoft tiene a nuestra comunidad como un blanco expl´ıcito. No podemos dar por garantizado el futuro en libertad. ¡No lo d´e por garantizado! Si usted desea mantener su libertad, debe estar preparado para defenderla. c Copyright 1998 Richard Stallman. Est´ a permitida la copia textual y distribuci´ on de este art´ıculo en su totalidad por cualquier medio, siempre y cuando esta nota se preserve. Actualizado:23 Mayo 1999 rms. Traducci´ on: C´esar Ballardini (Argentina) cballard@ santafe. com. ar

2.7.

Autores del cap´ıtulo

Recopilaci´ on, adaptaci´ on y agregados por Diego J. Brengi. Secci´ on “El proyecto GNU” obtenido de: http://es.wikipedia.org/. Secci´ on “La Free Software Foundation” obtenido de: http://es.wikipedia. c org/, con Copyright 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. Secci´ on “Actividades principales de la FSF” obtenido de: http://en. wikipedia.org/. Traducci´on al espa˜ nol realizada por Rub´en Alejandro Casas. Secci´ on “El Proyecto GNU por Richard Stallman” publicado originalmente en el libro ((Open Sources)) y extra´ıdo de http://www.gnu.org/gnu/ thegnuproject.es.html.


54

Historia del Proyecto GNU


Cap´ıtulo 3

El kernel Linux 3.1.

Kernel

El kernel o n´ ucleo se podr´ıa definir como el coraz´on del sistema operativo. Es el encargado de que el software y el hardware del ordenador puedan trabajar juntos. Las funciones mas importantes del mismo, aunque no las u ´nicas, son: Administraci´on de la memoria, para todos los procesos en ejecuci´ on. Administraci´on del tiempo de procesador. Es el encargado de que las aplicaciones puedan acceder a los perif´ericos y dispositivos de nuestra computadora de una manera c´omoda. Adem´ as de administrar los recursos de hardware, el kernel, se encarga de proporcionar m´etodos normalizados para la utilizaci´ on de los mismos, permitiendo que las aplicaciones se abstraigan de las diferencias entre distintos tipos de hardware. En las figuras 3.2, 3.3 y 3.1 se ilustra este concepto.

3.2.

Nacimiento del kernel Linux

Linux hace su aparici´on a principios de la d´ecada de los noventa. Era el a˜ no 1991 y por aquel entonces un estudiante de inform´atica de la Universidad de Helsinki (Finlandia), llamado Linus Torvalds (Fig. 3.4) empez´ oa programar para su tesis final un n´ ucleo de sistema operativo. Luego se convirti´ o en un desarrollo de muchos programadores alrededor del mundo, que gracias a Internet pudieron continuar el proyecto. Este comienzo estuvo inspirado en Minix, un peque˜ no sistema Unix desarrollado por el profesor Andrew Tanenbaum con fines educativos y explicado muy bien en su Libro “Sistemas Operativos”. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix, en estas discusiones se hablaba sobre todo del desarrollo


56

El kernel Linux

Figura 3.1: Arquitectura general del Kernel Linux. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones.

Figura 3.2: Diagrama conceptual y simplificado de las capas de un sistema operativo GNU/Linux.

de un peque˜ no sistema Unix para usuarios de Minix que quer´ıan m´ as. Disconforme con Minix, Linus comienza el desarrollo de un kernel que pudiera ejecutar en su PC.


3.3 Licencia

57

Figura 3.3: Arquitectura general del S.O. GNU/linux. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones.

Figura 3.4: Linus Torvalds.

3.3.

Licencia

El ´exito de Linux se debe en parte a que Linus decide liberar su c´odigo bajo licencia GPL (creada por el proyecto GNU), lo que lo hace atractivo


58

El kernel Linux

para otros programadores deseosos de colaborar al proyecto. Esta licencia hizo muy r´ apido el desarrollo del nuevo kernel y permiti´o su crecimiento sostenido sin derivar en productos propietarios.

3.4.

Avances

Linus nunca anunci´o la versi´ on 0.01 de ((Linux)) (1991) porque no era ni siquiera ejecutable, solamente inclu´ıa los principios del n´ ucleo; estaba escrito en lenguaje ensamblador y asum´ıa que el usuario ten´ıa acceso a un sistema Minix para su compilaci´ on. Aprovech´o en sus comienzos las caracter´ısticas de conmutaci´ on de tareas con que contaba el flamante Intel 386. Mas tarde durante 1991, Linus anunci´o la primera versi´ on ((Oficial)) de Linux (versi´ on 0.02). Esta vez, Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C), pero no mucho m´ as funcionaba. En este estado de desarrollo ni siquiera se pensaba en t´erminos de soporte, documentaci´ on, e incluso distribuci´on. Despu´es de la versi´ on 0.03, Linus salt´o en la numeraci´ on hasta la 0.10. Desde entonces, m´ as y m´ as programadores a trav´es de Internet empezaron a trabajar en el proyecto y, despu´es de sucesivas revisiones, Linus increment´o el n´ umero de versi´ on hasta la 0.95 en Marzo de 1992. M´ as de un a˜ no despu´es, en Diciembre de 1993, el n´ ucleo del sistema estaba en la versi´ on 0.99 y la versi´ on 1.0 no lleg´o hasta marzo de 1994. A˜ no 1991 1994 1995 1996 1999 2001 2004

Versi´ on del Kernel Linux 0.1 1.0 1.2 2.0 2.2 2.4 2.6

La versi´ on actual (Mayo de 2009) del n´ ucleo es la 2.6.29.2 y sigue avanzando d´ıa a d´ıa con la meta de perfeccionar, mejorar el sistema y mantenerlo actualizado con los u ´ltimos avances de la tecnolog´ıa inform´atica y el nuevo hardware existente. Los archivos hist´ oricos del kernel y sus fechas pueden encontrarse en: http://www.oldlinux.org/Linux.old/docs/history/1994.html

3.5.

Linux y el proyecto GNU

A pesar de ser 95 % similar en caracter´ısticas y funcionamiento a un sistema UNIX, el kernel de Linux no usa ni siquiera una l´ınea del UNIX de la empresa AT&T, due˜ na original de los derechos de UNIX, ni de ning´ un


3.6 La lista de desarrollo

59

Figura 3.5: Peque˜ na historia de las releases m´ as importantes. Obtenido de “Anatomy of the Linux kernel” por M. Tim Jones).

otro UNIX comercial. Por esto es que Linus pudo licenciarlo con la licencia GPL. Una vez que el n´ ucleo estuvo ((usable)), los programadores comenzaron a buscar aplicaciones y utilidades para agregar y hacer el sistema m´ as u ´til, ese es el momento en que entra el proyecto GNU, iniciado en 1984 por la Free Software Foundation (FSF), entidad creada por Richard M. Stallman (o simplemente RMS), con el fin de hacer un sistema operativo libre. Dado que exist´ıa ya mucho software en el proyecto GNU, los programadores comenzaron a unir el n´ ucleo Linux con dichas herramientas GNU, conformando lo que hoy conocemos como sistema GNU/Linux (o simplemente Linux, como se suele llamar equivocadamente). De estos aportes provenientes del proyecto GNU, los m´ as importantes y conocidos son: El compilador GNU GCC de lenguaje “C” con el cual se compila el mismo kernel y las aplicaciones; la librer´ıa est´andar de C del proyecto GNU “glibc” y el int´erprete de comandos BASH entre otros.

3.6.

La lista de desarrollo

Los desarrolladores del kernel Linux utilizan para comunicarse una lista de correo electr´ onico en vger.kernel.org. A trav´es de ´esta lista intercambian ideas, correcciones, problemas, etc. Esta lista es s´ olo recomendable para personas con conocimientos s´ olidos acerca del Kernel.


60

3.7.

El kernel Linux

Desarrolladores

Son muchos los desarrolladores que han realizados y realizan contribuciones al kernel de Linux. Algunos juegan un rol principal en el desarrollo y son l´ıderes reconocidos dentro de la comunidad Linux. A la cabeza del desarrollo esta por supuesto Linus Torvalds, y es ´el quien, con ayuda de otros, decide que contribuciones se aportan al desarrollo del kernel oficial y cuales no. En casos de conflictos, la decisi´ on final la tiene siempre Linus. No existe ning´ un impedimento para modificar y cambiar el kernel Linux, sin embargo, solo existe un kernel Linux oficial. Adem´ as de Linus, otra personalidad importante es Alan Cox, que contribuy´o mucho con el soporte para multiprocesadores y es quien recolecta una gran cantidad de nuevos parches para reenvi´ arselos luego a Linus.

Figura 3.6: Alan Cox, desarrollador del Kernel Linux. Existen varios desarrolladores responsables (Maintainers) listados en la documentaci´ on del kernel actual. Un maintainer es un desarrollador que est´a a la cabeza de algunas de las distintas ´areas o subsistemas del kernel de Linux. Adem´ as de las contribuciones propias, estos maintainers, reciben contribuciones de otros desarrolladores. Esta estructura de desarrollo con Linus a la cabeza, no est´a establecida ni definida expl´ıcitamente. Simplemente se forma a medida que las personas se conocen a trav´es de la red, se env´ıan parches, reportes de bugs, etc. Pueden ser varios los motivos por los que un desarrollador decide invertir tiempo y esfuerzo en el desarrollo del kernel de Linux. Algunos pertenecen


3.8 Identificaci´ on de versiones antiguas del kernel

61

a empresas a las cuales les interesa aportar al kernel para incorporar o mantener determinada caracter´ıstica. Ejemplos de estos casos son Suse, IBM y RedHat por mencionar algunas. Otros contribuyen, para obtener reputaci´ on, para demostrar nuevos conceptos, para impulsar los sistemas Linux, por creencias filos´oficas, como aprendizaje o simplemente por placer.

Figura 3.7: Diagrama conceptual de la jerarqu´ıa de desarrolladores. En la figura 3.8 podemos ver el numero de desarrolladores y compan´ıas involucradas estimados por cada versi´ on. En las figura 3.9 podemos ver los programadores y empresas que m´ as contribuyen con el desarrollo del kernel Linux.

3.8.

Identificaci´ on de versiones antiguas del kernel

Antiguamente exist´ıan dos ramas oficiales del Kernel Linux: Versi´ on de producci´ on: La versi´ on de producci´ on, era la versi´ on estable Esta versi´ on era el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del kernel experimental, decid´ıa que hab´ıa conseguido un kernel estable y con la suficiente calidad, se lanzaba una versi´ on de producci´ on o estable. Esta versi´ on es la que se deber´ıa utilizar para un uso seguro del sistema, ya que son las versiones consideradas m´ as estables y libres de fallos en el momento de su lanzamiento. Las modificaciones hechas a una versi´ on estable


62

El kernel Linux

Figura 3.8: N´ umero de desarrolladores y empresas involucradas. del kernel eran s´ olo para corregir errores, fallos de seguridad, etc. Para mantener la cantidad de bugs al m´ınimo posible no se agregaban nuevas capacidades ni se hac´ıan mejoras sustanciales. Versi´ on de desarrollo: Esta versi´ on era experimental y es la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas caracter´ısticas, correcciones, agregados, etc. Estos n´ ucleos eran inestables y no se deb´ıan usar sin conocer las consecuencias. Las versiones del kernel se marcaban con 3 n´ umeros (XX.YY.ZZ) de la siguiente forma: XX – Numero Mayor: Indica la serie principal del kernel. Hasta el momento s´ olo existen la 1 y 2. Este n´ umero cambia cuando el c´odigo del kernel ha sufrido un cambio muy importante. YY – Numero Medio: Indica si la versi´ on es de desarrollo o de producci´ on. Un n´ umero impar, significa que es de desarrollo, uno par, que es de producci´ on. ZZ – Numero Menor: Indicaba una nueva versi´ on del kernel, en las que lo u ´nico que se hab´ıa modificado, son fallos de programaci´ on (bugs), correcciones y cambios menores. Algunos ejemplos: Ejemplo 1: versi´ on del kernel 2.0.0: Kernel de la serie 2, versi´ on de producci´ on 0 (0 par), primera versi´ on.


3.9 Identificaci´ on de versiones actuales del kernel

63

Figura 3.9: Aporte de desarrolladores y empresas. Ejemplo 2: versi´ on del kernel 2.0.1: Kernel de la serie 2, versi´ on 0, en el que se han corregido errores de programaci´ on presentes en la versi´ on 2.0.0 (ZZ=1) Ejemplo 3: versi´ on del kernel 2.2.17: versi´ on 17 del kernel estable 2.2. Ejemplo 4: versi´ on del kernel 2.5.3: versi´ on 3 del kernel inestable o de desarrollo 2.5. Ejemplo 5: versi´ on del kernel 2.6.8: versi´ on 8 del kernel estable 2.6.

3.9.

Identificaci´ on de versiones actuales del kernel

Actualmente se utilizan cuatro n´ umeros para las versiones del kernel Linux, de la siguiente forma: (AA.BB.CC.DD) AA y BB: Indican la serie principal del kernel. Actualmente existe la serie 2.6 y ser´an n´ umeros que cambiar´an s´ olo en largos periodos de tiempo.


64

El kernel Linux

CC: Es la versi´ on del kernel e ir´ a avanzando con cambios significativos. DD: Indicar´a cambios menores de correcci´on de errores y soluci´on de problemas de seguridad. En los casos donde DD sea del tipo “-rc”, se tratar´ a de una versi´ on del tipo “release candidate” y nos indica que se trata de una versi´ on de desarrollo. De esta manera no existen m´ as las ramas de desarrollo y estables por separado con la numeraci´ on par e impar que se utilizaban previamente. Un ejemplo de esta nomenclatura se puede observar en la figura 3.10.

Figura 3.10: Ciclo de desarrollo del kernel.

3.10.

Estructura monol´ıtica

El kernel Linux posee muchos m´ odulos que implementan ciertas funcionalidades. Muchos de ´estos m´ odulos pueden insertarse o removerse del kernel en forma din´ amica (mientras est´a funcionando) o pueden incorporarse en forma fija al momento de la compilaci´ on. Esto permite probar m´ odulos o quitarlos sin detener el sistema y armar kernels a medida solo con los m´ odulos indispensables para el funcionamiento de un sistema en particular.


3.11 Arquitecturas de hardware

65

A pesar de esto, el kernel de Linux es monol´ıtico y la existencia de estos m´ odulos no debe confundirse con el concepto de microkernel.

3.11.

Arquitecturas de hardware

Linux se desarroll´ o originalmente para correr en computadoras tipo PC compatibles con Intel 386 y 486. Sin embargo gracias a la portabilidad del lenguaje C y a la colaboraci´on de muchos desarrolladores, hoy en d´ıa tambi´en corre en procesadores ARM, DEC Aplha, SUN Sparcs, M68000, MIPS y PowerPC entre otros. Por esta raz´on GNU/Linux es el el sistema operativo que m´ as plataformas de hardware soporta.

3.12.

El c´ odigo fuente

El c´odigo fuente de un kernel Linux como el 2.6.29.1 utiliza aproximadamente 372 Mbytes para su almacenamiento y 54 Mbytes comprimido con tar y bzip2. Esto incluye c´odigo fuente para todas las arquitecturas soportadas y la documentaci´ on asociada. Los archivos se encuentran organizados en directorios. En un kernel 2.6.8 el primer nivel de directorios es: Documentation, arch, crypto, drivers, fs, include, init, ipc, kernel, lib, block, mm, net, scripts, security, sound, usr, samples, virt, firmware.

3.13.

Cambiando el kernel

Toda distribuci´on de GNU/Linux viene con por lo menos un kernel ya compilado (im´agen) con la que se instala inicialmente. Sin embargo existen varios motivos por el cual podemos desear cambiarlo: Para utilizar un kernel optimizado espec´ıficamente para nuestro procesador. Para modificar algunas de las opciones. Para utilizar un kernel que posea s´ olo los m´ odulos necesarios. Para incorporar m´ odulos “no oficiales” a nuestro kernel. Para utilizar una versi´ on mas nueva del kernel. Para aprender los pasos involucrados. A la hora de cambiar el kernel, existen dos grandes opciones:


66

El kernel Linux

1) Instalar un kernel ya compilado. 2) Instalar un kernel compilado por uno mismo.

3.14.

Kernels precompilados

Las distintas distribuciones de GNU/Linux por lo general ofrecen una variedad de kernels ya compilados con diferentes opciones. Estos kernels siguen siendo de prop´ osito general, pero optimizados por ejemplo para alg´ un modelo de procesador. En una distribuci´on como Debian, existen los siguientes kernels ya compilados y listos para instalar: bash> apt-cache search linux-image* linux-image-2.6.26-2-486 - Linux 2.6.26 image on x86 linux-image-2.6.26-2-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4 linux-image-2.6.26-2-686-bigmem - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4 linux-image-2.6.26-2-amd64 - Linux 2.6.26 image on AMD64 linux-image-2.6.26-2-openvz-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4, linux-image-2.6.26-2-vserver-686 - Linux 2.6.26 image on PPro/Celeron/PII/PIII/P4, linux-image-2.6.26-2-vserver-686-bigmem - Linux 2.6.26 image on PPro/Celeron/PII/P linux-image-2.6.26-2-xen-686 - Linux 2.6.26 image on i686, oldstyle Xen support [...]

Para utilizar estos kernel ya compilados, simplemente se deben instalar con las herramientas de administraci´on de paquetes propias de cada distribuci´on.

3.15.

Instalando un kernel compilado a medida

En cambio para cambiar por un kernel compilado por uno mismo, los pasos involucrados son los siguientes: 1) Obtener los fuentes del kernel y descomprimirlos (normalmente en /usr/src/). 2) Aplicar parches o modificaciones al c´odigo(opcional). 3) Configurar las opciones de compilaci´ on. 4) Compilar el kernel. 5) Instalarlo en nuestro sistema. 6) Reiniciar la computadora si se desea probar el nuevo kernel. Se dar´ an aqu´ı conceptos generales para introducir al lector en los pasos necesarios en la compilaci´ on de un kernel Linux, sin pretender ser una gu´ıa paso a paso. Consultar la documentaci´ on pertinente antes de realizar el proceso de configuraci´ on, compilaci´ on e instalaci´ on del kernel.


3.15 Instalando un kernel compilado a medida

3.15.1.

67

Obteniendo el c´ odigo fuente

El kernel se puede bajar de un gran n´ umero de servidores en Internet. El servidor principal es: http://www.kernel.org. De ´este sitio puede bajarse el c´odigo fuente del kernel, en formato .tar.gz. (tar y gzip) o tar.bz2 (tar y bzip2). Para utilizar el nuevo kernel bajado, se lo debe descomprimir, compilar e instalar en el sistema. Las fuentes completas del kernel poseen varios mega bytes y cada nueva versi´ on (n´ umero menor) involucra peque˜ nos cambios en relaci´ on al c´odigo completo. Por este motivo la distribuci´on de las versiones tambi´en se realiza con parches incrementales que se aplican a la versi´ on anterior. Las distribuciones por lo general brindan otra forma de obtener el c´odigo fuente del kernel. Esta es instalando el paquete correspondiente a los fuentes del kernel que se utilizaron para construir los diferentes kernels incluidos en la distribuci´on. Por ejemplo en la distribuci´on Debian est´an disponibles los siguientes paquetes que contienen el c´odigo fuente del kernel: $ apt-cache search linux-source* linux-patch-debian-2.6.26 - Debian patches to version 2.6.26 of the Linux kernel linux-source-2.6.26 - Linux kernel source for version 2.6.26 with Debian patches linux-tree-2.6.26 - Linux kernel source tree for building Debian kernel images

En todos los casos, los fuentes del kernel se encontrar´ an comprimidos por lo que se deber´a proceder a su descompresi´on con el comando “tar”. Dentro del subdirectorio “Documentation” de los fuentes se podr´a encontrar gran cantidad de informaci´ on relacionada.

3.15.2.

Aplicar parches

Una vez que se dispone de los fuentes del kernel, pueden realizarse modificaciones al mismo aplicando parches ”no oficiales”. Para esto se utilizar´a el comando patch. Tambi´en pueden modificarse directamente los archivos fuente. Obviamente hay que poseer los conocimientos necesarios para modificar exit´ osamente el kernel.

3.15.3.

Configuraci´ on

Antes de compilar el kernel Linux, se pueden configurar una gran cantidad de opciones. Se puede elegir qu´e m´ odulos ser´an incorporados en forma fija, qu´e m´ odulos podr´an insertarse y cuales no. Para esto, el kernel posee un archivo de configuraci´ on. Este archivo de configuraci´ on puede crearse y editarse en forma manual, pero lo m´ as com´ un es hacerlo a trav´es de una interfase amigable (preguntas en texto plano, ncurses, Qt, GTK). Para configurar el kernel mediante alguna de estas interfaces es necesario alguno de los siguientes comandos:


68

El kernel Linux

make menuconfig: Text based color menus, radiolists & dialogs. make xconfig: X windows (Qt) based configuration tool. make gconfig: X windows (Gtk) based configuration tool. make oldconfig: Default all questions based on the contents of your existing config file. Ejecutar “make help” para obtener la lista completa y su explicaci´on. Para acceder a esta configuraci´ on interactiva es necesario tener instalado por lo menos el compilador de C, Make y la librer´ıa correspondiente a la interface seleccionada.

Figura 3.11: Configuraci´ on del kernel con la opci´ on “make menuconfig”.

3.15.4.

Compilaci´ on

Una vez configuradas las opciones deseadas se procede a la compilaci´ on. Los archivos Makefile permiten automatizar el proceso de compilaci´ on. Para compilar el kernel es necesario tener instalados el compilador de C, Make , binutils y otros componentes seg´ un se menciona en Documentation/Changes. El kernel se compila simplemente con el comando “make” o “make all”. Si todo es correcto se obtendr´ a un nuevo kernel compilado junto con sus


3.16 El arranque

69

m´ odulos listos para instalar. Ejecutar “make help” para obtener la lista completa de opciones de compilaci´ on y su explicaci´on.

3.15.5.

Instalaci´ on

El proceso de instalaci´ on consiste b´asicamente en colocar el archivo imagen obtenido (kernel compilado) en el lugar apropiado dentro del sistema de archivos (normalmente el directorio “/boot/”). Adem´ as se debe configurar adecuadamente al administrador de arranque (Grub, Lilo u otro) para que en el pr´oximo arranque se utilice el nuevo kernel. Como mecanismo de seguridad siempre se deja disponible la opci´ on de arrancar con el kernel anterior para estar seguros que el sistema podr´a utilizarse en caso que el nuevo kernel no funcione correctamente. La instalaci´ on del kernel puede hacerse con el comando “make install” que realiza autom´aticamente las acciones mencionadas.

3.15.6.

Otras variantes

Los pasos explicados aqu´ı son generales, sin embargo algunas distribuciones de GNU/Linux poseen mecanismos especiales que facilitan esta labor. Por ejemplo en un sistema Debian GNU/Linux existe la herramienta “make-kpkg” que se utiliza para compilar los fuentes del kernel y crear paquetes Debian (.deb) del kernel, listos para instalar en el sistema. Esto facilita la tarea de administraci´on, instalaci´ on de nuevos kernels y su reemplazo.

3.16.

El arranque

El administrador de arranque transfiere el hilo de ejecuci´ on al kernel, quien comienza entre otras cosas con la detecci´ on del hardware del sistema. Durante este proceso de arranque el kernel nos brinda una gran cantidad de informaci´ on por pantalla. Adem´ as esta informaci´ on puede consultarse con el comando “dmesg” o consultando varios archivos de log en /var/log (syslog, kern.log, dmesg y otros).

3.17.

Los m´ odulos

Los m´ odulos son peque˜ nas porciones de c´odigo compilado que pueden insertarse y removerse del kernel durante su ejecuci´ on. Estas porciones de c´odigo implementan una funcionalidad espec´ıfica del kernel. Al momento de configurar el kernel podemos elegir algunas caracter´ısticas generales acerca de los m´ odulos: Habilitar la posibilidad de cargar m´ odulos durante la ejecuci´ on del kernel. Nos permitir´a insertar m´ odulos dentro del kernel en ejecuci´ on


70

El kernel Linux actual. Posibilidad de descargar m´ odulos. Nos permitir´a remover m´ odulos.

Luego, para cada una de estas funcionalidades implementadas como m´ odulos podremos optar entre las siguientes opciones: La funcionalidad no estar´a incluida ni podr´a cargarse posteriormente como m´ odulo <>. Esto ahorra recursos al no incluir caracter´ısticas innecesarias y mejora la seguridad del sistema ya que es imposible cargar esa funcionalidad en el kernel. La funcionalidad estar´a incluida en el kernel sin necesidad de cargarlo expl´ıcitamente como m´ odulo < ∗ >. No podr´a removerse la funcionalidad. La funcionalidad estar´a disponible como m´ odulo < M >. En caso de ser necesario se podr´a insertar el m´ odulo en cuesti´ on. Tambi´en podr´a removerse.

Figura 3.12: Configuraci´ on del soporte para carga de m´ odulos. Las herramientas mas comunes para manejar m´ odulos del kernel son:


3.18 Logo

71

modprobe: Inserta y remueve m´ odulos del kernel. lsmod: Lista los m´ odulos cargados. modinfo: Brinda informaci´ on sobre cada m´ odulo. insmod: Inserta m´ odulos rmmod: Remueve m´ odulos. Por ejemplo para obtener informaci´ on sobre el m´ odulo “msdos”: shell> modinfo msdos filename: /lib/modules/2.6.12.4-djb/kernel/fs/msdos/msdos.ko license: GPL author: Werner Almesberger description: MS-DOS filesystem support vermagic: 2.6.12.4-djb preempt K7 gcc-3.3 depends: fat Para insertar el m´ odulo: shell> modprobe msdos Y para remover el modulo podemos usar “modprobe” o “rmmod”: shell> modprobe -r msdos

3.18.

Logo

El logo o mascota asociada al kernel Linux y en general al sistema operativo GNU/Linux es el ping¨ uino llamado Tux creado por Larry Ewing. Los logos pueden obtenerse de la p´agina http://www.isc.tamu.edu/~lewing/ linux/ Se puede encontrar la historia del porqu´e de esta mascota en la siguiente direcci´on: http://www.sjbaker.org/tux

3.19.

Lecturas complementarias

Un art´ıculo muy interesante sobre el kernel Linux: “Anatomy of the Linux kernel”, History and architectural decomposition. Autor M. Tim Jones. http://www.ibm.com/developerworks/linux/library/l-linux-kernel/ Para conocer a fondo y agregar dispositivos al kernel: “Linux Device Drivers”. Por Jonathan Corbet, Alessandro Rubini y Greg Kroah-Hartman. http://lwn.net/Kernel/LDD3/ o tambi´en http://www.xml.com/ldd/chapter/ book/


72

El kernel Linux

Figura 3.13: Tux, logo del Kernel Linux creado por Larry Ewing.

3.20.

Autores del cap´ıtulo

c 2001-2009 Diego J. Brengi. Copyright Se otorga permiso para copiar, distribuir y/o modificar este cap´ıtulo bajo los t´erminos de la Licencia de Documentaci´ on Libre de GNU, Versi´ on 1.2 o cualquier otra versi´ on posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia est´a incluida en la secci´ on titulada GNU Free Documentation License. Los derechos de copyright sobre las figuras y logos pertenecen a sus autores y no son abarcados por esta licencia. Las primeras secciones donde se cuenta la historia del kernel se tomaron de investigaciones realizadas en la red. Es dif´ıcil citar su or´ıgen ya que se trata de textos que se encuentran replicados en una gran cantidad de sitios web, sin menci´on del autor original. Las figuras 3.8 , 3.9 y 3.10 se obtuvieron del art´ıculo “Linux Kernel Development (April 2008)” en: http://www.linuxfoundation.org/publications/ linuxkerneldevelopment.php


Cap´ıtulo 4

Distribuciones GNU/LINUX 4.1.

¿Qu´ e es una distribuci´ on de GNU/Linux?

Una distribuci´on GNU/Linux nos brinda la posibilidad de instalar, ejecutar y utilizar un sistema operativo GNU/Linux en nuestra computadora, adem´ as de una gran variedad de software de aplicaci´on. Actualmente existen una gran variedad de distribuciones GNU/Linux en constante evoluci´on. El principal objetivo de una distribuci´on es ahorrarle al usuario gran parte del trabajo de instalaci´ on, configuraci´ on y actualizaci´on del sistema operativo y sus aplicaciones.

4.2.

¿Que partes componen una distribuci´ on?

Para entender qu´e es una distribuci´on y que las diferencia es necesario comprender cuales son las partes que la componen y la definen. Veremos a continucaci´on algunos de los componentes m´ as importantes dentro del concepto de una distribuci´on.

4.2.1.

Programa de instalaci´ on

Es el programa que nos gu´ıa a trav´es del proceso de instalaci´ on. Durante la instalaci´ on se define donde se instalar´ a el S.O, se seleccionan las aplicaciones deseadas y se definen algunas configuraciones de nuestro nuevo sistema. Los programas de instalaci´ on tratan de detectar nuestro hardware y generar las configuraciones correspondientes. El programa de instalaci´ on es la primer gran diferencia entre las distintas distribuciones que el usuario nota.

4.2.2.

Kernel Linux

Todas las distribuciones GNU/Linux traen el kernel Linux, sin embargo no todos traen la misma versi´ on y no todas lo compilan con las mismas


74

Distribuciones GNU/LINUX

opciones. Las distribuciones mas nuevas traer´an una versi´ on mas nueva del kernel, que generalmente incorpora mejoras, correcciones y mayor hardware soportado. Un usuario avanzado siempre podr´a reconfigurar y recompilar el kernel, reemplazarlo por uno mas nuevo o seleccionar el que mejor se adapte a sus necesidades si ninguno de los kernels precompilados que proporciona la distribuci´on no lo satisfacen. El kernel posee una gran cantidad configuraciones para compilarlo. Cada distribuci´on adopta sus propios criterios para generar el kernel que acompa˜ nar´ a la distribuci´on. Luego de una instalaci´ on exitosa siempre es conveniente verificar que el kernel del nuevo sistema sea el adecuado, sabiendo que una distribuci´on actual trae varios kernels entre los cuales elegir, optimizados especialmente para cada arquitectura.

4.2.3.

Herramientas GNU y sistema base

Para completar el sistema operativo, junto con el kernel se distribuyen las herramientas del proyecto GNU y una gran recopilaci´on de programas b´asicos para el funcionamiento y la administraci´on del sistema. Algunas de estas herramientas son: el compilador de C “gcc”, la librer´ıa de C “glibc”, el interprete de comandos “bash”, editores de texto, herramientas de diagn´ostico, herramientas de red y muchas otras. Todas estas herramientas sumadas conforman el sistema base y normalmente ser´an instaladas sin consultar al usuario.

4.2.4.

Programas de aplicaci´ on con licencias libres

Adem´ as del kernel y las herramientas b´asicas del sistema una distribuci´on posee una gran cantidad de aplicaciones “open source” y “free software” (bajo licencias GPL, BSD, Artistic, public domain, etc). Dentro de estas aplicaciones pueden encontrarse programas para: administraci´on, interfaz gr´ afica, escritorio, navegaci´ on, edici´on de texto, reproducci´ on multimedia, lectura de correo, servidores, conectividad, etc. Dentro de esta categor´ıa todas las distribuciones poseen generalmente las mismas aplicaciones, pero distintas versiones de las mismas dependiendo del desarrollo de cada una a la fecha de lanzamiento de la distribuci´on. Al momento de escribir este documento (mayo de 2009), una distribuci´on como Debian “lenny” 5.0 completamente “open source” posee aproximadamente 23.000 paquetes de software, distribuidos en 5 DVDs o 31 CDs.

4.2.5.

Programas de aplicaci´ on “privativos”

Muchas distribuciones actuales vienen con programas privativos (propietarios) adicionales para captar nuevos usuarios. Muchas veces los programas propietarios son el propio instalador y las herramientas de administraci´on. Si


4.2 ¿Que partes componen una distribuci´ on?

75

bien una distribuci´on con estas caracter´ısticas puede parecer m´ as atractiva, lo hace a costa de quitar libertades a los usuarios y viola los principios del “free software” (software libre). Generalmente este tipo de distribuciones brinda en forma gratuita versiones de evaluaci´on pero es necesario comprar la versi´ on funcional. A diferencia de una distribuci´on pura GNU/Linux estas distribuciones con software propietario poseen algunas o todas de las siguientes limitaciones: No No No No

4.2.6.

se se se se

puede copiar libremente. tiene acceso al c´odigo fuente del 100 % de sus componentes. puede modificar y redistribuir la versi´ on modificada. puede vender.

Configuraciones por defecto

Una de las caracter´ısticas principales de la mayor´ıa de las aplicaciones Linux es la flexibilidad y la gran cantidad de opciones de configuraci´ on. Esto se logra generalmente mediante archivos de configuraci´ on que permiten definir el comportamiento por defecto de una aplicaci´on en particular. Si bien al momento de instalar un programa es probable que se pregunten ciertos par´ ametros de configuraci´ on al usuario, ser´ıa impr´actico y tedioso solicitar al usuario todas las posibles opciones. Para evitar esto es necesario adoptar configuraciones por defecto al momento de instalar una aplicaci´on. En este punto encontramos grandes diferencias entre distribuciones. Algunos de los posibles criterios para adoptar una configuraci´ on por defecto pueden ser: m´ınima intervenci´on del usuario, mayor seguridad del sistema, uso m´ as frecuente, uso m´ as eficiente, menor consumo de recursos, mayor interoperabilidad, etc. Generalmente es imposible lograr todas estas caracter´ısticas y es necesario enfocar s´ olo en algunos de estos puntos. Cada distribuci´on pondera diferentes criterios al momento de decidir la configuraci´ on por defecto. Para los usuarios avanzados esto no es un problema debido a que las configuraciones pueden cambiarse seg´ un los propios criterios y olvidarse de la configuraci´ on por defecto.

4.2.7.

Herramientas de configuraci´ on y administraci´ on

Si bien existen herramientas de administraci´on de uso com´ un y generalizado cada distribuci´on puede desarrollar y utilizar herramientas propias para la administraci´on y configuraci´ on del sistema. Existen disponibles una gran variedad de este tipo de herramientas, raz´on por la cual una distribuci´on debe elegir cual de todas ellas usar por defecto. Muchas veces se desarrollan programas y herramientas particulares para una distribuci´on. Estos programas pueden estar o no bajo una licencia “open source”. Cuando una distribuci´on desarrolla una de estas herramientas y la brinda con una licencia “open source”, nada le impide a otra distribuci´on


76

Distribuciones GNU/LINUX

adoptar esta nueva herramienta. Sin embargo, al igual que en el punto anterior aqu´ı tambi´en entran en juego las caracter´ısticas que cada distribuci´on desea. Una de las grandes diferencias marcadas entre distribuciones es el sistema de manejo y administraci´on de paquetes de software. Como ejemplo podemos mencionar el sistema de paquetes de RedHat (.RPM) y el de Debian (.DEB) y todas sus herramientas asociadas.

4.2.8.

Documentaci´ on

Cada distribuci´on es responsable de generar documentaci´ on sobre el proceso de instalaci´ on, caracter´ısticas distintivas y cualquier otro tema que sea particular a la distribuci´on. Como ejemplo podemos mencionar gu´ıas de instalaci´ on, p´aginas webs oficiales, gu´ıas de administraci´on, etc.

4.2.9.

Actualizaciones de seguridad y correcciones de bugs

Las distribuciones brindan paquetes binarios de todas las aplicaciones que la componen para evitarle al usuario la tarea de compilaci´ on (Aunque algunas solo se manejan con los fuentes). Cuando se detectan errores o fallos de seguridad en las aplicaciones los encargados de la distribuci´on son responsables de corregir esos errores, recompilar la aplicaci´on y distribuir los paquetes actualizados. Una distribuci´on es obsoleta cuando carece de esta caracter´ıstica. Existen actualmente herramientas de administraci´on que actualizan autom´aticamente nuestro sistema a trav´es de Internet (por ejemplo “apt-get” o “aptitude”). Algunas distribuciones cobran por este servicio automatizado. Otras lo brindan en forma gratuita.

4.2.10.

Integraci´ on de todo el sistema

Teniendo en cuenta todos los puntos anteriores, otra de las caracter´ısticas fundamentales de una distribuci´on es su integraci´on, pensada como un conjunto de elementos funcionando simult´ aneamente en forma organizada. Podemos mencionar como ejemplo: Garantizar el correcto funcionamiento de todo el software. Organizar y diferenciar las diferentes versiones de un mismo software. Decidir como se ubican y organizan las aplicaciones dentro del sistema de archivos. Evitar las colisiones entre diferentes programas. Manejar las dependencias de todos los paquetes de software. Completar la documentaci´ on faltante en los programas originales. Definir programas por defecto cuando hay m´ as de un programa para la misma tarea. Definir las herramientas y m´etodos de administraci´on y configuraci´ on del sistema.


4.3 Clasificaci´ on de distribuciones

4.2.11.

77

Soporte para el usuario

Una distribuci´on debe brindar alg´ un tipo de soporte oficial para los usuarios. Este soporte puede ser gratuito o pago. Adem´ as existen normalmente listas de correos y foros donde los usuarios de una distribuci´on intercambian consejos e informaci´ on.

4.2.12.

Motivaci´ on y objetivos

Adem´ as de todo el software y la documentaci´ on que posee, una distribuci´ on tiene un motivo o raz´on para su existencia. Puede solamente perseguir fines comerciales o simplemente brindar un sistema operativo 100 % libre. Muchas distribuciones nacen sencillamente porque su creador tiene la necesidad de alguna caracter´ıstica t´ecnica en particular faltante en otras distribuciones. Algunas nacen por inquietudes personales o disconformidad con todas las distribuciones actuales. Un ejemplo de esto son las distribuciones regionales, donde la principal caracter´ıstica es el soporte y la configuraci´ on de un idioma en particular por defecto. Cualquier empresa, persona particular o grupo de personas pueden crear una nueva distribuci´on. La motivaci´ on de una distribuci´on define que objetivos se proponen sus creadores y hacia donde avanza su desarrollo. Debido a la gran cantidad de posibles aplicaciones y objetivos, existen numerosas distribuciones que se diferencias en: Lenguaje y regionalizaci´ on mejor soportado por defecto. Inclusi´ on o no de programas propietarios. Pensadas para instalaci´ on fija o para funcionamiento como live cd. Orientadas a alg´ un uso particular por ejemplo en ingenier´ıa, medicina, juegos, multimedia, diagn´ostico y reparaci´on , etc. Orientadas a un tipo de usuario en especial por ejemplo para nivel principiante, normal, avanzado o alguna combinaci´on de los anteriores.

4.3.

Clasificaci´ on de distribuciones

Debido a todas las diferencias existentes entre distribuciones, es muy dif´ıcil intentar clasificarlas de alguna forma. Al momento de escribir este documento el sitio http://distrowatch.com/ tiene listadas aproximadamente 380 distribuciones GNU/linux activas, sin contar las distribuciones en discos floppy y las utilizadas para sistemas empotrados. Tomando como base las informaci´ on suministrada por distrowatch, mencionaremos algunos de estos criterios que separan a las distribuciones en distintas categor´ıas.


78

4.3.1.

Distribuciones GNU/LINUX

Activas e inactivas

Una distribuci´on est´a hecha y mantenida por desarrolladores. Cuando por alg´ un motivo los desarrolladores dejan de mantener o actualizar el proyecto y ning´ un otro se encarga del mismo, la distribuci´on pasa a estar desactualizada y sin mantenimiento. No es recomendable utilizar una distribuci´on inactiva ya que no se tendr´ an actualizaciones de seguridad ni se dispondr´ a de los avances realizados en la comunidad del software libre.

4.3.2.

Dependencia de otra distribuci´ on

Muchas de las distribuciones existentes est´an basadas en otras distribuciones. Esto genera normalmente (no siempre) una dependencia en la distribuci´on ya que todo cambio o mejora en las distribuci´on padre, se ver´a reflejada en las futuras versiones de la distribuci´on hijo. Solo pocas distribuciones pueden considerarse independientes en este sentido. La gran mayor´ıa de las distribuciones han nacido de Debian, RedHat (ahora Fedora) o Slackware.

4.3.3.

Pa´ıs de origen y desarrollo

Como se ha mencionado antes, la regionalizaci´ on y el lenguaje dan lugar a la creaci´ on de una distribuci´on. La gran mayor´ıa de las distribuciones han tenido origen en Estados Unidos, Alemania, Francia, Espa˜ na o Canad´ a. Algunas pocas, entre ellas la m´ as importante es Debian, pueden considerarse globales o internacionales, ya que gran parte de sus desarrolladores se encuentran distribuidos en todo el mundo.

4.3.4.

Popularidad

Otra forma de clasificaci´on es observar hacia cuales distribuciones se vuelcan los usuarios de GNU/linux. Las m´ as populares (Mayo de 2009) seg´ un distrowatch son: Ubuntu, OpenSuse, Fedora, Debian, Mandriva, CentOS, Slackware, Knoppix, Gentoo y Damn Small.

4.3.5.

Precio

La Mayor´ıa de las distribuciones son totalmente gratuitas y se pueden bajar de Internet sin ning´ un problema. Otras solo ofrecen en forma gratuitas versiones de evaluaci´on (incompletas) o versiones ya desactualizadas, teniendo que pagar para conseguir la versi´ on completa o la m´ as actual. Algunos ejemplos de esta u ´ltima categor´ıa son SUSE y Red-hat (despu´es de la creaci´ on de Fedora). Tambi´en se pueden conseguir distribuciones en negocios, donde se ofrecen los CDs o DVDs estampados, en bonitas cajas y a veces con impresiones de los manuales de instalaci´ on y uso.


4.3 Clasificaci´ on de distribuciones

4.3.6.

79

Licencias involucradas

Debido a que son varios los componentes de software que forman una distribuci´ on, no existe una sola licencia que se aplique a toda una distribuci´on. Observando esta problem´atica los desarrolladores de Debian comenzaron un trabajo llamado DFSG “Debian Free Software Guidelines”, que luego finalizar´ıa con la definici´on de “open source”, donde intentaron poner requisitos generales a cumplir por las licencias para que un sistema sea considerado libre y abierto. De esta forma se logra agrupar a un conjunto de licencias que tienen la caracter´ıstica de ser libres (GPL, BSD, Artistic, Public Domain, etc). Considerando esto, podemos clasificar a las distribuciones en libres y no libres ,o en “open source” o no, dependiendo de todas las licencias de los programas que contiene. Si bien la mayor´ıa de las distribuciones son libres, algunas traen componentes que no lo son. Este es el caso por ejemplo de SUSE.

4.3.7.

Manejo de paquetes de software

Toda distribuci´on necesita de un sistema para manejar la gran cantidad de software existente dentro y fuera de la distribuci´on. Cada componente de software se agrupa en paquetes que pueden ser instalados y desinstalados a trav´es de las herramientas de administraci´on propias de cada distribuci´on. Los m´ as populares y utilizados por las distribuciones son: DEB: Creado por Debian. RPM: Creado por Red-Hat. TGZ: Creado por Slackware. Tambi´en est´an surgiendo las distribuciones que utilizan paquetes de c´odigo fuente para instalar aplicaciones. De esta forma cuando el usuario decide instalar un paquete, la herramienta de manejo de paquetes obtiene el c´odigo fuente, lo compila y lo instala. Una de las distribuciones que utiliza este sistema es Gentoo Linux con su sistema Portage.

Figura 4.1: Distribuciones que se ofrecen a la venta en cajas estampadas.


80

Distribuciones GNU/LINUX

4.3.8.

Tipo de uso

Muchas distribuciones est´an pensadas y optimizadas para realizar tareas espec´ıficas. Listaremos algunas a modo de ejemplo: F´ acil uso e instalaci´ on: Ejemplo : Ubuntu, Mandriva, Suse. Para estaciones servidor: Ejemplo : Red-Hat, CentOS, Sentry Firewall CD, etc. Para demostraci´ on o uso r´ apido: Ejemplo: por lo general se trata de distribuciones Live CDs como Knoppix, Morphix, Damm Small, etc. De amplio espectro: Ejemplo : Debian, Fedora, Mandriva, Slackware. Para uso especial: Ejemplo: Bioknoppix para biolog´ıa molecular, BackTrack para seguridad, etc.

4.3.9.

Soporte principal

Adem´ as del origen de la iniciativa y su objetivo es importante conocer quienes son los desarrolladores que mantienen, actualizan y sostienen una distribuci´on. Podemos encontrar distribuciones que detr´ as tienen una o varias empresa que las impulsan, otras est´an creadas y sostenidas por asociaciones sin fines de lucro, grupos de usuarios, universidades e instituciones, etc.

4.3.10.

Arquitecturas de hardware

Existen distribuciones que soportan espec´ıficamente una sola arquitectura de hardware1 , mientras que otras soportan varias. Por ejemplo Debian Soporta 12 arquitecturas: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 1

Alpha AMD64 ARM EABI ARM HP PA-RISC Intel x86 Intel IA-64 MIPS (big endian) MIPS (little endian) PowerPC IBM S/390 SPARC

El tipo de hardware y/o procesador para el cual est´ a compilado el kernel y las aplicaciones.


4.3 Clasificaci´ on de distribuciones

81

Mientras que por ejemplo Ubuntu soporta solo 6 de estas arquitecturas, y otras solamente soportan una o dos arquitecturas. Arquitecturas en PCs hogare˜ nas Mencionaremos tres arquitecturas de procesador, sindo las dos primeras las m´ as comunes en PC hogare˜ nas: x86-32, x86 o x386: Se refiere a los procesadores Intel 80386 en adelante, incluyendo los de AMD. Todos los procesadores 386, 486, 586 (MMX), 686 (Pentiums, Celeron, Athlon, Duron) son compatibles con la arquitectura x86, incluso si poseen 64 bits funcionar´ an bien con aplicaciones compiladas para una arquitectura i386. x86-64, AMD64 o EM64T: La empresa AMD incorpor´ o registros de 64 bits en una forma compatible con los procesadores i386. A esta arquitectura se la llam´o AMD64. Luego Intel hizo algo parecido y lo llam´o EM64T. Ambas arquitecturas son similares y se las llama x8664 o AMD64. IA-64: Se trata de una arquitectura de procesador completamente diferente a los mencionados anteriormente, cuya implementaci´ on es el procesador Itanium de Intel. De altas prestaciones y para uso en servidores. No es com´ un en el mercado hogare˜ no y se menciona simplemente para evitar confusiones a la hora de bajar una distribuci´on para esta arquitectura. Antes de instalar una distribuci´on, debemos conocer nuestra arquitectura de hardware, especialmente el procesador 2 , ya que esto definir´a que juego de CDs/DVS o repositorios utilizaremos. Rendimiento Hoy en d´ıa la arquitectura m´ as com´ un es la x86-64. Hay que hacer notar que en las arquitecturas de 64 bits podemos instalar y correr sin problemas una distribuci´on de 32 bits. Utilizando una distribuci´on de 64 bits en nuestro procesador de 64 bits podr´a darnos un rendimiento apenas mayor que con una distribuci´on de 32 bits, y en algunos casos incluso obtendremos un rendimiento menor. Esto depende mucho de si la aplicaci´on esta pensada para aprovechar los 64 bits. Una aplicaci´on que se escribe sin pensar en la arquitectura de 64 bits podr´a compilarse para 64 bits pero no incrementar´ a su rendimiento, y en algunos casos ser´a incluso peor que compilada para 32 bits. Por lo tanto no se debe esperar un rendimiento mucho mayor al pasar 2

Por ejemplo el procesador Core de Intel viene en dos tipos. El original “Core Duo” eran dos n´ ucleos de un procesador de 32 bits cada uno. El procesador “Core2 Duo” son dos n´ ucleos de un procesador de 64 bits cada uno.


82

Distribuciones GNU/LINUX

a una arquitectura de 64 bits salvo si utilizamos alguna aplicaci´on particular que realmente los aproveche. El kernel Linux La primera componente de software importante que podemos pensar es el kernel del sistema operativo. En una distribuci´on para arquitectura x8664 tendremos un kernel compilado para 64 bits. Luego todas las aplicaciones estar´an compiladas para 64 bits, esten o no pensadas para aprovecharlos. En una distribuci´on para arquitectura x86-32 tendremos un kernel compilado para 32 bits, pero generalmente podremos optar tambi´en por instalar un kernel compilado para 64 bits en caso que dispongamos de un procesador con esa capacidad. Las dem´as aplicaciones estar´an todas compiladas para 32 bits. Esto nos permitir´a, sin embargo, compilar, instalar y correr aplicaciones de 64 bits.

4.4.

¿En qu´ e basar la elecci´ on?

Actualmente existen una gran cantidad y variedad de distribuciones. Es muy importante al momento de elegir una distribuci´on verificar que la misma se encuentre a´ un activa y que contin´ ue su desarrollo. Esto nos evitar´a problemas a la hora de actualizarla y solucionar problemas. Algunos de los puntos que debemos tener en cuenta son: Uso Es importante saber que uso se la dar´ a al sistema operativo. Es muy diferentes un servidor de Internet que una estaci´on de trabajo para oficina o programaci´ on, o si solo deseamos usar el sistema por un corto tiempo simplemente por curiosidad. Tiempo invertido Es necesario saber cuanto tiempo estamos dispuestos a invertir en conocer a fondo el sistema, configurarlo y adaptarlo a nuestras necesidades. Por ejemplo una distribuci´on live cd nos permite comenzar a utilizar un sistema operativo Gnu/Linux en forma instant´anea sin p´erdida de tiempo en instalaci´ on y configuraci´ on. Sin embargo si se pretende profundizar en el conocimiento del sistema, adaptarlo a nuestras necesidades espec´ıficas y utilizarlo de manera frecuente, ser´a necesario utilizar una distribuci´on con muchas mas opciones y paquetes disponibles.


4.5 ¿C´ omo obtener una distribuci´ on?

83

Asistencia y soporte Adem´ as del soporte oficial de la distribuci´on y las listas de correo es de mucha ayuda tener contactos cercanos que nos puedan ayudar en la utilizaci´on del S.O. y la resoluci´ on de problemas. Debido a las diferencias entre distribuciones, siempre es preferible poseer la misma distribuci´on que la persona que nos brindar´ a su ayuda. Filosof´ıa de la distribuci´ on Para muchos de los integrantes de la comunidad GNU/Linux, la filosof´ıa del software libre y el compromiso con la comunidad que adopta la distribuci´on son mucho mas importantes que cualquier caracter´ıstica t´ecnica. Calidad La calidad global de la distribuci´on es otro factor para elegir una distribuci´on. Podemos obtener este tipo de informaci´ on consultando a sus usuarios y escuchando sus opiniones.

4.5.

¿C´ omo obtener una distribuci´ on?

La forma m´ as com´ un en la que se presenta una distribuci´on es en formato de CD-ROM. Generalmente est´an compuestas por varios CDs o DVDs. Para instalar un sistema b´asico s´ olo son necesarios los primeros CDs (normalmente uno a dos). Los dem´as CDs traen una gran cantidad de aplicaciones complementarias que no son necesarias para el primer funcionamiento del sistema, pero s´ı cuando utilicemos el sistema m´ as frecuentemente. Algunas distribuciones tienen adem´ as versiones en uno o dos y hasta 5 DVDs. En general podremos instalar solo con el primer CD y luego utilizando repositorios en Internet, obtener la lista completa de paquetes disponibles e instalarlos a gusto. Si no disponemos de internet todo el tiempo ennuestro sistema, siempre es aconsejable poseer en nuestro poder los Cds de la distribuci´on que instalemos debido a que posteriormente ser´a necesario instalar nuevos paquetes (aplicaciones) a medida que lo necesitemos. En general las distribuciones agrupan sus paquetes (programas) en CDS seg´ un un orden de popularidad, de forma tal que los paquetes m´ as importantes estar´an contenidos en el primer CD/DVD, continuando en los siguientes y llegando al u ´ltimo donde estar´an los paquetes menos usados y populares. Existen varias formas v´alidas y legales de obtener una distribuci´on de GNU/Linux que sea 100 % software libre: Bajar las im´agenes (.iso) desde Internet y grabar los CDs. Pedir a alg´ un amigo que nos preste los CDs para copiarlos.


84

Distribuciones GNU/LINUX Pedir a alg´ un amigo que nos copie los CDs, puede cobrarnos o no seg´ un lo desee. Comprar alguna copia en un negocio. Comprar alguna distribuci´on original en un negocio con caja original, CDs estampados, manuales impreos, etc.

Cuando la distribuci´on no es 100 % software libre algunas o todas las formas anteriores no son v´alidas, dependiendo del tipo de licencias de los programas propietarios involucrados. En este caso, si bien el kernel y la mayor´ıa de los programas son “open source”, el CD, o medio f´ısico, posee programas propietarios con licencias no “open source” que restringen alguna de las libertades del software libre , por lo que el CD como conjunto queda limitado seg´ un esas pocas licencias. Para bajar una distribuci´on desde Internet debemos buscar la informaci´ on en el sitio oficial de la distribuci´on. Tambi´en existen sitios que nos ayudan a encontrar las im´agenes iso de la distribuci´on que buscamos. Por ejemplo http://www.linuxiso.org.

4.6.

¿Qu´ e distribuciones existen?

Para finalizar el cap´ıtulo presentaremos un breve listado, s´ olo a modo de ejemplo, de algunas de las distribuciones GNU/Linux existentes:

Nombre: Creadores Ian Murdock Sitio oficial:

Debian GNU/Linux Inicio 1993

Pa´ıs de origen USA

Paquetes DEB

http://www.debian.org

Comentarios: Debian es una organizaci´on sin fines de lucro y est´a soportada por miles de programadores y voluntarios distribuidos en todo el mundo. Soporta 12 arquitecturas de hardware y tiene repositorios de paquetes divididos en main, contrib y non-free. Posee tres ramas principales: Desarrollo, Testing y Estable. Es casi sin dudas el proyecto m´ as grande de software (de cualquier tipo) en todo el mundo.


4.6 ¿Qu´ e distribuciones existen?

Nombre:

Ubuntu

Creadores Canonical Ltd.

Sitio oficial:

85

Inicio Septiembre de 2004

Pa´ıs de origen Isla de Man.

Paquetes DEB

http://www.ubuntulinux.org Comentarios: Ubuntu es un emprendimiento de la empresa Canonical, basada en Debian. Soporta 6 arquitecturas. Posee versiones LTS (Long Term Support), Kubuntu (KDE), Edubuntu (orientada a educaci´ on) y Gobuntu (s´olo software open source).

Nombre:

Knoppix

Sitio oficial:

http://www.knopper.net Comentarios: Arranca completamente desde el CD sin instalaci´ on en el disco duro. Se trata de una distribuci´on de origen aleman basada en Debian.

Nombre:

Fedora

Creadores Bob Young y Marc Ewing Sitio oficial:

Inicio Septiembre de 2003

Pa´ıs de origen USA

Paquetes RPM

http://fedora.redhat.com/ Comentarios: A partir de 2003 la empresa RedHat deja de brindar gratuitamente la distribuci´on RedHat (ahora la vende) y crea el proyecto Fedora como una distribuci´on open source abierta a la comunidad.


86

Nombre:

Distribuciones GNU/LINUX

Mandriva

Creadores Mandrake y Conectiva Sitio oficial:

Inicio Abril 2005

de

Pa´ıs de origen Francia

Paquetes RPM

http://www.mandriva.com Comentarios: F´acil instalaci´ on. Detecci´on autom´atica de perif´ericos. En abril de 2005 Mandrake adquiere conectiva y cambia de nombre a Mandriva.

Nombre:

Slackware

Creadores Patrick Volkerding Sitio oficial:

Inicio 1993

Pa´ıs de origen USA

Paquetes TGZ

http://www.slackware.org Comentarios: Una de las m´ as antiguas. Rudimentaria en su majeo de paquetes, pero evitando al mismo tiempo las complejidades de un sistema moderno.

Nombre: Creadores Daniel Robbins Sitio oficial:

Gentoo Inicio 2002

Pa´ıs de origen USA

Paquetes SRC(Portage)

http://www.gentoo.org Comentarios: Gentoo Linux tiene un sistema avanzado de administraci´on de paquetes llamado Portage. Las aplicaciones se compilan optimizadas para el sistema.


4.6 ¿Qu´ e distribuciones existen?

Nombre:

GnewSense

Creadores Brian Brazil, Paul O’Malley and FSF Sitio oficial:

87

Inicio 2006

Pa´ıs de origen N/A

Paquetes DEB

http://www.gnewsense.org/ Comentarios: Se trata de una distribuci´on basada en Ubuntu, pero enfocada en cumplir estrictamente la filosof´ıa del software libre, y por lo tanto se han removido drivers o firmware propietarios, logos con licencia no libre y los repositorios de software no libre que poseen otras distros como Ubuntu o Debian. Su desarrollo es apoyado actualmente por la FSF.

Nombre: Creadores Lance Davis otros Sitio oficial:

CentOS y

Inicio 2006

Pa´ıs de origen N/A

Paquetes RPM

http://www.centos.org/ Comentarios: Se trata de una distribuci´on basada en Red-Hat Enterprise. Los desarrolladores de CentOS toman el c´odigo libre y open source publicado por Red-Hat. Quitan adem´ as los logos y la marca de Redhat (que no pueden redistribuirse). De esta forma crean una distribuci´on derivada sin componentes propietarios, pero compatible y muy similar a Red-Hat Enterprise.


88

Nombre:

Distribuciones GNU/LINUX

RedHat

Creadores Bob Young y Marc Ewing Sitio oficial:

Inicio 1994

Pa´ıs de origen USA

Paquetes RPM

http://www.redhat.com Comentarios: Es de las m´ as conocidas. A partir de 2003 la empresa RedHat deja de brindar gratuitamente la distribuci´on RedHat (ahora la vende) y crea el proyecto Fedora como rama de desarrollo open source abierta a la comunidad.

Nombre:

LinEx

Sitio oficial:

http://www.linex.org/ Comentarios: Distribuci´on espa˜ nola basada en Debian. Instalaci´ on sencilla. Creada para su aplicaci´on en escuelas de la Junta de Extremadura, Espa˜ na.

Nombre: Creadores

Sitio oficial:

SuSe Inicio 1998

Pa´ıs de origen Alemania

Paquetes RPM

http://www.suse.com Comentarios: Ha sido muy criticada por poseer programas de instalaci´ on y aplicaciones propietarias. Existen versiones como OpenSuSe que se obtienen gratuitamente.


4.7 L´ınea de tiempo de distribuciones

Nombre:

Ututo (Ututo-e)

Sitio oficial:

http://www.ututo.org/

89

Comentarios: Arranca completamente desde el CD. Se puede instalar en un archivo sobre Windows. Desarrollo argentino (Provincia de Salta). Basada en Gentoo.

Nombre:

Morphix

Sitio oficial:

http://morphix.sourceforge.net/ Comentarios: Arranca completamente desde el CD. Basada en Debian y Knoppix, pero con diferentes m´ odulos a elecci´ on lo que permite f´acilmente crear Live CDs personalizadas.

Esta informaci´ on fue obtenida de los sitios oficiales de cada distribuci´on y de: http://www.distrowatch.com. Estos datos pueden estar desactualizados y se brindan s´ olo para uso comparativo. Es inmensa la cantidad de distribuciones que existen actualmente. Las distribuciones mencionadas aqu´ı se han presentado por su relevancia, otras por su valor hist´ orico y algunas solamente como ejemplo. No se utiliz´o ning´ un orden en particular para listar las distribuciones.

4.7.

L´ınea de tiempo de distribuciones

4.8.

Autores del cap´ıtulo

c 2001-2009 Diego J. Brengi. Copyright Se otorga permiso para copiar, distribuir y/o modificar este cap´ıtulo bajo los t´erminos de la Licencia de Documentaci´ on Libre de GNU, Versi´ on 1.2 o cualquier otra versi´ on posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia est´a incluida en la secci´ on titulada GNU Free Documentation License. Los derechos de copyright sobre las figuras y logos pertenecen a sus autores.


90

Distribuciones GNU/LINUX

Figura 4.2: GNU/Linux Distro Timeline. Versi´ on 7.6 by Lundqvist. Obtenida de http://futurist.se/gldt/. Parte1


4.8 Autores del cap´ıtulo

Figura 4.3: GNU/Linux Distro Timeline. Versi´ on 7.6 by Lundqvist. Obtenida de http://futurist.se/gldt/. Parte2

91


92

Distribuciones GNU/LINUX


Cap´ıtulo 5

Categor´ıas de software libre y no libre

He aqu´ı un glosario de varias de las categor´ıas de software que se mencionan frecuentemente en discusiones sobre software libre. Se explica que categor´ıas se traslapan y cuales son parte de otras categor´ıas.

5.1.

Software libre

El software libre es software con autorizaci´on para que cualquiera pueda usarlo, copiarlo y distribuirlo, ya sea con o sin modificaciones, gratuitamente o mediante una retribuci´on. En particular, esto significa que el c´odigo fuente ´ debe estar disponible. ((Si no es fuente, no es software)). Esta es una definici´on 1 simplificada; ver tambi´en la definici´on completa . Si un programa es libre, puede ser potencialmente incluido en un sistema operativo libre tal como GNU o los sistemas GNU/Linux libres. Hay muchas maneras diferentes de hacer libre un programa: numerosas cuestiones a decidir que en muchos casos son matices, y que pueden resolverse de varias formas sin que por ello el programa deje de ser libre. Algunas de las posibles variaciones son descritas abajo. Para obtener informaci´ on sobre 1

http://www.gnu.org/philosophy/free-sw.es.html


94

Categor´ıas de software libre y no libre

licencias de software libre espec´ıficas, puede consultar el listado de licencias2 . El calificativo ((libre)) del software libre se refiere a libertad, no a gratuidad. Sin embargo, las compa˜ n´ıas de software privativo emplean en ocasiones el t´ermino ((software libre)) para referirse al precio 3 . A veces utiliza este t´ermino al hablar de la copia binaria que se puede adquirir sin cargo; y otras veces se usan para calificar la copia incluida en un ordenador reci´en adquirido. Esto no tiene nada que ver con lo que queremos dar a entender por software libre en el proyecto GNU. Debido a esta potencial confusi´ on, cuando una compa˜ n´ıa de software dice que su producto es software libre, es conveniente verificar siempre los t´erminos de esa distribuci´on concreta para ver si los usuarios tienen todas las libertades que implica el software libre. Algunas veces es verdadero software libre; y otra veces no lo es. Muchos idiomas tienen dos palabras diferentes para ((free)) como libertad y ((free)) como precio cero. Por ejemplo, el franc´es dispone de los t´erminos ((libre)) y ((gratuit)) [en espa˜ nol sucede exactamente lo mismo con los t´erminos 2

http://www.gnu.org/licenses/license-list.es.html Nota del traductor: En ingl´es ((software libre)), se escribe ((free software)), el t´ermino ((free)) puede significar ((gratis)) o ((libre)) 3

Figura 5.1: Diagrama dise˜ nado por Chao-Kuei para explicar las diferentes categor´ıas de software. Este diagrama ha sido dise˜ nado por Chao-Kuei para explicar las diferentes categor´ıas de software. Est´ a disponible como un archivo XFig, como una imagen JPEG y como una imagen PNG amplificada 1.5 veces; con los t´erminos de la GPL de GNU versi´ on 2 o posterior, de la FDL de GNU versi´ on 1.2 o posterior o de la Creative Commons Reconocimiento– Compartir bajo la misma licencia 2.0 o posterior.


5.2 Software de c´ odigo abierto (Open source)

95

((libre)) y ((gratuito))]. Esto no ocurre en ingl´es, en ingl´es existe la palabra ((gratis)), que se refiere sin ambig¨ uedad al precio, pero no dispone de un adjetivo com´ un que se refiera sin ambig¨ uedad a la libertad. Por lo tanto, si usted habla otro idioma que no sea el ingl´es, le sugerimos que traduzca el t´ermino ((free)) de ((free software)) a su idioma para hacerlo m´ as claro. Vea nuestra lista de traducciones de la expresi´ on ((free software)) a otros idiomas4 . El software libre es con frecuencia m´ as fiable que el software no libre.

5.2.

Software de c´ odigo abierto (Open source)

Mucha gente utiliza la expresi´ on software de ((c´odigo abierto)) para referirse, m´ as o menos, a la misma categor´ıa a la que pertenece el software libre. Sin embargo, no son exactamente el mismo tipo de software: ellos aceptan algunas licencias que nosotros consideramos demasiado restrictivas, y hay licencias de software libre que ellos no han aceptado. Sin embargo, las diferencias entre lo que abarcan ambas categor´ıas son pocas: casi todo el software libre es de c´odigo abierto, y casi todo el software de c´odigo abierto es libre. Nosotros preferimos la expresi´ on ((software libre)) 5 porque se refiere a libertad, algo que la expresi´ on ((c´odigo abierto)) no hace.

5.3.

Software de dominio p´ ublico

El software de dominio p´ ublico es software que no est´a protegido por derechos de autor. Es un caso especial de software libre no protegido con copyleft, lo que significa que algunas copias o versiones modificadas pueden no ser completamente libres. En algunos casos, un programa ejecutable puede ser de dominio p´ ublico sin que su c´odigo fuente est´e disponible. Este software no es software libre, porque para que lo sea es preciso que el c´odigo fuente sea accesible. Por su parte, la mayor´ıa del software libre no es software de dominio p´ ublico; est´a protegido por derechos de autor, y los poseedores de estos han dado permiso legal para que cualquiera lo emplee libremente usando una licencia de software libre. Algunas veces se utiliza el t´ermino ((dominio p´ ublico)) de una manera imprecisa queriendo decir ((libre)) o ((disponible gratuitamente)). Sin embargo, ((dominio p´ ublico)) es un t´ermino legal y significa de manera precisa ((sin derechos de autor)). Para ser lo m´ as claro posible, recomendamos el uso de ((dominio p´ ublico)) para expresar solamente este significado, y el uso de las otras expresiones para transmitir el suyo correspondiente. 4 5

http://www.gnu.org/philosophy/fs-translations.es.html http://www.gnu.org/philosophy/free-software-for-freedom.es.html


96

Categor´ıas de software libre y no libre

Bajo la convenci´on de Berna, que ha sido firmada por la mayor´ıa de los pa´ıses, a cualquier escrito nuevo se le aplica autom´aticamente derechos de autor. Esto incluye a los programas. Por lo tanto, si quiere que un programa que usted haya escrito sea de dominio p´ ublico, debe cumplir ciertos procedimientos legales para evitar que, de manera autom´atica, le sean a˜ nadidos los derechos de autor.

5.4.

Software protegido con copyleft

El software protegido con copyleft es software libre cuyos t´erminos de distribuci´on aseguran que todas las copias de todas las versiones son software libre. Esto significa, por ejemplo, que las licencias copyleft no permiten a terceros agregar ning´ un requisito adicional (a excepci´ on de un conjunto limitado de requisitos para aumentar su protecci´ on) y exige que que el c´odigo fuente sea p´ ublico. Algunas licencias copyleft, como la tercera versi´ on de la GPL, impiden otras formas de convertir en privativo el software. En el Proyecto GNU, protegemos mediante copyleft casi todo el software que escribimos, porque nuestro objetivo es dar a cada usuario las libertades que el t´ermino ((software libre)) implica. Vea Protegido con copyleft 6 para una m´ as amplia explicaci´on de c´omo funciona el copyleft y por qu´e lo usamos. El copyleft es un concepto general; para proteger realmente un programa con copyleft, usted necesita usar un conjunto espec´ıfico de t´erminos de distribuci´on. Hay muchas maneras posibles de escribir t´erminos de distribuci´on copyleft, por lo que en principio pueden existir muchas licencias de software libre copyleft. Sin embargo, en la pr´actica casi todo el software copyleft usa la Licencia P´ ublica General de GNU 7 . Generalmente, dos licencias copyleft diferentes son ((incompatibles)), lo que significa que es ilegal combinar c´odigo que est´e protegido por dichas licencias; por lo tanto, ser´ıa bueno para la comunidad que todos utilizasen una u ´nica licencia copyleft.

5.5.

Software libre no protegido con copyleft

El software libre no protegido con copyleft, incluye la autorizaci´on del autor para redistribuir y modificar el software, as´ı como el permiso para a˜ nadirle restricciones adicionales. El que un programa sea libre pero no est´e protegido con copyleft, implica que algunas copias o versiones modificadas del mismo pueden no ser completamente libres. Una compa˜ n´ıa de software podr´ıa compilar el programa, con o sin modificaciones, y distribuir el archivo ejecutable como un producto de software privativo. 6 7

http://www.gnu.org/copyleft/copyleft.es.html http://www.gnu.org/copyleft/gpl.es.html


5.6 Software cubierto por la GPL

97

El Sistema X Window 8 es un ejemplo de esto. El Consorcio X libera X11 con t´erminos de distribuci´on que lo hacen software libre no protegido con copyleft. Si usted lo desea, puede obtener una copia que tenga esos t´erminos de distribuci´on y que sea libre. Sin embargo, tambi´en hay versiones no libres, y existen estaciones de trabajo populares y tarjetas gr´ aficas para PC en las cuales solo funcionan versiones no libres. Si usted est´a usando este hardware, para usted X11 no es software libre. Incluso los propios desarrolladores de X11 hicieron a X11 software no libre durante cierto tiempo 9 .

5.6.

Software cubierto por la GPL

La GPL (General Public License/Licencia P´ ublica General 10 ) de GNU es un conjunto espec´ıfico de t´erminos de distribuci´on empleados para proteger un programa con copyleft. El Proyecto GNU utiliza esta licencia para la distribuci´on de la mayor´ıa del software de GNU.

5.7.

El sistema GNU

El sistema GNU es el sistema operativo similar a Unix, constituido en su totalidad por software libre, que hemos desarrollado en el Proyecto GNU desde 1984. Un sistema operativo similar a Unix est´a constituido por muchos programas. El sistema GNU incluye todo el software GNU, adem´ as de muchos otros paquetes, como el sistema X Window y TEX, los cuales no son software de GNU. La primera versi´ on de prueba del sistema GNU completo estaba dispo´ nible en 1996. Este inclu´ıa el Hurd de GNU, nuestro n´ ucleo, desarrollado desde 1990. En 2001 el sistema GNU (incluyendo el Hurd de GNU) comenz´ o a funcionar con bastante fiabilidad, pero el Hurd todav´ıa carec´ıa de algunas caracter´ısticas importantes, por lo que no se usa ampliamente. Entretanto, el sistema GNU/Linux, un derivado del sistema GNU que utiliza Linux como n´ ucleo en vez del Hurd de GNU, tuvo un gran ´exito desde los a˜ nos 1990. Ya que el prop´ osito de GNU es ser un sistema libre, cada una de las piezas que lo componen deben ser software libre. Sin embargo, no todas tienen por que estar protegidas por copyleft; legalmente se puede incluir cualquier tipo de software libre si este ayuda a alcanzar los objetivos t´ecnicos propuestos. Y no es necesario que cada componente sea software GNU individualmente. El sistema GNU puede incluir, e incluye, software libre no protegido por 8

http://www.x.org/ http://www.gnu.org/philosophy/x.es.html 10 http://www.gnu.org/copyleft/gpl.html 9


98

Categor´ıas de software libre y no libre

copyleft, como es el caso del Sistema X Window, que fue desarrollado en otros proyectos.

5.8.

Programas GNU

La expresi´ on ((programas GNU)) es equivalente a software de GNU. Un programa Y es un programa GNU si es software de GNU (software del Proyecto GNU). A veces nosotros decimos que es un ((paquete GNU)).

5.9.

Software de GNU

El software de GNU es el software liberado bajo el auspicio del Proyecto GNU. A un programa que sea software de GNU, tambi´en lo denominamos programa GNU o paquete GNU. El archivo README o el manual del paquete GNU deber´ıan indicar que lo es; adem´ as, el Directorio de Software Libre identifica todos los paquetes GNU. La mayor´ıa del software de GNU est´a protegido por copyleft, pero no todo; sin embargo, todo el software GNU debe ser software libre. Parte del software GNU lo escribe personal 11 de la Fundaci´on para el Software Libre, pero la mayor´ıa del software lo aportan voluntarios. Del software aportado por voluntarios, a veces el titular de los derechos de autor es la Fundaci´ on para el Software Libre y en otras son los propios colaboradores que lo escribieron.

5.10.

Software no libre

El software no libre es cualquier software que no es libre. Esto incluye al software semilibre y el software privativo.

5.11.

Software semilibre

El software semilibre es software que no es libre, pero incluye autorizaci´ on para que los particulares lo usen, lo copien, lo distribuyan y lo modifiquen (incluyendo la distribuci´on de versiones modificadas) sin prop´ ositos lucrativos. PGP es un ejemplo de un programa semilibre. El software semilibre es mucho mejor ´eticamente que el software privativo, pero sigue planteando problemas que no nos permiten utilizarlo en un sistema operativo libre. Las restricciones del copyleft est´an dise˜ nadas para proteger las libertades esenciales de todos los usuarios. Para nosotros, la u ´nica restricci´on substantiva justificada en el uso de un programa es la que previene la adici´on de 11

http://www.gnu.org/people/people.es.html


5.12 Software privativo

99

restricciones por parte de otras personas. Los programas semilibres tienen restricciones adicionales motivadas por fines puramente ego´ıstas. Es imposible incluir software semilibre en un sistema operativo libre. Esto obedece a que los t´erminos de distribuci´on para el sistema operativo libre como un todo son la conjunci´ on de los t´erminos de distribuci´on de todos los programas que lo componen. Agregando un programa semilibre al sistema har´ a al sistema como un todo s´ olo semilibre. Existen dos razones por las que no queremos que esto suceda: 1) Creemos que el software libre deber´ıa ser para todos, incluyendo empresas, no solamente para escuelas o para actividades de ocio particular. Queremos invitar a las empresas a usar el sistema GNU completo, y por lo tanto no debemos incluir un programa semilibre en ´el. 2) La distribuci´on comercial de sistemas operativos libres, incluyendo sistemas GNU/Linux, 12 es muy importante, y los usuarios aprecian el poder disponer de distribuciones comerciales en CD-ROM. Incluir un programa semilibre en un sistema operativo impedir´ıa su distribuci´on comercial en CD-ROM. En s´ı misma, la Fundaci´ on para el Software Libre no es una entidad comercial, y por lo tanto podr´ıa utilizar ((internamente)) un programa semilibre de forma legal. Pero no lo hace, porque repercutir´ıa negativamente en nuestros esfuerzos para obtener programas que pudi´eramos incluir en el sistema GNU. Mientras exista una tarea que necesite hacerse con software y no disponga de un programa que la realice, el sistema GNU tendr´ a una carencia. Debemos decir a los voluntarios: ((A´ un no tenemos un programa para hacer este trabajo en el Proyecto GNU, por lo que esperamos que ustedes lo escriban)). Si us´ aramos un programa semilibre para hacer esa tarea desacreditar´ıamos lo que nosotros mismos decimos; y se perder´ıa el ´ımpetu (el nuestro y el de quienes pudieran compartir nuestros puntos de vista) para escribir una alternativa libre. Por lo tanto, no lo hacemos.

5.12.

Software privativo

El software privativo es software que no es libre ni semilibre. Su uso, redistribuci´ on o modificaci´ on est´an prohibidos, requieren que solicite una autorizaci´on, o est´a tan restringido que de hecho no puede hacerlo libremente. La Fundaci´ on para el Software Libre sigue la norma de que u ´nicamente podemos instalar un programa privativo en nuestros ordenadores, cuando lo 12

http://www.gnu.org/gnu/linux-and-gnu.es.html


100

Categor´ıas de software libre y no libre

hacemos temporalmente y con el prop´ osito de escribir una alternativa libre a ese mismo programa. Aparte de este caso concreto, creemos que no hay excusa posible para instalar un programa privativo. Por ejemplo, cre´ımos que la instalaci´ on de Unix en nuestros ordenadores en los a˜ nos 1980 estaba justificada, porque lo est´abamos usando para escribir una alternativa libre al propio Unix. Actualmente, considerando que existen sistemas operativos libres disponibles, esta excusa ya no es v´alida; hemos eliminado todos los sistemas operativos no libres; y en cualquier ordenador nuevo instalamos un sistema operativo completamente libre. Nosotros no insistimos en que los usuarios o colaboradores de GNU sigan esta norma. Esta norma la creamos para nosotros mismos. Pero esperamos que tambi´en ellos decidan seguirla.

5.13.

Freeware

El t´ermino ((freeware)) no tiene una definici´on clara aceptada, pero es usado com´ unmente para referirse a paquetes que se pueden distribuir pero no modificar (y cuyo c´odigo fuente no est´a disponible). Estos paquetes no son software libre. Por lo tanto, por favor, no use el t´ermino ((freeware)) para referirse al software libre.

5.14.

Shareware

El Shareware es software del que se permite redistribuir copias, pero que por cada copia utilizada, el usuario debe pagar un cargo por licencia. El shareware no es software libre, ni siquiera semilibre. Esto es as´ı por dos razones: 1) Para la mayor´ıa del shareware, el c´odigo fuente no est´a disponible; por lo tanto, usted no puede modificar el programa de ninguna manera. 2) No se puede hacer una copia de shareware e instalarla sin pagar un cargo por licencia, incluso en el caso de individuos que lo utilicen para actividades sin ´ animo de lucro (en la pr´actica, los usuarios ignoran con frecuencia los t´erminos de distribuci´on y lo hacen de todas formas, pero estos t´erminos no lo permiten).

5.15.

Software privado

El software privado, o a medida, es software desarrollado para un usuario (generalmente una organizaci´on o una compa˜ n´ıa). Este usuario lo tiene en su poder y lo utiliza, y no lo libera al p´ ublico ni como c´odigo fuente ni como binario.


5.16 Software comercial

101

Un programa privado es software libre en un sentido trivial si su u ´nico usuario tiene plenos derechos sobre ´el. Sin embargo, al considerar la cuesti´ on con m´ as profundidad, el preguntarse si tal programa es o no libre pierde su sentido. En general no creemos que desarrollar un programa y no liberarlo sea un error. Hay ocasiones en las que un programa es tan u ´til que acapararlo para s´ı constituye un perjuicio para la humanidad. Sin embargo, la mayor´ıa de los programas no son tan maravillosos, y no liberarlos no resulta particularmente da˜ nino. Por lo tanto, no hay ning´ un conflicto entre el desarrollo de software privado o a medida y los principios del movimiento de software libre. Casi toda la contrataci´ on de programadores tiene por objeto el desarrollo de software a medida; por lo tanto, la mayor´ıa de los trabajos de programaci´ on son, o podr´ıan ser, hechos de un modo compatible con el movimiento de software libre.

5.16.

Software comercial

El software comercial es aquel desarrollado por un negocio que pretende obtener dinero de su utilizaci´ on. ¡((Comercial)) y ((privativo)) no son lo mismo! La mayor´ıa del software comercial es privativo, pero hay software libre comercial, y hay software no libre no comercial. Por ejemplo, Ada de GNU siempre se distribuye bajo los t´erminos de la GPL de GNU, y cada una de sus copias es software libre; sin embargo, sus desarrolladores hacen contratos de mantenimiento. En ocasiones los clientes interesados comentan a los vendedores: ((Nos sentir´ıamos m´ as seguros con un compilador comercial)). A lo que los vendedores responden: ((Ada de GNU es un compilador comercial; con la particularidad de que adem´ as es software libre)). Para el Proyecto GNU, el ´enfasis se hace a otro nivel: lo importante es que Ada de GNU es software libre; el que sea comercial no es una cuesti´ on crucial. Sin embargo, el desarrollo adicional de Ada de GNU resultante del hecho de que sea comercial es, definitivamente, beneficioso. Por favor, ayude a difundir la idea de que el software libre comercial es posible. Esto lo puede hacer esforz´ andose en no decir ((comercial)) cuando lo que quiere decir es ((privativo)). Otros textos para leer http://www.gnu.org/philosophy/philosophy. es.html

5.17.

Autores del cap´ıtulo

c Copyright 1996, 1997, 1998, 2001, 2006 Free Software Foundation, Inc.,


102

Categor´ıas de software libre y no libre 51 Franklin St, Fifth Floor, Boston, MA 02110, USA Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Se permite la copia literal y la distribuci´on de la totalidad de este art´ıculo por cualquier medio y en cualquier soporte, siempre que se conserve esta nota.

Fuente: http://www.gnu.org/philosophy/categories.es.html


Cap´ıtulo 6

Licencia de este libro Este libro consiste principalmente en una recopilaci´on de textos ya que posee art´ıculos y escritos de varios autores, cada uno con diferentes condiciones de copia, distribuci´on y modificaci´ on. Si bien todos ellos permiten la copia del art´ıculo, en algunos casos por tratarse de opiniones del autor, no se permite la modificaci´ on del texto. Por este motivo no puede aplicarse una licencia a todo el libro en su conjunto. Al final de cada cap´ıtulo se menciona a los autores y los correspondientes avisos de copyright y condiciones. Todo material propio de Diego Javier Brengi est´a cubierto por la licencia GFDL bajo los siguientes t´erminos: c 2001-2009 Diego J. Brengi. Copyright Se otorga permiso para copiar, distribuir y/o modificar este texto bajo los t´erminos de la Licencia de Documentaci´ on Libre de GNU, Versi´ on 1.2 o cualquier otra versi´ on posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia est´a incluida en la secci´ on titulada GNU Free Documentation License. Todo el material obtenido de la Wikipedia tambi´en est´a cubierto por la GFDL.


104

Licencia de este libro


Ap´ endice A

Conceptos de sistemas operativos A.1.

¿Qu´ e es el Sistema Operativo?

Un sistema operativo (SO) es un conjunto de programas destinados a permitir la comunicaci´ on del usuario con un ordenador y gestionar sus recursos de manera eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona la interacci´ on entre el hardware y el usuario final de la m´ aquina, desde los niveles m´ as b´asicos. Hoy en d´ıa un sistema operativo se puede encontrar normalmente en la mayor´ıa de los aparatos electr´ onicos complejos que podamos utilizar sin necesidad de estar conectados a un ordenador y que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la m´ aquina y que ´esta cumpla con sus funciones; ´este es el caso de: tel´efonos m´ oviles, reproductores de DVD, Equipos de audio, y muchos m´ as.

A.2.

Funciones b´ asicas de un sistema operativo

Los sistemas operativos, motivados por su condici´ on de capa software que posibilita y simplifica el manejo de la computadora, desempe˜ nan una serie de funciones b´asicas esenciales para la gesti´ on de la m´ aquina. Entre las m´ as destacables, cada una ejercida por un componente interno (m´ odulo en n´ ucleos monol´ıticos o servidor en microkernels), podemos rese˜ nar las siguientes: Gesti´ on de los recursos de la m´ aquina. Ejecuci´on de servicios para los programas Ejecuci´on de instrucciones (comandos) de los usuarios (Shell y/o X Server).


106

Conceptos de sistemas operativos

A su vez, los servicios principales ofertados por un sistema operativo, accesibles y manipulables a trav´es de su API 1 de programaci´ on, son los siguientes: Gesti´ on de procesos. Gesti´ on de memoria. Gesti´ on de la E/S (Entrada/Salida). Gesti´ on de archivos y directorios. Comunicaci´ on y sincronizaci´on entre procesos. Seguridad y protecci´ on.

A.3.

Caracter´ısticas

A.3.1.

Administraci´ on de tareas

Monotarea: Si solamente puede ejecutar un programa (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a funcionar un programa, continuar´ a haci´endolo hasta su finalizaci´on o interrupci´ on. Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, perif´ericos) de forma alternativa a los programas que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.

A.3.2.

Administraci´ on de usuarios

Monousuario: Si s´ olo permite ejecutar los programas de un usuario al mismo tiempo. 1 Una API (del ingl´es Application Programming Interface - Interfaz de Programaci´ on de Aplicaciones) es un conjunto de especificaciones de comunicaci´ on entre componentes software. Se trata del conjunto de llamadas al sistema que ofrecen acceso a los servicios del sistema desde los procesos y representa un m´etodo para conseguir abstracci´ on en la programaci´ on, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de los principales prop´ ositos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evit´ andose el trabajo de programar todo desde el principio. Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado la implementaci´ on de esa API.


A.4 Historia de los Sistemas Operativos

107

Multiusuario: Si permite que varios usuarios ejecuten simult´ aneamente sus programas, accediendo a la vez a los recursos del ordenador. Normalmente estos SO. utilizan m´etodos de protecci´ on de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.

A.3.3.

Manejo de recursos

Centralizado: Si permite utilizar los recursos de un solo ordenador. Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perif´ericos. . . ) de m´ as de un ordenador al mismo tiempo .

A.4.

Historia de los Sistemas Operativos

A.4.1.

A˜ nos 40

A finales de los a˜ nos 40, con la aparici´on de la primera generaci´on de computadoras se realizaba lo que se llama el proceso en serie. Por aquel entonces no exist´ıan los sistemas operativos, y los programadores deb´ıan interactuar con el hardware del computador sin ayuda externa. Esto hac´ıa que el tiempo de preparaci´on para realizar una tarea fuera excesivo. Adem´ as para poder utilizar la computadora deb´ıa hacerse por turnos. Para ello se rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador necesitaba para realizar su trabajo. En aquel entonces las computadoras eran m´ aquinas muy costosas que realizaban complejos c´alculos matem´ aticos lo que hac´ıa que estuvieran muy solicitadas y que s´ olo pudieran utilizarse en periodos breves de tiempo.

A.4.2.

A˜ nos 50

Para facilitar la interacci´ on entre persona y computador, los sistemas operativos hacen una aparici´on discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal. Monitor residente Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria, ley´endolos de una cinta o de tarjetas perforadas, y ejecutarlos. El principal problema de estos sistemas era encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente. Procesamiento por lotes Como soluci´on para optimizar el tiempo de montaje surgi´o la idea de agrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas,


108

Conceptos de sistemas operativos

de forma que se ejecutaran uno a continuaci´ on de otro sin perder apenas tiempo en la transici´on. Para realizar esto se utiliz´o una t´ecnica de on-lining. La idea era dedicar un ordenador perif´erico, de menor coste y potencia, a convertir las tarjetas o la cinta perforada en informaci´ on sobre cinta magn´etica, y la salida de la cinta magn´etica en salida sobre impresora o cinta perforada. Una vez que se procesaban varios trabajos a cinta, ´esta se desmontaba del ordenador perif´erico, y se llevaba a mano para su procesamiento por el ordenador principal. Cuando el ordenador principal llenaba una cinta de salida, ´esta se llevaba al ordenador perif´erico para su paso a impresora o cinta perforada. Almacenamiento temporal Su objetivo era disminuir el tiempo de carga de los programas, simultaneando la carga del programa o la salida de datos con la ejecuci´ on de la siguiente tarea. Para ello se utilizaban dos t´ecnicas, el buffering y el spooling. Sistemas operativos desarrollados durante esta ´ epoca En esta etapa estar´ıan incluidos: GM OS: Desarrollado por General Motors para el IBM 701. Input Output System: Desarrollado por General Motors y la aviaci´ on norteamericana para el IBM 704. FORTRAN Monitor system: Desarrollado por la aviaci´ on norteamericana para el IBM 709. SAGE: (Semi-Automatic Ground Environment) Primer sistema de control en tiempo real, desarrollado para IBM AN/FSQ7. SOS: Desarrollado por el IBM SHARE Users Group para el IBM 709.

A.4.3.

A˜ nos 60

En esta d´ecada se produjeron cambios notorios en varios campos de la inform´atica, la mayor´ıa orientados a seguir incrementando el potencial de los computadores. Para ello se utilizaban t´ecnicas de lo m´ as diversas: Multiprogramaci´ on En un sistema multiprogramado la memoria principal alberga a m´ as de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecuci´ on realiza una operaci´on de Entrada / Salida (E/S); en lugar de esperar a que termine la operaci´on de E/S, se pasa a ejecutar otro programa. Si ´este realiza, a su vez, otra operaci´on de E/S, se


A.4 Historia de los Sistemas Operativos

109

mandan las ´ ordenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera ´optima los recursos disponibles. Tiempo real Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves un gran n´ umero de sucesos, en su mayor´ıa externos al ordenador. Si el sistema no respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones. Tiempo compartido En este punto tenemos un sistema que hace buen uso de la electr´onica disponible, pero adolece de falta de interactividad; para conseguirla debe convertirse en un sistema multiusuario, en el cual existen varios usuarios con un Terminal en l´ınea, conocida como ”Terminal Boba”, utilizando el modo de operaci´on de tiempo compartido. En estos sistemas los programas de los distintos usuarios residen en memoria. Al realizar una operaci´on de E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramaci´on. Pero, a diferencia de ´esta, cuando un programa lleva cierto tiempo ejecut´ andose el sistema operativo lo detiene para que se ejecute otra aplicaci´on. Con esto se consigue repartir la CPU por igual entre los programas de los distintos usuarios y los procesos del SO. De este modo los programas de los usuarios no se sienten demasiado ralentizados por el hecho de que los recursos sean compartidos y aparentemente se ejecutan de manera concurrente. Multiprocesador Permite trabajar con m´ aquinas que poseen m´ as de un procesador. En un multiprocesador los procesadores comparten memoria y reloj. Sistemas operativos desarrollados Adem´ as del Atlas Supervisor y el OS/360, utilizados en m´ aquinas concretas, lo m´ as destacable de la d´ecada es el nacimiento de Unix, que hoy en d´ıa es una de las plataformas m´ as extendidas en el mundo de la inform´atica.


110

A.4.4.

Conceptos de sistemas operativos

A˜ nos 70

Debido al avance de la electr´onica, pudieron empezar a crearse circuitos con miles de transistores en un cent´ımetro cuadrado de silicio, lo que llevar´ıa, pocos a˜ nos despu´es, a producirse los primeros sistemas integrados. ´ Esta d´ecada se podr´ıa definir como la de los sistemas de prop´ osito general y en ella se desarrollan tecnolog´ıas que se siguen utilizando en la actualidad. Es en los 70 cuando se produce el boom de los mini ordenadores y la inform´atica se acerca al nivel de usuario. En lo relativo a lenguajes de programaci´ on, es de se˜ nalar la aparici´on de Pascal y C, el u ´ltimo de los cuales ser´ıa reutilizado para reescribir por completo el c´odigo del sistema operativo Unix, convirti´endolo en el primero implementado en un lenguaje de alto nivel. En el campo de la programaci´ on l´ ogica se dio a luz la primera implementaci´ on de Prolog, y en la revolucionaria orientaci´ on a objetos, Smalltalk. Inconvenientes de los sistemas existentes Se trataba de sistemas grandes y costosos, pues antes no se hab´ıa construido nada similar y muchos de los proyectos desarrollados terminaron con costes muy por encima del presupuesto. Adem´ as, aunque formaban una capa entre el hardware y el usuario, ´este deb´ıa conocer un complejo lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran consumo de recursos que ocasionaban, debido a los grandes espacios de memoria principal y secundaria ocupados, as´ı como el tiempo de procesador consumido. Es por esto que se intent´o hacer hincapi´e en mejorar las t´ecnicas ya existentes de multiprogramaci´on y tiempo compartido. Caracter´ısticas de los nuevos sistemas Para solventar los problemas antes comentados, se realiz´ o un costos´ısimo trabajo para interponer una amplia capa de software entre el usuario y la m´ aquina, de forma que el primero no tuviese que conocer ning´ un detalle de la circuiter´ıa. Sistemas operativos desarrollados MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto cooperativo liderado por Fernando Corbat´ o del MIT, con General Electric y los laboratorios Bell, que comenz´ o en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se desarroll´ o inicialmente para el mainframe GE-645, un sistema de 36 bits; despu´es fue soportado por la serie de m´ aquinas Honeywell 6180.


A.5 Autores del cap´ıtulo

111

Fue uno de los primeros sistemas operativos de tiempo compartido, que implement´o un solo nivel de almacenamiento para el acceso a los datos, desechando la clara distinci´on entre los ficheros y los procesos en memoria,y uno de los primeros sistemas multiprocesador. MVS (Multiple Virtual Storage): Fue el sistema operativo m´ as usado en los modelos de mainframes -ordenadores grandes, potentes y caros usados principalmente por grandes compa˜ n´ıas para el procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM, desarrollado tambi´en por IBM y lanzado al mercado por primera vez en 1974. Como caracter´ısticas destacables, permit´ıa la ejecuci´on de m´ ultiples tareas, adem´ as de que introdujo el concepto de memoria virtual y finalmente a˜ nadi´o la capacidad de que cada programa tuviera su propio espacio de direccionamiento de memoria, de ah´ı su nombre. CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intel y el Zilog Z80, sali´ o al mercado en 1976, distribuy´endose en disquetes de ocho pulgadas. Fue el SO m´ as usado en las computadoras personales de esta d´ecada. Su ´exito se debi´o a que era portable, permitiendo que diferentes programas interactuasen con el hardware de una manera estandarizada.

A.5.

Autores del cap´ıtulo

Material obtenido de Wikipedia: http://es.wikipedia.org/wiki/Sistema_operativo. http://es.wikipedia.org/wiki/Historia_y_evoluci%C3%B3n_de_los_sistemas_ operativos Selecci´ on de art´ıculos y edici´ on realizada por Heber Juli´an Herrera y Rub´en Alejandro Casas.


112

Conceptos de sistemas operativos


Ap´ endice B

Licencia P´ ublica GNU Esta es la conocida GNU Public License (GPL), versi´ on 2 (de junio de 1.991), que cubre la mayor parte del software de la Free Software Foundation, y muchos m´ as programas. Los autores de esta traducci´on son: Jes´ us Gonz´alez Barahona Pedro de las Heras Quir´ os

B.1.

Traducci´ on al castellano

Esta es una traducci´on no oficial al espa˜ nol de la GNU General Public License. No ha sido publicada por la Free Software Foundation, y no establece legalmente las condiciones de distribuci´on para el software que usa la GNU GPL. Estas condiciones se establecen solamente por el texto original, en ingl´es, de la GNU GPL. Sin embargo, esperamos que esta traducci´on ayude a los hispanohablantes a entender mejor la GNU GPL.

This is an unofficial translation of the GNU General Public License into Spanish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL –only the original English text of the GNU GPL does that. However, we hope that this translation will help Spanish speakers understand the GNU GPL better. c Copyright 1989, 1991 Free Software Foundation, Inc. http://fsf.org/ 675 Mass Ave, Cambridge, MA 02139, EEUU Se permite la copia y distribuci´on de copias literales de este documento, pero no se permite su modificaci´ on.


114

B.2.

Licencia P´ ublica GNU

Pre´ ambulo

Las licencias que cubren la mayor parte del software est´an dise˜ nadas para quitarle a usted la libertad de compartirlo y modificarlo. Por el contrario, la Licencia P´ ublica General de GNU pretende garantizarle la libertad de compartir y modificar software libre, para asegurar que el software es libre para todos sus usuarios. Esta Licencia P´ ublica General se aplica a la mayor parte del software del la Free Software Foundation y a cualquier otro programa si sus autores se comprometen a utilizarla. Existe otro software de la Free Software Foundation que est´a cubierto por la Licencia P´ ublica General de GNU para Bibliotecas. Si quiere, tambi´en puede aplicarla a sus propios programas. Cuando hablamos de software libre, estamos refiri´endonos a libertad, no a precio. Nuestras Licencias P´ ublicas Generales est´an dise˜ nadas para asegurarnos de que tenga la libertad de distribuir copias de software libre (y cobrar por ese servicio si quiere), de que reciba el c´odigo fuente o que pueda conseguirlo si lo quiere, de que pueda modificar el software o usar fragmentos de ´el en nuevos programas libres, y de que sepa que puede hacer todas estas cosas. Para proteger sus derechos necesitamos algunas restricciones que prohiban a cualquiera negarle a usted estos derechos o pedirle que renuncie a ellos. Estas restricciones se traducen en ciertas obligaciones que le afectan si distribuye copias del software, o si lo modifica. Por ejemplo, si distribuye copias de uno de estos programas, sea gratuitamente, o a cambio de una contraprestaci´on, debe dar a los receptores todos los derechos que tiene. Debe asegurarse de que ellos tambi´en reciben, o pueden conseguir, el c´odigo fuente. Y debe mostrarles estas condiciones de forma que conozcan sus derechos. Protegemos sus derechos con la combinaci´on de dos medidas: 1) Ponemos el software bajo copyright 2) Le ofrecemos esta licencia, que le da permiso legal para copiar, distribuir y/o modificar el software. Tambi´en, para la protecci´ on de cada autor y la nuestra propia, queremos asegurarnos de que todo el mundo comprende que no se proporciona ninguna garant´ıa para este software libre. Si el software se modifica por cualquiera y ´este a su vez lo distribuye, queremos que sus receptores sepan que lo que tienen no es el original, de forma que cualquier problema introducido por otros no afecte a la reputaci´on de los autores originales. Por u ´ltimo, cualquier programa libre est´a constantemente amenazado por patentes sobre el software. Queremos evitar el peligro de que los redistribuidores de un programa libre obtengan patentes por su cuenta, convirtiendo de facto el programa en propietario. Para evitar esto, hemos dejado claro que cualquier patente debe ser pedida para el uso libre de cualquiera, o no ser pedida.


B.3 T´ erminos y condiciones para la copia, distribuci´ on y modificaci´ on

115

Los t´erminos exactos y las condiciones para la copia, distribuci´on y modificaci´ on se exponen a continuaci´ on.

B.3.

T´ erminos y condiciones para la copia, distribuci´ on y modificaci´ on

1) Esta Licencia se aplica a cualquier programa u otro tipo de trabajo que contenga una nota colocada por el tenedor del copyright diciendo que puede ser distribuido bajo los t´erminos de esta Licencia P´ ublica General. En adelante, ((Programa)) se referir´ a a cualquier programa o trabajo que cumpla esa condici´ on y ((trabajo basado en el Programa)) se referir´ a bien al Programa o a cualquier trabajo derivado de ´el seg´ un la ley de copyright. Esto es, un trabajo que contenga el programa o una proci´ on de ´el, bien en forma literal o con modificaciones y/o traducido en otro lenguaje. Por lo tanto, la traducci´on est´a incluida sin limitaciones en el t´ermino ((modificaci´ on)). Cada concesionario (licenciatario) ser´a denominado ((usted)). Cualquier otra actividad que no sea la copia, distribuci´on o modificaci´ on no est´a cubierta por esta Licencia, est´a fuera de su a´mbito. El acto de ejecutar el Programa no est´a restringido, y los resultados del Programa est´an cubiertos u ´nicamente si sus contenidos constituyen un trabajo basado en el Programa, independientemente de haberlo producido mediante la ejecuci´ on del programa. El que esto se cumpla, depende de lo que haga el programa. 2) Usted puede copiar y distribuir copias literales del c´odigo fuente del Programa, seg´ un lo has recibido, en cualquier medio, supuesto que de forma adecuada y bien visible publique en cada copia un anuncio de copyright adecuado y un repudio de garant´ıa, mantenga intactos todos los anuncios que se refieran a esta Licencia y a la ausencia de garant´ıa, y proporcione a cualquier otro receptor del programa una copia de esta Licencia junto con el Programa. Puede cobrar un precio por el acto f´ısico de transferir una copia, y puede, seg´ un su libre albedr´ıo, ofrecer garant´ıa a cambio de unos honorarios. 3) Puede modificar su copia o copias del Programa o de cualquier porci´ on de ´el, formando de esta manera un trabajo basado en el Programa, y copiar y distribuir esa modificaci´ on o trabajo bajo los t´erminos del apartado 1, antedicho, supuesto que adem´ as cumpla las siguientes condiciones: a) Debe hacer que los ficheros modificados lleven anuncios prominentes indicando que los ha cambiado y la fecha de cualquier cambio.


116

Licencia P´ ublica GNU b) Debe hacer que cualquier trabajo que distribuya o publique y que en todo o en parte contenga o sea derivado del Programa o de cualquier parte de ´el sea licenciada como un todo, sin carga alguna, a todas las terceras partes y bajo los t´erminos de esta Licencia. c) Si el programa modificado lee normalmente ´ordenes interactivamente cuando es ejecutado, debe hacer que, cuando comience su ejecuci´ on para ese uso interactivo de la forma m´ as habitual, muestre o escriba un mensaje que incluya un anuncio de copyright y un anuncio de que no se ofrece ninguna garant´ıa (o por el contrario que s´ı se ofrece garant´ıa) y que los usuarios pueden redistribuir el programa bajo estas condiciones, e indicando al usuario c´omo ver una copia de esta licencia. (Excepci´ on: si el propio programa es interactivo pero normalmente no muestra ese anuncio, no se requiere que su trabajo basado en el Programa muestre ning´ un anuncio). Estos requisitos se aplican al trabajo modificado como un todo. Si partes identificables de ese trabajo no son derivadas del Programa, y pueden, razonablemente, ser consideradas trabajos independientes y separados por ellos mismos, entonces esta Licencia y sus t´erminos no se aplican a esas partes cuando sean distribuidas como trabajos separados. Pero cuando distribuya esas mismas secciones como partes de un todo que es un trabajo basado en el Programa, la distribuci´on del todo debe ser seg´ un los t´erminos de esta licencia, cuyos permisos para otros licenciatarios se extienden al todo completo, y por lo tanto a todas y cada una de sus partes, con independencia de qui´en la escribi´ o. Por lo tanto, no es la intenci´ on de este apartado reclamar derechos o desafiar sus derechos sobre trabajos escritos totalmente por usted mismo. El intento es ejercer el derecho a controlar la distribuci´on de trabajos derivados o colectivos basados en el Programa. Adem´ as, el simple hecho de reunir un trabajo no basado en el Programa con el Programa (o con un trabajo basado en el Programa) en un volumen de almacenamiento o en un medio de distribuci´on no hace que dicho trabajo entre dentro del ´ambito cubierto por esta Licencia.

4) Puede copiar y distribuir el Programa (o un trabajo basado en ´el, seg´ un se especifica en el apartado 2, como c´odigo objeto o en formato ejecutable seg´ un los t´erminos de los apartados 1 y 2, supuesto que adem´ as cumpla una de las siguientes condiciones: a) Acompa˜ narlo con el c´odigo fuente completo correspondiente, en formato electr´onico, que debe ser distribuido seg´ un se especifica


B.3 T´ erminos y condiciones para la copia, distribuci´ on y modificaci´ on

117

en los apartados 1 y 2 de esta Licencia en un medio habitualmente utilizado para el intercambio de programas, o b) Acompa˜ narlo con una oferta por escrito, v´alida durante al menos tres a˜ nos, de proporcionar a cualquier tercera parte una copia completa en formato electr´onico del c´odigo fuente correspondiente, a un coste no mayor que el de realizar f´ısicamente la distribuci´ on del fuente, que ser´a distribuido bajo las condiciones descritas en los apartados 1 y 2 anteriores, en un medio habitualmente utilizado para el intercambio de programas, o c) Acompa˜ narlo con la informaci´ on que recibiste ofreciendo distribuir el c´odigo fuente correspondiente. (Esta opci´ on se permite s´ olo para distribuci´on no comercial y s´ olo si usted recibi´o el programa como c´odigo objeto o en formato ejecutable con tal oferta, de acuerdo con el apartado b anterior). 5) Por c´odigo fuente de un trabajo se entiende la forma preferida del trabajo cuando se le hacen modificaciones. Para un trabajo ejecutable, se entiende por c´odigo fuente completo todo el c´odigo fuente para todos los m´ odulos que contiene, m´ as cualquier fichero asociado de definici´on de interfaces, m´ as los guiones utilizados para controlar la compilaci´ on e instalaci´ on del ejecutable. Como excepci´ on especial el c´odigo fuente distribuido no necesita incluir nada que sea distribuido normalmente (bien como fuente, bien en forma binaria) con los componentes principales (compilador, kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio componente acompa˜ ne al ejecutable. Si la distribuci´on del ejecutable o del c´odigo objeto se hace mediante la oferta acceso para copiarlo de un cierto lugar, entonces se considera la oferta de acceso para copiar el c´odigo fuente del mismo lugar como distribuci´on del c´odigo fuente, incluso aunque terceras partes no est´en forzadas a copiar el fuente junto con el c´odigo objeto. No puede copiar, modificar, sublicenciar o distribuir el Programa excepto como prev´e expresamente esta Licencia. Cualquier intento de copiar, modificar sublicenciar o distribuir el Programa de otra forma es inv´alida, y har´ a que cesen autom´aticamente los derechos que te proporciona esta Licencia. En cualquier caso, las partes que hayan recibido copias o derechos de usted bajo esta Licencia no cesar´ an en sus derechos mientras esas partes contin´ uen cumpli´endola. 6) No est´a obligado a aceptar esta licencia, ya que no la ha firmado. Sin embargo, no hay hada m´ as que le proporcione permiso para modificar o distribuir el Programa o sus trabajos derivados. Estas acciones est´an prohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modifica o distribuye el Programa (o cualquier trabajo basado en el Programa), est´a indicando que acepta esta Licencia para poder hacerlo, y todos sus


118

Licencia P´ ublica GNU t´erminos y condiciones para copiar, distribuir o modificar el Programa o trabajos basados en ´el.

7) Cada vez que redistribuya el Programa (o cualquier trabajo basado en el Programa), el receptor recibe autom´aticamente una licencia del licenciatario original para copiar, distribuir o modificar el Programa, de forma sujeta a estos t´erminos y condiciones. No puede imponer al receptor ninguna restricci´on m´ as sobre el ejercicio de los derechos aqu´ı garantizados. No es usted responsable de hacer cumplir esta licencia por terceras partes. 8) Si como consecuencia de una resoluci´ on judicial o de una alegaci´on de infracci´ on de patente o por cualquier otra raz´on (no limitada a asuntos relacionados con patentes) se le imponen condiciones (ya sea por mandato judicial, por acuerdo o por cualquier otra causa) que contradigan las condiciones de esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si no puede realizar distribuciones de forma que se satisfagan simult´ aneamente sus obligaciones bajo esta licencia y cualquier otra obligaci´on pertinente entonces, como consecuencia, no puede distribuir el Programa de ninguna forma. Por ejemplo, si una patente no permite la redistribuci´ on libre de derechos de autor del Programa por parte de todos aquellos que reciban copias directa o indirectamente a trav´es de usted, entonces la u ´nica forma en que podr´ıa satisfacer tanto esa condici´ on como esta Licencia ser´ıa evitar completamente la distribuci´on del Programa. Si cualquier porci´ on de este apartado se considera inv´alida o imposible de cumplir bajo cualquier circunstancia particular ha de cumplirse el resto y la secci´ on por entero ha de cumplirse en cualquier otra circunstancia. No es el prop´ osito de este apartado inducirle a infringir ninguna reivindicaci´ on de patente ni de ning´ un otro derecho de¸c propiedad o impugnar la validez de ninguna de dichas reivindicaciones. Este apartado tiene el u ´nico prop´ osito de proteger la integridad del sistema de distribuci´on de software libre, que se realiza mediante pr´acticas de licencia p´ ublica. Mucha gente ha hecho contribuciones generosas a la gran variedad de software distribuido mediante ese sistema con la confianza de que el sistema se aplicar´a consistentemente. Ser´ a el autor/donante quien decida si quiere distribuir software mediante cualquier otro sistema y una licencia no puede imponer esa elecci´ on. Este apartado pretende dejar completamente claro lo que se cree que es una consecuencia del resto de esta Licencia. 9) Si la distribuci´on y/o uso de el Programa est´a restringida en ciertos pa´ıses, bien por patentes o por interfaces bajo copyright, el tenedor del copyright que coloca este Programa bajo esta Licencia puede


B.3 T´ erminos y condiciones para la copia, distribuci´ on y modificaci´ on

119

a˜ nadir una limitaci´on expl´ıcita de distribuci´on geogr´ afica excluyendo esos pa´ıses, de forma que la distribuci´on se permita s´ olo en o entre los pa´ıses no excluidos de esta manera. En ese caso, esta Licencia incorporar´ a la limitaci´on como si estuviese escrita en el cuerpo de esta Licencia. 10) La Free Software Foundation puede publicar versiones revisadas y/o nuevas de la Licencia P´ ublica General de tiempo en tiempo. Dichas nuevas versiones ser´an similares en esp´ıritu a la presente versi´ on, pero pueden ser diferentes en detalles para considerar nuevos problemas o situaciones. Cada versi´ on recibe un n´ umero de versi´ on que la distingue de otras. Si el Programa especifica un n´ umero de versi´ on de esta Licencia que se refiere a ella y a ((cualquier versi´ on posterior)), tienes la opci´on de seguir los t´erminos y condiciones, bien de esa versi´ on, bien de cualquier versi´ on posterior publicada por la Free Software Foundation. Si el Programa no especifica un n´ umero de versi´ on de esta Licencia, puedes escoger cualquier versi´ on publicada por la Free Software Foundation. 11) Si quiere incorporar partes del Programa en otros programas libres cuyas condiciones de distribuci´on son diferentes, escribe al autor para pedirle permiso. Si el software tiene copyright de la Free Software Foundation, escribe a la Free Software Foundation: algunas veces hacemos excepciones en estos casos. Nuestra decisi´ on estar´a guiada por el doble objetivo de de preservar la libertad de todos los derivados de nuestro software libre y promover el que se comparta y reutilice el software en general.

Ausencia de garant´ıa 12) Como el programa se licencia libre de cargas, no se ofrece ninguna garant´ıa sobre el programa, en todas la exten´ n permitida por la legislacio ´ n aplicable. Excepto cuansio do se indique de otra forma por escrito, los tenedores del copyright y/u otras partes proporcionan el programa ((tal cual)), sin garant´ıa de ninguna clase, bien expresa o impl´ıci´ n, pero sin limitacio ´ n a las garant´ıas merta, con inclusio ´ sito cantiles impl´ıcitas o a la conveniencia para un propo particular. Cualquier riesgo referente a la calidad y prestaciones del programa es asumido por usted. Si se probase que el Programa es defectuoso, asume el coste de cual´ n o correccio ´ n. quier servicio, reparacio ´n caso, salvo que lo requiera la legislacio ´ nc 13) En ningu ¸ apli´ cable o haya sido acordado por escrito, ningun tenedor


120

Licencia P´ ublica GNU del copyright ni ninguna otra parte que modifique y/o re´n se permite en esta Licencia distribuya el Programa segu ´ responsable ante usted por dan ˜os, incluyendo cualsera ˜o general, especial, incidental o resultante proquier dan ducido por el uso o la imposibilidad de uso del Programa ´ n, pero sin limitacio ´ n a la pe ´rdida de datos (con inclusio ´ n incorrecta de datos o a pe ´rdidas suo a la generacio fridas por usted o por terceras partes o a un fallo del ´ n con cualquier otro Programa al funcionar en combinacio programa), incluso si dicho tenedor u otra parte ha sido ˜os. advertido de la posibilidad de dichos dan

´rminos y condiciones fin de te B.4.

Ap´ endice: C´ omo aplicar estos t´ erminos a sus nuevos programas

Si usted desarrolla un nuevo Programa, y quiere que sea del mayor uso posible para el p´ ublico en general, la mejor forma de conseguirlo es convirti´endolo en software libre que cualquiera pueda redistribuir y cambiar bajo estos t´erminos. Para hacerlo, a˜ nada los siguientes anuncios al programa. Lo m´ as seguro es a˜ nadirlos al principio de cada fichero fuente para transmitir lo m´ as efectivamente posible la ausencia de garant´ıa. Adem´ as cada fichero deber´ıa tener al menos la l´ınea de ((copyright)) y un indicador a d´onde puede encontrarse el anuncio completo. ((Una l´ ınea para indicar el nombre del programa y una r´ apida idea de qu´ e hace.)) c Copyright 19aa ((nombre del autor)) Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los t´ erminos de la Licencia P´ ublica General de GNU seg´ un es publicada por la Free Software Foundation, bien de la versi´ on 2 de dicha Licencia o bien (seg´ un su elecci´ on) de cualquier versi´ on posterior. Este programa se distribuye con la esperanza de que sea util, pero SIN NINGUNA GARANT´ ´ IA, incluso sin la garant´ ıa MERCANTIL impl´ ıcita o sin garantizar la CONVENIENCIA PARA UN PROP´ OSITO PARTICULAR. V´ ease la Licencia P´ ublica General de GNU para m´ as detalles.


B.4 Ap´ endice: C´ omo aplicar estos t´ erminos a sus nuevos programas

121

Deber´ ıa haber recibido una copia de la Licencia P´ ublica General junto con este programa. Si no ha sido as´ ı, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. A˜ nada tambi´en informaci´ on sobre c´omo contactar con usted mediante correo electr´ onico y postal. Si el programa es interactivo, haga que muestre un peque˜ no anuncio como el siguiente, cuando comienza a funcionar en modo interactivo: c Gnomovision versi´ on 69, Copyright 19aa nombre del autor Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANT´ IA. Para m´ as detalles escriba ((show w)). Los comandos hipot´eticos ((show w)) y ((show c)) deber´ıan mostrar las partes adecuadas de la Licencia P´ ublica General. Por supuesto, los comandos que use pueden llamarse de cualquier otra manera. Podr´ıan incluso ser pulsaciones del rat´ on o elementos de un men´ u (lo que sea apropiado para su programa). Tambi´en deber´ıas conseguir que su empleador (si trabaja como programador) o tu Universidad (si es el caso) firme un ((renuncia de copyright)) para el programa, si es necesario. A continuaci´ on se ofrece un ejemplo, altere los nombres seg´ un sea conveniente: Yoyodyne, Inc. mediante este documento renuncia a cualquier inter´ es de derechos de copyright con respecto al programa Gnomovision (que hace pasadas a compiladores) escrito por Pepe Programador. ((firma de Pepito Grillo)), 20 de diciembre de 1996. Pepito Grillo, Presidente de Asuntillos Varios. Esta Licencia P´ ublica General no permite que incluya sus programas en programas propietarios. Si su programa es una biblioteca de subrutinas, puede considerar m´ as u ´til el permitir el enlazado de aplicaciones propietarias con la biblioteca. Si este es el caso, use la Licencia P´ ublica General de GNU para Bibliotecas en lugar de esta Licencia.


122

Licencia P´ ublica GNU


Ap´ endice C

El t´ ermino “Open Source” La definici´on de Open Source nace con el motivo de presentar una alternativa al concepto de Free Software, enfocando m´ as en las ventajas t´ecnicas e intentando ocultar un poco el aspecto filos´ofico detr´ as del Free Software, que pueda provocar un rechazo inicial por parte de una empresa. Estos dos conceptos (Open Source y Free Software) apuntan casi a la misma categor´ıa de software, sin embargo existe una diferencia filos´ofica entre ambas ramas, con opiniones encontradas y puntos de vista diferentes. Se presenta a continuaci´ on la traducci´on de la definici´on del concepto de Open Source obtenida de http://www.opensource.org.ar. El sitio oficial donde se encuentra la definici´on es http://www.opensource.org.

C.0.1.

Definici´ on de Open Source Traduccion al castellano de “Open Source Definition” (Version 1.9 )

1

Open source no s´ olo significa acceso al c´odigo fuente. Las condiciones de distribuci´on de un programa open-source deben cumplir con el siguiente criterio: 1) Libre Redistribuci´ on. La licencia no debe restringir a nadie vender o entregar el software como un componente de una distribuci´on de software que contenga programas de distintas fuentes. La licencia no debe requerir royalty ni ning´ un tipo de cuota por su venta. 2) C´ odigo Fuente. El programa debe incluir el c´odigo fuente, y se debe permitir su distribuci´ on tanto como c´odigo fuente como compilado. Cuando de alg´ un 1

La traducci´ on de “Open Source” ser´ıa c´ odigo fuente abierto, pero preferimos utilizar el termino en ingl´es, debido a su gran aceptaci´ on.


124

El t´ ermino “Open Source” modo no se distribuya el c´odigo fuente junto con el producto, deber´a proveerse un medio conocido para obtener el c´odigo fuente sin cargo, a trav´es de Internet. El c´odigo fuente es la forma preferida en la cual un programador modificar´ a el programa. No se permite el c´odigo fuente deliberadamente confundido (obfuscation). Tampoco se permiten formatos intermedios, como la salida de un preprocesador, o de un traductor.

3) Trabajos Derivados. La licencia debe permitir modificaciones y trabajos derivados, y debe permitir que estos se distribuyan bajo las mismas condiciones de la licencia del software original. 4) Integridad del C´ odigo Fuente del Autor. La licencia puede restringir la distribuci´on de c´odigo fuente modificado s´ olo si se permite la distribuci´on de ”patch files¸con el c´odigo fuente con el prop´ osito de modificar el programa en tiempo de construcci´ on. La licencia debe permitir expl´ıcitamente la distribuci´on de software construido en base a c´odigo fuente modificado. La licencia puede requerir que los trabajos derivados lleven un nombre o n´ umero de versi´ on distintos a los del software original. 5) No Discriminar Personas o Grupos. La licencia no debe hacer discriminaci´on de personas o grupos de personas. 6) No Discriminar Campos de Aplicaci´ on. La licencia no debe restringir el uso del programa en un campo especifico de aplicaci´on. Por ejemplo, no puede restringir su uso en negocios, o en investigaci´on gen´etica. (razones) 7) Distribuci´ on de la Licencia. Los derechos concedidos deben ser aplicados a todas las personas a quienes se redistribuya el programa, sin necesidad de obtener una licencia adicional. (razones) 8) La Licencia No Debe Ser Espec´ıfica a un Producto. Los derechos aplicados a un programa no deben depender de la distribuci´ on particular de software de la que forma parte. Si el programa es extra´ıdo de esa distribuci´on y usado o distribuido dentro de las condiciones de la licencia del programa, todas las personas a las que el programa se redistribuya deben tener los mismos derechos que los concedidos en conjunci´ on con la distribuci´on original de software. (razones)


125 9) La Licencia No Debe Contaminar Otro Software. La licencia no debe imponer restricciones sobre otro software que es distribuido junto con el. Por ejemplo, la licencia no debe insistir en que todos los dem´as programas distribuidos en el mismo medio deben ser software open-source. (razones) 10) La licencia debe ser tecnol´ ogicamente neutral. No debe requerirse la aceptaci´ on y obtenci´on de la licencia por medio de una tecnolog´ıa individual o tipo de interface. Por ejemplo si se solicita la acpetaci´on de la licencia por medio de un clik en una p´agina web, se limitar´ıa la posibilidad de distribuir la licencia mediante FTP, CDROMs, etc. Bruce Perens escribi´ o el primer bosquejo de este documento como “The Debian Free Software Guidelines”, y lo refin´ o usando los comentarios de los desarrolladores de Debian obtenidos en una conferencia via e-mail de un mes de duraci´ on en Junio de 1997. Luego quit´o las referencias espec´ıficas a Debian del documento y cre´ o “Open Source Definition” o ‘’Definici´on de Open Source”. Autores Eric S. Raymond <esr@thyrsus.com>. Traducido por Diego Rodrigo <d.rodrigo@computer.org>. Ultimo punto traducido por Diego Brengi.


126

El t´ ermino “Open Source”


Ap´ endice D

Trampa en el Cyberespacio Trampa en el Cyberespacio1 . Roberto Di Cosmo Liens-Dmi Ecole Normale Sup´ erieure 45, Rue d’Ulm - 75230 Paris CEDEX 05 E-mail: dicosmo@ens.fr Web: http://www.dmi.ens.fr/~dicosmo Durante las u ´ltimas vacaciones de Navidad me he quedado asombrad´ısimo con la fascinaci´ on creciente de los medios de comunicaci´ on por ese oscuro objeto del deseo que se oculta detr´ as de las palabras “ordenador”, “multimedia”, “web”, “internet” y sus derivados. Si uno creyera a esos medios de comunicaci´ on y a un buen n´ umero de expertos improvisados, no se podr´ıa pretender ser un ciudadano de primera clase sin poseer el ultim´ısimo (y muy caro) material inform´atico que da acceso al para´ıso encantado del “cyberespacio”. Es tambi´en dif´ıcil ignorar la omnipresente y extra˜ na confusi´ on que nos incita a pensar que el u ´nico tipo existente de ordenador es el PC, por supuesto equipado con un chip de Intel, y que en ese PC s´ olo puede haber un programa indispensable, Microsoft Windows 2 . Esto es todav´ıa m´ as curioso si consideramos que el fen´ omeno de servilismo intelectual ante estos dos gigantes americanos llega a su punto m´ aximo justo en el momento en el cual los Estados Unidos parecen comenzar a 1

El original franc´es est´ a desde el 20 de Marzo 1998 en la direcci´ on: http://www. mmedium.com/dossiers/piege. 2 La confusi´ on es tal que ya no se distingue entre el “sistema operativo” y las “aplicaciones”: en la prensa se lleg´ o a hablar de Windows 97, cuando en realidad s´ olo se trataba de Windows 95 provisto de un conjunto de aplicaciones como Word, Excel, etc., llamado corrientemente Office 97!


128

Trampa en el Cyberespacio

despertarse de un largo sue˜ no que ha permitido a estos gigantes adquirir una posici´on de monopolio pr´acticamente absoluta. Por el camino, ambas empresas han destruido un n´ umero impresionante de empresas cuyos productos eran de calidad muy superior (todo esto est´a muy bien documentado en numerosas obras – como por ejemplo [1][2][3] – disponibles en los Estados Unidos, pero no han sido, que yo sepa, traducidas al franc´es). Pienso por ejemplo en la campa˜ na lanzada por Ralph Nader (defensor de los consumidores que ha logrado hacer retirar del mercado un autom´ovil peligroso producido por General Motors) y en el proceso que est´a llevando a cabo el DOJ (Department of Justice, el ministerio de justicia federal de EEUU) contra Microsoft en este momento. Pienso sobre todo en la sorprendente reacci´ on del p´ ublico americano en los sondeos de opini´on en Internet: una mayor´ıa aplastante apoya las acciones del DOJ incluso cuando las encuestas son realizadas por empresas como CNN, que son decididamente proMicrosoft en sus art´ıculos (sondeos de opini´ on de la CNN [4] y tambi´en de la ZDnet [5]; esta u ´ltima limit´o arbitrariamente la duraci´ on de la encuesta y no anunci´o su resultado hasta haber recibido numerosas cartas de protesta).

Figura D.1: Roberto Di Cosmo. http://www.pps.jussieu.fr/∼ dicosmo/Library/Images/dicosmo.gif Por el contrario, nuestro p´ ublico est´a bien lejos del despertar: mecido por la suave voz del conformismo ambiental, se adormece a´ un m´ as y m´ as en los brazos de Microsoft. Nuestro p´ ublico sue˜ na con un mundo feliz, en el cual un gran fil´ antropo distribuye a todos los estudiantes de Francia copias gratuitas de Windows 95 con la u ´nica finalidad de ayudarlos a recuperar su atraso tecnol´ogico. Nuestro p´ ublico sonr´ıe al pensar en las pantallas azules llenas de mensajes tranquilizadores que explican c´omo “el programa X ha provocado la excepci´ on Y en el m´ odulo Z”: fallo que por supuesto no ha sido culpa de Windows, sino del programa X. Nuestro p´ ublico duerme feliz


D.1 Armario con cajones y lavado de cerebros

129

sin preguntarse por qu´e un ordenador mucho m´ as potente que aquel que ha servido para enviar hombres a la luna – y que adem´ as los ha tra´ıdo de vuelta vivos – no es capaz de manipular correctamente un documento de un centenar de p´aginas, cuando ´este est´a equipado con ese Microsoft Office que hace tan felices a todos nuestros comentaristas.

D.1.

Armario con cajones y lavado de cerebros

He tenido muchas ocasiones de medir personalmente la profundidad de este sue˜ no hipn´ otico del cual he hablado anteriormente, pero la m´ as graciosa es seguramente aquella que se me present´o hace alg´ un tiempo durante un viaje en TGV. Las computadoras port´ atiles (esos embriones de computadoras que cuestan tanto como un coche peque˜ no, que se pueden guardar en un malet´ın y que sirven con mucha frecuencia para jugar al solitario) proliferan en estos tiempos casi tanto como los tel´efonos m´ oviles, sobre todo en los trenes y aviones. Pues bien, durante uno de mis viajes, me encontraba sentado al lado de un agradable se˜ nor, joven ejecutivo din´ amico, que estaba ejecutando en su m´ aquina el calamitoso (veremos por qu´e m´ as adelante) programa DeFrag. Este programa muestra en la pantalla una hermosa matriz llena de peque˜ nos cuadraditos de diferentes colores que se mueven en todos los sentidos mientras el disco trabaja intensamente. No pude resistir la tentaci´ on (espero que este se˜ nor no se ofenda si se reconoce en este art´ıculo) y despu´es de haberlo elogiado por su hermoso port´ atil, le pregunt´e, fingiendo la mayor ignorancia, qu´e era ese lindo programa que yo no ten´ıa en mi port´ atil. Con un aire de superioridad mezclada con compasi´on ( “el pobre hombre no tiene mi super programa”), me respondi´o que ´esta era una herramienta esencial que hay que lanzar cada cierto tiempo para hacer m´ as r´apida la m´ aquina desfragmentando el disco. Continu´o repeti´endome de memoria los argumentos que se encuentran en los manuales de Windows: cu´ anto m´ as se utiliza el disco m´ as se fragmenta y cu´ anto m´ as se fragmenta, m´ as lenta se vuelve la m´ aquina; ´esta es la raz´on por la cual ´el ejecuta concienzudamente DeFrag cada vez que puede. En ese momento saqu´e mi computadora port´ atil, que no utiliza Windows sino GNU/Linux (una versi´ on libre, gratuita, abierta y muy eficaz de Unix, desarrollada por los esfuerzos comunitarios de millares de personas en Internet) y le dije, con una expresi´ on muy sorprendida, que en mi port´ atil el disco est´a siempre muy poco fragmentado y cuanto m´ as se utiliza menos se fragmenta. Nuestro ejecutivo, ya menos c´omodo, contest´ o que su port´ atil utilizaba la u ´ltima versi´ on de Windows 95 producida por la empresa m´ as grande de software del mundo, y que yo seguramente me estar´ıa equivocando en alg´ un punto. Trat´e entonces de hacerle olvidar por un instante la propaganda que


130

Trampa en el Cyberespacio

lo hab´ıa intoxicado hasta ese momento, explic´andole de manera muy simple el problema de la desfragmentaci´ on: voy a tratar de resumirles a ustedes una apacible conversaci´on que dur´o una buena media hora. Usted sabe seguramente que sus datos est´an guardados en “archivos” que son memorizados sobre el disco duro de la computadora. Este disco es como un gigantesco armario con cajones, cada caj´on tiene la misma capacidad (t´ıpicamente 512 bytes 3 ) y cada disco contiene algunos millones de cajones. Si los datos que a usted le interesan son guardados en cajones contiguos se puede acceder a ellos m´ as r´apidamente que si estuvieran desparramados (a partir de ahora diremos fragmentados) dentro del armario. Esto no tiene nada de raro, es lo que nos pasa todos los d´ıas cuando hay que encontrar un par de calcetines: uno las encuentra mucho m´ as r´apido si ambas se encuentran en el mismo caj´on. Estamos entonces de acuerdo en que es mejor un armario bien ordenado que uno desordenado. El problema reside en saber c´omo hacer para conservar el armario ordenado cuando este se utiliza frecuentemente. Imaginemos ahora un ministerio que guarda sus expedientes en un enorme armario con millones de cajones. Nos gustar´ıa, por las mismas razones antedichas, que los documentos relativos a un mismo expediente se encuentren, en la medida de lo posible, en cajones contiguos. Usted debe contratar una secretaria y tiene la opci´ on de elegir entre dos candidatas con pr´acticas bastante diferentes: la primera, cuando un expediente debe eliminarse del archivo, se limita a vaciar los cajones, y cuando un nuevo expediente entra, lo separa en peque˜ nos grupos de documentos de la medida de un caj´on y archiva cada grupo al azar en el primer caj´on vac´ıo que encuentra en el armario. Cuando usted le se˜ nala que as´ı va a ser muy dif´ıcil encontrar r´apidamente todos los documentos que tienen que ver por ejemplo con el expediente del Cr´edit Lyonnais, ella responde que va a ser necesario contratar todos los fines de semana una docena de ayudantes para poner de nuevo todo en orden. La segunda candidata, al contrario que la primera, conserva sobre su escritorio una lista de cajones vac´ıos contiguos, la cual pone al d´ıa todas las veces que un expediente es cerrado y sacado de los cajones. Cuando entra un nuevo expediente, ella busca en su lista un conjunto de cajones vac´ıos contiguos de la medida necesaria, y es ah´ı donde coloca el nuevo expediente. As´ı, le explica ella, el armario permanecer´a siempre bien ordenado, incluso aunque haya muchos movimientos de expedientes. No hay duda de que es la segunda secretaria la que debe ser contratada, y nuestro joven ejecutivo estuvo perfectamente de acuerdo. 3

Un byte es un n´ umero binario de 8 cifras, utilizado para medir el tama˜ no de la memoria de un ordenador. Se utilizan tambi´en el Kilobyte, el Megabyte, y Gigabyte, abreviados respectivamente como Kb, Mb y Gb.


D.1 Armario con cajones y lavado de cerebros

131

En ese momento fue f´acil hacerle entender que Windows 95 actuaba como la primera secretaria y necesitaba de ayudantes que ordenen el armario (el programa DeFrag), mientras que GNU/Linux actuaba como la buena secretaria y no necesitaba de nadie para ayudarla. Al llegar a la estaci´on, nuestro gentil ejecutivo ya no estaba tan contento: le hab´ıan ense˜ nado que DeFrag hace andar m´ as r´ apido la m´ aquina, pero hab´ıamos visto juntos que en realidad es Windows quien la hace lenta! En efecto, el problema de la gesti´ on eficaz de los discos es muy viejo y hace mucho tiempo que se sabe como resolverlo (la prueba es que Unix es m´ as antiguo que Microsoft y tiene la buena secretaria desde 1984!). Y todav´ıa hay cosas mucho peores que DeFrag; desafortunadamente, no tenemos tiempo para contarles todas las peque˜ nas y sabrosas historias sobre el programa ScanDisk que se supone tiene que “reparar” los discos, pero que propone opciones incomprensibles cuyo resultado final es, la mayor´ıa de las veces, la destrucci´on pura y simple de la estructura de los expedientes, a´ un cuando los datos pod´ıan haber sido recuperables antes de ejecutar este programa. No solamente esto es imposible con Unix (a menos que el disco sea taladrado con una m´ aquina), sino que las t´ecnicas correctas de gesti´ on de un disco son ense˜ nadas en los primeros cursos de inform´atica de la Universidad desde hace m´ as de 10 a˜ nos. La simple existencia de un programa como DeFrag o los da˜ nos producidos por el ScanDisk de Windows 95 deber´ıan ser suficientes para que cualquier persona inteligente con poder de decisi´ on pudiera tachar Microsoft de la lista de sus proveedores. Y sin embargo, como prueba de la eficiencia del lavado de cerebros y del profundo sue˜ no en el cual hemos estado sumidos, aqu´ı en Francia estamos dispuestos a convertir el sistema inform´atico bancario a productos Microsoft, as´ı como a elegirlos tambi´en para la educaci´ on de nuestros hijos. El poder de la maquinaria comercial de ciertas empresas logra realizar tal distorsi´ on de la realidad que llegamos a creer fervientemente que los defectos m´ as graves de ciertos programas son por el contrario totalmente indispensables (a prop´ osito de esto, en el mundo inform´atico hace mucho tiempo que se emplea el dicho “it’s not a bug, it’s a feature!” – no es un defecto, es una funcionalidad!). Sucede tambi´en que los especialistas que tienen los conocimientos necesarios para desarmar todas estas trampas y poner en evidencia los errores, los peligros y las manipulaciones, sin riesgo de ser considerados como competidores derrotados y gru˜ nones, se han callado durante demasiado tiempo. Tenemos aqu´ı un fen´ omeno bien extra˜ no: por un lado, ning´ un cient´ıfico serio tiene ganas hoy en d´ıa de publicar un art´ıculo en la prensa que se dice de inform´atica, por miedo a manchar su reputaci´on por haber tratado con mercachifles. Por el otro lado, al no tener el apoyo


132

Trampa en el Cyberespacio

de cient´ıficos serios, la prensa inform´atica se transform´o, v´ıa soporte publicitario, en un eco poco edificante de los fabricantes de computadoras. Esto la hace a´ un m´ as mercachifle, y a´ un menos frecuentable por expertos serios.

D.2.

El impuesto a la informaci´ on

Sin embargo el monopolio Wintel (Windows + Intel, t´ermino recurrente en la prensa americana) que se est´a instalando en Francia y en el mundo entero tiene tales apuestas en juego, y no solamente econ´ omicas, que no nos podemos callar m´ as bajo ningun pretexto. No se trata solamente de aceptar vivir con una mala tecnolog´ıa ignorando que se podr´ıa tener algo mucho mejor: esto ya se ha producido varias veces, por ejemplo con el sistema de v´ıdeo VHS que desplaz´o al Video 2000 y Betamax, que eran mucho mejores 4 . Aqu´ı se trata del hecho de que nuestros nuestros gobernantes hayan aceptado que el monopolio Microsoft-Intel adquiera un total dominio de la informaci´ on, explot´andolo adem´ as en su exclusivo beneficio. Estoy seguro de que aquel entre ustedes que tenga alg´ un conocimiento de econom´ıa ya ve a d´onde quiero llegar: este monopolio logra desde hace muchos a˜ nos el cobro de una verdadera tasa monopol´ıstica, es decir, que explota la posibilidad que tiene un monopolio de vender a precios inflados, ejerciendo as´ı un verdadero chantaje sobre los consumidores que se ven forzados a comprarle a ´el. Esta tasa es enorme, pero m´ as grave a´ un, su importe sale del espacio europeo sin que nos demos cuenta, y no solamente no produce riqueza alguna sino que por el contrario la destruye (ver por ejemplo [6] y [7]). Veamos ahora los medios por los cuales se consolida este monopolio cada d´ıa un poco m´ as, sin descuidar los riesgos no econ´ omicos que el mismo produce sobre nuestra vida de todos los d´ıas. En el caso de la inform´atica, las posibilidades ofrecidas a las empresas sin escr´ upulos son particularmente temibles. Trataremos de comprender esto comenzando por todo lo que no se entiende necesariamente como una pr´actica dudosa o ilegal.

D.3.

El car´ acter espec´ıfico del software

Para comenzar a comprender porqu´e pagamos un impuesto invisible cada vez que compramos un PC 5 o los programas Windows, hay que familiarizarse primero con una caracter´ıstica que distingue la inform´ atica de cualquier otro dominio tecnol´ogico: el costo de la duplicaci´on de productos. Una vez 4

Ver Technologie et March´e: journal d’un consommateur insatisfait, del mismo autor. PC significaba solamente personal computer; ahora el nombre ha sido secuestrado por un s´ olo tipo de computadora personal, la cual utiliza microprocesadores Intel. 5


D.3 El car´ acter espec´ıfico del software

133

que un programa ha sido realizado, cosa que puede costar muy caro, se puede duplicar en un CD-Rom al costo de s´ olo algunos francos por copia, o se puede transmitirlo por la red a un costo que no cesa de reducirse, de manera totalmente independiente de la calidad y del costo de producci´ on de la primera copia. Los u ´nicos componentes cuyo costo no es infinitesimal son aquellos a los que llamamos “el soporte”: las miles de p´aginas del manual de papel, o las docenas de disquettes necesarios para archivar el software cuando no se dispone de lectores de CD-Rom. Pero los editores de programas, que tienen todo el inter´es en hacer desaparecer ese costo fijo, no tardaron mucho en ocuparse de ese tema: usted habr´ a remarcado que los PC que se venden en los supermercados vienen acompa˜ nados de programas pero pr´acticamente de ning´ un manual, salvo alguna breve nota explicativa (sic!). Hay por supuesto manuales “on-line”, es decir no sobre papel. Nadie va a impedirle que se gaste algunos centenares de francos para imprimirlos, si a usted se le antoja. Yo mismo pude constatar personalmente que una empresa japonesa muy conocida, cuyo nombre me reservo, vende computadoras port´ atiles de las m´ as caras del mercado sin proveer siquiera un CD-Rom con los programas: todo est´a instalado en el disco duro, y para hacer una copia de seguridad todo depende de nosotros mismos, si queremos comprar los 40 disquettes necesarios y pasar un d´ıa entero jugando a ser un disk-jockey con la m´ aquina. Podemos decir entonces que actualmente, con estas pr´acticas, el costo de copia de un programa esta pr´acticamente reducido a cero. Una segunda caracter´ıstica esencial es el status legal de un programa: por varias razones, no tan extra˜ nas si uno lo piensa detenidamente, el software, ese sofisticado producto de tecnolog´ıa de punta utilizado por millones de personas en su vida profesional, y convertido en piedra angular de una nueva revoluci´on industrial, goza de la misma inmunidad que las obras de arte (de hecho, los industriales del software se llaman “editores”). Por ejemplo, no hay ninguna cl´ ausula legal ni ninguna jurisprudencia que permita garantizar que el software haya de cumplir una determinada funci´on, ni siquiera aquella para la cual usted lo ha comprado. Esta situaci´on es razonable cuando se compra una novela o un cuadro (de gustibus...dec´ıan los romanos), pero deja de serlo cuando se aplica al software: usted no puede demandar a Microsoft legalmente ante la justicia por defecto de construcci´ on, al haber descubierto que Windows 95 no est´a hecho con las m´ınimas pr´acticas establecidas de la ciencia inform´atica; mientras que usted s´ı puede acusar a un fontanero o a un electricista por realizar una instalaci´ on que no est´a hecha conforme a las normas. Lo peor es que no hay ninguna toma de responsabilidad por los da˜ nos que el software pueda producir. De nuevo, es razonable que usted no pueda llevar a juicio a un cantante porque el u ´ltimo CD tecno que comprara su hijo provocara una disputa familiar en el curso de la cual se rompiera un jarr´on


134

Trampa en el Cyberespacio

chino valios´ısimo. Pero es perfectamente inaceptable que usted se quede indefenso si pierde 200 Mb de datos comerciales muy valiosos de su disco duro a causa del vetusto sistema de archivos de Windows 95 y de su horripilante programa ScanDisk. Sobre todo sabiendo que podr´ıa probar muy f´acilmente delante de un tribunal que los conocimientos t´ecnicos necesarios para realizar un producto ampliamente superior, gracias al cual no hubiera perdido sus datos, son de dominio p´ ublico desde los a˜ nos 70, y que el c´odigo mismo que implementa estas t´ecnicas en el Unix de AT&T ha sido comprada por Microsoft. Pero en cambio, s´ı que puede arrastrar ante la justicia a su electricista si ´este le instala cables el´ectricos en los z´ocalos de madera de su apartamento 6 . Finalmente, una consecuencia muy grave de esta impunidad es que el “editor” de software no est´a de ninguna manera obligado, desde el punto de vista legal, a corregir los errores reconocidos y documentados, a´ un cuando esos fallos sean voluntarios. Dicho de otra manera, el “editor” de software es libre de venderle a usted lo que a ´el le parezca, o mejor dicho, aquello que su departamento publicitario le haga creer que compra, sin ninguna obligaci´on de resultados, y sin que usted tenga el menor recurso, a´ un en caso de mala fe manifiesta. Peor a´ un, puede ocurrir que le hagan pagar por las versiones de “actualizaci´on”, que son en realidad correcciones de defectos, a precios tan caros como el producto original. Adem´ as, este status jur´ıdico tan sorprendente, estaba probablemente justificado cuando los programas eran escritos por un ingeniero en su garage, pero es absolutamente aberrante hoy en d´ıa. Ahora nos encontramos con multinacionales del software cuyas finanzas son colosales, y no dan provecho a todos los editores de software sino solamente a los m´as poderosos. Est´a claro que una gran empresa puede y debe obligar a un prestatario de servicios inform´aticos a firmar un contrato contrayendo obligaciones de resultados y conteniendo cl´ ausulas de garant´ıa, pero por desgracia, esto no est´a al alcance del consumidor, ni de la mayor´ıa de las empresas, cuando el editor de software en cuesti´ on tiene la capacidad financiera suficiente para comprar o destruir su empresa en algunas semanas. Me imagino que en este momento, al igual que nuestro joven ejecutivo din´ amico de hace un rato, usted comenzar´ a a sentirse menos c´omodo: el cyberespacio encantado comienza a mostrar sus costados poco agradables, y esta maravillosa empresa filantr´opica que ha sido siempre presentada como el s´ ummum de la tecnolog´ıa inform´atica y del ´exito del libre mercado comienza a parecer cada vez menos filantr´opica. Desafortunadamente, estamos solamente en el principio de nuestro paseo por el lado oscuro del planeta 6

Pr´ actica peligrosa que est´ a prohibida actualmente en Europa.


D.4 Los fabricantes atrapados en la trampa

135

Microsoft, y todav´ıa no hemos llegado a lo mejor.

D.4.

Los fabricantes atrapados en la trampa

La posici´on de monopolio de Microsoft le permite tambi´en desembarazarse con facilidad de las otras posibles fuentes de costo para la comercializaci´on del software: la asistencia t´ecnica y la distribuci´on. Para la primera, podr´ıamos imaginarnos que aunque el editor no est´e legalmente obligado a ayudarle a instalar su software, se encontrar´ a obligado a hacerlo para no perder los clientes. No se preocupe, Microsoft tiene la soluci´on: es suficiente leer unas frases que se encuentran en la licencia de Windows 95 de la cual reproduzco aqu´ı un extracto: ´ ´cnico para el 6. SOPORTE TECNICO. El soporte te PRODUCTO SOFTWARE no es proporcionado por Microsoft Corporation o sus subsidiarias. Para obtener ´cnico, rem´ıtase al nu ´mero de soporte del soporte te ´n Fabricante de PC suministrado en la documentacio para la computadora (ordenador). Si tiene dudas con respecto a este CLUF (“Contrato de Licencia para el Usuario Final”), o si desea comunicarse con el Fa´ n, rem´ıtase a bricante de PC por cualquier otra razo ´ n proporcionada en la documentacio ´ n de la la direccio COMPUTADORA u ORDENADOR. Astutos, verdad? Se hace responsable de todo al fabricante de la computadora, el cual no tiene nada que ver con DeFrag pantallas azules y dem´as desastres, pero acaba pagando las consecuencias financieras de esos errores (y yo sabr´e algo de eso, vista la cantidad de veces que trat´e in´ utilmente de comunicarme con el servicio de asistencia telef´ onica para la instalaci´ on de Windows, siempre para el port´ atil de la marca japonesa que no he revelado m´ as arriba y que todav´ıa ocultar´e aqu´ı). Si Windows 95 no estuviera en posici´on de monopolio, los fabricantes de computadoras se librar´ıan con mucho gusto de este tipo de acuerdos. Para la distribuci´on del software es la misma historia. De nuevo son los fabricantes, ensambladores y revendedores de computadoras los que pagan el costo: ellos deben preinstalar Windows 95 en las m´ aquinas. Pero hoy existe algo a´ un mejor que es la distribuci´on del programa por Internet sin ning´ un soporte material. Esto es un golpe genial: usted paga por un programa y despu´es paga el gasto de obtenerlo por la red (y qu´e gasto, con el tama˜ no de un Microsoft Office en nuestros d´ıas), reduciendo efectivamente el costo


136

Trampa en el Cyberespacio

total de la copia y distribuci´on por el “editor” a exactamente cero francos. Y se pregunta por qu´e un cierto presidente de un cierto pa´ıs del otro lado del atl´antico ha sugerido firmemente liberar completamente de impuestos al comercio inform´atico? Bien, aqu´ı tiene una parte de la respuesta! En res´ umen, si hoy uno se llama Microsoft, y solamente si se llama Microsoft, puede vender m´ as o menos cualquier cosa, sin obligaci´on de resultado y sin temor a ser demandado. Todo esto con un costo unitario nulo, y a un precio al p´ ublico que no baja jam´ as 7 , y que se traduce en beneficio puro 8 . Falta comprender por qu´e no solamente el gran p´ ublico, que no conoce nada de computadoras, sino tambi´en las grandes empresas, los gobiernos y los medios (que deber´ıan disponer de servicios inform´aticos altamente calificados), no utilizan su libertad de elegir otra cosa que los productos Microsoft. Para responder a esta pregunta no es suficiente culpar a los mercanchifles de la prensa que se dice especializada, a´ un cuando su parte de responsabilidad es bien evidente. Deberemos llevar a cabo una exploraci´ on m´ as profunda de la cara oculta de este gigante, para comenzar a descubrir ciertas pr´acticas dudosas que rozan frecuentemente la ilegalidad, y que con mucho desagrado encuentro que no son comentadas en ninguna parte del panorama medi´ atico [franc´es], salvo en algunos peque˜ nos folletos sat´ıricos ef´ımeros que no son ciertamente la lectura preferida de los altos responsables de las empresas 9 .

D.5.

El pa´ıs de los tecnocretinos...

Para ver la cosa m´ as clara, olvidemos por un instante las computadoras, el software y todo eso. Siempre hemos estado condicionados a considerar estas cosas como u ´tiles pero dif´ıciles, es decir, a renunciar a formarnos una opini´ on personal acerca de este tema. Nos han dicho que es demasiado complejo y que debemos limitarnos a seguir la sabia elecci´ on de los que se dicen expertos (por ejemplo, la revista americana Byte, de gran difusi´on, tiene en su logotipo la leyenda “Byte, because the experts decide”–Byte, porque los expertos deciden). 7

Contrariamente al costo del hardware, que baja a velocidad impresionante, el precio del software Microsoft no baja de manera significativa, y a veces hasta sube, con cada nueva versi´ on: por ejemplo, Windows 95 en Francia se vende al precio al p´ ublico de 1.270 francos (antes de impuestos), mientras era disponible a menos de 800 francos en su lanzamiento de 1995. 8 Muchos editores de software venden sus programas sin una garant´ıa real, pero son muy pocos los que pueden tener todas esas ventajas juntas, y solamente Microsoft tiene el poder de imponer sus productos, creando de esa forma un verdadero impuesto a la informaci´ on. 9 Se trata de Le Virus Informatique y Les puces informatiques, ver [8].


D.6 ...no est´ a muy lejos

137

Dejemos de lado por un instante a los expertos, para ir a ver lo que pasa en el mundo paralelo imaginario de los TecnoCretinos, en el que una empresa llamada MacroPrensa obtiene poco a poco el control absoluto de todas las imprentas del planeta. Esta no controla directamente los peri´ odicos, pero es la que los imprime con los caracteres MacroPrensa, de los cuales es la u ´nica propietaria. Un buen d´ıa, tras una gran campa˜ na publicitaria alabando las bondades de un nuevo juego de caracteres que permitir´a obtener peri´odicos m´ as modernos, esta empresa comienza a imprimir todo con caracteres klingonianos (el alfabeto de los Klingons en la famosa serie StarTrek). De esta manera, nadie m´ as puede leer los nuevos libros o peri´ odicos sin recurrir a la Lupa de la MacroPrensa, disponible a la venta en todos los kioscos, donde es distribu´ıda con cargo a los editores de peri´ odicos. El p´ ublico, encantado de la maravillosa novedad tecnol´ogica, se adapta y compra la Lupa. Envalentonados por el ´exito de esta iniciativa, MacroPrensa comienza a cambiar el juego de caracteres peri´ odicamente, todos los a˜ nos, y despu´es todos los semestres; las viejas Lupas ya no pueden leer los nuevos peri´ odicos y hace falta renovarlas con grandes gastos cada dos o tres meses. Un competidor de MacroPrensa ve ah´ı una gran ocasi´ on para producir una Minilupa mucho menos costosa que la Lupa Macroprensa, y comienza a venderla en los kioscos. Pero los kioscos tienen un contrato de exclusividad con MacroPrensa y rehusan distribu´ırla. Peor a´ un, MacroPrensa demanda al competidor ante la Justicia por violaci´ on de los derechos de autor, pues lo considera culpable de haber analizado los caracteres klingonianos a fin de construir la Minilupa. Y gana. . .

D.6.

...no est´ a muy lejos

Pero qu´e idiotas, dir´ a usted, qui´en puede dejarse hacer eso? Pues bien, perm´ıtame decirle que el mundo de los TecnoCretinos no est´a muy lejos. Hace dos a˜ nos quise presentar a la UE una solicitud de financiaci´ on para la visita de un investigador ingl´es a nuestro laboratorio. Para eso busqu´e el formulario, y me dijeron que la manera m´ as f´acil de proceder era obtenerlo desde el servidor de Web www.cordis.lu de la comunidad europea, ya que el correo normal pod´ıa tardar alg´ un tiempo considerable. D´ı as´ı con un documento que se llamaba machin.doc y que estaba escrito con Microsoft Word para Windows versi´ on vaya-usted-a-saber. En Klingoniano. No hay problema, me dije a m´ı mismo, tenemos un MacIntosh en el laboratorio con la lupa Microsoft Word versi´ on 6.0. Esta es de la misma empresa, la m´ as reciente, luego podr´e leerlo bien. Cuando pens´e esto eran las 10 de la ma˜ nana. Para mi gran sorpresa, Microsoft Word en MacIntosh, despu´es de una docena de minutos de “conversi´ on”, bloque´ o la m´ aquina y me vi obligado a apagar y volver a encender, perdiendo mi trabajo. As´ı comenz´ o una verdadera bata-


138

Trampa en el Cyberespacio

lla con la Lupa, donde al final sal´ı vencedor pero agotado a eso de las 19 horas, con una versi´ on del formulario rellenado, obtenido imprimiendo las p´aginas una a una y con manipulaciones complejas en cuyos detalles no entrar´e. Basta decir que me entraron much´ısimas ganas de llevar esto ante la Justicia, pero sin muchas esperanzas de ganar. Todo esto por qu´e? Por un formulario extremadamente simple con las casillas Nombre, Apellido, etc., que lo habr´ıamos podido preparar muy f´acilmente con un formato de archivo libre y p´ ublico, tal como el HTML que se utiliza desde 1991 en la Web. Han pasado ya dos a˜ nos y en http://www.cordis.lu nada ha cambiado. El aspecto es muy atractivo, pero los formularios y la documentaci´ on que contiene informaci´ on que debe ser libre y gratuita y que son de importancia vital, est´an todav´ıa presentados solamente en formato privado, t´ıpicamente Microsoft, e, incre´ıble pero cierto, compatible solamente con los productos Microsoft para PC. A causa de esto, nuestro laboratorio pronto comprar´ a un gran PC con Windows 95 y Microsoft Office, solamente para poder leer los documentos de la UE. La Lupa Klingoniana avanza. Adem´ as, con esta Lupa el formato de archivos cambia de versi´ on en versi´ on, de tal suerte que Word 5.0 no puede hacer nada con los archivos de Word 7.0, y peor a´ un, el Word 6.0 en Mac tiene problemas para leer archivos de Word para Windows. Hemos ca´ıdo en la trampa! No es suficiente con comprar Microsoft Word una vez; deberemos pagar de nuevo cada versi´ on, s´ olo para poder continuar leyendo los archivos nuevos de otros. Y si por azar hab´ıamos comprado un producto complementario para la versi´ on 5.0, por ejemplo un diccionario en espa˜ nol, habr´ a que comprar uno nuevo en la nueva versi´ on; la vieja ser´a “incompatible”, a´ un cuando el espa˜ nol no haya cambiado entretanto. Advertir´a que se trata de un verdadero y limpio secuestro de nuestra informaci´ on: una vez que los datos entran en Word o Money, ya no hay manera f´acil de recuperar todo el trabajo que usted ha hecho para transferirlo a otro programa si decide no comprar m´ as productos Microsoft. Se cuidaron muy bien de no suministrar convertidores eficaces hacia otros formatos 10 . Adem´ as intentaron varias veces hacer que se aprobaran leyes prohibiendo a los competidores la utilizaci´ on de sus formatos propios de archivos, o incluso su an´ alisis. Si se llegaran a aprobar estas leyes, una empresa que venda una Minilupa convertidora ser´ıa culpable de violaci´ on de las leyes de derechos 10

Desde hace muy poco, es posible bajar una impresionante panoplia de convertidores y visualizadores desde http://www.microsoft.com/office/office/viewers.asp, pero eso s´ olo sirven para convertir documentos entre todos esos formatos Microsoft incompatibles, y no para liberarlos de la trampa monopolista: hay que tener un PC con windows para usarlos! Lo que hace falta, son formatos libres y documentados, todo lo contrario de la filosof´ıa Microsoft.


D.7 Pr´ acticas dudosas

139

de autor 11 . Pero son nuestros datos los que est´an en juego. Bienvenidos al pa´ıs de los TecnoCretinos!

D.7.

Pr´ acticas dudosas

Resumiendo la t´ecnica es simple: por un lado se hace caer a los consumidores en la trampa secuestrando su preciosa informaci´ on en un formato propietario, el cual es constantemente “actualizado”. Debido a estas modificaciones, los usuarios se ven obligados a comprar cada 6 ´o 12 meses una actualizaci´on de todas sus aplicaciones, tan s´ olo para poder continuar leyendo sus propios datos o acceder a informaci´ on que (de manera innecesaria) es suministrada bajo este formato privado. Por otro lado, se entrampa a los competidores: no se les da la documentaci´ on [del sistema operativo] y se introducen variantes arbitrarias con la u ´nica meta de no permitir que los productos que ellos desarrollan funcionen correctamente. Es m´ as, si la competencia llega a descubrir que una de las modificaciones ten´ıa como u ´nico fin el hacer funcionar su producto con menor eficiencia que el producto equivalente del monopolista, son condenados por haber hecho “ingenier´ıa al rev´es” (reverse engineering), el equivalente inform´atico a desmontar el motor de un Twingo para ver como est´a hecho 12 . Esta u ´ltima t´ecnica es especialmente poderosa si el editor de software detenta a la vez el sistema operativo (Windows 95) y las aplicaciones (MS Word, Excel, etc). En tal caso es t´ecnicamente posible modificar el sistema para tornar inestables o inutilizables los productos de la competencia, y a la vez mejorar las prestaciones de sus propios productos. Es lo que se ha hecho en Windows NT Workstation, limitando artificialmente a diez los accesos simult´ aneos a la m´ aquina; esto hace inutilizable el servidor Web de Netscape sobre NT Workstation (ver [13] y [14]). Si quiere resolver esto, deber´a comprar la versi´ on Windows NT Server, much´ısimo m´ as cara, la cual incluye gratuitamente un servidor de Web de Microsoft. La treta pone fuera de juego a Netscape. Esto es simplemente maquiav´elico, y a´ un m´ as cuando descubrimos que las dos versiones, NT Workstation y NT Server, son pr´acticamente id´enticas y s´ olo se diferencian en un pu˜ nado de l´ıneas, tal y como se documenta en [15] y [16]. 11

Richard Stallman vino a Europa en 1991 para exponer los peligros de la aceptaci´ on pasiva por parte de la CEE de este escandaloso asunto. Algunos de esos argumentos se pueden encontrar en [9]. 12 Para la historia de un caso real, ver Stac contra Microsoft en [10]; afortunadamente, las cosas cambiaron en Europa, en donde ya se permite una forma limitada de “reverse engineering” [11]. V´ease tambi´en la oposici´ on feroz a toda reglamentaci´ on que pudiera garantizar la interoperabilidad entre sistemas distintos [12].


140

Trampa en el Cyberespacio

El resultado final de estas pr´acticas dudosas es simple: se impide que el usuario pueda elegir otra cosa que no sea un producto Microsoft. Junto con la reducci´ on a cero de los costos y de los riesgos, tal cual como vimos anteriormente, esto permite al monopolio establecer un verdadero impuesto sobre la informaci´ on, donde Microsoft es el u ´nico beneficiario. Despu´es de todo, si Bill Gates ha sido recibido con honores dignos de un Jefe de Estado en el El´ıseo, se debe a que se trata de la visita de la versi´ on “cyber” del recaudador de impuestos. Un impuesto que no tiene nada de virtual: enormes sumas de dinero salen de la Comunidad Europea cada a˜ no en contrapartida por productos de mala calidad que nos vuelven m´ as y m´ as dependientes de la mala tecnolog´ıa del otro lado del Atl´ antico. Es m´ as, estos productos se distribuyen en Europa a precios exorbitantes, muy superiores a los precios americanos o canadienses. No se deje enga˜ nar por los que le dicen que los programas en Europa son m´ as caros porque necesitan ser traducidos. Si echa un vistazo al servidor Web de Microsoft, se enterar´a de que consideran “ilegal” (sic) comprar su software en versi´ on francesa en Canad´ a (en donde es mucho m´ as barato que aqu´ı) para utilizarlo en Francia [17]. Y el “libre” mercado? Nos orde˜ nan como a las vacas lecheras, y la pasividad de los gobiernos europeos, que comienza a parecerse bastante a la cooperaci´on activa si uno piensa en http://www.cordis.lu, es absolutamente inexplicable, visto el tama˜ no de este verdadero expolio.

D.8.

Bordeando la ley

Llegamos finalmente a los actos francamente ilegales. Comenzando por la venta “vinculada”, que est´a expresamente prohibiba en Francia (Libro I, Cap´ıtulo II, Section 1 de la Ley del Consumidor, “Se prohibe [. . . ] subordinar la venta de un producto [. . . ] a la venta concurrente de otro [. . . ]”), y tambi´en en Europa (ver los art´ıculos 85 y sobre todo el 86 del tratado, as´ı como su aplicaci´on, en la detallada referencia [18]). Lo que quiere decir esto es que est´a prohibido que le obliguen a comprar con el producto que a usted le interesa otro producto que no quiere. No se prohibe vender “lotes” de productos en un supermercado, pero en tal caso usted debe tener la opci´on de comprar separadamente cualquier componente del lote, si as´ı lo desea, sin sobrecosto alguno. Sin embargo, durante mucho tiempo los grandes vendedores de PCs no le han permitido que comprara una computadora sin adquirirla con el sistema operativo de Microsoft (Windows 95 o NT ahora, DOS o Windows 3.x antes). Se puede convencer personalmente visitando los servidores Web de Dell y Gateway, por ejemplo. Ver´a que usted puede “construir su propia computadora”, seg´ un le dicen, pero nunca suprimir la Lupa Microsoft de dichos componentes, siendo que los programas (“software”) y el material electr´ onico (“hardware”) son dos productos bien diferentes por


D.8 Bordeando la ley

141

m´ as que traten de disimularlo 13 . Al final, acabamos por no saber el precio real del software. En efecto, haciendo partidas de acuerdos confidenciales, estos precios son a menudo muy inferiores a los precios de mercado. Uno de estos acuerdos ha sido condenado hace poco en los tribunales de la UE como pr´actica comercial ilegal. Para que pueda hacerse una idea precisa de la envergadura econ´ omica del asunto, considere el caso de una universidad parisina que compr´ o 15 PC para instalar GNU/Linux hace algunos meses. No se sabe cu´ anto pag´ o el fabricante por Windows 95 pero si nos fiamos de lo que se dice en [7], el paquete Office PME tiene un precio de venta al p´ ublico que es el doble del de Windows 95 y se vende a los mayoristas por poco m´ as de 600 francos; de lo cual se puede estimar que Windows 95 tiene un precio mayorista de unos 300 francos. As´ı pues, a´ un suponiendo que el fabricante no tenga margen de ganancia sobre el software (cosa de la cual dudo, dado que la preinstalaci´on es un servicio que tiene su costo), esta universidad ha sido obligada a pagar 15 veces 300 francos, es decir 4.500 francos, por un producto que no quer´ıa. Dicho de otra forma, el Estado Franc´es ha hecho en este caso un regalo de 4.500 francos a Microsoft, una empresa no europea que no est´ a presisamente al borde de la quiebra ni necesitada de ayudas estatales. Si se extrapola este caso particular a las compras realizadas por todas las Universidades de Francia que utilizan GNU/Linux, se trata ya de millones de francos por a˜ no. Habr´a que preguntarse qui´enes son los piratas en este caso. No puedo comprender las razones de un despilfarro semejante cuando se dice que las arcas del estado est´an vac´ıas. Si uno busca bien, pero verdaderamente bien, es posible en teor´ıa intentar que le devuelvan el dinero (fastidiando al pobre fabricante de la computadora), pero se trata de una verdadera carrera de obst´ aculos. En nuestra escuela muchos investigadores y alumnos han comprado computadoras o port´ atiles para instalar GNU/Linux o Next Step, pero han sido obligados a comprar Windows sin lograr ning´ un reembolso. Esta es la fuente m´ as importante de ganancias para Microsoft y es por esto que se puede hablar de verdadero impuesto sobre las computadoras: por cada PC comprado hay un tanto por ciento de dinero para los hinchados bolsillos de Microsoft, lo quiera usted o no. Es debido a estos 10 a˜ nos de tales pr´acticas, durante los cuales amas´o una inmensa riqueza y aplast´o a toda su competencia, que Microsoft ha sido amonestada por la justicia americana y europea en 1995, aunque sin ninguna consecuencia financiera [19]. Lo cual quiere decir que el bot´ın del robo permanece en manos por el ladr´on, a cambio de la promesa de ´este 13

El autor de este art´ıculo no se limit´ o a mirar el sitio Web: unas llamados telef´ onicas bastaron para verificar que no se puede comprar una computadora sin software Microsoft a Gateway o Dell.


142

Trampa en el Cyberespacio

de no ser reincidente. Debido a esta condena sin castigo efectivo, hoy en d´ıa sigue siendo muy dif´ıcil comprar un PC sin Windows, a menos que uno recurra a los peque˜ nos ensambladores de PCs cl´ onicos. El caso de Dell y Gateway 2000 no es aislado, y cada PC comprado es un “usuario” de Windows m´ as en las estad´ısticas, incluso si la primera cosa que hace el comprador es tirar a la basura Windows 95 para instalar GNU/Linux.

D.9.

Una mirada al posible futuro de la educaci´ on

¿Qu´e cosa puede suceder si no nos despertamos de nuestro sue˜ no profundo y permanecemos sumidos en la trampa de una industria y un sistema educativo informatizados por un monopolio privado? Gracias al famoso atraso tecnol´ogico franc´es, es posible responder a esta pregunta: otros pa´ıses nos llevan ventaja de unos a˜ nos, tanto para bien como para mal, y esto nos permite contemplar un cierto n´ umero de futuros posibles. Comenzando por el futuro pr´oximo, basta con ir muy cerca, a nuestra vecina Suiza. El pasado 8 de octubre, el Ministro de Finanzas suizo anunci´ o un acuerdo con Microsoft, por el cual el gobierno pondr´ a a disposici´on de los colegios unas 2.500 computadoras, y el gigante americano pondr´ a otras tantas licencias de utilizaci´ on de productos Microsoft y se ofrecer´a a formar a 600 educadores para la utilizaci´ on de computadoras [20] (Un regalo parecido ha sido hecho en Sud´africa). Es decir, por menos de lo que cuesta una campa˜ na publicitaria nuestro monopolista ha adquirido el control total de la inform´atica en la educaci´ on suiza, y por ende en las empresas suizas, ya que cuando estos estudiantes alcancen un puesto de trabajo no conocer´ an otra cosa que Microsoft Office. Visto en perspectiva, este acuerdo no parece tan bueno para Suiza, aunque al menos no habr´ an pagado nada por el software de Microsoft. Mejor dicho, para ser exactos, no lo habr´ an pagado ahora, porque se les podr´ıa empezar a pedir el pago m´ as adelante, como acaba de suceder en Jap´ on. El pasado diciembre Microsoft anunci´o la supresi´ on al Jap´ on de licencias globales de centro (“site licenses”, un esquema de contabilizaci´ on de licencias de una empresa o una Universidad que permite pagar los programas en proporci´ on al uso real, y no en relaci´ on al n´ umero de computadoras). Esta decisi´ on impondr´ a un sobrecosto financiero injustificado y considerable que los japoneses van a tener que asumir de todas maneras, dado que no hay otros competidores a los que acudir. Veamos un poco m´ as lejos en el futuro: la Universidad del Estado de California (CSU) est´a apoyando en este momento la creaci´ on por parte de


D.10 Lo que esta en juego: el control de la informaci´ on

143

Microsoft, GTE, Fujitsu y Hughes Electronics de una compa˜ n´ıa, la CETI, que tendr´ a el monopolio exclusivo para la renovaci´ on del parque inform´atico de 23 campus universitarios de la CSU, donde hay m´ as de 350.000 estudiantes y docentes. A cambio de una inversi´ on de algunos centenares de millones de d´olares durante 10 a˜ nos en la infraestructura de la red, la CSU dejar´a a la CETI elegir las computadoras y los programas oficialmente usados en los campus. La proposici´on habla muy claro: se tratar´ a solamente de Windows 95 Windows NT y Microsoft Office. Los beneficios previstos por la CETI, m´ as el impacto en la educaci´ on de los que el d´ıa de ma˜ nana ser´an responsables de empresas (impacto seguro gracias a los cursos especializados en productos inform´aticos privados), se cifra a algunos miles de millones de d´olares en diez a˜ nos. Y esto s´ olamente contabiliza los m´argenes de la venta monopolista del hardware y del software a los estudiantes y docentes en sus campus, los cuales ya no podr´an seguir ciertos cursos sin utilizar esas computadoras (ver [21] y la decisi´ on de reexaminar de acuerdo en [22] 14 ).

D.10.

Lo que esta en juego: el control de la informaci´ on

Pero los elementos comerciales y las pol´ıticas que est´an en juego superan ampliamente el cuadro de la educaci´ on y de la gesti´ on de empresas. No estamos hablando de la simple venta de algunas computadoras y programas, sino del control total sobre toda forma de transmisi´on y de tratamiento de la informaci´ on, en la educaci´ on, en las transacciones bancarias, en los nuevos y viejos medios de comunicaci´ on, y hasta en la intimidad de nuestra correspondencia privada. Si alguno de los contendientes del sector obtiene una posici´on de monopolio en la gesti´ on de esta informaci´ on, estar´a en situaci´ on de hacer pagar un impuesto sobre toda operaci´on inform´atica (un porcentaje sobre la transacci´on electr´onica, “vigorish” en ingl´es), tal y como est´a escrito negro sobre blanco en una nota interna de Nathan Myrhuold, el CTO de Microsoft. Dicha nota forma parte ahora del dossier del DOJ y fue publicada por el Wall Street Journal el a˜ no pasado [23]. Pero tal monopolio podr´a tambi´en obligarlo a usted a ceder una parte muy importante de su libertad personal, lo cual puede producir beneficios muy importantes. Reflexione por un instante sobre el hecho de que todo tipo de informaci´ on es susceptible de ser generada en una computadora y que se puede en principio seguir la pista de toda operaci´on inform´atica. Por ejemplo, mientras usted observa unas bellas im´agenes sentado c´omodamente delante de su PC multimedia, pueden ser copiados sus datos bancarios 14

Nota: finalmente, el acuerdo fracas´ o a mediados de 1998 gracias a la oposici´ on firme de estudiantes y profesores.


144

Trampa en el Cyberespacio

o puede ser constitu´ıdo su perfil personal y psicol´ogico para ser utilizado a espaldas suyas. Esto ya se hace desde hace tiempo con la ayuda de “cookies” en los navegadores Web [24]; ciertas empresas como Sidewalk, filial de Microsoft, le obligan a aceptar una verdadera violaci´ on de su vida privada para acceder a sus servicios [25]. Gracias a extensiones privadas y vulnerables como el Active X de Microsoft, le pueden robar el dinero de su cuenta bancaria mientras usted “navega por la red”, tal y como ha sido demostrado irrefutablemente por un grupo de inform´aticos de Hamburgo en la televisi´ on alemana y en muchas publicaciones de las cuales no hemos visto ni rastro aqu´ı en Francia (ver [26] para m´ as detalles). Y a´ un si Microsoft no se aprovecha de las lagunas de seguridad de su sistema, otros pueden hacerlo en su lugar. Hoy en d´ıa se puede transmitir un virus dentro del m´ as simple documentos Word, y si uno compra algo v´ıa Internet utilizando transacciones “seguras” el n´ umero de su tarjeta de cr´edito podr´ıa ser pirateado con s´ olo ocho horas de c´alculo en la m´ aquina de un estudiante. Es para preocuparse, sobre todo si se piensa que el Cr´edit Lyonnais acaba de cerrar un acuerdo con Microsoft para la gesti´ on de cuentas de sus clientes a trav´es de la Web (ver [27]). Se puede tambi´en seguir el rastro de sus movimientos, los cuales son revelados a espaldas suyas por su tarjeta de cr´edito o su tel´efono m´ obil, como qued´ o demostrado hace poco en el clamoroso esc´ andalo Suizo, o tambi´en el affaire OM-Valenciennes (en este sentido, cabe tambi´en inquietarse por la fusi´ on del servicio Microsoft Network con el servicio Wanadoo de France Telecom). Para llegar a ese punto sin correr el riesgo de ser atrapado con las manos en la masa, es necesario controlar toda la cadena tecnol´ogica: su computadora debe utilizar un programa espec´ıfico, capaz de sonsacar ciertas informaciones a sus espaldas; los proveedores de servicios Internet deben permitir guardar registros de la duraci´ on y del tipo de conexiones que hace; los servidores Web que contienen la informaci´ on que usted busca deben utilizar programas espec´ıficos tambi´en capaces de guardar rastro de estos accessos, y de identificarlo comunic´andose con su navegador. Y sobre todo, es necesario que todo esto pase sin que usted lo sepa. Hoy en d´ıa un inform´ atico medianamente dotado puede descubrir f´acilmente si tal o cual navegador Web est´a revelando su identidad a cualquier servidor Web. Esto es posible porque todav´ıa se usan protocolos inform´aticos que son de dominio p´ ublico, y deben permanecer p´ ublicos para permitir que programas producidos por empresas diferentes cooperen razonablemente. Pero si ma˜ nana no hubiera m´ as que un solo productor de software en el mercado, ´este har´ıa todo lo posible para que el intercambio de informaci´ on se hiciera por medios menos transparentes y mucho m´ as dif´ıciles de desenmascarar, tanto m´ as si pensamos en las leyes


D.11 Una oportunidad para Europa y el empleo

145

sobre “reverse engineering” a las que aludimos anteriormente. Como ver´a, no se trata solamente de elegir un programa de tratamiento de textos.

D.11.

Una oportunidad para Europa y el empleo

Mi sorpresa por la pasividad, incluso complicidad, de nuestros medios toca su punto m´ aximo. Estamos admitiendo y alabando pr´acticas de filibusteros que incluso ponen en juego nuestra independencia econ´ omica. Comprendo que en los Estados Unidos no miren demasiado a d´onde van los millones de d´olares, ya que acaban aterrizando en los bolsillos de uno de sus ciudadanos. Pero no me explico por qu´e cierran los ojos aqu´ı, cuando este dinero sale de nuestras billeteras. Hay que decir que la UE no ha permanecido del todo pasiva en este campo, y parece haber una investigaci´on de envergadura sobre todas estas pr´acticas dudosas sobre las que hemos hablado [28]. En ciertos discursos de miembros de la DGIV se lee entre l´ıneas que la investigaci´on va en el mismo sentido que la lanzada por la FTC del Jap´ on hace poco. Sin embargo esto no es suficiente: con la rapidez del desarrollo tecnol´ogico en el tratamiento de la informaci´ on, cuando se llega a terminar una investigaci´on el da˜ no ya est´a hecho. Si, como en el acuerdo de 1995, no se aplica un castigo econ´ omico (como ciertas filtraciones hacen suponer), todo esto servir´a de poco. Necesitamos una pol´ıtica activa en el dominio de la inform´ atica y del tratamiento de la informaci´ on en general. En este area ya disponemos de medios t´ecnicos propios: no olvidemos que en efecto Europa posee talentos superiores a los que podemos encontrar al otro lado del Atl´ antico. Por citar nada m´ as que dos ejemplos al azar, uno de los autores de NextStep, que ha sido llamado “el programa m´ as respetado del planeta”, es franc´es; y Europa est´a a la vanguardia en el desarrollo de los m´etodos formales de verificaci´on de programas, que permiten llevar a cabo proyectos vitales, el u ´ltimo de los cuales fue el segundo lanzamiento del cohete Ariane 5. Tenemos aqu´ı una oportunidad u ´nica para Europa de librarse de golpe del monopolio tecnol´ogico americano y de dar tanto a nuetras empresas como a nuestras escuelas una enorme ventaja. Este “atraso” del cual tanto se habla es de hecho nuestra mejor ventaja. Significa que no hemos ca´ıdo completamente en las trampas hacia las cuales nos empujan. No olvidemos que “perder el tren” no es malo, si es un tren que va a descarrilar. Se puede entonces elegir para nuestras empresas y nuestros hijos el libre acceso, a un


146

Trampa en el Cyberespacio

costo m´ınimo, una informaci´ on libre, abierta, segura y eficaz. Esto en todo caso lo hace un n´ umero creciente de inform´aticos competentes, que eligen siempre que sea posible programas libres gratuitos, abiertos, modificables y muy superiores a los productos trampa preinstalados. Y adem´ as, con un potencial enorme para crear nuevos empleos.

D.12.

Una posible alternativa: los programas libres

Cuando se trata de elegir el software de nuestros colegios y universidades con el que nuestros hijos se iniciar´ an en la inform´atica, no se est´a obligando a atenerse a los equ´ıvocos regalos de los cybermonopolistas. En lugar de un sistema privado que se cuelga cada dos por tres, cambia constantemente de versi´ on sin raz´on alguna, y en el cual el c´odigo fuente no es accesible, se puede elegir un sistema libre, abierto y estable (es necesario saber que, contrariamente al prejuicio popular, los programas libres han tenido ampliamente la ocasi´ on de ser probados [29]). Con dicho sistema todos los j´ovenes pueden trabajar y aprender con toda seguridad, y permite que los esp´ıritus curiosos adquieran una formaci´on inform´atica avanzada e inteligente, pues la disponibilidad del c´odigo fuente les permite ver c´omo est´a hecho por dentro, e incluso “desmontarlo” y volverlo a montar si lo desean. Y cuando se trata de equipar con sistemas inform´aticos a las grandes empresas, es mejor confiar en los programas en los cuales el c´odigo fuente y la documentaci´ on es constantemente verificada y puesta al d´ıa por una comunidad t´ecnicamente competente, pudi´endose adaptar a sus necesidades particulares a bajo costo. Algunos estudios serios, llevados a cabo por consultoras expertas en inform´atica, han evaluado las ventajas econ´ omicas y estrat´egicas que supone para las empresas basarse en los programas abiertos, en vez de atarse a los programas monopolistas (ver por ejemplo [30] y [31, 32]). Se pueden encontrar muchos ejemplos de empresas en Europa que han puesto en pr´actica esta teor´ıa con ´exito, export´ andola despu´es al otro lado del Atl´ antico (ver [33] y la creciente lista [34]) Todo esto es posible sin invertir un c´entimo, gracias al trabajo comenzado hace unos 15 a˜ nos por Richard Stallman y la Free Software Foundation. El objetivo declarado de ´esta era producir un sistema operativo enteramente libre, denominado GNU [35]. Este trabajo ha sido completado recientemente gracias al esfuerzo de miles de programadores competentes, que respondieron a la llamada de Linus Torvalds desde todos los pa´ıses del mundo para contribuir en conjunto, sin fines lucrativos, a completar este sistema operativo libre, gratuito y abierto. Se trata de una versi´ on de Unix conocida


D.13 Para concluir

147

bajo el nombre de Linux (ver por ej. [36, 37]), aunque ser´ıa probablement mas justo llamarle GNU/Linux [38], como se hace en este art´ıculo. La historia de GNU/Linux es de aquellas que no se cuentan sin recordar palabras que deber´ıan ser queridas no solamente por los franceses: libertad, igualdad, fraternidad. Se puede encontrar todo tipo de software para este sistema: servidores Web, m´ aquina virtual Java, emuladores DOS, los u ´tiles GNU, incluso paquetes ofim´aticos. Y no hay que pagar nada para obtener estos productos de base. La Comunidad Europea podr´ıa tambi´en dar un apoyo a este fen´ omeno tan positivo: una suma de algunas docenas de millones de francos, cifra irrisoria en la escala del presupuesto europeo, permitir´ıa, si es bien utilizada, terminar r´ apidamente proyectos como GNUStep [39], favorecer el desarrollo de GNU/linux y establecer una plataforma abierta y de calidad para tener paquetes ofim´aticos interoperables. La elecci´ on de un sistema abierto y libre puede neutralizar el impuesto sobre la informaci´ on y tambi´en favorecer el empleo y hacer a nuestras empresas m´ as competitivas. El dinero que ya no se esfuma (en Windows) puede dedicarse a la actividad productiva y a financiar los contratos de mantenimiento con empresas locales de servicios inform´aticos, las cuales pueden adaptar el sistema a las necesidades espec´ıficas de las empresas. Esto puede crear un verdadero espacio de crecimiento y de empleos cualificados para ingenieros, los cuales ser´an ahora responsables de la calidad de su producto. No como los comerciantes mal pagados que intentan vender un producto sobre el cual no tienen ning´ un control, y del cual los beneficios van a parar a otra parte. En Francia, los empleos de este g´enero ser´an indispensables en un futuro venidero si queremos que funcionen las futuras redes inform´aticas instaladas en las escuelas, dentro del cuadro del Plan Internet para Todos. Es necesario a cualquier precio evitar cometer de nuevo el error del “gur´ u en la caja”: esta creencia de que el manual de instalaci´ on transmite toda la sabidur´ıa necesaria para la utilizaci´ on de una computadora. Creencia que acab´o convirtiendo un n´ umero incalculable de computadoras Thomson del Plan Inform´atico para Todos de 1981 en unos caros pisapapeles.

D.13.

Para concluir

La inform´atica y las computadoras nos dan la posibilidad de revolucionar nuestra forma de vivir cotidiana. Pero es nuestra responsabilidad elegir entre una revoluci´on que nos acabe llevando a una oscura Edad Media tecnol´ogica dominada por unos pocos se˜ nores feudales que se apropien de la escritura y de todo medio de comunicaci´ on para recaudar impuestos cada vez que respi-


148

Trampa en el Cyberespacio

remos; o por el contrario una revoluci´on que nos lleve a un mundo abierto y moderno, donde el flujo libre de la informaci´ on nos permita sacar provecho del enorme potencial de la cooperaci´on sin barreras y de la posibilidad de compartir nuestros conocimientos.

D.14.

Agradecimientos

Esta traducci´on en espa˜ nol no hubiera podido existir sin la ayuda de Clara Rabinovich, de Delia Kesner, y sobre todo de Jos´e L. Mar´ın (jose@ ma.hw.ac.uk). Es para mi muy simb´olico el hecho de que esta traducci´on, as´ı como todas las otras traducciones de este texto, haya sido hecha gracias a la cooperaci´ on sin barreras que s´ olo un sistema inform´atico mundial abierto y moderno puede garantizar.

D.15.

Copyright

c Copyright Roberto Di Cosmo, 1997. Las opiniones vertidas en este art´ıculo pertenecen u ´nicamente a su autor, y no vinculan en modo alguno a la ENS, el DMI o el LIENS. Este texto est´a protegido por las leyes de la propiedad intelectual. Queda autorizada a todo individuo que no trabaje para Microsoft, ni para ninguna empresa con contratos de confidencialidad con Microsoft, la reproduccion para uso personal y sin objeto de lucro de este art´ıculo, con la condici´ on de que sea reproducido integralmente, inclu´ıda esta nota de copyright. Microsoft y sus socios pueden solicitar al autor, si lo desean, una licencia individual de copia, a un precio de que ser´a establecido por el autor; en caso de violaci´ on de esta cla´ usula, se solicitar´ a una indemnizaci´on de 1 mill´on de francos franceses.

D.16.

References

[1] James Wallace and Jim Erickson. Hard Drive: Bill Gates and the Making of the Microsoft Empire. Harperbusiness, 1993. ISBN 0887306292. [2] Robert X. Cringely. Accidental Empires : How the Boys of Silicon Valley Make Their Millions, Battle Foreign Competition, and Still Can’t Get a Date. Harperbusiness, 1996. ISBN 0887308554. [3] James Wallace. Overdrive : Bill Gates and the Race to Control Cyberspace. John Wiley and Sons, 1997. ISBN 0471180416. [4] CNN - U.S. vs. Microsoft. http://cnn.com/SPECIALS/1997/microsoft/poll. [5]ZDNN News Special: DoJ-Microsoft Round 2, Microsoft comes out swinging. http://www.zdnet.com/zdnn/special/msdoj2.html [6] Perspectives. http://www.news.com/Perspectives/Soapbox/rs12_30_97a.html.


D.16 References

149

[7] M.V. Microsoft m’a tu´e. Science et Vie Micro (SVM), (157):69, February 1998. [8] Le Virus Informatique. http://www.virus.ldh.org/. [9] Richard M. Stallman. The right to read. Communications of the ACM, 40(2), February 1997. Disponible sur le Web http://www.gnu.org/people/rms.html. [10] Andrew Schulmnn. LA law. The Stac case judged February 23, 1994, in Los Angeles, http://www.dap.csiro.au/Interest/LA-Law.html. [11] The CLRC recommendations on reverse engineering and decompilation: giving local developers an equal right to compete. http://www.sisa.org.au/SISASubmission1. html. [12] Microsoft & others oppose interoperability in HR 1555. http://www.essential. org/listproc/info-policy-notes/msg00158.html. [13] PC WEEK: Netscape to present DOJ with Microsoft antitrust info. http: //www.zdnet.com/pcweek/news/0819/19edoj.html. [14] ftp://ftp.ora.com/pub/examples/windows/win95.update/ntwk4.html. [15] Le virus informatique/page27. http://www.virus.ldh.org/virus/num_01/ pages/page27.html. [16] Minimal NT Server/Workstation Differences. http://software.ora.com/News/ ms_internet_andrews.html. [17] Dossier Piratage- 10 questions - Microsoft France. http://www.microsoft. com/france/piratage/question.htm. [18] http://europa.eu.int/en/comm/dg04/public/en/art8586.pdf. [19] Bulletin UE 07-1994 (fr): 2.4.1 Engagement de Microsoft envers la Commission europ´eenne. http://europa.eu.int/abc/doc/off/bull/fr/9407/p204001.htm. [20] Swiss schools to get MS software. http://www.news.com/News/Item/0,4, 15086,00.html. [21] MS college deal protest escalates. http://www.news.com/News/Item/0,4, 17212,00.html. [22] Cal State delays MS pact. http://www.zdnet.com/zdnn/content/zdnn/0107/ 269241.html. [23] Philip Elmer-DeWitt. Bill Gates wants a piece of everybody’s action. Time, 6/5/95. [24] O. Casey Corr. Cybersnoops on the loose; web-site surfers beware: Software ’cookies’ gathering personal data. The Seattle Times, 8/10/97. [25] http://seattle.sidewalk.com/link/43750. Attention, le texte est formatt´e de telle sorte que les conditions se trouvent trop `a droite sur plein de navigateurs. Faite d´erouler la page vers la droite pour les lire. [26] ActiveX - Conceptional Failture of Security. http://www.iks-jena.de/mitarb/ lutz/security/activex.en.html. [27] http://www.microsoft.com. [28] Europa/Competition/Effective competition. http://europa.eu.int/en/comm/ dg04/speech/six/en/sp96016.htm. [29] Information wants to be valuable. http://www.netaction.org/articles/ freesoft.html. [30] http://www.smets.com. [31] Bernard Lang. Des logiciels libres `a la disposition de tous. Le monde diplomatique, January 1998. Aussi disponible comme http://www.monde-diplomatique. fr/md/1998/01/LANG/9761.html. [32] Bernard Lang and Jean-Claude Gu´edon. Linux, mini os contre maxi exploitation. Lib´eration, 7 November 1997. Aussi disponible comme http://pauillac.


150

Trampa en el Cyberespacio

inria.fr/lang/ecrits/libe/www.liberation.com/multi/tribune/art/tri971107. html. [33] http://mercury.chem.pitt.edu/angel/LinuxFocus/English/November1997/ article9.html. [34] Freeware usage. http://pauillac.inria.fr/lang/hotlist/free/use/. [35] http://www.gnu.org. [36] http://www.linux.org. [37] Linux center. http://www.math.jussieu.fr/fermigie/linux-center/. [38] http://www.gnu.org/gnu/linux-and-gnu.html. [39] http://www.NMR.EMBL-Heidelberg.DE/GNUstep/. [40] James Love and Ralph Nader. Microsoft, monopole du prochain si`ecle? Le monde diplomatique, November 1997.

D.17.

About this document...

This document was generated using the LaTeX2HTML translator Version 96.1 c (Feb 5, 1996) Copyright 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds. The command line arguments were: latex2html -split 0 -ascii_mode p.tex The translation was initiated by Roberto Di Cosmo on Fri Oct 9 22:48:54 MET 1998. Roberto Di Cosmo Fri Oct 9 22:48:54 MET 1998


Ap´ endice E

GNU Free Documentation License Version 1.2, November 2002 c 2000,2001,2002 Free Software Foundation, Inc. Copyright 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”,


152

GNU Free Documentation License

below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The “Cover Texts” are certain short passages of text that are listed, as FrontCover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text. A section “Entitled XYZ” means a named subunit of the Document whose


153 title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and BackCover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until


154

GNU Free Documentation License

at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.


155 K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles. You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties–for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.


156

GNU Free Documentation License

In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements”.

6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.


157

9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: c YEAR YOUR NAME. Permission is granted to copy, Copyright distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no FrontCover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with . . . Texts.” line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Taller GNU/Linux - Apunte Teorico  

Apunte Teórico utilizado para el Taller de GNU/Linux de la Universidad de la Matanza

Read more
Read more
Similar to
Popular now
Just for you