“software libre y gnu/linux” apunte...

159
“Software Libre y GNU/Linux” ApunteTe´orico Universidad Nacional de La Matanza Ingenier´ ıa Inform´ atica Taller de GNU/Linux Recopilaci´on y edici´on realizada por Diego J. Brengi 2 de mayo de 2008

Upload: dinhthuan

Post on 08-Feb-2018

234 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

“Software Libre y GNU/Linux”Apunte Teorico

Universidad Nacional de La MatanzaIngenierıa Informatica

Taller de GNU/LinuxRecopilacion y edicion realizada por Diego J. Brengi

2 de mayo de 2008

Page 2: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2

Page 3: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Prefacio

El taller de GNU/Linux 1 nacio en el ano 2001 como un curso optativopara los alumnos de ingenierıa en informatica de la Universidad Nacionalde La Matanza 2. Su objetivo principal es el de iniciar a los alumnos enla utilizacion del sistema operativo, fomentar su uso y ensenar la filosofıaque ha hecho posible su nacimiento y evolucion. El taller comienza con unaintroduccion al mundo del “software libre” y complementa esto con clasespracticas frente a la computadora.

Desde sus inicios comence una tarea de recoleccion de material didacti-co y a apartir del ano 2006 debo agradecer la importante colaboracion deAlejandro Casas para llevar adelante el curso. Tratando de mantener ciertacoherencia segun los objetivos y tiempos del taller hemos tenido que com-plementar y editar los artıculos, donde el autor original lo permite.

En este apunte, que se ha convertido casi en un libro, se ha condensadotodo el material asociado a los aspectos historicos, filosoficos y estructura-les necesarios para comenzar a comprender el “software libre” y el sistemaoperativo GNU/Linux, sin entrar en detalles demasiado tecnicos.

Cabe aclarar que muchos de los artıculos aquı expuestos expresan opi-niones propias de cada autor, las cuales podran agradar o no al lector. Suinclusion responde a la relevancia historica de estos artıculos y la gran difu-sion que tienen dentro del mundo del “software libre”.

Los apendices se brindan como lectura complementaria, pero practica-mente obligatoria para quienes cursan el taller.

La mayor parte de este apunte esta compuesta por textos e imagenesobtenidos de la red, con permiso expreso de reproduccion por parte de susautores. Se aclara al final de cada capıtulo el origen de cada seccion.

A principios de 2008 se han migrado todos los apuntes desde OpenOfficea LATEX por cuestiones practicas a la hora de actualizar el material. Porsupuesto esto hace que aparezcan nuevos errores y se sumen a los viejos.Sepa el lector comprender y disculpar esta situacion.

Ing.Diego J. Brengi

1http://tallergnulinux.sf.net2http://www.unlm.edu.ar

Page 4: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4

Page 5: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Indice general

Indice general 5

Indice de figuras 11

1. El sistema operativo UNIX 13

1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3. El laboratorio de inteligencia de Berkeley . . . . . . . . . . . 18

1.4. Breve biografıa de Kenneth Thompson . . . . . . . . . . . . . 20

1.5. Breve biografıa de Dennis M. Ritchie . . . . . . . . . . . . . . 20

1.6. Arbol de familias UNIX . . . . . . . . . . . . . . . . . . . . . 21

1.7. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 22

2. Historia del Proyecto GNU 25

2.1. El proyecto GNU . . . . . . . . . . . . . . . . . . . . . . . . 25

2.1.1. El termino GNU . . . . . . . . . . . . . . . . . . . . . 25

2.1.2. Compatibilidad con UNIX . . . . . . . . . . . . . . . . 25

2.1.3. Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1.4. Financiamiento . . . . . . . . . . . . . . . . . . . . . . 26

2.1.5. Avances . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1.6. Herramientas GNU . . . . . . . . . . . . . . . . . . . . 28

2.1.7. Desarrollos . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2. La Free Software Foundation . . . . . . . . . . . . . . . . . . 29

2.3. Actividades principales de la FSF . . . . . . . . . . . . . . . . 30

2.4. Biografıa breve de Richard M. Stallman . . . . . . . . . . . . 31

2.5. Nacimiento del proyecto GNU . . . . . . . . . . . . . . . . . . 33

2.6. El Proyecto GNU por Richard Stallman . . . . . . . . . . . . 33

2.6.1. La primera comunidad que comparte el software . . . 33

2.6.2. El colapso de la comunidad . . . . . . . . . . . . . . . 34

2.6.3. Una eleccion moral severa . . . . . . . . . . . . . . . . 36

2.6.4. Libre como en libertad . . . . . . . . . . . . . . . . . . 37

2.6.5. Software GNU y el sistema GNU . . . . . . . . . . . . 38

2.6.6. El inicio del proyecto . . . . . . . . . . . . . . . . . . . 38

Page 6: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

6 INDICE GENERAL

2.6.7. Los primeros pasos . . . . . . . . . . . . . . . . . . . . 382.6.8. GNU Emacs . . . . . . . . . . . . . . . . . . . . . . . 392.6.9. ¿Es libre el programa para cualquier usuario? . . . . . 402.6.10. Copyleft y la GNU GPL . . . . . . . . . . . . . . . . . 402.6.11. La Fundacion para el Software Libre . . . . . . . . . . 412.6.12. Asistencia para el Software Libre . . . . . . . . . . . . 422.6.13. Metas tecnicas . . . . . . . . . . . . . . . . . . . . . . 432.6.14. Computadoras donadas . . . . . . . . . . . . . . . . . 432.6.15. La lista de tareas de GNU . . . . . . . . . . . . . . . . 442.6.16. La GPL para Bibliotecas de GNU . . . . . . . . . . . 442.6.17. ¿Rascarse una comezon? . . . . . . . . . . . . . . . . . 452.6.18. Desarrollos inesperados . . . . . . . . . . . . . . . . . 462.6.19. El GNU Hurd . . . . . . . . . . . . . . . . . . . . . . . 462.6.20. Alix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.6.21. Linux y GNU/Linux . . . . . . . . . . . . . . . . . . . 472.6.22. Desafıos en nuestro futuro . . . . . . . . . . . . . . . . 472.6.23. Hardware secreto . . . . . . . . . . . . . . . . . . . . . 482.6.24. Bibliotecas no libres . . . . . . . . . . . . . . . . . . . 482.6.25. Patentes de software . . . . . . . . . . . . . . . . . . . 492.6.26. Documentacion libre . . . . . . . . . . . . . . . . . . . 502.6.27. Debemos hablar acerca de la libertad . . . . . . . . . 512.6.28. ((Open Source)) . . . . . . . . . . . . . . . . . . . . . . 512.6.29. ¡Pruebelo! . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.7. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 53

3. El kernel Linux 553.1. Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.2. Nacimiento de Linux . . . . . . . . . . . . . . . . . . . . . . . 553.3. Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573.4. Avances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.5. Linux y el proyecto GNU . . . . . . . . . . . . . . . . . . . . 583.6. La lista de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 593.7. Desarrolladores . . . . . . . . . . . . . . . . . . . . . . . . . . 603.8. Versiones del kernel . . . . . . . . . . . . . . . . . . . . . . . . 613.9. Estructura monolıtica . . . . . . . . . . . . . . . . . . . . . . 623.10. Arquitecturas de hardware . . . . . . . . . . . . . . . . . . . . 633.11. El codigo fuente . . . . . . . . . . . . . . . . . . . . . . . . . . 633.12. Cambiando el kernel . . . . . . . . . . . . . . . . . . . . . . . 633.13. Kernels precompilados . . . . . . . . . . . . . . . . . . . . . . 643.14. Instalando un kernel compilado a medida . . . . . . . . . . . 64

3.14.1. Obteniendo el codigo fuente . . . . . . . . . . . . . . . 653.14.2. Aplicar parches . . . . . . . . . . . . . . . . . . . . . . 653.14.3. Configuracion . . . . . . . . . . . . . . . . . . . . . . . 663.14.4. Compilacion . . . . . . . . . . . . . . . . . . . . . . . 66

Page 7: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

INDICE GENERAL 7

3.14.5. Instalacion . . . . . . . . . . . . . . . . . . . . . . . . 66

3.14.6. Otras variantes . . . . . . . . . . . . . . . . . . . . . . 67

3.15. El arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.16. Los modulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.17. Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.18. Lecturas complementarias . . . . . . . . . . . . . . . . . . . . 74

3.19. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 75

4. Distribuciones GNU/LINUX 77

4.1. ¿Que es una distribucion de GNU/Linux? . . . . . . . . . . . 77

4.2. ¿Que partes componen una distribucion? . . . . . . . . . . . . 77

4.2.1. Programa de instalacion . . . . . . . . . . . . . . . . . 77

4.2.2. Kernel Linux . . . . . . . . . . . . . . . . . . . . . . . 77

4.2.3. Herramientas GNU y sistema base . . . . . . . . . . . 78

4.2.4. Programas de aplicacion con licencias libres . . . . . . 78

4.2.5. Programas de aplicacion “privativos” . . . . . . . . . . 78

4.2.6. Configuraciones por defecto . . . . . . . . . . . . . . . 79

4.2.7. Herramientas de configuracion y administracion . . . . 79

4.2.8. Documentacion . . . . . . . . . . . . . . . . . . . . . . 80

4.2.9. Actualizaciones de seguridad y correcciones de bugs . 80

4.2.10. Integracion de todo el sistema . . . . . . . . . . . . . . 80

4.2.11. Soporte para el usuario . . . . . . . . . . . . . . . . . 81

4.2.12. Motivacion y objetivos . . . . . . . . . . . . . . . . . . 81

4.3. Clasificacion de distribuciones . . . . . . . . . . . . . . . . . . 82

4.3.1. Activas e inactivas . . . . . . . . . . . . . . . . . . . . 82

4.3.2. Dependencia de otra distribucion . . . . . . . . . . . . 82

4.3.3. Paıs de origen y desarrollo . . . . . . . . . . . . . . . . 82

4.3.4. Popularidad . . . . . . . . . . . . . . . . . . . . . . . . 82

4.3.5. Precio . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.3.6. Licencias involucradas . . . . . . . . . . . . . . . . . . 83

4.3.7. Manejo de paquetes de software . . . . . . . . . . . . . 83

4.3.8. Tipo de uso . . . . . . . . . . . . . . . . . . . . . . . . 84

4.3.9. Soporte principal . . . . . . . . . . . . . . . . . . . . . 84

4.4. ¿En que basar la eleccion? . . . . . . . . . . . . . . . . . . . . 84

4.5. ¿Como obtener una distribucion? . . . . . . . . . . . . . . . . 85

4.6. ¿Que distribuciones existen? . . . . . . . . . . . . . . . . . . . 86

4.7. Lınea de tiempo de distribuciones . . . . . . . . . . . . . . . . 92

4.8. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 92

5. Categorıas de software libre y no libre 95

5.1. Software libre . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

5.2. Software de codigo abierto (Open source) . . . . . . . . . . . 97

5.3. Software de dominio publico . . . . . . . . . . . . . . . . . . . 97

5.4. Software protegido con copyleft . . . . . . . . . . . . . . . . . 98

Page 8: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

8 INDICE GENERAL

5.5. Software libre no protegido con copyleft . . . . . . . . . . . . 98

5.6. Software cubierto por la GPL . . . . . . . . . . . . . . . . . . 99

5.7. El sistema GNU . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.8. Programas GNU . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.9. Software de GNU . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.10. Software no libre . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.11. Software semilibre . . . . . . . . . . . . . . . . . . . . . . . . 100

5.12. Software privativo . . . . . . . . . . . . . . . . . . . . . . . . 101

5.13. Freeware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.14. Shareware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.15. Software privado . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.16. Software comercial . . . . . . . . . . . . . . . . . . . . . . . . 103

5.17. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 103

6. Licencia de este libro 105

A. Conceptos de sistemas operativos 107

A.1. ¿Que es el Sistema Operativo? . . . . . . . . . . . . . . . . . 107

A.2. Funciones basicas de un sistema operativo . . . . . . . . . . . 107

A.3. Caracterısticas . . . . . . . . . . . . . . . . . . . . . . . . . . 108

A.3.1. Administracion de tareas . . . . . . . . . . . . . . . . 108

A.3.2. Administracion de usuarios . . . . . . . . . . . . . . . 108

A.3.3. Manejo de recursos . . . . . . . . . . . . . . . . . . . . 109

A.4. Historia de los Sistemas Operativos . . . . . . . . . . . . . . . 109

A.4.1. Anos 40 . . . . . . . . . . . . . . . . . . . . . . . . . . 109

A.4.2. Anos 50 . . . . . . . . . . . . . . . . . . . . . . . . . . 109

A.4.3. Anos 60 . . . . . . . . . . . . . . . . . . . . . . . . . . 110

A.4.4. Anos 70 . . . . . . . . . . . . . . . . . . . . . . . . . . 112

A.5. Autores del capıtulo . . . . . . . . . . . . . . . . . . . . . . . 113

B. Licencia Publica GNU 115

B.1. Traduccion al castellano . . . . . . . . . . . . . . . . . . . . . 115

B.2. Preambulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

B.3. Terminos y condiciones para la copia, distribucion y modifi-cacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

B.4. Apendice: Como aplicar estos terminos a sus nuevos programas122

C. El termino “Open Source” 125

C.0.1. Definicion de Open Source . . . . . . . . . . . . . . . . 125

D. Trampa en el Cyberespacio 129

D.1. Armario con cajones y lavado de cerebros . . . . . . . . . . . 131

D.2. El impuesto a la informacion . . . . . . . . . . . . . . . . . . 134

D.3. El caracter especıfico del software . . . . . . . . . . . . . . . . 134

Page 9: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

INDICE GENERAL 9

D.4. Los fabricantes atrapados en la trampa . . . . . . . . . . . . . 137D.5. El paıs de los tecnocretinos... . . . . . . . . . . . . . . . . . . 138D.6. ...no esta muy lejos . . . . . . . . . . . . . . . . . . . . . . . . 139D.7. Practicas dudosas . . . . . . . . . . . . . . . . . . . . . . . . . 141D.8. Bordeando la ley . . . . . . . . . . . . . . . . . . . . . . . . . 142D.9. Una mirada al posible futuro de la educacion . . . . . . . . . 144D.10.Lo que esta en juego: el control de la informacion . . . . . . . 145D.11.Una oportunidad para Europa y el empleo . . . . . . . . . . . 147D.12.Una posible alternativa: los programas libres . . . . . . . . . 148D.13.Para concluir . . . . . . . . . . . . . . . . . . . . . . . . . . . 149D.14.Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . 150D.15.Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150D.16.References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150D.17.About this document... . . . . . . . . . . . . . . . . . . . . . . 152

E. GNU Free Documentation License 1531. APPLICABILITY AND DEFINITIONS . . . . . . . . . . . . . 1532. VERBATIM COPYING . . . . . . . . . . . . . . . . . . . . . . 1553. COPYING IN QUANTITY . . . . . . . . . . . . . . . . . . . . 1554. MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . 1565. COMBINING DOCUMENTS . . . . . . . . . . . . . . . . . . . 1576. COLLECTIONS OF DOCUMENTS . . . . . . . . . . . . . . . 1587. AGGREGATION WITH INDEPENDENT WORKS . . . . . . 1588. TRANSLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589. TERMINATION . . . . . . . . . . . . . . . . . . . . . . . . . . . 15910. FUTURE REVISIONS OF THIS LICENSE . . . . . . . . . . . 159ADDENDUM: How to use this License for your documents . . . . 159

Page 10: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

10 INDICE GENERAL

Page 11: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Indice de figuras

1.1. Uno de los logos de la empresa Bell. . . . . . . . . . . . . . . 14

1.2. Computadora de la serie GE600 utilizada en el desarrollo deMULTICS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.3. Ken Thompson y Dennis Ritchie. . . . . . . . . . . . . . . . . 16

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

1.5. Logo del BSD UNIX. . . . . . . . . . . . . . . . . . . . . . . . 19

1.6. Kenneth Thompson. . . . . . . . . . . . . . . . . . . . . . . . 21

1.7. Dennis M. Ritchie. . . . . . . . . . . . . . . . . . . . . . . . . 22

1.8. Relacion simplificada entre sistemas UNIX y similares. . . . . 23

1.9. Development Tree of UNIX Networking Code. . . . . . . . . . 24

2.1. Logo del proyecto GNU. . . . . . . . . . . . . . . . . . . . . . 26

2.2. Richard M. Stallman en la actualidad. . . . . . . . . . . . . . 27

2.3. Logo Web de la Free Software Foundation. . . . . . . . . . . . 30

2.4. Richard M. Stallman hace tiempo. . . . . . . . . . . . . . . . 32

2.5. En esta imagen, dos pancartas envuelven a un nu, una de ellasmuestra ((What’s GNU?)) (¿Que es GNU?) y la otra ((GNU’sNot Unix!)) (¡GNU No es Unix!). En el centro de la imagenuna cara similar a la cabeza de un nu reposa orgullosamente.Damos las gracias a Etienne Suvasa por dibujar esta imagende ((What’s GNU)). . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1. Arquitectura general del Kernel Linux. Obtenido de “Anatomyof the Linux kernel” por M. Tim Jones. . . . . . . . . . . . . 56

3.2. Diagrama conceptual y simplificado de las capas de un siste-ma operativo GNU/Linux. . . . . . . . . . . . . . . . . . . . . 56

3.3. Arquitectura general del S.O. GNU/linux. Obtenido de “Anatomyof the Linux kernel” por M. Tim Jones. . . . . . . . . . . . . 57

3.4. Linus Torvalds. . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.5. Pequena historia de las releases mas importantes. Obtenidode “Anatomy of the Linux kernel” por M. Tim Jones). . . . . 59

3.6. Alan Cox, desarrollador del Kernel Linux. . . . . . . . . . . . 60

3.7. Diagrama conceptual de la jerarquıa de desarrolladores. . . . 61

Page 12: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

12 INDICE DE FIGURAS

3.8. Configuracion del kernel con la opcion “make menuconfig”. . 673.9. Configuracion del soporte para carga de modulos. . . . . . . . 743.10. Tux, logo del Kernel Linux creado por Larry Ewing. . . . . . 75

4.1. Distribuciones que se ofrecen a la venta en cajas estampadas. 834.2. GNU/Linux Distro Timeline. Version 7.6 by Lundqvist.

Obtenida de http://futurist.se/gldt/. Parte1 . . . . . . . . . . 934.3. GNU/Linux Distro Timeline. Version 7.6 by Lundqvist.

Obtenida de http://futurist.se/gldt/. Parte2 . . . . . . . . . . 94

5.1. Diagrama disenado por Chao-Kuei para explicar las diferentescategorıas de software. . . . . . . . . . . . . . . . . . . . . . . 96

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

Page 13: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 1

El sistema operativo UNIX

1.1. Introduccion

Luego de tres decadas de uso, el sistema operativo UNIX y sus deriva-dos son considerados como los sistemas operativos mas potentes, versatilesy flexibles dentro del mundo de la computacion. Su popularidad se debea muchos factores, incluyendo su habilidad para correr sobre una gran va-riedad de computadoras, desde micros hasta supercomputadoras, y por suportabilidad.

UNIX nace de las cenizas del proyecto MULTICS, el objetivo del pro-yecto era desarrollar un sistema operativo interactivo y multiusuario quecontase con muchas innovaciones, entre ellas mejoras en las polıticas de se-guridad. Este esfuerzo de varias companıas no fue exitoso, pero los ultimossobrevivientes de este proyecto en los laboratorios Bell volvieron a intentarloy obtuvieron un sistema operativo que ofrecıa a sus usuarios un entorno detrabajo sencillo, poderoso y elegante para su epoca.

El sistema tambien propicio una vision distinta al diseno del software:

“ Solucionar un problema interconectando herramientassencillas en vez de crear grandes programas monolıti-cos.”

Hoy dıa, la palabra UNIX se utiliza para denotar diferentes conceptosdependiendo del contexto en que es usada. Esto suele dar lugar a confusiones:

La familia UNIX: Desde el punto de vista tecnico, UNIX se refierea una familia de sistemas operativos que comparten unos criterios dediseno e interoperabilidad en comun. Esta familia incluye mas de 100sistemas operativos desarrollados a lo largo de 20 anos. No obstante, esimportante senalar que esta definicion no implica necesariamente quedichos sistemas operativos compartan codigo o cualquier propiedadintelectual.

Page 14: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

14 El sistema operativo UNIX

El sistema operativo UNIX original: Desde el punto de vistahistorico, UNIX se refiere a la subfamilia de sistemas operativos quedescienden de la primera implementacion original de AT&T. El termino“descendencia” ha de interpretarse como trabajos derivativos que com-parten propiedad intelectual con la implementacion original.

La marca UNIX: Desde el punto de vista legal, Unix es una marca demercado. Dicha marca es propiedad de “The Open Group” (http://es.wikipedia.org/wiki/The Open Group), una organizacion de es-tandarizacion que permite el uso de dicha marca a cualquier siste-ma operativo que cumpla con sus estandares publicados en “SingleUnix Specification” (http://es.wikipedia.org/wiki/Single Unix

Specification). Todo ello independientemente de que el sistema ope-rativo en cuestion sea descendiente o clonico del Unix original. Resu-miendo, la marca Unix no es propiedad de ninguna companıa.

1.2. Historia

Algunos de los puntos mas importantes en la historia del UNIX son lossiguientes:

Ano 1965

En 1965 los Laboratorios Bell de At&T se une con el MIT (Massachu-setts Institute of Technology) y General Electric para el desarrollo de unsistema operativo nuevo llamado MULTICS, que proveerıa soporte multi-usuario, multi-procesador, y sistema de archivos jerarquico, entre muchasde sus caracterısticas.

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

Ano 1969

En 1969 AT&T abandona el proyecto Multics por estar disconformes conlos adelantos del mismo. Cuando Bell Labs abandono el proyecto, sus inves-tigadores, (K. Thompson, Ritchie, M. D. McIlroy, J. F. Ossanna), disenaron

Page 15: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

1.2 Historia 15

Figura 1.2: Computadora de la serie GE600 utilizada en el desarrollo deMULTICS.

en papel un sistema de archivos que luego evoluciono hasta una version pri-mitiva del sistema de archivos de UNIX. Thompson escribio un programallamado “Space Travel” para un sistema GECOS (el cual corrıa en una Ho-neywell 635), pero era difıcil controlar la nave espacial y muy costoso paracorrer en esa maquina. Entonces Thompson trato de pasar su juego a unaPDP-7 (Programmed Data Processor con 4K de memoria para programas),y con el fin de tener un mejor ambiente para el desarrollo de programas,reescribio MULTICS en ensamblador, junto con su sistema de archivos, elsubsistema de procesos y unas cuantas librerıas.

Ano 1970

Brian Kernighan llamo al nuevo sistema UNICS (UNiplexed Informa-tion and Computing Service) por referencia a MULTICS, aunque despues secambio por UNIX.

Ano 1971

El primer uso real de UNIX fue como una herramienta de procesamientode textos para la seccion de patentes de los Laboratorios Bell. Esto justi-fico que el grupo de programadores continuaran su investigacion y desarrollo.UNIX fue acogido entre los programadores porque se diseno con estas ca-racterısticas:

Ambiente para programadores

Page 16: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

16 El sistema operativo UNIX

Interfaz simple para el usuario

Utilidades simples que pueden combinarse para ejecutar funciones po-derosas.

Sistema de archivos jerarquico

Interfaz de perifericos simple y consistente con el formato de los archi-vos

Sistema multi-usuario y multi-proceso

Arquitectura independiente y transparente al usuario.

Se traslado el sistema a una PDP-11/20 y despues a la PDP-11/45 yPDP-11/75. Como el pasar el sistema de una maquina a otra implicabareescribirlo, Thompson decidio reescribir UNIX en un lenguaje de alto nivelde su propio diseno, llamado B. B era una forma simplificada de BCPL, elcual era una forma simplificada de CPL. Debido a ciertas debilidades, B notuvo exito, pero serıa la base de un lenguaje mucho mas poderoso.

La primera edicion de “UNIX PROGRAMMER’S MANUAL” por K.Thompson y D. M. Ritchie tiene fecha del 3 de Noviembre de 1971. Incluıacerca de 60 comandos como: b (compilar un programa B); boot (reiniciarel sistema); cat (concatenar archivos); chdir (cambiar directorio de traba-jo); chmod (cambiar permisos de acceso); chown (cambiar propietario); cp(copiar archivos); ls (listar contenido de directorios); mv (mover o renombrararchivos); wc (contar palabras); who (usuarios en el sistema). La carenciaprincipal era el mecanismo de pipes.

Figura 1.3: Ken Thompson y Dennis Ritchie.

Page 17: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

1.2 Historia 17

Ano 1972

Ritchie reescribe el “B” y llama al nuevo lenguaje “C”. Thompson creael pipe: un mecanismo uniforme para conectar la salida de un programa a laentrada de otro. Esto establece las bases para la filosofıa de las herramientasUNIX:

“Escribir programas que hagan solo una cosa y que la ha-gan bien. Escribir programas para que trabajen juntos.Escribir programas que manejen flujos de texto porqueson una interfaz universal.”

Aparece la segunda edicion de UNIX.

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

Ano 1973

En 1973, se reescribio UNIX en C (lenguaje desarrollado por DennisRitchie) para facilitar la labor de implementar el Unix en las nuevas compu-tadoras. Salen la tercera y la cuarta edicion de UNIX.

Ano 1974

En 1974 Thompson y Ritchie publicaron un artıculo en The Communi-cations of the ACM en el que describieron el nuevo Sistema Operativo Unix.

Page 18: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

18 El sistema operativo UNIX

Este artıculo genera entusiasmo en la comunidad academica que ve en el unapoderosa herramienta de ensenanza en el estudio del desarrollo de los sis-temas de programacion. Por problemas legales con el decreto de Concesionde 1956 a la companıa AT&T se le prohibe comercializar el Unix. Debido aesto AT&T cede el Unix a las Universidades para propositos educativos y aotras entidades comerciales. Aparece la quinta edicion de UNIX.

El Departamento de Computacion Cientıfica de Berkeley comienza autilizar UNIX.

Mas tarde aparecen muchas variantes del sistema UNIX. Una de las masimportantes es la BSD (Berkeley Software Distribution ) que le incorporasoporte para memoria virtual y el stack TCP/IP para comunicacion en red.

1.3. El laboratorio de inteligencia de Berkeley

El interes de la comunidad universitaria por el sistema Unix cristalizaparticularmente en la Universidad de Berkeley, California. En 1974 un grupode investigadores y estudiantes de Informatica adquiere el Unix de AT&T.La empresa les ha cedido por una cantidad razonable el codigo fuente delsistema.

Pero el sistema AT&T requiere para funcionar correctamente en lasmaquinas de Berkeley algunas mejoras y adaptaciones que aportaran enparticular dos jovenes estudiantes de Informatica, Chuck Halley y Bill Joy,con la ayuda del mismo Ken Thompson. De este trabajo (estructurado entorno a a un pequeno equipo de pioneros) saldra, a principios de 1977, la Ber-keley Software Distribution (BSD), una version del sistema Unix mejoradapor los hackers de la Universidad de Berkeley.

El sistema BSD, que conoce un verdadero exito entre los equipos univer-sitarios de todo el mundo, se pondra al dıa regularmente durante los anossiguientes gracias a las multiples contribuciones y aportaciones de los mismosusuarios. En seguida dos versiones Unix, pero sobre todo dos culturas Unix,corren paralelamente para luego enfrentarse. La de Unix System Labs deAT&T por un lado y la de Computers Systems Research Group (CSRG) deBerkeley por el otro; por un lado los mecanismos de innovacion de empresa,por otro un proceso cooperativo de innovacion en el seno de una comunidad(si bien restringida).

El exito de BSD plantea un problema en seguida a AT&T, que en 1992lleva al CSRG a los tribunales por haber sobrepasado los terminos de lalicencia acordada y haber hecho publicos “secretos industriales”. Sera elcomienzo de una larga batalla jurıdica que no acabara hasta 1994, con laventa 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 sinembargo a la aventura judicial. El acuerdo al que se llego entonces permitede todos modos sacar una ultima version del sistema BSD llamada “4.4

Page 19: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

1.3 El laboratorio de inteligencia de Berkeley 19

BSD Lite”, bajo licencia libre y desembarazada de toda huella de codigoperteneciente a AT&T.

Figura 1.5: Logo del BSD UNIX.

El final del desarrollo del Unix BSD, a causa de la epopeya judicial delcopyright, pone fin a una epoca. La informatica pasa de la era de los pionerosa la de la produccion industrial de mercado. Numerosos hackers historicosabandonan los laboratorios para formar su propia empresa o se integran enlos mayoristas del sector. La empresa Sun, por ejemplo, surge directamentedel vivero de la Universidad de Berkeley donde fue concebida la version BSDde Unix.

Esta situacion tiene dos consecuencias principales. En primer lugar, la deconducir a una verdadera balcanizacion de los diferentes sistemas basados enUnix, hasta las diferentes tentativas de relanzar el proyecto BSD fuera delmarco universitario (NetBSD, FreeBSD, OpenBSD). Cada una desarrollasus propia variantes, sus propias implementaciones en detrimento la mayorparte de las veces de la compatibilidad. Y, en segundo lugar, encierra aldesarrollo informatico en lo que sera llamado “sistema propietario”, es decir,la aplicacion estricta por parte de las empresas del principio de propiedadprivada a toda produccion de software, excluyendo ası toda publicidad delcodigo y por lo tanto toda participacion de los usuarios en su desarrollo. Loque, en otros terminos, lleva a impedir cualquier innovacion en el seno deun producto terminado.

Page 20: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

20 El sistema operativo UNIX

1.4. Breve biografıa de Kenneth Thompson

1943 Nace en New Orleans, Louisiana.

1965-66 Se gradua en Ingenierıa Electrica en la Universidad de Californiaen Berkeley.

1966 Se incorpora al Departamento de Investigacion Computacional en losLaboratorios 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 DougMcIlroy.

1975-6 Profesor invitado en la Universidad de California, Berkeley.

1980 “Belle”, una computadora que juega ajedrez que desarrolla junto aJoe H. Condon, gana el Campeonato (mundial y de U.S.) de Ajedrezcon 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ıapor 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 gradua en Fısica en la Universidad de Harvard.

1968 Obtiene en Harvard un Ph.D. en matematicas.

Page 21: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

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. Ritchieque 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 importantecontribucion a la computacion.

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 Tecno-logıa por el desarrollo del sistema UNIX.

1.6. Arbol de familias UNIX

Para entender en forma general las relaciones entre versiones UNIX ysu fragmentacion se exponen distintos graficos. La figura 1.8 fue obte-nida de http://en.wikipedia.org/wiki/Unix y la figura 1.9 fue obte-

Page 22: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

22 El sistema operativo UNIX

Figura 1.7: Dennis M. Ritchie.

nida de http://www.leb.net/hzo/ioscount/ix unix net pic.html, dia-grama publicado con el permiso de “iX - Magazin fur Professionelle In-formationstechnik”, edicion 11/98, S.109, editor: Heinz Heise, Hannover,http://www.heise.de/ix.

1.7. Autores del capıtulo

Apunte compilado por Diego J. Brengi. Posee partes originales y materialobtenido de la red.

La aclaracion inicial sobre el termino UNIX realizada por Ruben Alejan-dro Casas.

Parrafo: “El laboratorio de inteligencia de Berkeley” extraıdo del artıculo“Cooperacion y produccion inmaterial en el software libre.” por LaurentMoineau y Aris Papatheodorou. http://www.sindominio.net/biblioweb/telematica/cooperacion.html.

Los derechos de las imagenes obtenidas de la red pertenecen a sus res-pectivos autores.

Page 23: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

1.7 Autores del capıtulo 23

Figura 1.8: Relacion simplificada entre sistemas UNIX y similares.

Page 24: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

24 El sistema operativo UNIX

Figura 1.9: Development Tree of UNIX Networking Code.

Page 25: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 2

Historia del Proyecto GNU

2.1. El proyecto GNU

El proyecto GNU fue iniciado por Richard Stallman con el objetivo decrear un sistema operativo completo libre: El sistema GNU . El 27 de sep-tiembre de 1983 se anuncio publicamente el proyecto por primera vez enel grupo de noticias net.unix-wizards. Al anuncio original, siguieron otrosensayos escritos por Richard Stallman como el “Manifiesto GNU”, queestablecieron sus motivaciones para realizar el proyecto GNU, entre las quedestaca:

“Retornar al espıritu de cooperacion que prevalecio enlos tiempos iniciales de la comunidad de usuarios decomputadoras”.

2.1.1. El termino GNU

GNU es un acronimo recursivo que significa “GNU No es Unix”.Stallman sugiere que se pronuncie, en ingles, como “guh-noo” (se puedeobservar que el logo es un nu) para evitar confusion con new (nuevo). Enespanol, GNU se pronuncia foneticamente o simplemente mencionando lasletras.

2.1.2. Compatibilidad con UNIX

UNIX es un sistema operativo no libre muy popular, porque esta basadoen una arquitectura que ha demostrado ser tecnicamente estable. El sistemaGNU fue disenado para ser totalmente compatible con UNIX. El hecho de sercompatible con la arquitectura de UNIX implica que GNU este compuestode pequenas piezas individuales de software, muchos de los cuales ya estabandisponibles, como el sistema de edicion de textos TeX y el sistema grafico XWindow, que pudieron ser adaptados y reutilizados; otros en cambio tuvieronque ser reescritos.

Page 26: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

26 Historia del Proyecto GNU

2.1.3. Licencia

Para asegurar que el software GNU permaneciera libre para que todos losusuarios pudieran “ejecutarlo, copiarlo, modificarlo y distribuirlo”,el proyecto debıa ser liberado bajo una licencia disenada para garantizaresos derechos al tiempo que evitase restricciones posteriores de los mismos.La idea se conoce en Ingles como copyleft (en clara oposicion a copyright),y esta contenida en la Licencia General Publica de GNU (GPL).

2.1.4. Financiamiento

En 1985, Stallman creo la Free Software Foundation (FSF o Fundacionpara el Software Libre) para proveer soportes logısticos, legales y financierosal proyecto GNU. La FSF tambien contrato programadores para contribuir aGNU, aunque una porcion sustancial del desarrollo fue (y continua siendo)producida por voluntarios. A medida que GNU ganaba renombre, nego-cios interesados comenzaron a contribuir al desarrollo o comercializacion deproductos GNU y el correspondiente soporte tecnico. El mas prominente yexitoso 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, unexitoso compilador (GCC), y la mayor parte de las librerıas y utilidades quecomponen un sistema operativo UNIX tıpico. Pero faltaba el componente

Figura 2.1: Logo del proyecto GNU.

Page 27: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.1 El proyecto GNU 27

primario llamado nucleo (kernel en ingles).

En el manifesto GNU, Stallman menciono que “un nucleo inicial existe,pero se necesitan muchos otros programas para emular Unix”. El se referıa aTRIX, que es un nucleo de llamadas remotas a procedimientos, desarrolladopor el MIT y cuyos autores decidieron que fuera libremente distribuido; Trixera totalmente compatible con UNIX version 7. En Diciembre de 1986 yase habıa trabajado para modificar este nucleo. Sin embargo, los programa-dores decidieron que no era inicialmente utilizable, debido a que solamentefuncionaba en “algunos equipos sumamente complicados y caros” razon porla cual deberıa ser portado a otras arquitecturas antes de que se pudierautilizar. Finalmente, en 1988, se decidio utilizar como base el nucleo Machdesarrollado en la CMU. Inicialmente, el nucleo recibio el nombre de Alix(ası se llamaba una novia de Stallman), pero por decision del programadorMichael Bushnell fue renombrado a Hurd. Desafortunadamente, debido arazones tecnicas y conflictos personales entre los programadores originales,el desarrollo de Hurd acabo estancandose.

Figura 2.2: Richard M. Stallman en la actualidad.

En 1991, Linus Torvalds empezo a escribir el nucleo Linux y decidio dis-tribuirlo bajo la GPL. Rapidamente, multiples programadores se unierona Linus en el desarrollo, colaborando a traves de Internet y consiguiendopaulatinamente que Linux llegase a ser un nucleo compatible con UNIX. En1992, el nucleo Linux fue combinado con el sistema GNU, resultando en unsistema operativo libre y completamente funcional. El sistema operativo for-mado por esta combinacion es usualmente conocido como “GNU/Linux”o como una “distribucion Linux” y existen diversas variantes. (Ver tambien:

Page 28: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

28 Historia del Proyecto GNU

Controversia por la denominacion GNU/Linux en Wikipedia).

En la actualidad (2004), Hurd continua en activo desarrollo y ya esposible obtener versiones experimentales del sistema GNU que lo empleancomo nucleo.

2.1.6. Herramientas GNU

Es frecuente hallar componentes de GNU instalados en un sistema UNIXno libre, en lugar de los programas originales para UNIX. Esto se debe a quemuchos de los programas escritos por el proyecto GNU han demostrado serde mayor calidad que sus versiones equivalentes de UNIX. A menudo, estoscomponentes se conocen colectivamente como “herramientas GNU”. Mu-chos de los programas GNU han sido tambien portados a otras plataformascomo Microsoft Windows y Mac OS X.

2.1.7. Desarrollos

Algunos de los programas desarrollados por el proyecto GNU son:

Bison: Generador parser disenado para substituir a yacc

Bash: Interprete 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 edicion fotografica

glibc: Biblioteca para lenguaje C

GMP: Programa para calculos arbitrarios

GNOME: Ambiente de escritorio grafico

Sistema de construccion para GNU

GNUnet: Red descentralizada de comunicaciones personales, disenada pa-ra resistir interferencias no autorizadas

Page 29: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.2 La Free Software Foundation 29

GNUstep: Implementacion del conjunto de bibliotecas OpenStep, ası comoherramientas para programar aplicaciones graficas

GSL: Biblioteca Cientıfica para GNU

Gzip: Aplicaciones y bibliotecas para compresion de datos

Hurd: Un microkernel y un conjunto de servidores que funcionan del mismomodo que el nucleo UNIX

Maxima: Un sistema para calculos algebraicos

Octave: Un programa para computo numerico similar a MATLAB

GNU MDK: Un conjunto de herramientas para la programacion en MIX

Texinfo: Sistema de documentacion

El proyecto GNU tambien ayuda con el desarrollo de otros paquetes,como:

CVS - sistema de control de versiones para codigo fuente

DDD - herramientas graficas para deteccion y depuracion de errores

2.2. La Free Software Foundation

Organizacion creada en Octubre de 1985 a partir del esfuerzo de RichardStallman y otros entusiastas del software libre con el proposito de difundireste movimiento.

“La Fundacion para el Software Libre (FSF) esta dedicada a eliminar lasrestricciones sobre la copia, redistribucion, entendimiento, y modificacionde programas de computadoras. Hacemos esto, promocionando el desarrolloy uso del software libre en todas las areas de la computacion, pero muyparticularmente, ayudando a desarrollar el sistema operativo GNU.

Muchas organizaciones distribuyen cualquier software libre que este dis-ponible. En cambio, la Fundacion para el Software Libre se concentra endesarrollar nuevo software libre, y en hacer de este software un sistemacoherente, el cual puede eliminar la necesidad de uso del software privativoo no libre.

Ademas de desarrollar GNU, FSF distribuye copias de software GNU ymanuales por un costo de distribucion, y acepta donaciones deducibles deimpuestos (en los Estados Unidos), para apoyar el desarrollo de softwareGNU. Muchos de los fondos de la FSF provienen de los servicios de dis-tribucion. Esta es la razon por la que pedimos que compren CD-ROMs ymanuales (pero especialmente CD-ROMs) de la FSF cuando pueda.”

Page 30: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

30 Historia del Proyecto GNU

Copyright c©1996, 1997, 1998, 1999, 2001 Free Software Foundation,Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA Verbatim copyingand distribution of this entire article is permitted in any medium withoutroyalty provided this notice is preserved. (Se permite la distribucion y lacopia literal de este artıculo en su totalidad, sin regalıas y por cualquiermedio 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 proposito original de la FSF1 fue promover los ideales del softwarelibre; pero la organizacion tambien tenıa a cargo el desarrollo del sistemaoperativo GNU.

Ejecucion GPL

La FSF dispone de los recursos y la voluntad para hacer cumplir lalicencia GPL y otras licencias GNU, pero solo para el software que del cualposee los derechos de autor; software GPL administrado por otros, deben deser defendidos por su propios duenos, ya que la FSF no tiene autoridad legalpara hacer valer la GPL para ellos. FSF maneja alrededor 50 violacionesGPL por ano e intenta traer a la otra parte a cumplimiento sin intervencionde la corte.

Licencias GNU

La licencia GNU GPL es la mas utilizada para proyectos de softwarelibre. La actual version (Version 2) fue liberada en 1991, en este momentola FSF esta trabajando en la Version 3.

La FSF tambien ha publicado la GNU Lesser General Public License(LGPL), y la GNU Free Documentation License (GFDL).

Guardian de los derechos de autor

La FSF Posee los derechos de autor para la mayorıa del software GNUy algunos no-GNU Free Software. Esto requiere documentos de cesion de

1Free Software Foundation

Page 31: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.4 Biografıa breve de Richard M. Stallman 31

derechos de autor de cada contribuyente para los paquetes GNU desarro-llados, de esa manera FSF puede defender el software en los tribunales sisurge alguna controversia, por lo que si existiera la necesidad de cambiar lalicencia de un trabajo, puede ser cambiada sin tener que contactar a todoslos contribuyentes que han trabajado en el software.

Prensa GNU

El departamento de publicacion de la FSF es responsable de la publica-cion de los libros en ciencia de la computacion usando licencias librementedistribuibles.

El directorio de Software Libre

Este es un listado de los paquetes de software que han sido verificadoscomo software libre. Cada paquete contiene 47 piezas de informacion talescomo la pagina del proyecto, desarrolladores, lenguaje de programacion, etc.Los objetivos son proveer un motor de busqueda para el software libre, yproveer una referencia cruzada para que los usuarios verifiquen si un paque-te fue comprobado como software libre. La FSF ha recibido una pequenacantidad de financiacion de la UNESCO para este proyecto. Se espera queel directorio pueda ser traducido en varios lenguajes en el futuro.

Mantenimiento de la definicion de Software Libre

La FSF mantiene varios de los documentos que definen el movimientodel Free Software.

Educacion Legal

La FSF realiza seminarios sobre aspectos legales utilizando la GPL, yofrece un servicio de consultorıa para abogados.

Hosting de Proyecyos

La FSF provee Hosting de proyectos a travez del sitio web Savannah.

2.4. Biografıa breve de Richard M. Stallman

Richard Stallman es el fundador del Proyecto GNU, iniciado en 1984para desarrollar el sistema operativo libre GNU (un acronimo de ”GNU isNot Unix”) y, por lo tanto, dar a los usuarios de computadoras la libertadque la mayorıa de ellos han perdido. GNU es software libre: todos tienenlibertad para copiarlo y redistribuirlo, ası como para hacerle cambios grandeso pequenos.

Page 32: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

32 Historia del Proyecto GNU

En la actualidad se usan ampliamente diversas variantes del sistemaGNU combinadas con el nucleo Linux desarrollado por Linus Torvalds. Seestima que hoy en dıa existen mas de 10 millones de usuarios de sistemasGNU/Linux.

Autor principal del Compilador C de GNU, un compilador optimizadortransportable que fue disenado para apoyar diversas arquitecturas y multi-ples lenguajes. El compilador ahora apoya mas de 30 arquitecturas distintasde computadoras y 7 lenguajes de programacion.

Escribio el depurador simbolico GNU (GDB), GNU Emacs y algunosotros programas GNU.

Recibio el Premio Grace Hopper de la Association for Computing Ma-chinery de 1991 por el desarrollo del primer editor Emacs en la decada delos setenta.

En 1990 fue premiado con una beca de la MacArthur Foundation y en1996 se le concedio un doctorado honorario del Royal Institute of Technologyde Suecia.

En 1998 recibio el Pioneer Award de la Electronic Frontier Foundationconjuntamente con Linus Torvalds.

En 1999 recibio el Premio Yuri Rubinski.

En 2002 se publica el libro “Free as in Freedom” Richard Stallman’sCrusade for Free Software realizado por Sam Williams. Este libro se publicabajo licencia FDL y puede obtenerse libremente en internet.

Figura 2.4: Richard M. Stallman hace tiempo.

Page 33: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.5 Nacimiento del proyecto GNU 33

2.5. Nacimiento del proyecto GNU

Nadie mejor que el propio RMS para explicar el porque del proyectoGNU y la FSF, su origen y la filosofıa asociada. Esta historia se encuentrarelatada en: http://www.gnu.org/gnu/thegnuproject.es.html y se copiaademas en la siguiente seccion.

Ademas del relato historico el texto posee opiniones, pareceres e idealesde su autor, lo que ayuda a comprender el concepto de “free software” aunqueel 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ıdode http://www.gnu.org/gnu/thegnuproject.es.html. Se publica este textopor su caracter historico y para comprender las filosofıa que ha dado lugaral software libre. Algunos de los datos mencionados han quedado desactua-lizados.

Figura 2.5: En esta imagen, dos pancartas envuelven a un nu, una de ellasmuestra ((What’s GNU?)) (¿Que es GNU?) y la otra ((GNU’s Not Unix!))(¡GNU No es Unix!). En el centro de la imagen una cara similar a la cabezade un nu reposa orgullosamente.Damos las gracias a Etienne Suvasa por dibujar esta imagen de ((What’sGNU)).

2.6.1. La primera comunidad que comparte el software

Cuando comence a trabajar en el Laboratorio de Inteligencia Artificialdel MIT en 1971, me incorpore a una comunidad que compartıa el softwareque ya tenıa varios anos de existencia. El acto de compartir software noestaba limitado a nuestra comunidad en particular; es tan antiguo como lascomputadoras, de la misma manera que compartir recetas es tan antiguocomo cocinar. Pero nosotros lo hacıamos en mayor grado que la mayorıa delos otros.

Page 34: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

34 Historia del Proyecto GNU

El Laboratorio de IA usaba un sistema operativo denominado ITS (In-compatible Timesharing System) [Sistema incompatible de tiempo compar-tido] que los hackers 2 del staff habıan disenado y escrito en lenguaje en-samblador para la PDP-10 de Digital, una de las mas grandes computadorasde la epoca. Mi trabajo como miembro de esta comunidad, como hacker desistema en el staff del laboratorio de IA, era mejorar este sistema.

No denominabamos ((software libre)) a nuestro software porque dichotermino no existıa; pero eso es lo que era. Cuando alguien de otra universidado companı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 codigo fuente para verlo, de manera que uno podıaleerlo, cambiarlo, o canibalizar ciertas partes del mismo para hacer un nuevoprograma.

2.6.2. El colapso de la comunidad

La situacion cambio drasticamente durante la primera parte de los 1980scuando Digital discontinuo la serie PDP-10. Su arquitectura, elegante y po-derosa en los 60s, no se pudo extender naturalmente a los espacios de di-reccionamiento mas grandes que se hicieron factibles en los 80s. Esto signi-fico que practicamente todos los programas que componıan a ITS se volvie-ron obsoletos.

La comunidad de hackers del laboratorio de IA ya se habıa colapsa-do, cierto tiempo antes. En 1981, la companıa derivada Symbolics habıacontratado a casi todos los hackers del laboratorio de IA, y la despobladacomunidad ya no era capaz de mantenerse a sı misma. (El libro Hackers,de Steve Levy, describe estos eventos, y muestra un claro panorama de estacomunidad en sus comienzos.) Cuando el laboratorio de IA adquiere unanueva PDP-10 en 1982, sus administradores deciden utilizar el sistema nolibre de tiempo compartido de Digital en lugar de ITS.

Las computadoras modernas de esa epoca, como la VAX o el 68020, tie-nen sus propios sistemas operativos, pero ninguno de ellos es software libre:usted debe firmar un ((acuerdo de no revelar)) (nondisclosure agreement) aunpara obtener una copia ejecutable.

Esto quiere decir que el primer paso para poder utilizar una computado-ra era prometer que no ayudarıa a su vecino. Se prohibıa la existencia deuna comunidad cooperativa. La regla hecha por los duenos de software pro-pietario era: ((si usted comparte con su vecino, usted es un pirata. Si deseaalgun cambio, rueguenos para que lo hagamos nosotros)).

La idea de que el sistema social del software propietario –el sistema

2El uso de ((hacker)) para referirse al ((quebrantador de la seguridad)) es una confusionproveniente de los medios masivos. Nosotros los hackers nos negamos a reconocer dichosignificado, y continuamos utilizando la palabra para indicar a ((alguien apasionado por laprogramacion y que disfruta al ser habil e ingenioso)).

Page 35: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 35

que dice que usted no tiene permitido compartir o cambiar el software– esantisocial, que no es etico, que esta sencillamente equivocado, puede seruna sorpresa para algunos lectores. ¿Pero que otra cosa podrıamos decirsobre un sistema que se basa en dividir el publico e impide socorrer a losusuarios? Los lectores que se sorprendan por esta idea es porque han tomadoel sistema social del software propietario tal como se lo han dado, o porquelo han juzgado en funcion de los terminos sugeridos por las empresas quehacen software propietario. Los publicadores de software han trabajado duroy parejo para convencer a las personas de que solamente hay una manera dever 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 deestas declaraciones esta en las presunciones no declaradas que ellos dan porsentado; se supone que el publico debe aceptarlas de manera acrıtica. Ası queexaminemoslas.

Una de las presunciones es que las companıas de software tienen un de-recho natural incuestionable que las habilita para ser duenas de un software,y por lo tanto a disponer de poder sobre todos los usuarios del mismo. (Sieste fuera un derecho natural, entonces sin importar cuanto dano le cau-sare al publico, no podrıamos objetarlo.) De manera muy interesante, laConstitucion de los Estados Unidos de America y la tradicion legal recha-zan esta vision; el copyright no es un derecho natural, sino un monopolioartificial impuesto por el gobierno que limita el natural derecho a copia delos usuarios.

Otra presuncion no declarada es que la unica cosa importante sobredel software es que trabajo le permite realizar a usted –que a nosotros losusuarios de computadoras no nos debe importar que clase de sociedad nospermiten tener.

Una tercera presuncion es que no tendrıamos software utilizable (o, quenunca tendrıamos un programa para hacer tal o cual trabajo en particular) sino le ofrecemos a una companıa poder sobre los usuarios de dicho programa.Esta presuncion puede haber sonado plausible, antes de que el movimientopor el software libre demostrara que podemos hacer abundante software utilsin ponerle cadenas.

Si nos resistimos a aceptar dichas presunciones, y juzgamos acerca deestos temas sobre la base moral que nos da el sentido comun ordinario yponemos al usuario en primer lugar, arribaremos a conclusiones muy distin-tas. Los usuarios de computadoras deben tener libertad para modificar losprogramas para ajustarlos a sus necesidades, y libertad para compartir elsoftware, porque la base de la sociedad esta en ayudar a las otras personas.

No se dispone aquı del espacio necesario para explayarnos en el razona-miento que hay detras de esta conclusion, y por ese motivo pido al lector quevea la pagina web : http://www.gnu.org/philosophy/why-free.es.html.

Page 36: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

36 Historia del Proyecto GNU

2.6.3. Una eleccion moral severa

Al desaparecer mi comunidad, se hizo imposible continuar como antes.En lugar de ello, me enfrente a una eleccion moral severa.

La eleccion facil era unirme al mundo del software propietario, firmar losacuerdos 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 acuerdosde no revelar y de esa manera incrementara tambien las presiones sobre otragente para que traicionen a sus companeros.

Podrıa haber hecho dinero de esta manera, y tal vez me hubiese divertidoescribiendo codigo. Pero sabıa que al final de mi carrera, al mirar atras a losanos construyendo paredes para dividir a la gente, sentirıa que use mi vidapara empeorar el mundo.

Ya habıa estado del lado en que se reciben los acuerdos de no revelar,por experiencia propia, cuando alguien se nego a entregarme, a mı y alLaboratorio de IA del MIT, el codigo fuente del programa de control denuestra impresora. (La ausencia de ciertas caracterısticas en este programahacıa que el uso de la impresora fuera frustrante en extremo.) Ası que nopodıa decirme a mı mismo que los acuerdos de no revelar son inocentes. Meenojo mucho cuando el se nego a compartir con nosotros; no podıa ahoracambiarme de lugar y hacerle lo mismo a todos los demas.

Otra eleccion, facil pero dolorosa, era abandonar el campo de la compu-tacion. De esta manera no se usarıan mis habilidades para mal, pero aunası se desperdiciarıan. Yo no serıa culpable por dividir y restringir a losusuarios de computadoras, pero ello sucederıa igual.

Ası que busque la manera en la cual un programador podrıa hacer algopara bien. Me pregunte: ¿habra algun programa o programas que yo puedaescribir, de tal manera de otra vez hacer posible una comunidad?

La respuesta era clara: lo primero que se necesitaba era un sistema opera-tivo. Este es el software crucial para empezar a usar una computadora. Conun sistema operativo usted puede hacer muchas cosas; sin uno, ni siquierapuede funcionar la computadora. Con un sistema operativo libre, podrıamostener de nuevo una comunidad de hackers cooperando–e invitar a cualquieraa unırsenos. Y cualquiera serıa capaz de utilizar una computadora sin quede movida conspire a favor de la privacion de sus amigas o amigos.

Como desarrollador de sistema operativo, tengo las habilidades apropia-das para esa tarea. Ası que aun cuando no tenıa garantıas de exito, medı cuenta que habıa sido elegido para hacer ese trabajo. Decidı hacer queel sistema fuese compatible con Unix pues ası serıa portable, y los usuariosde Unix podrıan cambiarse a el con facilidad. El nombre GNU se eligio si-guiendo una tradicion hacker, como acronimo recursivo para ((GNU’s NotUnix)).

Un sistema operativo es mas que un nucleo, apenas suficiente para hacerfuncionar otros programas. En los 1970s, todo sistema operativo digno de

Page 37: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 37

llamarse ası incluıa procesadores de ordenes, ensambladores, compiladores,interpretes, depuradores, editores de texto, programas de correo, y muchosotros. ITS los tenıa, Multics los tenıa, VMS los tenıa, Unix los tenıa. Elsistema operativo GNU tambien los incluirıa.

Mas adelante escuche estas palabras, atribuıdas a Hillel 3:

Si yo no me preocupo por mı mismo, ¿quien lo hara por mı? Sisolo me preocupo por mı mismo, ¿que es lo que soy? Si no lohago ahora, ¿cuando?

La decision de iniciar el proyecto GNU se baso en un espıritu similar.

2.6.4. Libre como en libertad

El termino ((free software)) 4 se malinterpreta a veces –no tiene nada quever con el precio. El tema es la libertad. Aquı, por lo tanto, esta la definicionde software libre: un programa es software libre, para usted, un usuario enparticular, si:

1) Usted tiene libertad para ejecutar el programa, con cualquier proposi-to.

2) Usted tiene la libertad para modificar el programa para adaptarlo a susnecesidades. (Para que esta libertad sea efectiva en la practica, usteddebe tener acceso al codigo fuente, porque modificar un programa sindisponer del codigo fuente es extraordinariamente dificultoso.)

3) Usted tiene la libertad para redistribuir copias, tanto gratis como porun canon.

4) Usted tiene la libertad para distribuir versiones modificadas del pro-grama, de tal manera que la comunidad pueda beneficiarse con susmejoras.

Como ((free)) [libre] se refiere a libertad y no a precio, no existe contra-diccion entre la venta de copias y el software libre. De hecho, la libertadpara vender copias es crucial: las colecciones de software libre que se vendenen CD-ROM son importantes para la comunidad, y la venta de las mismases una manera importante de obtener fondos para el desarrollo de softwa-re libre. Por lo tanto, si la gente no puede incluir un programa en dichascolecciones, dicho programa no es software libre.

A causa de la ambiguedad de ((free)), la gente ha estado buscando alterna-tivas, pero nadie ha encontrado una alternativa apropiada. El idioma ingles

3Como ateo que soy, no soy seguidor de ningun lıder religioso, pero algunas vecesencuentro que admiro alguna cosa que dijo uno de ellos.

4N. del T.: en ingles free = libre o gratis

Page 38: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

38 Historia del Proyecto GNU

tiene mas palabras y matices que ningun otro, pero carece de una palabrasimple, no ambigua que signifique ((libre)), como en libertad –((unfettered))

[sin cadenas] es la palabra que mas se acerca en significado. Otras alterna-tivas como liberated [liberado], freedom [libertad] y open [abierto] tienen elsignificado 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 existentesde software libre siempre que fuera posible. Por ejemplo, en los mismoscomienzos decidı que TeX serıa el principal compaginador de texto; unospocos anos mas tarde, decidı que usarıa el sistema X Window, en lugar deescribir otro sistema de ventanas para GNU.

A causa de esta decision, el sistema GNU no coincide con la suma de to-do el software GNU. El sistema GNU incluye programas que no son softwareGNU, programas que fueron desarrollados por otras personas y proyectospara sus propios propositos, pero que nosotros podemos utilizar porque cons-tituyen software libre.

2.6.6. El inicio del proyecto

En enero de 1984 renuncie a mi trabajo en el MIT y comence a escribirsoftware GNU. Era necesario abandonar el MIT, para que el MIT no interfi-riera con la distribucion de GNU como software libre. Si hubiese continuadocomo parte del staff, el MIT podrıa haber reclamado propiedad sobre eltrabajo, y podrıa haber impuesto sus propios terminos de distribucion, oincluso podrıa haberlo transformado en un paquete de software propietario.Yo no tenıa la intencion de hacer un trabajo enorme solo para ver que perdıala utilidad para la cual se habıa realizado: crear una nueva comunidad paracompartir software.

Sin embargo, el Profesor Winston, por entonces a cargo del Laborato-rio de IA del MIT, me invito amablemente a que continue utilizando lasinstalaciones del Laboratorio.

2.6.7. Los primeros pasos

Poco despues de comenzar en el proyecto GNU, escuche acerca del FreeUniversity Compiler Kit [Kit de Compilador de la Universidad Libre], tam-bien conocido como VUCK. (La palabra alemana para free comienza conuna V.) Se trataba de un compilador disenado para manejar multiples len-guajes, C y Pascal entre ellos, y para admitir multiples maquinas destino.Le escribı a su autor para consultarle si GNU lo podrıa usar.

El me respondio burlonamente, dejando en claro que la universidad eralibre, pero el compilador no. Por lo tanto, decidı que mi primer programa

Page 39: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 39

para el proyecto GNU serıa un compilador multilenguaje, multiplataforma.

Con la esperanza de evitar tener que escribir todo el compilador pormı mismo, obtuve el codigo fuente del compilador Pastel, que era un com-pilador multiplataforma desarrollado en el ((Lawrence Livermore Lab)). Ad-mitıa, y estaba escrito en una version extendida de Pascal, disenada parausarse como lenguaje de programacion a nivel de sistema. Le agregue unfront end para C, y comence a transportarlo a la computadora Motorola68000. Pero tuve que abandonar la idea al descubrir que el compilador ne-cesitaba varios megabytes de espacio en la pila, y los sistemas Unix basadosen 68000 solo permitıan 64 kbytes.

Fue entonces cuando me dı cuenta que el compilador Pastel funcio-naba analizando el fichero de entrada completo y transformandolo en unarbol sintactico, luego convertıa todo el arbol sintactico en una cadena de((instrucciones)) y luego generaba el fichero entero de salida, y en ningun mo-mento liberaba el espacio ocupado. En ese momento llegue a la conclusionde que deberıa escribir un nuevo compilador partiendo desde cero. Ese nuevocompilador se conoce ahora como GCC; no hay nada del compilador Pastelen el, pero me las arregle para adaptar y usar el front end que habıa hechopara C. Pero eso paso unos anos mas tarde; primero, trabaje sobre GNUEmacs.

2.6.8. GNU Emacs

Comence a trabajar sobre GNU Emacs en setiembre de 1984, y al princi-pio de 1985 ya empezaba a ser usable. Esto me permitio usar sistemas Unixpara las tareas de edicion; como no tenıa ningun interes en aprender a usarvi o ed, habıa realizado mis tareas de edicion en otras clases de maquinashasta ese momento.

A estas alturas, la gente comenzo a querer usar Emacs, con lo que apa-recio el tema de como distribuirlo. Por supuesto, lo puse en el servidor deFTP anonimo de la computadora del MIT que usaba. (Esta computado-ra, prep.ai.mit.edu, se transformo a causa de ello en la sede principal dedistribucion a traves de FTP de GNU; cuando fue decomisada unos anosdespues, transferimos el nombre a nuestro nuevo servidor FTP.) Pero enaquella epoca, mucha gente interesada no estaba en Internet y no podıa ob-tener una copia por FTP. Ası que la pregunta era: ¿que tendrıa que decirlesa ellos?

Podrıa haber dicho, ((Busque un amigo que este en la red y que hagauna copia para usted)). O podrıa haber hecho lo que hice con el Emacs paraPDP-10 original, decirles: ((Envıeme por correo una cinta y un sobre consu direccion y los sellos de correo necesarios, y yo le devolvere la cinta conEmacs dentro)). Pero no tenıa trabajo, y estaba buscando de que manerapodıa hacer dinero con el software libre. Entonces anuncie que le enviarıala cinta a quien me la pidiera, mediante el pago de un canon de $150. De

Page 40: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

40 Historia del Proyecto GNU

esta manera, inicie un negocio de distribucion de software libre, el precursorde las companıas que en la actualidad distribuyen completos sistemas GNUbasados 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 sera software libre para todos los que tienen una copiade el. Por ejemplo, el software de dominio publico (software que no esta su-jeto al copyright de nadie) es software libre; pero cualquiera puede haceruna version modificada propietaria a partir de el. En ese mismo sentido,muchos programas libres estan sujetos a copyright pero se distribuyen me-diante sencillas licencias permisivas que admiten las versiones modificadaspropietarias.

El ejemplo paradigmatico de este problema es el X Window System.Desarrollado en el MIT, y entregado como software libre con un licenciapermisiva, fue rapidamente adoptado por varias companıas de computacion.Estas agregaron X a sus sistemas Unix propietarios, solo en formato binario,y lo cubrieron con el mismo acuerdo de no revelar. Estas copias de X erantanto (software) libres en cuanto lo era el Unix.

Los desarrolladores del X Window System no consideraban que esto fueseun problema –esperaban y buscaban que esto sucediese. Su meta no erala libertad, solo el ((exito)), definido como ((tener muchos usuarios)). No lespreocupaba si esos usuarios tenıan libertad, solo que sean numerosos.

Esto nos lleva a una situacion paradojica en la cual dos maneras distintasde contabilizar la cantidad de libertad dan por resultado dos respuestasdistintas a la pregunta ((¿Es libre este programa?)). Si usted juzga en base a lalibertad que se proporcionaba con los terminos de distribucion de la entregadel MIT, dirıa que X es software libre. Pero si usted mide la libertad delusuario promedio de X, dirıa que X es software propietario. La mayorıa delos usuarios de X usan las versiones propietarias que vienen con los sistemasUnix, no la version libre.

2.6.10. Copyleft y la GNU GPL

La meta de GNU era dar libertad a los usuarios, no solo ser popular.Por lo tanto, debıamos usar terminos de distribucion que impidieran queel software GNU se transformara en software propietario. El metodo queutilizamos se denomina ((copyleft)) 5.

5En 1984 o 1985, Don Hopkins (un companero muy imaginativo) me envıo una cartapor correo. En el sobre, escribio varios dichos divertidos, entre ellos este: ((Copyleft –allrights reversed)) [Copyleft –todos los derechos “reversados”]. Utilice la palabra ((copyleft))para denominar al concepto de distribucion que estaba desarrollando en esa epoca.

Page 41: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 41

El copyleft usa la ley de copyright, pero la da vuelta para servir a loopuesto de su proposito usual: en lugar de ser un medio de privatizar elsoftware, se transforma en un medio de mantener libre al software.

La idea central del copyleft es que le damos a cualquiera el permiso paracorrer el programa, copiar el programa, modificar el programa y redistribuirversiones modificadas –pero no le damos permiso para agregar restriccionespropias. De esta manera, las libertades cruciales que definen al ((softwarelibre)) quedan garantizadas para cualquiera que tenga una copia; se trans-forman en derechos inalienables.

Para que el copyleft sea efectivo, las versiones modificadas deben ser tam-bien libres. Esto asegura que todo trabajo basado en el nuestro quedara dis-ponible para nuestra comunidad si se publica. Cuando los programadoresque tienen trabajo como programadores se ofrecen como voluntarios paramejorar un software GNU, es el copyleft lo que impide que sus empleadoresdigan: ((no puede compartir esos cambios, porque los queremos usar parahacer nuestra version propietaria del programa)).

El requerimiento de que los cambios deben ser libres es esencial si quere-mos asegurar la libertad para cada usuario del programa. Las companıas queprivatizaron el X Window System en general realizaron algunos cambios pa-ra transportarlo a sus sistemas y hardware. Estos cambios fueron pequenoscomparados con el gran tamano de X, pero no fueron triviales. Si el hacercambios fuera una excusa para negar libertad a los usuarios, serıa facil paracualquiera tomar ventaja de la excusa.

Un tema relacionado trata la combinacion de un programa libre concodigo no libre. Tal combinacion sera inevitablemente no-libre; cualesquieralibertades que falten a la parte no-libre, le faltaran tambien al todo. Sise permiten tales combinaciones se abrirıa un agujero lo suficientementegrande como para hundir el barco. Por ello, un requerimiento crucial parael copyleft es que se tape este hoyo: cualquier cosa agregada a o combinadacon un programa bajo copyleft debe ser tal que la version combinada totalsea tambien libre y bajo copyleft.

La implementacion especıfica de copyleft que usamos para la mayorıadel software GNU es la Licencia Publica General de GNU (GNU GeneralPublic License) o GPL GNU para abreviar. Tenemos otras clases de copyleftque se usan en circunstancias especıficas. Los manuales GNU tambien estanbajo copyleft, pero utilizamos un copyleft mucho mas simple, porque no esnecesaria la complejidad de la GPL GNU para los manuales.

2.6.11. La Fundacion para el Software Libre

A medida que el interes en el uso de Emacs crecıa, otras personas se in-volucraron en el proyecto GNU, y decicimos que era el momento de buscarfondos nuevamente. Por ello en 1985 creamos la ((Free Software Foundation))

[Fundacion para el Software Libre –FSL], una organizacion de caridad libre

Page 42: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

42 Historia del Proyecto GNU

de impuestos para el desarrollo del software libre. La FSL tambien acaparo elnegocio de distribucion en cinta de Emacs; mas adelante lo extendio al agre-gar 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 pro-venido siempre de las ventas –de copias de software libre, y otros serviciosrelacionados. En la actualidad vende CD-ROMs de codigo fuente, CD-ROMscon binarios, manuales agradablemente impresos (todos con libertad pararedistribuir y modificar), y las Distribuciones De Lujo (en las cuales incor-poramos toda la coleccion de software lista para usar en la plataforma de sueleccion).

Los empleados de la Fundacion para el Software Libre han escrito ymantenido una cantidad de paquetes de software GNU. Dos notables casosson la biblioteca C y el shell. La biblioteca C de GNU es lo que usa todoprograma que corre en un sistema GNU/Linux para comunicarse con Linux.Fue desarrollada por un miembro del staff de la Fundacion para el SoftwareLibre, Roland McGrath. El shell que se usa en la mayorıa de los sistemasGNU/Linux es BASH, el Bourne Again SHell 6, que fue desarrollado porBrian Fox, empleado de la FSL.

Hemos provisto los fondos para el desarrollo de esos programas porqueel proyecto GNU no se queda solamente en herramientas o un entorno dedesarrollo. Nuestra meta era tener un sistema operativo completo, y esosprogramas eran necesarios para esa meta.

2.6.12. Asistencia para el Software Libre

La filosofıa del software libre rechaza una practica especıfica de negocioampliamente difundida, pero no esta contra el negocio. Cuando los negociosrespetan la libertad de los usuarios, les deseamos exito.

La venta de copias de Emacs demostro una clase de negocio con softwarelibre. Cuando la FSL se apropio de ese negocio, necesite de otro medio devida. Lo encontre en la venta de servicios relacionados con el software libreque habıa desarrollado. Esto incluıa la ensenanza, sobre temas tales comocomo programar GNU Emacs, y como personalizar GCC, y desarrollo desoftware, en la mayor parte transportar GCC a otras plataformas.

En la actualidad cada una de esas clases de negocios con software libreesta puesta en practica por una cantidad de corporaciones. Algunas distri-buyen colecciones de software libre en CD-ROM; otras venden asistencia enniveles que van desde responder preguntas de usuarios, reparacion de errores,hasta el agregado de nuevas caracterısticas mayores. Incluso estamos viendocompanıas de software libre basadas en el lanzamiento de nuevos productosde software libre.

6((Bourne again shell)) es una broma sobre el nombre ((Bourne Shell)), que era el shell

usual en Unix.

Page 43: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 43

Aunque, tenga cuidado –una cantidad de companıas que se asocian ası mismas con el termino ((open source)) en realidad basan su negocio ensoftware no-libre que trabaja con software libre. Ellas no son companıasde software libre, sino companıas de software propietario cuyos productostientan a los usuarios a abandonar su libertad. Ellas usan la denominacion((valor agregado)) lo que refleja los valores que desearıan que adoptemos: con-veniencia por encima de libertad. Si valoramos mas la libertad, deberıamosdenominarlos productos con ((libertades sustraıdas)).

2.6.13. Metas tecnicas

La meta principal de GNU era el software libre. Aun en el caso queGNU no tuviese ventajas tecnicas sobre Unix, tendrıa una ventaja social, alpermitir cooperar a los usuarios, y una ventaja etica, al respetar la libertadde los usuarios.

Pero era natural que se apliquen los estandares conocidos de buenaspracticas al trabajo –por ejemplo, reservar dinamicamente las estructurasde datos para evitar lımites de tamano fijo arbitrarios, y manejar todos loposibles codigos de 8 bits cuando tuviese sentido.

Ademas, rechazamos el enfoque de Unix para pequenos tamanos de me-moria, al decidir que no trabajarıamos para maquinas de 16 bits (era claroque las maquinas de 32 bits serıan la norma para cuando el sistema GNUestuviese terminado), y al no hacer ningun esfuerzo para reducir el uso dememoria, a menos que excediera el megabyte. En los programas para loscuales no era crucial el manejo de ficheros muy grandes, incentivamos a losprogramadores a leer el fichero completo en memoria, y luego explorar sucontenido, sin tener que preocuparse por la E/S.

Estas decisiones permitieron que muchos programas GNU sobrepasarana sus contrapartidas UNIX en confiabilidad y velocidad.

2.6.14. Computadoras donadas

A medida que la reputacion del proyecto GNU crecıa, la gente comenzo aofrecer al proyecto donaciones de maquinas con UNIX corriendo. Fueron muyutiles porque la manera mas facil de desarrollar componentes de GNU erahacerlo en un sistema UNIX, y luego ir reemplazando los componentes delsistema uno a uno. Pero ellas trajeron una cuestion etica: si era correctopara nosotros siquiera tener una copia de UNIX.

UNIX era (y es) software propietario, y la filosofıa del proyecto GNUdice que no debemos usar software propietario. Pero, aplicando el mismorazonamiento que lleva a la conclusion que la violencia en defensa propiaesta justificada, concluı que era legıtimo usar un paquete propietario cuandoello era crucial para desarrollar un reemplazo libre que ayudarıa a otros adejar de usar el paquete propietario.

Page 44: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

44 Historia del Proyecto GNU

Pero, aun cuando esto era un mal justificable, era todavıa un mal. En laactualidad ya no tenemos mas copias de Unix, porque las hemos reemplazadopor sistemas operativos libres. En los casos en que no pudimos reemplazarel sistema operativo de una maquina por uno libre, se procedio al reemplazode la maquina.

2.6.15. La lista de tareas de GNU

A medida que proseguıa el proyecto GNU, se desarrollaron o encontraronuna cantidad creciente de componentes, y eventualmente se vio la utilidadde hacer una lista con los huecos faltantes. La usamos para reclutar desa-rrolladores para escribir las piezas faltantes. Esta lista comenzo a conocersecomo la lista de tareas de GNU. Ademas de los componentes Unix faltan-tes, agregamos a la lista otros utiles proyectos de software y documentacionque, de acuerdo a nuestra vision, debe tener un sistema verdaderamentecompleto.

En la actualidad, casi ningun componente Unix queda en la lista de ta-reas GNU –esos trabajos ya han sido terminados, fuera de algunos no esen-ciales. Pero la lista esta llena de proyectos que algunos pueden denominar((aplicaciones)). Cualquier programa q ue sea atrayente a mas de una estrechafranja de usuarios serıa una cosa util para anadir a un sistema operativo.

Aun los juegos estan incluıdos en la lista de tareas –y han estado desdeel principio. Unix incluıa juegos, ası que GNU debıa incluirlos tambien. Perola compatibilidad no es un problema para los juegos, ası que no seguimosla lista de juegos que Unix tenıa. En lugar de ello, listamos un espectro dediferentes 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 Publica General para Bi-bliotecas de GNU] que da permiso para enlazar software propietario con labiblioteca. ¿Porque hacer esta excepcion?

No es una cuestion de principios; no hay ningun principio que diga quedebemos incluir codigo de los productos de software propietario. (¿Por-que 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, esun tema de estrategia.

La biblioteca C hace un trabajo generico; todo sistema propietario ocompilador viene con una biblioteca C. Por lo tanto, el hacer que nuestrabiblioteca este solo disponible para el software libre, no le darıa al softwarelibre ninguna ventaja –solo hubiera desalentado el uso de nuestra biblioteca.

Hay un sistema que es una excepcion a esto: en un sistema GNU (yesto incluye los sistemas GNU/Linux), la biblioteca C de GNU es la unica

Page 45: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 45

biblioteca C. Ası que los terminos de distribucion de la biblioteca C de GNUdeterminan si es posible compilar un programa propietario para un sistemaGNU. No hay ninguna razon etica para permitir aplicaciones propietariasen un sistema GNU, pero estrategicamente parece que si no se permite,ello hara mas para desalentar el uso del sistema GNU que para alentar eldesarrollo de aplicaciones libres.

Por estas razones es que el uso de la GPL para Bibliotecas es una buenaestrategia para la biblioteca C. Para otras bibliotecas, la decision estrategicanecesita considerarse en cada caso particular. Cuando una biblioteca haceun trabajo especial que puede ayudar a escribir cierta clase de programas,y luego entregarla bajo la GPL, limitandola solo a programas libres, es unamanera de ayudar a otros desarrolladores de software libre, al proporcionar-les una ventaja contra el software propietario.

Considere la GNU Readline, una biblioteca desarrollada para proporcio-nar la edicion en la lınea de ordenes para BASH. Readline se entrega bajola GPL GNU ordinaria, no bajo la GPL para Bibliotecas. De esta maneraprobablemente se reduce la cantidad de uso de Readline, pero eso no signifi-ca perdida para nosotros. Mientras tanto, al menos una util aplicacion se hatransformado en software libre especıficamente para poder usar Readline, yesa es una ganancia real para nuestra comunidad.

Los desarrolladores de software propietario tienen las ventajas que el di-nero proporciona; los desarrolladores de software libre necesitan crear ven-tajas entre sı. Tengo la esperanza de que algun dıa tendremos una grancoleccion de bibliotecas cubiertas por GPL que no tengan parangon entre elsoftware propietario, que proporcionen utiles modulos que sirvan como blo-ques constructivos en nuevo software libre, y que sumen una mayor ventajapara adelantar el desarrollo de software libre.

2.6.17. ¿Rascarse una comezon?

Eric Raymond dice que ((Todo buen trabajo de software comienza con undesarrollador rascandose una comezon personal)). Puede que ocurra algunasveces, pero muchas de las piezas esenciales de software GNU se desarrollarona los fines de tener un sistema operativo libre completo. Vinieron desde unavision y un plan, no desde el impulso.

Por ejemplo, desarrollamos la biblioteca C de GNU porque un sistema delestilo Unix necesita una biblioteca C, el shell Bourne-Again (bash) porqueun sistema del estilo Unix necesita un shell, y el tar GNU porque un sistemadel estilo Unix necesita un programa tar. Lo mismo se aplica a mis propiosprogamas –el compilador GNU C, GNU Emacs, GDB y GNU Make.

Algunos de los programas GNU se desarrollaron para tratar amenazasespecıficas a nuestra libertad. Por ello, desarrollamos gzip para reemplazar alprograma Compress, perdido para nuestra comunidad a causa de las patentesLZW. Proporcionamos fondos para desarrollar LessTif, y mas recientemente

Page 46: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

46 Historia del Proyecto GNU

iniciamos GNOME y Harmony, para lidiar con los problemas causados porcierta biblioteca propietaria (vea mas abajo). Estamos desarrollando el GNUPrivacy Guard para reemplazar un software popular de cifrado no-libre,porque los usuarios no deben verse obligados a elegir entre privacidad ylibertad.

Por supuesto, la gente que escribe estos programas se interesa en el tra-bajo, y varias personas han agregado muchas caracterısticas para satisfacersus propias necesidades e intereses. Pero ese no es el motivo por el cual existeel programa.

2.6.18. Desarrollos inesperados

Al comienzo del proyecto GNU, imagine que desarrollarıamos el siste-ma GNU completo, y luego lo entregarıamos completo. No es ası como hasucedido.

Como cada componente de un sistema GNU se implemento en un sistemaUnix, cada componente podıa correr en sistemas Unix, mucho antes de queexistiera un sistema GNU completo. Algunos de esos programas se hicieronpopulares, y los usuarios comenzaron a extenderlos y transportarlos –a lasdistintas versiones incompatibles de Unix, y algunas veces a otros sistemastambien.

El proceso hizo que dichos programas sean mas potentes, y atrayeran tan-to fondos como contribuyentes al proyecto GNU. Pero tambien demoro elcompletamiento de un sistema mınimo en funciones por varios anos, a me-dida que el tiempo de los desarrolladores GNU se usaba para mantener esostransportes y en agregar caracterısticas a los componentes existentes, enlugar de adelantar la escritura de los componentes faltantes.

2.6.19. El GNU Hurd

En 1990, el sistema GNU estaba casi completo; el unico componente im-portante faltante era el nucleo. Decidimos implementar nuestro nucleo comouna coleccion de procesos servidores corriendo sobre Mach. Mach es un mi-cronucleo desarrollado en Carnegie Mellon University y luego en la Univer-sity of Utah; el GNU HURD es una coleccion de servidores (o ((manada denus))) que corren sobre Mach, y se ocupan de las tareas del nucleo Unix. Elinicio del desarrollo se demoro mientras esperabamos que Mach se entreguecomo software libre, tal como se habıa prometido.

Una razon para elegir este diseno habıa sido evitar lo parecıa ser la partemas dura del trabajo: depurar el nucleo sin un depurador a nivel de codigofuente para utilizar. Esta parte del trabajo ya habıa sido hecha en Mach,y esperabamos depurar los servidores HURD como programas de usuario,con GDB. Pero llevo un largo tiempo hacer esto posible, y los servidores

Page 47: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 47

multihilo que se envıan mensajes unos a otros han sido muy difıciles dedepurar. Hacer que HURD trabaje solidamente se ha tardado varios anos.

2.6.20. Alix

El nucleo GNU no se iba a llamar originalmente el HURD. Su nombreoriginal era Alix –denominado ası a partir de una mujer que era mi amor deaquella epoca. Ella era administradora de sistema Unix y habıa hecho notarque su nombre seguıa el patron de nomenclatura comun a las versiones desistema Unix; a modo de broma, le dijo a sus amigos, ((Alguien deberıa darlemi nombre a un nucleo)). Yo no dije nada, pero decidı sorprenderla con unnucleo llamado Alix.

No se dio de esa manera. Michael Bushnell (ahora Thomas), el principaldesarrollador del nucleo, prefirio el nombre HURD, y redefinio Alix parareferirse a cierta parte del nucleo –la parte que captura las llamadas delsistema y las gestiona por medio del envıo de mensajes a los servidoresHURD.

Mas tarde, Alix y yo nos separamos, y ella cambio su nombre; indepen-dientemente, el diseno de HURD se cambio para que la biblioteca C envıelos mensajes directamente a los servidores, y esto hizo que el componenteAlix desapareciera del diseno.

Pero antes que estas cosas sucedieran, un amigo de ella encontro el nom-bre Alix en el codigo fuente de HURD, y se lo menciono. Ası que el nombrecumplio su objetivo.

2.6.21. Linux y GNU/Linux

El GNU HURD no esta listo para el uso en produccion. Afortunada-mente, esta disponible otro nucleo. En 1991, Linus Torvalds desarrollo unnucleo compatible con Unix y lo denomino Linux. Cerca de 1992, al combi-nar Linux con el sistema no tan completo de GNU, resulto en un sistemaoperativo libre completo. (La combinacion en sı misma dio un considerabletrabajo.) Es gracias a Linux que podemos ver funcionar un sistema GNU enla actualidad.

Denominamos a esta version GNU/Linux, para expresar su composicioncomo combinacion de un sistema GNU con Linux como nucleo.

2.6.22. Desafıos en nuestro futuro

Hemos probado nuestra capacidad para desarrollar un amplio espectrode software libre. Esto no significa que somos invencibles o que nada nospuede detener. Muchos desafıos hacen que el futuro del software libre seaincierto; estar a la altura de los mismos requerira esfuerzos firmes y resis-tencia, algunas veces durante anos. Requerira la clase de determinacion quela gente muestra cuando valora su libertad y no deja que nadie se la quite.

Page 48: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

48 Historia del Proyecto GNU

Las siguientes cuatro secciones discuten dichos desafıos.

2.6.23. Hardware secreto

Los fabricantes de hardware tienden cada vez mas a mantener las especifi-caciones de hardware secretas. Esto hace difıcil la escritura de controladoreslibres, y de esa manera, que Linux y XFree86 puedan admitir nuevo har-dware. Tenemos sistemas libres completos por hoy, pero no los tendremosmanana si no podemos usar las computadoras del manana.

Existen dos maneras de lidiar con este problema. Los programadorespueden 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 numero crezca, el secreto de las especificaciones setransformara en una polıtica contraproducente.

La ingenierıa reversa es un trabajo enorme; ¿tendremos los programado-res con la suficiente determinacion para realizarla? Sı –si hemos construıdoun fuerte sentimiento de que el software libre es un tema de principio, y deque los controladores no libres son intolerables. ¿Y una gran cantidad denosotros estara dispuesto a gastar dinero extra, o incluso tiempo extra, paraque podamos usar controladores libres? Sı, si se difunde la determinacionpara tener libertad.

2.6.24. Bibliotecas no libres

Una biblioteca no libre que corre sobre un sistema operativo actua comouna trampa para los desarrolladores de software libre. Las caracterısticasatractivas de la biblioteca son el cebo; si usted usa la biblioteca, cae en latrampa, porque su programa no puede ser parte util de un sistema opera-tivo libre. (Estrictamente hablando, podemos incluir su programa, pero nofuncionara sin la biblioteca faltante.) Peor aun, si el programa que usa labiblioteca se hace popular, puede hacer caer a otros programadores incautosdentro de la trampa.

La primer instancia de este problema fue el kit de herramientas Motif,alla en los 80s. Aunque aun no habıa sistemas operativos libres, era claro elproblema que Motif iba a causarles mas adelante. El proyecto GNU respon-dio de dos maneras: solicitando a los proyectos individuales de software libreque admitan tanto los widgets del kit libre de herramientas de X como el deMotif, y solicitando a alguien que escriba un reemplazo libre para Motif. Eltrabajo tomo varios anos; LessTif, desarrollado por Hungry Programmers[Programadores hambrientos] tomo la potencia necesaria como para admitirla mayorıa de las aplicaciones Motif recien en 1997.

Entre 1996 y 1998, otra biblioteca kit de herramientas GUI no libre,denominada Qt, se uso en una sustancial coleccion de software libre: el es-critorio KDE.

Page 49: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 49

Los sistemas libres GNU/Linux no podıan usar KDE, porque no podıamosusar la biblioteca. Sin embargo, algunos distribuidores comerciales de siste-mas GNU/Linux que no eran tan estrictos al adherirse al software libre, agre-garon KDE a sus sistemas –produciendo un sistema con mas capacidades,pero menos libertad. El grupo KDE instaba activamente a mas programado-res a usar Qt, y millones de nuevos ((usuarios de Linux)) nunca escucharon laidea de que habıa un problema con esto. La situacion se presentaba lugubre.

La comunidad del software libre respondio a este problema de dos ma-neras: GNOME y Harmony.

GNOME, el GNU Network Object Model Environment [Entorno Modelode Objetos en Red de GNU], es el proyecto de escritorio de GNU. En 1997Miguel de Icaza lo inicio, y se desarrollo con aporte de Red Hat Softwa-re, para proporcionar capacidades de escritorio similares, pero usando solosoftware libre. Tiene tambien ventajas tecnicas, tales como admitir una va-riedad de lenguajes, no solo C++. Pero su proposito principal fue la libertad:evitar el uso de cualquier software no libre.

Harmony es una biblioteca de reemplazo compatible, disenada para po-der hacer funcionar el software KDE sin usar Qt.

En noviembre de 1998, los desarrolladores de Qt anunciaron un cambiode licencia, que cuando se lleve a cabo, hara que Qt sea software libre. Nohay manera de estar seguro, pero pienso que esto ocurrio en parte debidoa la firme respuesta de la comunidad frente al problema que presentaba Qtcuando no era libre. (La nueva licencia es inconveniente e injusta, ası queaun es deseable evitar su uso.)

¿Como responderemos a la siguiente biblioteca no libre que nos tiente?¿Comprendera la totalidad de la comunidad la necesidad de mantenersefuera de la trampa? ¿Alguno de nosotros entregara libertad por conveniencia,y generara un importante problema? Nuestro futuro depende de nuestrafilosofı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 delsoftware libre hasta por veinte anos. Las patentes del algoritmo de com-presion LZW se solicitaron en 1983, y hasta ahora no podemos entregarsoftware libre que produzca GIFs adecuadamente comprimidos. En 1998, setuvo que quitar de una distribucion un programa libre para producir audiocomprimido MP3 a causa de la amenaza de un juicio por patente.

Existen maneras de tratar con las patentes: podemos buscar evidenciade que la patente no es valida, y podemos buscar maneras alternativas derealizar el trabajo. Pero cada uno de estos metodos trabaja solo ciertasveces; cuando ambos fallan, una patente puede forzar a que todo softwarelibre carezca de alguna caracterıstica que los usuarios desean. ¿Que haremos

Page 50: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

50 Historia del Proyecto GNU

cuando esto suceda?

Aquellos de nosotros que valoremos el software libre por la libertad nosapegaremos al software libre de cualquier manera. Nos las arreglaremos pa-ra tener nuestro trabajo realizado sin las caracterısticas patentadas. Peroaquellos que valoren el software libre porque esperan que sea tecnicamentesuperior, cuando las patentes lo obliguen a mantenerse atras, es mas proba-ble que piensen que se trata de una falla. Por lo tanto, si bien es util hablaracerca de la efectividad practica del modelo ((catedral)) de desarrollo, y dela confiabilidad y potencia de cierto software libre, no debemos detenernosallı. Debemos hablar acerca de libertad y principio.

2.6.26. Documentacion libre

La mayor deficiencia en nuestro sistema operativo libre no esta en el sof-tware –es la falta de buenos manuales libres que podamos incluir en nuestrossistemas. La documentacion es una parte esencial de cualquier paquete desoftware; cuando un paquete importante de software libre no viene con unbuen manual libre, ese es un hueco importante. Tenemos muchos de esoshuecos en la actualidad.

La documentacion libre, como el software, es un tema de libertad, no deprecio. El criterio para un manual libre es muy parecido al del software libre:es una cuestion de otorgar a los usuarios ciertas libertades. La redistribucion(incluso la venta comercial) debe estar permitida, en lınea y en papel, de talmanera que el manual pueda acompanar a cada copia del programa.

El permiso para modificarlo es tambien crucial. Como regla general, nocreo que sea esencial que las personas tengan permiso para modificar todaclase de artıculos y libros. Por ejemplo, no creo que usted o yo estemosobligado a dar permiso para modificar artıculos como este, que describenuestras acciones y nuestra vision.

Pero existe una razon particular debido a la cual la libertad para mo-dificar la documentacion es crucial para el software libre. Cuando la genteejercita su derecho a modificar el software, y agrega o cambia caracterısticas,si son concientes tambien cambiaran el manual –ası proporcionaran docu-mentacion precisa y util con el programa modificado. Un manual que nopermite a los programadores ser concientes y terminar el trabajo, no satis-face las necesidades de nuestra comunidad.

La existencia de algunas clases de lımites acerca de como se deben ha-cer las modificaciones no implica problemas. Por ejemplo, el requerimientode preservar el aviso de copyright del autor original, los terminos de distri-bucion, o la lista de autores, estan bien. Tampoco trae problemas requerirque la version modificada incluya un aviso de que fue modificada, e inclusoque haya secciones completas que no puedan borrarse o cambiarse siemprey cuando dichas secciones traten temas que no sean de ındole tecnica. Estasclases de restricciones no son un problema porque no impiden al programa-

Page 51: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.6 El Proyecto GNU por Richard Stallman 51

dor conciente que adapte el manual para ajustarlo al programa modificado.En otras palabras, no impiden a la comunidad del software libre la completautilizacion del manual.

Sin embargo, debe ser posible modificar todo el contenido *tecnico* delmanual, y luego distribuir el resultado en todos los medios usuales, a travesde todos los canales usuales; si esto no es ası, las restricciones obstruyen lacomunidad, el manual no es libre, y necesitaremos otro maual.

¿Sera que loa desarrolladores de software libre tendran la conciencia ydeterminacion para producir un espectro completo de manuales? Una vezmas, 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 desistemas GNU/Linux, tales como el Debian GNU/Linux y Red Hat Linux.El software libre ha desarrollado ciertas ventajas practicas que hacen quelos usuarios esten congregandose hacia allı por razones puramente practicas.

Las buenas consecuencias de esto son evidentes: mayor interes en el de-sarrollo de software libre, mas clientes para empresas de software libre, ymayor capacidad para animar a las companıas a que desarrollen productosde software libre, en lugar de productos de software propietario.

Pero el interes en el software crece mas rapido que la conciencia acercade la filosofıa sobre la cual esta basado, y esto crea problemas. Nuestra ca-pacidad de enfrentar los desafıos y amenazas que se describieron mas arribadepende de la voluntad de mantenerse firmes del lado de la libertad. Paraasegurarnos de que nuestra comunidad tiene esta voluntad, necesitamos es-parcir la idea entre los nuevos usuarios a medida que ellos llegan a nuestracomunidad.

Pero estamos fracasando en esto: los esfuerzos realizados para atraernuevos usuarios a nuestra comunidad sobrepasan por lejos a los esfuerzosdedicados a la ensenanza cıvica acerca de nuestra comunidad. Necesitamoshacer ambas cosas, y es necesario que mantengamos ambos esfuerzos balan-ceados.

2.6.28. ((Open Source))

La ensenanza acerca de la libertad a los nuevos usuarios se hizo masdifıcil en 1998, cuando una parte de la comunidad decidio dejar de usar eltermino ((software libre)) y usar ((open source software)) en su lugar.

Algunos de los que favorecieron este termino tenıan como objetivo evitarla confusion de ((free)) con ((gratis)) –una meta valida. Otros, sin embargo,apuntaban a apartar el espıritu de principio que ha motivado el movimientopor el software libre y el proyecto GNU, y resultar ası atractivos a los eje-cutivos y usuarios comerciales, muchos de los cuales sostienen una ideologıa

Page 52: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

52 Historia del Proyecto GNU

que pone las ganancias por encima de la libertad, de la comunidad, y de losprincipios. Por lo tanto, la retorica de ((open source)) se centra en el potencialde realizacion de potente software de alta calidad, pero esquiva las ideas delibertad, comunidad y principio.

Las revistas sobre ((Linux)) son un claro ejemplo de esto –estan llenas depropagandas acerca de software propietario que funciona sobre GNU/Linux.Cuando aparezca la proxima Motif o Qt, ¿incentivaran estas revistas a losprogramadores a apartarse de ellas, o pondran propagandas de las mismas?

El apoyo de las empresas puede contribuir a la comunidad de variasmaneras; si todo lo demas se mantiene igual, esto es util. Pero si ganamossu apoyo mediante el recurso de hablar menos de libertad y principio estopuede ser desastroso; hace que empeore el desbalance previo entre el alcancey la educacion cıvica.

((Software libre)) y ((open source)) describen la misma categorıa de softwa-re, mas o menos, pero dicen diferentes cosas acerca del software, y acerca delos valores. El proyecto GNU continua utilizando el termino ((free software))[software libre] para expresar la idea de que la libertad, no solamente latecnologıa, es lo importante.

2.6.29. ¡Pruebelo!

La filosofıa de Yoda (((No hay ’para probar’))) suena linda, pero no fun-ciona conmigo. He realizado la mayor parte de mi trabajo con ansiedad porsaber si podrıa llevarlo a cabo, y con la inseguridad de que no serıa suficientealcanzar la meta si lo lograba. Pero lo intente igual, porque no habıa otroentre el enemigo y mi ciudad. Para mi propia sorpresa, algunas veces hetenido exito.

Algunas veces he fallado; algunas de mis ciudades han caıdo. Luego heencontrado otra ciudad amenazada, y me prepare para otra batalla. A lolargo del tiempo, aprendı a buscar las amenazas y ponerme entre ellas y laciudad, y llamar a otros hackers para que se unan a mı.

En la actualidad, con frecuencia no soy el unico. Es un consuelo y unplacer cuando veo un regimiento de hackers excavando para mantener latrinchera, y caigo en cuenta que esta ciudad sobrevivira –por ahora. Perolos peligros son mayores cada ano que pasa, y ahora Microsoft tiene a nuestracomunidad como un blanco explıcito. No podemos dar por garantizado elfuturo en libertad. ¡No lo de por garantizado! Si usted desea mantener sulibertad, debe estar preparado para defenderla.

Copyright c©1998 Richard Stallman.Esta permitida la copia textual y distribucion de este artıculo ensu totalidad por cualquier medio, siempre y cuando esta nota sepreserve.Actualizado:23 Mayo 1999 rms.

Page 53: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

2.7 Autores del capıtulo 53

Traduccion: Cesar Ballardini (Argentina)cballard@ santafe. com. ar

2.7. Autores del capıtulo

Recopilacion, adaptacion y agregados por Diego J. Brengi.Seccion “El proyecto GNU” obtenido de: http://es.wikipedia.org/.Seccion “La Free Software Foundation” obtenido de: http://es.wikipedia.

org/, con Copyright c©1996, 1997, 1998, 1999, 2001 Free Software Founda-tion, Inc.

Seccion “Actividades principales de la FSF” obtenido de: http://en.wikipedia.org/. Traduccion al espanol realizada por Ruben Alejandro Ca-sas.

Seccion “El Proyecto GNU por Richard Stallman” publicado original-mente en el libro ((Open Sources)) y extraıdo de http://www.gnu.org/gnu/

thegnuproject.es.html.

Page 54: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

54 Historia del Proyecto GNU

Page 55: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 3

El kernel Linux

3.1. Kernel

El kernel o nucleo se podrıa definir como el corazon del sistema operativo.Es el encargado de que el software y el hardware del ordenador puedantrabajar juntos. Las funciones mas importantes del mismo, aunque no lasunicas, son:

Administracion de la memoria, para todos los procesos en ejecucion.

Administracion del tiempo de procesador.

Es el encargado de que las aplicaciones puedan acceder a los perifericosy dispositivos de nuestra computadora de una manera comoda.

Ademas de administrar los recursos de hardware, el kernel, se encarga deproporcionar metodos normalizados para la utilizacion de los mismos, per-mitiendo que las aplicaciones se abstraigan de las diferencias entre distintostipos de hardware. En las figuras se ilustra este concepto.

3.2. Nacimiento de Linux

Linux hace su aparicion a principios de la decada de los noventa. Era elano 1991 y por aquel entonces un estudiante de informatica de la Univer-sidad de Helsinki (Finlandia), llamado Linus Torvalds empezo a programarpara su tesis final un nucleo de sistema operativo. Luego se convirtio enun desarrollo de muchos programadores alrededor del mundo, que gracias aInternet pudieron continuar el proyecto.

Este comienzo estuvo inspirado en Minix, un pequeno sistema Unix desa-rrollado por el profesor Andrew Tanenbaum con fines educativos y explicadomuy bien en su Libro “Sistemas Operativos”.

Las primeras discusiones sobre Linux fueron en el grupo de noticiascomp.os.minix, en estas discusiones se hablaba sobre todo del desarrollo

Page 56: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

56 El kernel Linux

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

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

de un pequeno sistema Unix para usuarios de Minix que querıan mas. Dis-conforme con Minix, Linus comienza el desarrollo de un kernel que pudieraejecutar en su PC.

Page 57: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

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 codigobajo licencia GPL (creada por el proyecto GNU), lo que lo hace atractivo

Page 58: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

58 El kernel Linux

para otros programadores deseosos de colaborar al proyecto. Esta licenciahizo muy rapido el desarrollo del nuevo kernel y permitio su crecimientosostenido sin derivar en productos propietarios.

3.4. Avances

Linus nunca anuncio la version 0.01 de ((Linux)) (1991) porque no era nisiquiera ejecutable, solamente incluıa los principios del nucleo; estaba escritoen lenguaje ensamblador y asumıa que el usuario tenıa acceso a un sistemaMinix para su compilacion. Aprovecho en sus comienzos las caracterısticasde conmutacion de tareas con que contaba el flamante Intel 386.

Mas tarde durante 1991, Linus anuncio la primera version ((Oficial)) de Li-nux (version 0.02). Esta vez, Linus pudo ejecutar Bash (GNU Bourne AgainShell) y gcc (El compilador GNU de C), pero no mucho mas funcionaba.

En este estado de desarrollo ni siquiera se pensaba en terminos de sopor-te, documentacion, e incluso distribucion. Despues de la version 0.03, Linussalto en la numeracion hasta la 0.10. Desde entonces, mas y mas programa-dores a traves de Internet empezaron a trabajar en el proyecto y, despuesde sucesivas revisiones, Linus incremento el numero de version hasta la 0.95en Marzo de 1992. Mas de un ano despues, en Diciembre de 1993, el nucleodel sistema estaba en la version 0.99 y la version 1.0 no llego hasta marzode 1994.

Ano Version del Kernel Linux

1991 0.11994 1.01995 1.21996 2.01999 2.22001 2.42004 2.6

La version actual (ano 2006) estable del nucleo es la 2.6 y sigue avanzan-do dıa a dıa con la meta de perfeccionar, mejorar el sistema y mantenerloactualizado con los ultimos avances de la tecnologıa informatica y el nuevohardware existente. Los archivos historicos del kernel y sus fechas puedenencontrarse en:http://ftp.cdut.edu.cn/pub2/linux/kernel/history/Master.html

3.5. Linux y el proyecto GNU

A pesar de ser 95 % similar en caracterısticas y funcionamiento a unsistema UNIX, el kernel de Linux no usa ni siquiera una lınea del UNIX dela empresa AT&T, duena original de los derechos de UNIX, ni de ningun

Page 59: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.6 La lista de desarrollo 59

Figura 3.5: Pequena historia de las releases mas importantes. Obtenido de“Anatomy of the Linux kernel” por M. Tim Jones).

otro UNIX comercial. Por esto es que Linus pudo licenciarlo con la licenciaGPL.

Una vez que el nucleo estuvo ((usable)), los programadores comenzarona buscar aplicaciones y utilidades para agregar y hacer el sistema mas util,ese es el momento en que entra el proyecto GNU, iniciado en 1984 por laFree Software Foundation (FSF), entidad creada por Richard M. Stallman (osimplemente RMS), con el fin de hacer un sistema operativo libre. Dado queexistıa ya mucho software en el proyecto GNU, los programadores comen-zaron a unir el nucleo Linux con dichas herramientas GNU, conformando loque hoy conocemos como sistema GNU/Linux (o simplemente Linux, comose suele llamar equivocadamente). De estos aportes provenientes del proyec-to GNU, los mas importantes y conocidos son: El compilador GNU GCC delenguaje “C” con el cual se compila el mismo kernel y las aplicaciones; lalibrerıa estandar de C del proyecto GNU “glibc” y el interprete de comandosBASH entre otros.

3.6. La lista de desarrollo

Los desarrolladores del kernel Linux utilizan para comunicarse una listade correo electronico en vger.kernel.org. A traves de esta lista intercam-bian ideas, correcciones, problemas, etc. Esta lista es solo recomendable parapersonas con conocimientos solidos acerca del Kernel.

Page 60: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

60 El kernel Linux

3.7. Desarrolladores

Son muchos los desarrolladores que han realizados y realizan contribu-ciones al kernel de Linux. Algunos juegan un rol principal en el desarrollo yson 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 delkernel oficial y cuales no. En casos de conflictos, la decision final la tienesiempre Linus. No existe ningun impedimento para modificar y cambiar elkernel Linux, sin embargo, solo existe un kernel Linux oficial.

Ademas de Linus, otra personalidad importante es Alan Cox, que con-tribuyo mucho con el soporte para multiprocesadores y es quien recolectauna gran cantidad de nuevos parches para reenviarselos luego a Linus.

Figura 3.6: Alan Cox, desarrollador del Kernel Linux.

Existen por lo menos 290 desarrolladores responsables (Mantainers) lis-tados en la documentacion del kernel actual. Un mantainer es un desarrolla-dor que esta a la cabeza de algunas de las distintas areas o subsistemas delkernel de Linux. Ademas de las contribuciones propias, estos manteiners,reciben contribuciones de otros desarrolladores.

Esta estructura de desarrollo con Linus a la cabeza, no esta establecidani definida explıcitamente. Simplemente se forma a medida que las personasse conocen a traves de la red, se envıan parches, reportes de bugs, etc.

Pueden ser varios los motivos por los que un desarrollador decide invertirtiempo y esfuerzo en el desarrollo del kernel de Linux. Algunos pertenecen

Page 61: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.8 Versiones del kernel 61

a empresas a las cuales les interesa aportar al kernel para incorporar o man-tener determinada caracterıstica. Ejemplos de estos casos son Suse, IBMy RedHat por mencionar algunas. Otros contribuyen, para obtener repu-tacion, para demostrar nuevos conceptos, para impulsar los sistemas Linux,por creencias filosoficas, como aprendizaje o simplemente por placer.

Figura 3.7: Diagrama conceptual de la jerarquıa de desarrolladores.

3.8. Versiones del kernel

Existen dos ramas oficiales del Kernel Linux:

Version de produccion: La version de produccion, es la version establehasta el momento. Esta version es el resultado final de las versiones dedesarrollo o experimentales. Cuando el equipo de desarrollo del kernelexperimental, decide que ha conseguido un kernel estable y con lasuficiente calidad, se lanza una version de produccion o estable. Estaversion es la que se deberıa utilizar para un uso normal del sistema, yaque son las versiones consideradas mas estables y libres de fallos en elmomento de su lanzamiento. Las modificaciones hechas a una versionestable del kernel son solo para corregir errores, fallos de seguridad, etc.Para mantener la cantidad de bugs al mınimo posible no se agregannuevas capacidades ni se hacen mejoras sustanciales.

Version de desarrollo: Esta version es experimental y es la que utilizan

Page 62: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

62 El kernel Linux

los desarrolladores para programar, comprobar y verificar nuevas ca-racterısticas, correcciones, agregados, etc. Estos nucleos suelen ser ines-tables y no se deberıan usar sin estar bien consiente de las consecuen-cias.

Las versiones del kernel se marcan con 3 numeros (XX.YY.ZZ) de lasiguiente forma:

XX – Numero Mayor: Indica la serie principal del kernel. Hasta el mo-mento solo existen la 1 y 2. Este numero cambia cuando el codigo delkernel ha sufrido un cambio muy importante.

YY – Numero Medio: Indica si la version es de desarrollo o de produc-cion. Un numero impar, significa que es de desarrollo, uno par, que esde produccion.

ZZ – Numero Menor: Indica una nueva version del kernel, en las que lounico que se ha modificado, son fallos de programacion (bugs), correc-ciones y cambios menores.

Algunos ejemplo:

Ejemplo 1: version del kernel 2.0.0: Kernel de la serie 2, version de produccion 0(0 par), primera version.

Ejemplo 2: version del kernel 2.0.1: Kernel de la serie 2, version 0, en el que sehan corregido errores de programacion presentes en la version 2.0.0(ZZ=1)

Ejemplo 3: version del kernel 2.2.17: version 17 del kernel estable 2.2.

Ejemplo 4: version del kernel 2.5.3: version 3 del kernel inestable o de desarrollo2.5.

Ejemplo 5: version del kernel 2.6.12: version 12 del kernel estable 2.6.

3.9. Estructura monolıtica

El kernel Linux posee muchos modulos que implementan ciertas funcio-nalidades. Muchos de estos modulos pueden insertarse o removerse del ker-nel en forma dinamica (mientras esta funcionando) o pueden incorporarseen forma fija al momento de la compilacion. Esto permite probar moduloso quitarlos sin detener el sistema y armar kernels a medida solo con losmodulos indispensables para el funcionamiento de un sistema en particular.

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

Page 63: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.10 Arquitecturas de hardware 63

3.10. Arquitecturas de hardware

Linux se desarrollo originalmente para correr en computadoras tipo PCcompatibles con Intel 386 y 486. Sin embargo gracias a la portabilidad dellenguaje C y a la colaboracion de muchos desarrolladores, hoy en dıa tambiencorre en procesadores ARM, DEC Aplha, SUN Sparcs, M68000, MIPS yPowerPC entre otros.

Por esta razon GNU/Linux es el el sistema operativo que mas platafor-mas de hardware soporta.

3.11. El codigo fuente

El codigo fuente de un kernel Linux como el 2.6.8 utiliza actualmenteaproximadamente 218 Mbytes para su almacenamiento y 34 Mbytes compri-mido con tar y bzip2. Esto incluye codigo fuente para todas las arquitecturassoportadas y la documentacion.

Los archivos se encuentran organizados en directorios. En un kernel 2.6.8el primer nivel de directorios es: Documentation, arch, crypto, dri-vers, fs, include, init, ipc, kernel, lib, mm, net, scripts, security,sound, usr.

3.12. Cambiando el kernel

Toda distribucion de GNU/Linux viene con por lo menos un kernel yacompilado (imagen) con la que se instala inicialmente. Sin embargo existenvarios motivos por el cual podemos desear cambiarlo:

Para utilizar un kernel optimizado especıficamente para nuestro pro-cesador.

Para modificar algunas de las opciones.

Para utilizar un kernel que posea solo los modulos necesarios.

Para incorporar modulos “no oficiales” a nuestro kernel.

Para utilizar una version mas nueva del kernel.

Para aprender los pasos involucrados.

A la hora de cambiar el kernel, existen dos grandes opciones:

1) Instalar un kernel ya compilado.

2) Instalar un kernel compilado por uno mismo.

Page 64: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

64 El kernel Linux

3.13. Kernels precompilados

Las distintas distribuciones de GNU/Linux por lo general ofrecen una va-riedad de kernels ya compilados con diferentes opciones. Estos kernels siguensiendo de proposito general, pero optimizados por ejemplo para algun mo-delo de procesador. En una distribucion como Debian, existen los siguienteskernels ya compilados y listos para instalar:

bash> apt-cache search linux-image*

linux-image-2.6-vserver-686 - Linux kernel 2.6 image on PPro/Celeron/PII/PIII/P4

linux-image-2.6.18-4-vserver-686 - Linux 2.6.18 image on PPro/Celeron/PII/PIII/P4

linux-image-2.6.18-4-686-bigmem - Linux 2.6.18 image on PPro/Celeron/PII/PIII/P4

linux-image-486 - Linux kernel image on x86

linux-image-xen-686 - Linux kernel image on i686

linux-image-2.6-686-bigmem - Linux kernel 2.6 image on PPro/Celeron/PII/PIII/P4

linux-image-vserver-686 - Linux kernel image on PPro/Celeron/PII/PIII/P4

linux-image-2.6.18-4-xen-vserver-686 - Linux 2.6.18 image on i686

linux-image-2.6.18-4-vserver-k7 - Linux 2.6.18 image on AMD K7

linux-image-2.6-vserver-k7 - Linux kernel 2.6 image on AMD K7

linux-image-2.6-xen-vserver-686 - Linux kernel 2.6 image on i686

linux-image-686-bigmem - Linux kernel image on PPro/Celeron/PII/PIII/P4

linux-image-vserver-k7 - Linux kernel image on AMD K7

linux-image-xen-vserver-686 - Linux kernel image on i686

linux-image-k7 - Linux kernel image on AMD K7

linux-image-2.6.18-4-xen-686 - Linux 2.6.18 image on i686

linux-image-amd64 - Linux kernel image on AMD64

linux-image-2.6-k7-smp - Linux 2.6 image on AMD K7 SMP - transition package

linux-image-2.6-xen-686 - Linux kernel 2.6 image on i686

linux-image-2.6-486 - Linux kernel 2.6 image on x86

linux-image-2.6.18-4-486 - Linux 2.6.18 image on x86

linux-image-2.6-686 - Linux kernel 2.6 image on PPro/Celeron/PII/PIII/P4

linux-image-2.6.18-4-686 - Linux 2.6.18 image on PPro/Celeron/PII/PIII/P4

linux-image-2.6-amd64 - Linux kernel 2.6 image on AMD64

linux-image-2.6.18-4-amd64 - Linux 2.6.18 image on AMD64

linux-image-2.6-k7 - Linux kernel 2.6 image on AMD K7

linux-image-2.6.18-4-k7 - Linux 2.6.18 image on AMD K7

linux-image-686 - Linux kernel image on PPro/Celeron/PII/PIII/P4

Para utilizar estos kernel ya compilados, simplemente se deben instalarcon las herramientas de administracion de paquetes propias de cada distri-bucion.

3.14. Instalando un kernel compilado a medida

En cambio para cambiar por un kernel compilado por uno mismo, lospasos involucrados son los siguientes:

1) Obtener los fuentes del kernel y descomprimirlos (normalmente en/usr/src/).

2) Aplicar parches o modificaciones al codigo(opcional).

Page 65: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.14 Instalando un kernel compilado a medida 65

3) Configurar las opciones de compilacion.

4) Compilar el kernel.

5) Instalarlo en nuestro sistema.

6) Reiniciar la computadora si se desea probar el nuevo kernel.

Se daran aquı conceptos generales para introducir al lector en los pasosnecesarios en la compilacion de un kernel Linux, sin pretender ser una guıapaso a paso. Consultar la documentacion pertinente antes de realizar elproceso de configuracion, compilacion e instalacion del kernel.

3.14.1. Obteniendo el codigo fuente

El kernel se puede bajar de un gran numero de servidores en Internet. Elservidor principal es: http://www.kernel.org. De este sitio puede bajarseel codigo 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 nuevaversion (numero menor) involucra pequenos cambios en relacion al codigocompleto. Por este motivo la distribucion de las versiones tambien se realizacon parches incrementales que se aplican a la version anterior.

Las distribuciones por lo general brindan otra forma de obtener el codigofuente del kernel. Esta es instalando el paquete correspondiente a los fuentesdel kernel que se utilizaron para construir los diferentes kernels incluidos enla distribucion.

Por ejemplo en la distribucion Debian estan disponibles los siguientespaquetes que contienen el codigo fuente del kernel:

linux-source-2.6.18 - Linux kernel source for version 2.6.18 with Debian patches

linux-patch-debian-2.6.18 - Debian patches to version 2.6.18 of the Linux kernel

linux-tree-2.6.18 - Linux kernel source tree for building Debian kernel images

En todos los casos, los fuentes del kernel se encontraran comprimidospor lo que se debera proceder a su descompresion con el comando “tar”.

Dentro del subdirectorio “Documentation” de los fuentes se podra en-contrar gran cantidad de informacion relacionada.

3.14.2. Aplicar parches

Una vez que se dispone de los fuentes del kernel, pueden realizarse modi-ficaciones al mismo aplicando parches ”no oficiales”. Para esto se utilizara elcomando patch.

Tambien pueden modificarse directamente los archivos fuente. Obvia-mente hay que poseer los conocimientos necesarios para modificar exitosa-mente el kernel.

Page 66: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

66 El kernel Linux

3.14.3. Configuracion

Antes de compilar el kernel Linux, se pueden configurar una gran canti-dad de opciones. Se puede elegir que modulos seran incorporados en formafija, que modulos podran insertarse y cuales no.

Para esto, el kernel posee un archivo de configuracion. Este archivo deconfiguracion puede crearse y editarse en forma manual, pero lo mas comunes hacerlo a traves de una interfase amigable (preguntas en texto plano, ncur-ses, Qt, GTK). Para configurar el kernel mediante alguna de estas interfaceses necesario alguno de los siguientes comandos:

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 exis-ting config file.

Ejecutar “make help” para obtener la lista completa y su explicacion.Para acceder a esta configuracion interactiva es necesario tener instalado

por lo menos el compilador de C, Make y la librerıa correspondiente a lainterface seleccionada.

3.14.4. Compilacion

Una vez configuradas las opciones deseadas se procede a la compilacion.Los archivos Makefile permiten automatizar el proceso de compilacion. Paracompilar el kernel es necesario tener instalados el compilador de C, Make , bi-nutils y otros componentes segun se menciona en Documentation/Changes.

El kernel se compila simplemente con el comando “make” o “make all”.Si todo es correcto se obtendra un nuevo kernel compilado junto con susmodulos listos para instalar. Ejecutar “make help” para obtener la listacompleta de opciones de compilacion y su explicacion.

3.14.5. Instalacion

El proceso de instalacion consiste basicamente en colocar el archivo ima-gen obtenido (kernel compilado) en el lugar apropiado dentro del sistemade archivos. Ademas se debe configurar adecuadamente al administrador dearranque (Grub, Lilo u otro) para que en el proximo arranque se utilice elnuevo kernel. Como mecanismo de seguridad siempre se deja disponible laopcion de arrancar con el kernel anterior para estar seguros que el sistemapodra utilizarse en caso que el nuevo kernel no funcione correctamente.

La instalacion del kernel puede hacerse con el comando “make install”que realiza automaticamente las acciones mencionadas.

Page 67: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.15 El arranque 67

Figura 3.8: Configuracion del kernel con la opcion “make menuconfig”.

3.14.6. Otras variantes

Los pasos explicados aquı son generales, sin embargo algunas distribu-ciones de GNU/Linux poseen mecanismos especiales que facilitan esta la-bor. Por ejemplo en un sistema Debian GNU/Linux existe la herramienta“make-kpkg” que se utiliza para compilar los fuentes del kernel y crear pa-quetes Debian (.deb) del kernel, listos para instalar en el sistema. Esto faci-lita la tarea de administracion, instalacion de nuevos kernels y su reemplazo.

3.15. El arranque

El administrador de arranque transfiere el hilo de ejecucion al kernel,quien comienza entre otras cosas con la deteccion del hardware del sistema.Durante este proceso de arranque el kernel nos brinda una gran cantidadde informacion por pantalla. Ademas esta informacion puede consultarsecon el comando ”dmesg.o consultando varios archivos de log en /var/log

(syslog, kern.log, dmesg y otros). A modo de ejemplo se muestra el registrode arranque de un kernel Linux:

shell>dmesg

Linux version 2.6.18-4-k7 (Debian 2.6.18.dfsg.1-12)

Page 68: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

68 El kernel Linux

([email protected]) (gcc version 4.1.2 20061115 (prerelease)

(Debian 4.1.1-21)) #1 SMP Mon Mar 26 17:57:15 UTC 2007

BIOS-provided physical RAM map:

BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)

BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)

BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)

BIOS-e820: 0000000000100000 - 000000000fffc000 (usable)

BIOS-e820: 000000000fffc000 - 000000000ffff000 (ACPI data)

BIOS-e820: 000000000ffff000 - 0000000010000000 (ACPI NVS)

BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)

BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)

BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)

0MB HIGHMEM available.

255MB LOWMEM available.

On node 0 totalpages: 65532

DMA zone: 4096 pages, LIFO batch:0

Normal zone: 61436 pages, LIFO batch:15

DMI 2.3 present.

ACPI: RSDP (v000 ASUS ) @ 0x000f5e80

ACPI: RSDT (v001 ASUS A7S333 0x42302e31 MSFT 0x31313031) @ 0x0fffc000

ACPI: FADT (v001 ASUS A7S333 0x42302e31 MSFT 0x31313031) @ 0x0fffc0b2

ACPI: BOOT (v001 ASUS A7S333 0x42302e31 MSFT 0x31313031) @ 0x0fffc030

ACPI: MADT (v001 ASUS A7S333 0x42302e31 MSFT 0x31313031) @ 0x0fffc058

ACPI: DSDT (v001 ASUS A7S333 0x00001000 MSFT 0x0100000b) @ 0x00000000

ACPI: PM-Timer IO Port: 0xe408

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

Processor #0 6:8 APIC version 16

ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])

IOAPIC[0]: apic_id 2, version 0, address 0xfec00000, GSI 0-23

ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)

ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 20 low level)

ACPI: IRQ0 used by override.

ACPI: IRQ2 used by override.

Enabling APIC mode: Flat. Using 1 I/O APICs

Using ACPI (MADT) for SMP configuration information

Allocating PCI resources starting at 20000000 (gap: 10000000:eec00000)

Detected 1529.500 MHz processor.

Built 1 zonelists. Total pages: 65532

Kernel command line: root=/dev/hda4 ro

mapped APIC to ffffd000 (fee00000)

mapped IOAPIC to ffffc000 (fec00000)

Enabling fast FPU save and restore... done.

Enabling unmasked SIMD FPU exception support... done.

Initializing CPU#0

PID hash table entries: 1024 (order: 10, 4096 bytes)

Console: colour VGA+ 80x25

Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)

Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)

Memory: 252316k/262128k available (1557k kernel code, 9348k reserved,

581k data, 196k init, 0k highmem)

Checking if this processor honours the WP bit even in supervisor mode... Ok.

Calibrating delay using timer specific routine.. 3061.02 BogoMIPS (lpj=6122055)

Page 69: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.15 El arranque 69

Security Framework v1.0.0 initialized

SELinux: Disabled at boot.

Capability LSM initialized

Mount-cache hash table entries: 512

CPU: After generic identify, caps: 0383fbff c1c3fbff

CPU: After vendor identify, caps: 0383fbff c1c3fbff

CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)

CPU: L2 Cache: 256K (64 bytes/line)

CPU: After all inits, caps: 0383fbff c1c3fbff 00000000 00000420

Intel machine check architecture supported.

Intel machine check reporting enabled on CPU#0.

Compat vDSO mapped to ffffe000.

Checking ’hlt’ instruction... OK.

SMP alternatives: switching to UP code

Freeing SMP alternatives: 16k freed

ACPI: Core revision 20060707

CPU0: AMD Athlon(TM) XP 1800+ stepping 00

Total of 1 processors activated (3061.02 BogoMIPS).

ENABLING IO-APIC IRQs

..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1

Brought up 1 CPUs

migration_cost=0

checking if image is initramfs... it is

Freeing initrd memory: 4399k freed

NET: Registered protocol family 16

ACPI: bus type pci registered

PCI: PCI BIOS revision 2.10 entry at 0xf19a0, last bus=1

PCI: Using configuration type 1

Setting up standard PCI resources

ACPI: Interpreter enabled

ACPI: Using IOAPIC for interrupt routing

ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 10 11 12 14 15)

ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 10 11 12 14 15) *9

ACPI: PCI Root Bridge [PCI0] (0000:00)

PCI: Probing PCI hardware (bus 00)

ACPI: Assume root bridge [\_SB_.PCI0] bus is 0

Enabling SiS 96x SMBus.

Boot video device is 0000:01:00.0

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]

Linux Plug and Play Support v0.97 (c) Adam Belay

pnp: PnP ACPI init

pnp: PnP ACPI: found 16 devices

PnPBIOS: Disabled by ACPI PNP

PCI: Using ACPI for IRQ routing

PCI: If a device doesn’t work, try "pci=routeirq". If it helps, post a report

pnp: 00:02: ioport range 0xe400-0xe47f could not be reserved

pnp: 00:02: ioport range 0xe480-0xe4ff has been reserved

Page 70: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

70 El kernel Linux

pnp: 00:02: ioport range 0xe600-0xe61f has been reserved

pnp: 00:02: ioport range 0x480-0x48f has been reserved

pnp: 00:0f: ioport range 0x290-0x297 has been reserved

pnp: 00:0f: ioport range 0x500-0x507 has been reserved

PCI: Bridge: 0000:00:01.0

IO window: disabled.

MEM window: e7000000-e7ffffff

PREFETCH window: eff00000-febfffff

PCI: Setting latency timer of device 0000:00:01.0 to 64

NET: Registered protocol family 2

IP route cache hash table entries: 2048 (order: 1, 8192 bytes)

TCP established hash table entries: 8192 (order: 4, 65536 bytes)

TCP bind hash table entries: 4096 (order: 3, 32768 bytes)

TCP: Hash tables configured (established 8192 bind 4096)

TCP reno registered

Simple Boot Flag at 0x3a set to 0x1

audit: initializing netlink socket (disabled)

audit(1204920251.884:1): initialized

VFS: Disk quotas dquot_6.5.1

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

Initializing Cryptographic API

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

io scheduler cfq registered (default)

isapnp: Scanning for PnP cards...

isapnp: No Plug & Play device found

Serial: 8250/16550 driver $Revision: 1.1 $ 4 ports, IRQ sharing enabled

serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

00:0c: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize

PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12

serio: i8042 AUX port at 0x60,0x64 irq 12

serio: i8042 KBD port at 0x60,0x64 irq 1

mice: PS/2 mouse device common for all mice

TCP bic registered

NET: Registered protocol family 1

NET: Registered protocol family 17

NET: Registered protocol family 8

NET: Registered protocol family 20

Using IPI No-Shortcut mode

ACPI: (supports S0 S1 S4 S5)

Freeing unused kernel memory: 196k freed

Time: tsc clocksource has been installed.

input: AT Translated Set 2 keyboard as /class/input/input0

ACPI: Invalid PBLK length [5]

usbcore: registered new driver usbfs

usbcore: registered new driver hub

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

SIS5513: IDE controller at PCI slot 0000:00:02.5

SIS5513: chipset revision 208

Page 71: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.15 El arranque 71

SIS5513: not 100% native mode: will probe irqs later

SIS5513: SiS745 ATA 100 (2nd gen) controller

ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:DMA, hdb:DMA

ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:pio

Probing IDE interface ide0...

ohci_hcd: 2005 April 22 USB 1.1 ’Open’ Host Controller (OHCI) Driver (PCI)

hda: WDC WD1600BB-56RDA0, ATA DISK drive

hdb: ST320014A, ATA DISK drive

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

Probing IDE interface ide1...

hdc: HL-DT-ST RW/DVD GCC-4320B, ATAPI CD/DVD-ROM drive

ide1 at 0x170-0x177,0x376 on irq 15

ACPI: PCI Interrupt 0000:00:02.2[D] -> GSI 19 (level, low) -> IRQ 177

ohci_hcd 0000:00:02.2: OHCI Host Controller

ohci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1

ohci_hcd 0000:00:02.2: irq 177, io mem 0xe6800000

hda: max request size: 512KiB

hda: 312581808 sectors (160041 MB) w/2048KiB Cache, CHS=19457/255/63, UDMA(100)

hda: cache flushes supported

hda:<6>usb usb1: configuration #1 chosen from 1 choice

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 3 ports detected

hda1 hda2 hda3 hda4

hdb: max request size: 128KiB

hdb: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=38792/16/63, UDMA(100)

hdb: cache flushes supported

hdb: hdb1 hdb2 hdb3

ACPI: PCI Interrupt 0000:00:02.3[A] -> GSI 23 (level, low) -> IRQ 185

ohci_hcd 0000:00:02.3: OHCI Host Controller

ohci_hcd 0000:00:02.3: new USB bus registered, assigned bus number 2

ohci_hcd 0000:00:02.3: irq 185, io mem 0xe6000000

hdc: ATAPI 40X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)

Uniform CD-ROM driver Revision: 3.20

usb usb2: configuration #1 chosen from 1 choice

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 3 ports detected

usb 1-1: new full speed USB device using ohci_hcd and address 2

usb 1-1: configuration #1 chosen from 1 choice

hub 1-1:1.0: USB hub found

hub 1-1:1.0: 4 ports detected

usb 1-1.1: new full speed USB device using ohci_hcd and address 3

Attempting manual resume

kjournald starting. Commit interval 5 seconds

EXT3-fs: mounted filesystem with ordered data mode.

usb 1-1.1: configuration #1 chosen from 1 choice

SCSI subsystem initialized

Initializing USB Mass Storage driver...

scsi0 : SCSI emulation for USB Mass Storage devices

usbcore: registered new driver usb-storage

USB Mass Storage support registered.

usb-storage: device found at 3

usb-storage: waiting for device to settle before scanning

Linux agpgart interface v0.101 (c) Dave Jones

agpgart: Detected SiS 745 chipset

Page 72: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

72 El kernel Linux

agpgart: AGP aperture is 64M @ 0xe8000000

pci_hotplug: PCI Hot Plug PCI Core version: 0.5

shpchp: Standard Hot Plug PCI Controller Driver version: 0.4

sis630_smbus 0000:00:02.0: SIS630 comp. bus not detected, module not inserted.

sis96x_smbus 0000:00:02.1: SiS96x SMBus base address: 0xe600

input: PC Speaker as /class/input/input1

parport: PnPBIOS parport detected.

parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]

Real Time Clock Driver v1.12ac

Floppy drive(s): fd0 is 1.44M

FDC 0 is a post-1991 82077

ACPI: PCI Interrupt 0000:00:05.0[A] -> GSI 17 (level, low) -> IRQ 193

input: ImPS/2 Generic Wheel Mouse as /class/input/input2

ts: Compaq touchscreen protocol output

Vendor: Sony Model: Storage Media Rev: 0100

Type: Direct-Access ANSI SCSI revision: 00

usb-storage: device scan complete

SCSI device sda: 3932160 512-byte hdwr sectors (2013 MB)

sda: Write Protect is off

sda: Mode Sense: 43 00 00 00

sda: assuming drive cache: write through

SCSI device sda: 3932160 512-byte hdwr sectors (2013 MB)

sda: Write Protect is off

sda: Mode Sense: 43 00 00 00

sda: assuming drive cache: write through

sda: sda1 sda2

sd 0:0:0:0: Attached scsi removable disk sda

Adding 289160k swap on /dev/hda2. Priority:-1 extents:1 across:289160k

EXT3 FS on hda4, internal journal

loop: loaded (max 8 devices)

device-mapper: ioctl: 4.7.0-ioctl (2006-06-24) initialised: [email protected]

kjournald starting. Commit interval 5 seconds

EXT3-fs warning: maximal mount count reached, running e2fsck is recommended

EXT3 FS on hdb2, internal journal

EXT3-fs: mounted filesystem with ordered data mode.

ACPI: Power Button (FF) [PWRF]

ACPI: Power Button (CM) [PWRB]

lp0: using parport0 (interrupt-driven).

ppdev: user-space parallel port driver

ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 201

agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.

agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode

agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode

kjournald starting. Commit interval 5 seconds

EXT3-fs warning: maximal mount count reached, running e2fsck is recommended

EXT3 FS on sda1, internal journal

EXT3-fs: mounted filesystem with ordered data mode.

3.16. Los modulos

Los modulos son pequenas porciones de codigo compilado que puedeninsertarse y removerse del kernel durante su ejecucion. Estas porciones de

Page 73: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.16 Los modulos 73

codigo implementan una funcionalidad especıfica del kernel. Al momento deconfigurar el kernel podemos elegir algunas caracterısticas generales acercade los modulos:

Habilitar la posibilidad de cargar modulos durante la ejecucion delkernel. Nos permitira insertar modulos dentro del kernel en ejecucionactual.

Posibilidad de descargar modulos. Nos permitira remover modulos.

Carga automatica de modulos. El kernel podra cargar automaticamen-te los modulos que considere necesarios a medida que los necesite.

Luego, para cada una de estas funcionalidades implementadas comomodulos podremos optar entre las siguientes opciones:

La funcionalidad no estara incluida ni podra cargarse posteriormentecomo modulo. Esto ahorra recursos al no incluir caracterısticas inne-cesarias y mejora la seguridad del sistema ya que es imposible cargaresa funcionalidad en el kernel.

La funcionalidad estara incluida en el kernel sin necesidad de cargarloexplıcitamente como modulo. No podra removerse la funcionalidad.

La funcionalidad estara disponible como modulo. En caso de ser ne-cesario se podra insertar el modulo en cuestion. Tambien podra remo-verse.

Las herramientas mas comunes para manejar modulos del kernel son:

modprobe: Inserta y remueve modulos del kernel.

lsmod: Lista los modulos cargados.

modinfo: Brinda informacion sobre cada modulo.

insmod: Inserta modulos

rmmod: Remueve modulos.

Por ejemplo para obtener informacion sobre el modulo “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

Page 74: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

74 El kernel Linux

Figura 3.9: Configuracion del soporte para carga de modulos.

Para insertar el modulo:

shell> modprobe msdos

Y para remover el modulo podemos usar “modprobe” o “rmmod”:

shell> modprobe -r msdos

3.17. Logo

El logo o mascota asociada al kernel Linux y en general al sistema ope-rativo GNU/Linux es el pinguino llamado Tux creado por Larry Ewing. Loslogos pueden obtenerse de la pagina http://www.isc.tamu.edu/∼lewing/

linux/

Se puede encontrar la historia del porque de esta mascota en la siguientedireccion: http://www.sjbaker.org/tux

3.18. Lecturas complementarias

Un artıculo muy interesante sobre el kernel Linux: “Anatomy of the Li-nux kernel”, History and architectural decomposition. Autor M. Tim Jones.

Page 75: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

3.19 Autores del capıtulo 75

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

http://www.ibm.com/developerworks/linux/library/l-linux-kernel/

Para conocer a fondo y agregar dispositivos al kernel: “Linux Device Dri-vers”. Por Jonathan Corbet, Alessandro Rubini y Greg Kroah-Hartman.http://lwn.net/Kernel/LDD3/ o tambien http://www.xml.com/ldd/chapter/

book/

3.19. Autores del capıtulo

Copyright c© 2001-2008 Diego J. Brengi.Se otorga permiso para copiar, distribuir y/o modificar este capıtulo bajo

los terminos de la Licencia de Documentacion Libre de GNU, Version 1.2 ocualquier otra version posterior publicada por la Free Software Foundation;sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cu-bierta Trasera. Una copia de la licencia esta incluida en la seccion tituladaGNU Free Documentation License.

Los derechos de copyright sobre las figuras y logos pertenecen a susautores y no son abarcados por esta licencia.

Las primeras secciones donde se cuenta la historia del kernel se tomaronde investigaciones realizadas en la red. Es difıcil citar su orıgen ya que setrata de textos que se encuentran replicados en una gran cantidad de sitiosweb, sin mencion del autor original.

Page 76: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

76 El kernel Linux

Page 77: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 4

Distribuciones GNU/LINUX

4.1. ¿Que es una distribucion de GNU/Linux?

Una distribucion GNU/Linux nos brinda la posibilidad de instalar, eje-cutar y utilizar un sistema operativo GNU/Linux en nuestra computadora,ademas de una gran variedad de software de aplicacion. Actualmente existenuna gran variedad de distribuciones GNU/Linux en constante evolucion. Elprincipal objetivo de una distribucion es ahorrarle al usuario gran parte deltrabajo de instalacion, configuracion y actualizacion del sistema operativo ysus aplicaciones.

4.2. ¿Que partes componen una distribucion?

Para entender que es una distribucion y que las diferencia es necesariocomprender cuales son las partes que la componen y la definen. Veremosa continucacion algunos de los componentes mas importantes dentro delconcepto de una distribucion.

4.2.1. Programa de instalacion

Es el programa que nos guıa a traves del proceso de instalacion. Du-rante la instalacion se define donde se instalara el S.O, se seleccionan lasaplicaciones deseadas y se definen algunas configuraciones de nuestro nuevosistema. Los programas de instalacion tratan de detectar nuestro hardwarey generar las configuraciones correspondientes. El programa de instalaciones la primer gran diferencia entre las distintas distribuciones que el usuarionota.

4.2.2. Kernel Linux

Todas las distribuciones GNU/Linux traen el kernel Linux, sin embargono todos traen la misma version y no todas lo compilan con las mismas

Page 78: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

78 Distribuciones GNU/LINUX

opciones. Las distribuciones mas nuevas traeran una version mas nueva delkernel, que generalmente incorpora mejoras, correcciones y mayor hardwaresoportado.

Un usuario avanzado siempre podra reconfigurar y recompilar el kernel,reemplazarlo por uno mas nuevo o seleccionar el que mejor se adapte asus necesidades si ninguno de los kernels precompilados que proporciona ladistribucion no lo satisfacen.

El kernel posee una gran cantidad configuraciones para compilarlo. Cadadistribucion adopta sus propios criterios para generar el kernel que acom-panara la distribucion. Luego de una instalacion exitosa siempre es conve-niente verificar que el kernel del nuevo sistema sea el adecuado, sabiendoque una distribucion actual trae varios kernels entre los cuales elegir, opti-mizados especialmente para cada arquitectura.

4.2.3. Herramientas GNU y sistema base

Para completar el sistema operativo, junto con el kernel se distribuyenlas herramientas del proyecto GNU y una gran recopilacion de programasbasicos para el funcionamiento y la administracion del sistema. Algunas deestas herramientas son: el compilador de C “gcc”, la librerıa de C “glibc”, elinterprete de comandos “bash”, editores de texto, herramientas de diagnosti-co, herramientas de red y muchas otras. Todas estas herramientas sumadasconforman el sistema base y normalmente seran instaladas sin consultar alusuario.

4.2.4. Programas de aplicacion con licencias libres

Ademas del kernel y las herramientas basicas del sistema una distribucionposee 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: admi-nistracion, interfaz grafica, escritorio, navegacion, edicion de texto, repro-duccion multimedia, lectura de correo, servidores, conectividad, etc.

Dentro de esta categorıa todas las distribuciones poseen generalmentelas mismas aplicaciones, pero distintas versiones de las mismas dependiendodel desarrollo de cada una a la fecha de lanzamiento de la distribucion.

Al momento de escribir este documento, una distribucion como Debian“etch” 4.0 completamente “open source” posee mas de 18.000 paquetes desoftware, distribuidos en 3 DVDs.

4.2.5. Programas de aplicacion “privativos”

Muchas distribuciones actuales vienen con programas privativos (propie-tarios) adicionales para captar nuevos usuarios. Muchas veces los programaspropietarios son el propio instalador y las herramientas de administracion. Si

Page 79: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.2 ¿Que partes componen una distribucion? 79

bien una distribucion con estas caracterısticas puede parecer mas atractiva,lo hace a costa de quitar libertades a los usuarios y viola los principios del“free software” (software libre). Generalmente este tipo de distribucionesbrinda en forma gratuita versiones de evaluacion pero es necesario comprarla version funcional. A diferencia de una distribucion pura GNU/Linux es-tas distribuciones con software propietario poseen algunas o todas de lassiguientes limitaciones:

No se puede copiar libremente.

No se tiene acceso al codigo fuente del 100 % de sus componentes.

No se puede modificar y redistribuir la version modificada.

No se puede vender.

4.2.6. Configuraciones por defecto

Una de las caracterısticas principales de la mayorıa de las aplicacionesLinux es la flexibilidad y la gran cantidad de opciones de configuracion.Esto se logra generalmente mediante archivos de configuracion que permitendefinir el comportamiento por defecto de una aplicacion en particular.

Si bien al momento de instalar un programa es probable que se pregun-ten ciertos parametros de configuracion al usuario, serıa impractico y tediososolicitar al usuario todas las posibles opciones. Para evitar esto es necesarioadoptar configuraciones por defecto al momento de instalar una aplicacion.En este punto encontramos grandes diferencias entre distribuciones. Algunosde los posibles criterios para adoptar una configuracion por defecto puedenser: mınima intervencion del usuario, mayor seguridad del sistema, uso masfrecuente, uso mas eficiente, menor consumo de recursos, mayor interopera-bilidad, etc. Generalmente es imposible lograr todas estas caracterısticas yes necesario enfocar solo en algunos de estos puntos.

Cada distribucion pondera diferentes criterios al momento de decidir laconfiguracion por defecto. Para los usuarios avanzados esto no es un pro-blema debido a que las configuraciones pueden cambiarse segun los propioscriterios y olvidarse de la configuracion por defecto.

4.2.7. Herramientas de configuracion y administracion

Si bien existen herramientas de administracion de uso comun y gene-ralizado cada distribucion puede desarrollar y utilizar herramientas propiaspara la administracion y configuracion del sistema.

Existen disponibles una gran variedad de este tipo de herramientas, razonpor la cual una distribucion debe elegir cual de todas ellas usar por defec-to. Muchas veces se desarrollan programas y herramientas particulares parauna distribucion. Estos programas pueden estar o no bajo una licencia “open

Page 80: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

80 Distribuciones GNU/LINUX

source”. Cuando una distribucion desarrolla una de estas herramientas y labrinda con una licencia “open source”, nada le impide a otra distribucionadoptar esta nueva herramienta. Sin embargo, al igual que en el punto an-terior aquı tambien entran en juego las caracterısticas que cada distribuciondesea. Una de las grandes diferencias marcadas entre distribuciones es elsistema de manejo y administracion de paquetes de software. Como ejem-plo podemos mencionar el sistema de paquetes de RedHat (.RPM) y el deDebian (.DEB) y todas sus herramientas asociadas.

4.2.8. Documentacion

Cada distribucion es responsable de generar documentacion sobre el pro-ceso de instalacion, caracterısticas distintivas y cualquier otro tema que seaparticular a la distribucion. Como ejemplo podemos mencionar guıas deinstalacion, paginas webs oficiales, guıas de administracion, etc.

4.2.9. Actualizaciones de seguridad y correcciones de bugs

Las distribuciones brindan paquetes binarios de todas las aplicacionesque la componen para evitarle al usuario la tarea de compilacion (Aunquealgunas solo se manejan con los fuentes). Cuando se detectan errores o fa-llos de seguridad en las aplicaciones los encargados de la distribucion sonresponsables de corregir esos errores, recompilar la aplicacion y distribuirlos paquetes actualizados. Una distribucion es obsoleta cuando carece de es-ta caracterıstica. Existen actualmente herramientas de administracion queactualizan automaticamente nuestro sistema a traves de Internet (por ejem-plo “apt-get” o “aptitude”). Algunas distribuciones cobran por este servicioautomatizado. Otras lo brindan en forma gratuita.

4.2.10. Integracion de todo el sistema

Teniendo en cuenta todos los puntos anteriores, otra de las caracterısti-cas fundamentales de una distribucion es su integracion, pensada como unconjunto de elementos funcionando simultaneamente 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 sistemade archivos.

Evitar las colisiones entre diferentes programas.

Manejar las dependencias de todos los paquetes de software.

Page 81: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.2 ¿Que partes componen una distribucion? 81

Completar la documentacion faltante en los programas originales.

Definir programas por defecto cuando hay mas de un programa parala misma tarea.

Definir las herramientas y metodos de administracion y configuraciondel sistema.

4.2.11. Soporte para el usuario

Una distribucion debe brindar algun tipo de soporte oficial para los usua-rios. Este soporte puede ser gratuito o pago. Ademas existen normalmentelistas de correos y foros donde los usuarios de una distribucion intercambianconsejos e informacion.

4.2.12. Motivacion y objetivos

Ademas de todo el software y la documentacion que posee, una distribu-cion tiene un motivo o razon para su existencia. Puede solamente perseguirfines comerciales o simplemente brindar un sistema operativo 100 % libre.Muchas distribuciones nacen sencillamente porque su creador tiene la nece-sidad de alguna caracterıstica tecnica en particular faltante en otras distri-buciones. Algunas nacen por inquietudes personales o disconformidad contodas las distribuciones actuales. Un ejemplo de esto son las distribucionesregionales, donde la principal caracterıstica es el soporte y la configuracionde un idioma en particular por defecto. Cualquier empresa, persona particu-lar o grupo de personas pueden crear una nueva distribucion. La motivacionde una distribucion define que objetivos se proponen sus creadores y haciadonde avanza su desarrollo.

Debido a la gran cantidad de posibles aplicaciones y objetivos, existennumerosas distribuciones que se diferencias en:

Lenguaje y regionalizacion mejor soportado por defecto.

Inclusion o no de programas propietarios.

Pensadas para instalacion fija o para funcionamiento como live cd.

Orientadas a algun uso particular por ejemplo en ingenierıa, medicina,juegos, multimedia, diagnostico y reparacion , etc.

Orientadas a un tipo de usuario en especial por ejemplo para nivelprincipiante, normal, avanzado o alguna combinacion de los anteriores.

Page 82: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

82 Distribuciones GNU/LINUX

4.3. Clasificacion de distribuciones

Debido a todas las diferencias existentes entre distribuciones, es muydifıcil intentar clasificarlas de alguna forma. Al momento de escribir estedocumento el sitio http://distrowatch.com/ tiene listadas aproximada-mente 380 distribuciones GNU/linux activas, sin contar las distribucionesen discos floppy y las utilizadas para sistemas empotrados.

Tomando como base las informacion suministrada por distrowatch, men-cionaremos algunos de estos criterios que separan a las distribuciones endistintas categorıas.

4.3.1. Activas e inactivas

Una distribucion esta hecha y mantenida por desarrolladores. Cuandopor algun motivo los desarrolladores dejan de mantener o actualizar el pro-yecto y ningun otro se encarga del mismo, la distribucion pasa a estar desac-tualizada y sin mantenimiento. No es recomendable utilizar una distribucioninactiva ya que no se tendran actualizaciones de seguridad ni se dispondra delos avances realizados en la comunidad del software libre.

4.3.2. Dependencia de otra distribucion

Muchas de las distribuciones existentes estan basadas en otras distribu-ciones. Esto genera normalmente (no siempre) una dependencia en la distri-bucion ya que todo cambio o mejora en las distribucion padre, se vera refle-jada en las futuras versiones de la distribucion hijo.

Solo pocas distribuciones pueden considerarse independientes en estesentido. La gran mayorıa de las distribuciones han nacido de Debian, Red-Hat (ahora Fedora) o Slackware.

4.3.3. Paıs de origen y desarrollo

Como se ha mencionado antes, la regionalizacion y el lenguaje dan lu-gar a la creacion de una distribucion. La gran mayorıa de las distribucioneshan tenido origen en Estados Unidos, Alemania, Francia, Espana o Canada.Algunas pocas, entre ellas la mas importante es Debian, pueden conside-rarse globales o internacionales, ya que gran parte de sus desarrolladores seencuentran distribuidos en todo el mundo.

4.3.4. Popularidad

Otra forma de clasificacion es observar hacia cuales distribuciones sevuelcan los usuarios de GNU/linux. Las 10 mas populares (Abril de 2005)segun distrowatch son: Mandriva, Fedora, SUSE, MEPIS, Ubuntu, KNOP-PIX, Debian, Slackware, Gentoo y Damn Small.

Page 83: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.3 Clasificacion de distribuciones 83

4.3.5. Precio

La Mayorıa de las distribuciones son totalmente gratuitas y se puedenbajar de Internet sin ningun problema. Otras solo ofrecen en forma gratuitasversiones de evaluacion (incompletas) o versiones ya desactualizadas, tenien-do que pagar para conseguir la version completa o la mas actual. Algunosejemplos de esta ultima categorıa son SUSE y Red-hat (despues de la crea-cion de Fedora). Tambien se pueden conseguir distribuciones en negocios,donde se ofrecen los CDs o DVDs estampados, en bonitas cajas y a vecescon impresiones de los manuales de instalacion y uso.

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

4.3.6. Licencias involucradas

Debido a que son varios los componentes de software que forman una dis-tribucion, no existe una sola licencia que se aplique a toda una distribucion.Observando esta problematica los desarrolladores de Debian comenzaron untrabajo llamado DFSG “Debian Free Software Guidelines”, que luego fina-lizarıa con la definicion de “open source”, donde intentaron poner requisitosgenerales a cumplir por las licencias para que un sistema sea consideradolibre y abierto. De esta forma se logra agrupar a un conjunto de licencias quetienen la caracterıstica de ser libres (GPL, BSD, Artistic, Public Domain,etc).

Considerando esto, podemos clasificar a las distribuciones en libres y nolibres ,o en “open source” o no, dependiendo de todas las licencias de losprogramas 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 deSUSE.

4.3.7. Manejo de paquetes de software

Toda distribucion necesita de un sistema para manejar la gran cantidadde software existente dentro y fuera de la distribucion. Cada componente desoftware se agrupa en paquetes que pueden ser instalados y desinstalados atraves de las herramientas de administracion propias de cada distribucion.Los mas populares y utilizados por las distribuciones son:

Page 84: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

84 Distribuciones GNU/LINUX

DEB: Creado por Debian.

RPM: Creado por Red-Hat.

TGZ: Creado por Slackware.

Tambien estan surgiendo las distribuciones que utilizan paquetes de codi-go fuente para instalar aplicaciones. De esta forma cuando el usuario decideinstalar un paquete, la herramienta de manejo de paquetes obtiene el codigofuente, lo compila y lo instala. Una de las distribuciones que utiliza estesistema es Gentoo Linux con su sistema Portage.

4.3.8. Tipo de uso

Muchas distribuciones estan pensadas y optimizadas para realizar tareasespecıficas. Listaremos algunas a modo de ejemplo:

Facil uso e instalacion: Ejemplo : Mandriva, Suse.

Para estaciones servidor: Ejemplo : Linux LiveCD Router, Tupi-Server

Para demostracion o uso rapido: Ejemplo: por lo general se tratade distribuciones Live CDs como Knoppix, Morphix, Ututo-e.

De amplio espectro: Ejemplo : Debian, Fedora.

Para uso especial: Ejemplo: Bioknoppix para biologıa molecular,SystemRescueCD para diagnostico y reparacion de discos rıgidos.

4.3.9. Soporte principal

Ademas del origen de la iniciativa y su objetivo es importante conocerquienes son los desarrolladores que mantienen, actualizan y sostienen unadistribucion.

Podemos encontrar distribuciones que detras tienen una o varias empresaque las impulsan, otras estan creadas y sostenidas por asociaciones sin finesde lucro, grupos de usuarios, universidades e instituciones, etc.

4.4. ¿En que basar la eleccion?

Actualmente existen una gran cantidad y variedad de distribuciones. Esmuy importante al momento de elegir una distribucion verificar que la mismase encuentre aun activa y que continue su desarrollo. Esto nos evitara pro-blemas a la hora de actualizarla y solucionar problemas.

Algunos de los puntos que debemos tener en cuenta son:

Page 85: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.5 ¿Como obtener una distribucion? 85

Uso

Es importante saber que uso se la dara al sistema operativo. Es muydiferentes un servidor de Internet que una estacion de trabajo para oficinao programacion, o si solo deseamos usar el sistema por un corto tiemposimplemente por curiosidad.

Tiempo invertido

Es necesario saber cuanto tiempo estamos dispuestos a invertir en cono-cer a fondo el sistema, configurarlo y adaptarlo a nuestras necesidades. Porejemplo una distribucion live cd nos permite comenzar a utilizar un sistemaoperativo Gnu/Linux en forma instantanea sin perdida de tiempo en insta-lacion y configuracion. Sin embargo si se pretende profundizar en el conoci-miento del sistema, adaptarlo a nuestras necesidades especıficas y utilizarlode manera frecuente, sera necesario utilizar una distribucion con muchasmas opciones y paquetes disponibles.

Asistencia y soporte

Ademas del soporte oficial de la distribucion y las listas de correo es demucha ayuda tener contactos cercanos que nos puedan ayudar en la utili-zacion del S.O. y la resolucion de problemas. Debido a las diferencias entredistribuciones, siempre es preferible poseer la misma distribucion que la per-sona que nos brindara su ayuda.

Filosofıa de la distribucion

Para muchos de los integrantes de la comunidad GNU/Linux, la filosofıadel software libre y el compromiso con la comunidad que adopta la distri-bucion son mucho mas importantes que cualquier caracterıstica tecnica.

Calidad

La calidad global de la distribucion es otro factor para elegir una distri-bucion. Podemos obtener este tipo de informacion consultando a sus usuariosy escuchando sus opiniones.

4.5. ¿Como obtener una distribucion?

La forma mas comun en la que se presenta una distribucion es en forma-to de CD-ROM. Generalmente estan compuestas por varios CDs o DVDs.Para instalar un sistema basico solo son necesarios los primeros CDs (nor-malmente uno a dos). Los demas CDs traen una gran cantidad de aplicacio-nes complementarias que no son necesarias para el primer funcionamiento

Page 86: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

86 Distribuciones GNU/LINUX

del sistema, pero sı cuando utilicemos el sistema mas frecuentemente. Algu-nas distribuciones tienen ademas versiones en uno o dos y hasta 3 DVDs.

Si no disponemos de internet todo el tiempo ennuestro sistema, siemprees aconsejable poseer en nuestro poder los Cds de la distribucion que insta-lemos debido a que posteriormente sera necesario instalar nuevos paquetes(aplicaciones) a medida que lo necesitemos.

Existen varias formas validas y legales de obtener una distribucion deGNU/Linux que sea 100 % software libre:

Bajar las imagenes (.iso) desde Internet y grabar los CDs.

Pedir a algun amigo que nos preste los CDs para copiarlos.

Pedir a algun amigo que nos copie los CDs, puede cobrarnos o no segunlo desee.

Comprar alguna copia en un negocio.

Comprar alguna distribucion original en un negocio con caja original,CDs estampados, manuales impreos, etc.

Cuando la distribucion no es 100anteriores no son validas, dependiendodel 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 CDcomo conjunto queda limitado segun esas pocas licencias.

Para bajar una distribucion desde Internet debemos buscar la informa-cion en el sitio oficial de la distribucion. Tambien existen sitios que nosayudan a encontrar las imagenes iso de la distribucion que buscamos. Porejemplo http://www.linuxiso.org.

4.6. ¿Que distribuciones existen?

Para finalizar el capıtulo presentaremos un breve listado, solo a modo deejemplo, de algunas de las distribuciones GNU/Linux existentes:

Page 87: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.6 ¿Que distribuciones existen? 87

Nombre: Debian GNU/LinuxCreadores Inicio Paıs de origen Paquetes

Ian Murdock 1993 USA DEB

Sitio oficial: http://www.debian.org

Comentarios:Debian es una organizacion sin fines de lucro y esta soporta-da por programadores y voluntarios distribuidos en todo elmundo.

Nombre: FedoraCreadores Inicio Paıs de origen Paquetes

Bob Young y MarcEwing

Septiembrede 2003

USA RPM

Sitio oficial: http://fedora.redhat.com/

Comentarios:A partir de 2003 la empresa RedHat deja de brindar gratui-tamente la distribucion RedHat (ahora la vende) y crea elproyecto Fedora como una distribucion open source abiertaa la comunidad.

Nombre: MandrivaCreadores Inicio Paıs de origen Paquetes

Mandrake yConectiva

Abril de2005

Francia RPM

Sitio oficial: http://www.mandriva.com

Comentarios:Facil instalacion. Deteccion automatica de perifericos. Enabril de 2005 Mandrake adquiere conectiva y cambia de nom-bre a Mandriva.

Page 88: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

88 Distribuciones GNU/LINUX

Nombre: UbuntuCreadores Inicio Paıs de origen Paquetes

Canonical Ltd. Septiembrede 2004

Isla de Man. DEB

Sitio oficial: http://www.ubuntulinux.org

Comentarios:Ubuntu es un emprendimiento de la empresa Canonical, ba-sada en Debian.

Nombre: SlackwareCreadores Inicio Paıs de origen Paquetes

Patrick Volkerding 1993 USA TGZ

Sitio oficial: http://www.slackware.org

Comentarios:Una de las mas antiguas. Rudimentaria en su majeo de pa-quetes, pero evitando al mismo tiempo las complejidades deun sistema moderno.

Nombre: GentooCreadores Inicio Paıs de origen Paquetes

Daniel Robbins 2002 USA SRC(Portage)

Sitio oficial: http://www.gentoo.org

Comentarios:Gentoo Linux tiene un sistema avanzado de administracionde paquetes llamado Portage. Las aplicaciones se compilanoptimizadas para el sistema.

Page 89: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.6 ¿Que distribuciones existen? 89

Nombre: SuSeCreadores Inicio Paıs de origen Paquetes

1998 Alemania RPM

Sitio oficial: http://www.suse.com

Comentarios:Ha sido muy criticada por poseer programas de instalacion yaplicaciones propietarias. Existen versiones como OpenSuSeque se obtienen gratuitamente.

Nombre: RedHatCreadores Inicio Paıs de origen Paquetes

Bob Young y MarcEwing

1994 USA RPM

Sitio oficial: http://www.redhat.com

Comentarios:Es de las mas conocidas. A partir de 2003 la empresa RedHatdeja de brindar gratuitamente la distribucion RedHat (ahorala vende) y crea el proyecto Fedora como rama de desarrolloopen source abierta a la comunidad.

Nombre: MandrakeCreadores Inicio Paıs de origen Paquetes

Gael Duval, otros 1998 Francia RPM

Sitio oficial: http://www.mandrakesoft.com

Comentarios:Facil instalacion. Deteccion automatica de perifericos. Enabril de 2005 adquiere conectiva y cambia de nombre aMandriva.

Page 90: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

90 Distribuciones GNU/LINUX

Nombre: ConectivaCreadores Inicio Paıs de origen Paquetes

1995 Brasil RPM

Sitio oficial: http://www.conectiva.com.br

Comentarios:Adquirida por Mandrake.

Nombre: KnoppixSitio oficial: http://www.knopper.net

Comentarios:Arranca completamente desde el CD sin instalacion en eldisco duro. Se trata de una distribucion de origen alemanbasada en Debian.

Nombre: TurboLinuxSitio oficial: http://www.turbolinux.co.jp/

Comentarios:Distribucion Japonesa orientada a servidores.

Nombre: RedFlagSitio oficial: http://www.redflag-linux.com/

Comentarios:Distribucion China.

Page 91: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.7 Lınea de tiempo de distribuciones 91

Nombre: LinExSitio oficial: http://www.linex.org/

Comentarios:Distribucion espanola basada en Debian. Instalacion sencilla.Creada para su aplicacion en escuelas de la Junta de Extre-madura, Espana.

Nombre: Ututo (Ututo-e)Sitio oficial: http://www.ututo.org/

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

Nombre: MorphixSitio oficial: http://morphix.sourceforge.net/

Comentarios:Arranca completamente desde el CD. Basada en Debian yKnoppix, pero con diferentes modulos a eleccion lo que per-mite facilmente crear Live CDs personalizadas.

Esta informacion fue obtenida de los sitios oficiales de cada distribuciony de: http://www.distrowatch.com. Estos datos pueden estar desactua-lizados y se brindan solo para uso comparativo. Es inmensa la cantidadde distribuciones que existen actualmente. Las distribuciones mencionadasaquı se han presentado por su relevancia, otras por su valor historico y al-gunas solamente como ejemplo.

No se utilizo ningun orden en particular para listar las distribuciones.

Page 92: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

92 Distribuciones GNU/LINUX

4.7. Lınea de tiempo de distribuciones

4.8. Autores del capıtulo

Copyright c© 2001-2008 Diego J. Brengi.Se otorga permiso para copiar, distribuir y/o modificar este capıtulo bajo

los terminos de la Licencia de Documentacion Libre de GNU, Version 1.2 ocualquier otra version posterior publicada por la Free Software Foundation;sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cu-bierta Trasera. Una copia de la licencia esta incluida en la seccion tituladaGNU Free Documentation License.

Los derechos de copyright sobre las figuras y logos pertenecen a susautores.

Page 93: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

4.8 Autores del capıtulo 93

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

Page 94: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

94 Distribuciones GNU/LINUX

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

Page 95: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 5

Categorıas de software librey no libre

He aquı un glosario de varias de las ca-tegorıas de software que se mencionan frecuentemente en discusiones sobresoftware libre. Se explica que categorıas se traslapan y cuales son parte deotras categorıas.

5.1. Software libre

El software libre es software con autorizacion para que cualquiera puedausarlo, copiarlo y distribuirlo, ya sea con o sin modificaciones, gratuitamenteo mediante una retribucion. En particular, esto significa que el codigo fuentedebe estar disponible. ((Si no es fuente, no es software)). Esta es una definicionsimplificada; ver tambien la definicion completa 1.

Si un programa es libre, puede ser potencialmente incluido en un sistemaoperativo libre tal como GNU o los sistemas GNU/Linux libres.

Hay muchas maneras diferentes de hacer libre un programa: numerosascuestiones a decidir que en muchos casos son matices, y que pueden resolversede varias formas sin que por ello el programa deje de ser libre. Algunas delas posibles variaciones son descritas abajo. Para obtener informacion sobre

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

Page 96: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

96 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 gratui-dad. Sin embargo, las companıas de software privativo emplean en ocasionesel termino ((software libre)) para referirse al precio 3. A veces utiliza estetermino al hablar de la copia binaria que se puede adquirir sin cargo; yotras veces se usan para calificar la copia incluida en un ordenador recienadquirido. Esto no tiene nada que ver con lo que queremos dar a entenderpor software libre en el proyecto GNU.

Debido a esta potencial confusion, cuando una companıa de softwaredice que su producto es software libre, es conveniente verificar siempre losterminos de esa distribucion concreta para ver si los usuarios tienen todas laslibertades que implica el software libre. Algunas veces es verdadero softwarelibre; y otra veces no lo es.

Muchos idiomas tienen dos palabras diferentes para ((free)) como libertady ((free)) como precio cero. Por ejemplo, el frances dispone de los terminos((libre)) y ((gratuit)) [en espanol sucede exactamente lo mismo con los terminos

2http://www.gnu.org/licenses/license-list.es.html3Nota del traductor: En ingles ((software libre)), se escribe ((free software)), el termino

((free)) puede significar ((gratis)) o ((libre))

Figura 5.1: Diagrama disenado por Chao-Kuei para explicar las diferentescategorıas de software.Este diagrama ha sido disenado por Chao-Kuei para explicar las diferentes categorıas de

software. Esta disponible como un archivo XFig, como una imagen JPEG y como una ima-

gen PNG amplificada 1.5 veces; con los terminos de la GPL de GNU version 2 o posterior,

de la FDL de GNU version 1.2 o posterior o de la Creative Commons Reconocimiento–

Compartir bajo la misma licencia 2.0 o posterior.

Page 97: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

5.2 Software de codigo abierto (Open source) 97

((libre)) y ((gratuito))]. Esto no ocurre en ingles, en ingles existe la palabra((gratis)), que se refiere sin ambiguedad al precio, pero no dispone de unadjetivo comun que se refiera sin ambiguedad a la libertad. Por lo tanto, siusted habla otro idioma que no sea el ingles, le sugerimos que traduzca eltermino ((free)) de ((free software)) a su idioma para hacerlo mas claro. Veanuestra lista de traducciones de la expresion ((free software)) a otros idiomas4.

El software libre es con frecuencia mas fiable que el software no libre.

5.2. Software de codigo abierto (Open source)

Mucha gente utiliza la expresion software de ((codigo abierto)) para re-ferirse, mas o menos, a la misma categorıa a la que pertenece el softwarelibre. Sin embargo, no son exactamente el mismo tipo de software: ellosaceptan 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 elsoftware libre es de codigo abierto, y casi todo el software de codigo abiertoes libre.

Nosotros preferimos la expresion ((software libre)) 5 porque se refiere alibertad, algo que la expresion ((codigo abierto)) no hace.

5.3. Software de dominio publico

El software de dominio publico es software que no esta protegido porderechos de autor. Es un caso especial de software libre no protegido concopyleft, lo que significa que algunas copias o versiones modificadas puedenno ser completamente libres.

En algunos casos, un programa ejecutable puede ser de dominio publicosin que su codigo fuente este disponible. Este software no es software libre,porque para que lo sea es preciso que el codigo fuente sea accesible. Porsu parte, la mayorıa del software libre no es software de dominio publico;esta protegido por derechos de autor, y los poseedores de estos han dadopermiso legal para que cualquiera lo emplee libremente usando una licenciade software libre.

Algunas veces se utiliza el termino ((dominio publico)) de una maneraimprecisa queriendo decir ((libre)) o ((disponible gratuitamente)). Sin embargo,((dominio publico)) es un termino legal y significa de manera precisa ((sinderechos de autor)). Para ser lo mas claro posible, recomendamos el uso de((dominio publico)) para expresar solamente este significado, y el uso de lasotras expresiones para transmitir el suyo correspondiente.

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

Page 98: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

98 Categorıas de software libre y no libre

Bajo la convencion de Berna, que ha sido firmada por la mayorıa de lospaıses, a cualquier escrito nuevo se le aplica automaticamente derechos deautor. Esto incluye a los programas. Por lo tanto, si quiere que un programaque usted haya escrito sea de dominio publico, debe cumplir ciertos proce-dimientos legales para evitar que, de manera automatica, le sean anadidoslos derechos de autor.

5.4. Software protegido con copyleft

El software protegido con copyleft es software libre cuyos terminos dedistribucion aseguran que todas las copias de todas las versiones son softwa-re libre. Esto significa, por ejemplo, que las licencias copyleft no permiten aterceros agregar ningun requisito adicional (a excepcion de un conjunto li-mitado de requisitos para aumentar su proteccion) y exige que que el codigofuente sea publico. Algunas licencias copyleft, como la tercera version de laGPL, impiden otras formas de convertir en privativo el software.

En el Proyecto GNU, protegemos mediante copyleft casi todo el softwareque escribimos, porque nuestro objetivo es dar a cada usuario las libertadesque el termino ((software libre)) implica. Vea Protegido con copyleft 6 parauna mas amplia explicacion de como funciona el copyleft y por que lo usamos.

El copyleft es un concepto general; para proteger realmente un progra-ma con copyleft, usted necesita usar un conjunto especıfico de terminos dedistribucion.

Hay muchas maneras posibles de escribir terminos de distribucion copy-left, por lo que en principio pueden existir muchas licencias de software librecopyleft. Sin embargo, en la practica casi todo el software copyleft usa laLicencia Publica General de GNU 7. Generalmente, dos licencias copyleftdiferentes son ((incompatibles)), lo que significa que es ilegal combinar codi-go que este protegido por dichas licencias; por lo tanto, serıa bueno para lacomunidad que todos utilizasen una unica licencia copyleft.

5.5. Software libre no protegido con copyleft

El software libre no protegido con copyleft, incluye la autorizacion delautor para redistribuir y modificar el software, ası como el permiso paraanadirle restricciones adicionales.

El que un programa sea libre pero no este protegido con copyleft, implicaque algunas copias o versiones modificadas del mismo pueden no ser com-pletamente libres. Una companıa de software podrıa compilar el programa,con o sin modificaciones, y distribuir el archivo ejecutable como un productode software privativo.

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

Page 99: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

5.6 Software cubierto por la GPL 99

El Sistema X Window 8 es un ejemplo de esto. El Consorcio X libera X11con terminos de distribucion que lo hacen software libre no protegido concopyleft. Si usted lo desea, puede obtener una copia que tenga esos terminosde distribucion y que sea libre. Sin embargo, tambien hay versiones no libres,y existen estaciones de trabajo populares y tarjetas graficas para PC en lascuales solo funcionan versiones no libres. Si usted esta usando este hardware,para usted X11 no es software libre. Incluso los propios desarrolladores deX11 hicieron a X11 software no libre durante cierto tiempo 9.

5.6. Software cubierto por la GPL

La GPL (General Public License/Licencia Publica General 10) de GNU esun conjunto especıfico de terminos de distribucion empleados para protegerun programa con copyleft. El Proyecto GNU utiliza esta licencia para ladistribucion de la mayorıa del software de GNU.

5.7. El sistema GNU

El sistema GNU es el sistema operativo similar a Unix, constituido ensu totalidad por software libre, que hemos desarrollado en el Proyecto GNUdesde 1984.

Un sistema operativo similar a Unix esta constituido por muchos pro-gramas. El sistema GNU incluye todo el software GNU, ademas de muchosotros paquetes, como el sistema X Window y TEX, los cuales no son softwarede GNU.

La primera version de prueba del sistema GNU completo estaba disponi-ble en 1996. Este incluıa el Hurd de GNU, nuestro nucleo, desarrollado des-de 1990. En 2001 el sistema GNU (incluyendo el Hurd de GNU) comenzo afuncionar con bastante fiabilidad, pero el Hurd todavıa carecıa de algunascaracterısticas importantes, por lo que no se usa ampliamente. Entretanto, elsistema GNU/Linux, un derivado del sistema GNU que utiliza Linux comonucleo en vez del Hurd de GNU, tuvo un gran exito desde los anos 1990.

Ya que el proposito de GNU es ser un sistema libre, cada una de las piezasque lo componen deben ser software libre. Sin embargo, no todas tienen porque estar protegidas por copyleft; legalmente se puede incluir cualquier tipode software libre si este ayuda a alcanzar los objetivos tecnicos propuestos.Y no es necesario que cada componente sea software GNU individualmente.El sistema GNU puede incluir, e incluye, software libre no protegido porcopyleft, como es el caso del Sistema X Window, que fue desarrollado enotros proyectos.

8http://www.x.org/9http://www.gnu.org/philosophy/x.es.html

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

Page 100: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

100 Categorıas de software libre y no libre

5.8. Programas GNU

La expresion ((programas GNU)) es equivalente a software de GNU. Unprograma Y es un programa GNU si es software de GNU (software delProyecto 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 ProyectoGNU. A un programa que sea software de GNU, tambien lo denominamosprograma GNU o paquete GNU. El archivo README o el manual del pa-quete GNU deberıan indicar que lo es; ademas, el Directorio de SoftwareLibre identifica todos los paquetes GNU.

La mayorıa del software de GNU esta protegido por copyleft, pero notodo; sin embargo, todo el software GNU debe ser software libre.

Parte del software GNU lo escribe personal 11 de la Fundacion para elSoftware Libre, pero la mayorıa del software lo aportan voluntarios. Del sof-tware aportado por voluntarios, a veces el titular de los derechos de autor esla Fundacion para el Software Libre y en otras son los propios colaboradoresque lo escribieron.

5.10. Software no libre

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

5.11. Software semilibre

El software semilibre es software que no es libre, pero incluye autoriza-cion para que los particulares lo usen, lo copien, lo distribuyan y lo modi-fiquen (incluyendo la distribucion de versiones modificadas) sin propositoslucrativos. PGP es un ejemplo de un programa semilibre.

El software semilibre es mucho mejor eticamente que el software priva-tivo, pero sigue planteando problemas que no nos permiten utilizarlo en unsistema operativo libre.

Las restricciones del copyleft estan disenadas para proteger las libertadesesenciales de todos los usuarios. Para nosotros, la unica restriccion substan-tiva justificada en el uso de un programa es la que previene la adicion derestricciones por parte de otras personas. Los programas semilibres tienenrestricciones adicionales motivadas por fines puramente egoıstas.

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

Page 101: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

5.12 Software privativo 101

Es imposible incluir software semilibre en un sistema operativo libre.Esto obedece a que los terminos de distribucion para el sistema operativolibre como un todo son la conjuncion de los terminos de distribucion detodos los programas que lo componen. Agregando un programa semilibre alsistema hara al sistema como un todo solo semilibre. Existen dos razonespor las que no queremos que esto suceda:

1) Creemos que el software libre deberıa ser para todos, incluyendo em-presas, no solamente para escuelas o para actividades de ocio particu-lar. 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 distribucion comercial de sistemas operativos libres, incluyendo sis-temas GNU/Linux, 12 es muy importante, y los usuarios aprecian elpoder disponer de distribuciones comerciales en CD-ROM. Incluir unprograma semilibre en un sistema operativo impedirıa su distribucioncomercial en CD-ROM.

En sı misma, la Fundacion para el Software Libre no es una entidadcomercial, y por lo tanto podrıa utilizar ((internamente)) un programa se-milibre de forma legal. Pero no lo hace, porque repercutirıa negativamenteen nuestros esfuerzos para obtener programas que pudieramos incluir en elsistema GNU.

Mientras exista una tarea que necesite hacerse con software y no dispongade un programa que la realice, el sistema GNU tendra una carencia. Debemosdecir a los voluntarios:((Aun no tenemos un programa para hacer este trabajo en el Proyecto GNU,por lo que esperamos que ustedes lo escriban)).Si usaramos un programa semilibre para hacer esa tarea desacreditarıamoslo que nosotros mismos decimos; y se perderıa el ımpetu (el nuestro y elde quienes pudieran compartir nuestros puntos de vista) para escribir unaalternativa libre. Por lo tanto, no lo hacemos.

5.12. Software privativo

El software privativo es software que no es libre ni semilibre. Su uso,redistribucion o modificacion estan prohibidos, requieren que solicite unaautorizacion, o esta tan restringido que de hecho no puede hacerlo libremen-te.

La Fundacion para el Software Libre sigue la norma de que unicamentepodemos instalar un programa privativo en nuestros ordenadores, cuando lohacemos temporalmente y con el proposito de escribir una alternativa libre

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

Page 102: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

102 Categorıas de software libre y no libre

a ese mismo programa. Aparte de este caso concreto, creemos que no hayexcusa posible para instalar un programa privativo.

Por ejemplo, creımos que la instalacion de Unix en nuestros ordenadoresen los anos 1980 estaba justificada, porque lo estabamos usando para escribiruna alternativa libre al propio Unix. Actualmente, considerando que existensistemas operativos libres disponibles, esta excusa ya no es valida; hemoseliminado todos los sistemas operativos no libres; y en cualquier ordenadornuevo instalamos un sistema operativo completamente libre.

Nosotros no insistimos en que los usuarios o colaboradores de GNU siganesta norma. Esta norma la creamos para nosotros mismos. Pero esperamosque tambien ellos decidan seguirla.

5.13. Freeware

El termino ((freeware)) no tiene una definicion clara aceptada, pero esusado comunmente para referirse a paquetes que se pueden distribuir perono modificar (y cuyo codigo fuente no esta disponible). Estos paquetes noson software libre. Por lo tanto, por favor, no use el termino ((freeware)) parareferirse al software libre.

5.14. Shareware

El Shareware es software del que se permite redistribuir copias, pero quepor cada copia utilizada, el usuario debe pagar un cargo por licencia.

El shareware no es software libre, ni siquiera semilibre. Esto es ası pordos razones:

1) Para la mayorıa del shareware, el codigo fuente no esta disponible; porlo tanto, usted no puede modificar el programa de ninguna manera.

2) No se puede hacer una copia de shareware e instalarla sin pagar uncargo por licencia, incluso en el caso de individuos que lo utilicen paraactividades sin animo de lucro (en la practica, los usuarios ignoran confrecuencia los terminos de distribucion y lo hacen de todas formas, peroestos terminos no lo permiten).

5.15. Software privado

El software privado, o a medida, es software desarrollado para un usuario(generalmente una organizacion o una companıa). Este usuario lo tiene ensu poder y lo utiliza, y no lo libera al publico ni como codigo fuente ni comobinario.

Un programa privado es software libre en un sentido trivial si su unicousuario tiene plenos derechos sobre el. Sin embargo, al considerar la cuestion

Page 103: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

5.16 Software comercial 103

con mas profundidad, el preguntarse si tal programa es o no libre pierde susentido.

En general no creemos que desarrollar un programa y no liberarlo seaun error. Hay ocasiones en las que un programa es tan util que acapararlopara sı constituye un perjuicio para la humanidad. Sin embargo, la mayorıade los programas no son tan maravillosos, y no liberarlos no resulta parti-cularmente danino. Por lo tanto, no hay ningun conflicto entre el desarrollode software privado o a medida y los principios del movimiento de softwarelibre.

Casi toda la contratacion de programadores tiene por objeto el desarrollode software a medida; por lo tanto, la mayorıa de los trabajos de programa-cion son, o podrıan ser, hechos de un modo compatible con el movimientode software libre.

5.16. Software comercial

El software comercial es aquel desarrollado por un negocio que pretendeobtener dinero de su utilizacion. ¡((Comercial)) y ((privativo)) no son lo mis-mo! La mayorıa del software comercial es privativo, pero hay software librecomercial, y hay software no libre no comercial.

Por ejemplo, Ada de GNU siempre se distribuye bajo los terminos de laGPL de GNU, y cada una de sus copias es software libre; sin embargo, susdesarrolladores hacen contratos de mantenimiento. En ocasiones los clientesinteresados comentan a los vendedores: ((Nos sentirıamos mas seguros con uncompilador comercial)). A lo que los vendedores responden: ((Ada de GNUes un compilador comercial; con la particularidad de que ademas es softwarelibre)).

Para el Proyecto GNU, el enfasis se hace a otro nivel: lo importante esque Ada de GNU es software libre; el que sea comercial no es una cuestioncrucial. Sin embargo, el desarrollo adicional de Ada de GNU resultante delhecho de que sea comercial es, definitivamente, beneficioso.

Por favor, ayude a difundir la idea de que el software libre comercial esposible. Esto lo puede hacer esforzandose en no decir ((comercial)) cuando loque quiere decir es ((privativo)).

Otros textos para leer http://www.gnu.org/philosophy/philosophy.es.html

5.17. Autores del capıtulo

Copyright c©1996, 1997, 1998, 2001, 2006 Free Software Foun-dation, Inc.,51 Franklin St, Fifth Floor, Boston, MA 02110, USA

Page 104: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

104 Categorıas de software libre y no libre

Verbatim copying and distribution of this entire article is per-mitted in any medium, provided this notice is preserved.

Se permite la copia literal y la distribucion de la totalidad deeste artıculo por cualquier medio y en cualquier soporte, siem-pre que se conserve esta nota.

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

Page 105: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Capıtulo 6

Licencia de este libro

Este libro consiste principalmente en una recopilacion de textos ya queposee artıculos y escritos de varios autores, cada uno con diferentes condi-ciones de copia, distribucion y modificacion. Si bien todos ellos permiten lacopia del artıculo, en algunos casos por tratarse de opiniones del autor, nose permite la modificacion del texto.

Por este motivo no puede aplicarse una licencia a todo el libro en suconjunto. Al final de cada capıtulo se menciona a los autores y los corres-pondientes avisos de copyright y condiciones.

Todo material propio de Diego Javier Brengi esta cubierto por la licenciaGFDL bajo los siguientes terminos:

Copyright c© 2001-2008 Diego J. Brengi.

Se otorga permiso para copiar, distribuir y/o modificar este tex-to bajo los terminos de la Licencia de Documentacion Libre deGNU, Version 1.2 o cualquier otra version posterior publicadapor la Free Software Foundation; sin Secciones Invariantes niTextos de Cubierta Delantera ni Textos de Cubierta Trasera.Una copia de la licencia esta incluida en la seccion titulada GNUFree Documentation License.

Todo el material obtenido de la Wikipedia tambien esta cubierto por laGFDL.

Page 106: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

106 Licencia de este libro

Page 107: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Apendice A

Conceptos de sistemasoperativos

A.1. ¿Que es el Sistema Operativo?

Un sistema operativo (SO) es un conjunto de programas destinados a per-mitir la comunicacion del usuario con un ordenador y gestionar sus recursosde manera eficiente. Comienza a trabajar cuando se enciende el ordenador,y gestiona la interaccion entre el hardware y el usuario final de la maquina,desde los niveles mas basicos.

Hoy en dıa un sistema operativo se puede encontrar normalmente enla mayorıa de los aparatos electronicos complejos que podamos utilizar sinnecesidad de estar conectados a un ordenador y que utilicen microprocesa-dores para funcionar, ya que gracias a estos podemos entender la maquinay que esta cumpla con sus funciones; este es el caso de: telefonos moviles,reproductores de DVD, Equipos de audio, y muchos mas.

A.2. Funciones basicas de un sistema operativo

Los sistemas operativos, motivados por su condicion de capa softwareque posibilita y simplifica el manejo de la computadora, desempenan unaserie de funciones basicas esenciales para la gestion de la maquina. Entrelas mas destacables, cada una ejercida por un componente interno (modu-lo en nucleos monolıticos o servidor en microkernels), podemos resenar lassiguientes:

Gestion de los recursos de la maquina.

Ejecucion de servicios para los programas

Ejecucion de instrucciones (comandos) de los usuarios (Shell y/o XServer).

Page 108: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

108 Conceptos de sistemas operativos

A su vez, los servicios principales ofertados por un sistema operativo,accesibles y manipulables a traves de su API 1 de programacion, son lossiguientes:

Gestion de procesos.

Gestion de memoria.

Gestion de la E/S (Entrada/Salida).

Gestion de archivos y directorios.

Comunicacion y sincronizacion entre procesos.

Seguridad y proteccion.

A.3. Caracterısticas

A.3.1. Administracion de tareas

Monotarea: Si solamente puede ejecutar un programa (aparte de los pro-cesos del propio S.O.) en un momento dado. Una vez que empieza afuncionar un programa, continuara haciendolo hasta su finalizacion ointerrupcion.

Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo.Este tipo de S.O. normalmente asigna los recursos disponibles (CPU,memoria, perifericos) de forma alternativa a los programas que lossolicitan, de manera que el usuario percibe que todos funcionan a lavez.

A.3.2. Administracion de usuarios

Monousuario: Si solo permite ejecutar los programas de un usuario almismo tiempo.

1Una API (del ingles Application Programming Interface - Interfaz de Programacionde Aplicaciones) es un conjunto de especificaciones de comunicacion entre componentessoftware. Se trata del conjunto de llamadas al sistema que ofrecen acceso a los serviciosdel sistema desde los procesos y representa un metodo para conseguir abstraccion en laprogramacion, generalmente (aunque no necesariamente) entre los niveles o capas inferioresy los superiores del software. Uno de los principales propositos de una API consiste enproporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanaso iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas dela API haciendo uso de su funcionalidad, evitandose el trabajo de programar todo desde elprincipio. Las APIs asimismo son abstractas: el software que proporciona una cierta APIgeneralmente es llamado la implementacion de esa API.

Page 109: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

A.4 Historia de los Sistemas Operativos 109

Multiusuario: Si permite que varios usuarios ejecuten simultaneamentesus programas, accediendo a la vez a los recursos del ordenador. Nor-malmente estos SO. utilizan metodos de proteccion de datos, de mane-ra 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, pe-rifericos. . . ) de mas de un ordenador al mismo tiempo .

A.4. Historia de los Sistemas Operativos

A.4.1. Anos 40

A finales de los anos 40, con la aparicion de la primera generacion decomputadoras se realizaba lo que se llama el proceso en serie. Por aquelentonces no existıan los sistemas operativos, y los programadores debıaninteractuar con el hardware del computador sin ayuda externa. Esto hacıaque el tiempo de preparacion para realizar una tarea fuera excesivo. Ademaspara poder utilizar la computadora debıa hacerse por turnos. Para ello serellenaba un formulario de reserva en el que se indicaba el tiempo que elprogramador necesitaba para realizar su trabajo.

En aquel entonces las computadoras eran maquinas muy costosas querealizaban complejos calculos matematicos lo que hacıa que estuvieran muysolicitadas y que solo pudieran utilizarse en periodos breves de tiempo.

A.4.2. Anos 50

Para facilitar la interaccion entre persona y computador, los sistemasoperativos hacen una aparicion discreta y bastante simple, con conceptostales como el monitor residente, el proceso por lotes y el almacenamientotemporal.

Monitor residente

Su funcionamiento era bastante simple, se limitaba a cargar los progra-mas a memoria, leyendolos de una cinta o de tarjetas perforadas, y ejecu-tarlos. El principal problema de estos sistemas era encontrar una forma deoptimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.

Procesamiento por lotes

Como solucion para optimizar el tiempo de montaje surgio la idea deagrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas,

Page 110: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

110 Conceptos de sistemas operativos

de forma que se ejecutaran uno a continuacion de otro sin perder apenastiempo en la transicion.

Para realizar esto se utilizo una tecnica de on-lining. La idea era dedicarun ordenador periferico, de menor coste y potencia, a convertir las tarje-tas o la cinta perforada en informacion sobre cinta magnetica, y la salidade la cinta magnetica en salida sobre impresora o cinta perforada. Una vezque se procesaban varios trabajos a cinta, esta se desmontaba del ordena-dor periferico, y se llevaba a mano para su procesamiento por el ordenadorprincipal. Cuando el ordenador principal llenaba una cinta de salida, esta sellevaba al ordenador periferico para su paso a impresora o cinta perforada.

Almacenamiento temporal

Su objetivo era disminuir el tiempo de carga de los programas, simul-taneando la carga del programa o la salida de datos con la ejecucion de lasiguiente tarea. Para ello se utilizaban dos tecnicas, 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 aviacionnorteamericana para el IBM 704.

FORTRAN Monitor system: Desarrollado por la aviacion norteameri-cana para el IBM 709.

SAGE: (Semi-Automatic Ground Environment) Primer sistema de controlen tiempo real, desarrollado para IBM AN/FSQ7.

SOS: Desarrollado por el IBM SHARE Users Group para el IBM 709.

A.4.3. Anos 60

En esta decada se produjeron cambios notorios en varios campos de lainformatica, la mayorıa orientados a seguir incrementando el potencial delos computadores. Para ello se utilizaban tecnicas de lo mas diversas:

Multiprogramacion

En un sistema multiprogramado la memoria principal alberga a mas deun programa de usuario. La CPU ejecuta instrucciones de un programa,cuando el que se encuentra en ejecucion realiza una operacion de Entrada /Salida (E/S); en lugar de esperar a que termine la operacion de E/S, se pasaa ejecutar otro programa. Si este realiza, a su vez, otra operacion de E/S, se

Page 111: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

A.4 Historia de los Sistemas Operativos 111

mandan las ordenes oportunas al controlador, y pasa a ejecutarse otro. Deesta forma es posible, teniendo almacenado un conjunto adecuado de tareasen cada momento, utilizar de manera optima los recursos disponibles.

Tiempo real

Estos sistemas se usan en entornos donde se deben aceptar y procesar entiempos muy breves un gran numero de sucesos, en su mayorıa externos alordenador. Si el sistema no respeta las restricciones de tiempo en las que lasoperaciones deben entregar su resultado se dice que ha fallado. El tiempo derespuesta a su vez debe servir para resolver el problema o hecho planteado.El procesamiento de archivos se hace de una forma continua, pues se procesael archivo antes de que entre el siguiente, sus primeros usos fueron y siguensiendo en telecomunicaciones.

Tiempo compartido

En este punto tenemos un sistema que hace buen uso de la electroni-ca disponible, pero adolece de falta de interactividad; para conseguirla debeconvertirse en un sistema multiusuario, en el cual existen varios usuarios conun Terminal en lınea, conocida como ”Terminal Boba”, utilizando el modode operacion de tiempo compartido. En estos sistemas los programas de losdistintos usuarios residen en memoria. Al realizar una operacion de E/S losprogramas ceden la CPU a otro programa, al igual que en la multiprogra-macion. Pero, a diferencia de esta, cuando un programa lleva cierto tiempoejecutandose el sistema operativo lo detiene para que se ejecute otra apli-cacion. Con esto se consigue repartir la CPU por igual entre los programasde los distintos usuarios y los procesos del SO. De este modo los progra-mas de los usuarios no se sienten demasiado ralentizados por el hecho deque los recursos sean compartidos y aparentemente se ejecutan de maneraconcurrente.

Multiprocesador

Permite trabajar con maquinas que poseen mas de un procesador. Enun multiprocesador los procesadores comparten memoria y reloj.

Sistemas operativos desarrollados

Ademas del Atlas Supervisor y el OS/360, utilizados en maquinas con-cretas, lo mas destacable de la decada es el nacimiento de Unix, que hoy endıa es una de las plataformas mas extendidas en el mundo de la informatica.

Page 112: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

112 Conceptos de sistemas operativos

A.4.4. Anos 70

Debido al avance de la electronica, pudieron empezar a crearse circuitoscon miles de transistores en un centımetro cuadrado de silicio, lo que llevarıa,pocos anos despues, a producirse los primeros sistemas integrados.

Esta decada se podrıa definir como la de los sistemas de proposito generaly en ella se desarrollan tecnologıas que se siguen utilizando en la actuali-dad. Es en los 70 cuando se produce el boom de los mini ordenadores y lainformatica se acerca al nivel de usuario.

En lo relativo a lenguajes de programacion, es de senalar la aparicionde Pascal y C, el ultimo de los cuales serıa reutilizado para reescribir porcompleto el codigo del sistema operativo Unix, convirtiendolo en el primeroimplementado en un lenguaje de alto nivel. En el campo de la programacionlogica se dio a luz la primera implementacion de Prolog, y en la revolucio-naria orientacion a objetos, Smalltalk.

Inconvenientes de los sistemas existentes

Se trataba de sistemas grandes y costosos, pues antes no se habıa cons-truido nada similar y muchos de los proyectos desarrollados terminaron concostes muy por encima del presupuesto. Ademas, aunque formaban una ca-pa entre el hardware y el usuario, este debıa conocer un complejo lenguajede control para realizar sus trabajos. Otro de los inconvenientes es el granconsumo de recursos que ocasionaban, debido a los grandes espacios de me-moria principal y secundaria ocupados, ası como el tiempo de procesadorconsumido. Es por esto que se intento hacer hincapie en mejorar las tecnicasya existentes de multiprogramacion y tiempo compartido.

Caracterısticas de los nuevos sistemas

Para solventar los problemas antes comentados, se realizo un costosısimotrabajo para interponer una amplia capa de software entre el usuario y lamaquina, de forma que el primero no tuviese que conocer ningun detalle dela circuiterıa.

Sistemas operativos desarrollados

MULTICS (Multiplexed Information and Computing Service):Originalmente era un proyecto cooperativo liderado por Fernando Corbato delMIT, con General Electric y los laboratorios Bell, que comenzo en los 60,pero los laboratorios Bell abandonaron en 1969 para comenzar a crear elsistema UNIX. Se desarrollo inicialmente para el mainframe GE-645, un sis-tema de 36 bits; despues fue soportado por la serie de maquinas Honeywell6180.

Page 113: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

A.5 Autores del capıtulo 113

Fue uno de los primeros sistemas operativos de tiempo compartido, queimplemento un solo nivel de almacenamiento para el acceso a los datos, de-sechando la clara distincion entre los ficheros y los procesos en memoria,yuno de los primeros sistemas multiprocesador.

MVS (Multiple Virtual Storage):Fue el sistema operativo mas usado en los modelos de mainframes -ordenadoresgrandes, potentes y caros usados principalmente por grandes companıas parael procesamiento de grandes cantidades de datos- System/370 y System/390de IBM, desarrollado tambien por IBM y lanzado al mercado por primeravez en 1974.

Como caracterısticas destacables, permitıa la ejecucion de multiples ta-reas, ademas de que introdujo el concepto de memoria virtual y finalmenteanadio la capacidad de que cada programa tuviera su propio espacio de di-reccionamiento de memoria, de ahı su nombre.

CP/M (Control Program/Monitor):Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intely el Zilog Z80, salio al mercado en 1976, distribuyendose en disquetes deocho pulgadas. Fue el SO mas usado en las computadoras personales deesta decada. Su exito se debio a que era portable, permitiendo que diferen-tes programas interactuasen con el hardware de una manera estandariza-da.

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

Seleccion de artıculos y edicion realizada por Ruben Alejandro Casas.

Page 114: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

114 Conceptos de sistemas operativos

Page 115: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Apendice B

Licencia Publica GNU

Esta es la conocida GNU Public License (GPL), version 2 (de junio de1.991), que cubre la mayor parte del software de la Free Software Foundation,y muchos mas programas.

Los autores de esta traduccion son:

Jesus Gonzalez Barahona

Pedro de las Heras Quiros

B.1. Traduccion al castellano

Esta es una traduccion no oficial al espanol de la GNU General PublicLicense. No ha sido publicada por la Free Software Foundation, y no esta-blece legalmente las condiciones de distribucion para el software que usa laGNU GPL. Estas condiciones se establecen solamente por el texto original,en ingles, de la GNU GPL. Sin embargo, esperamos que esta traduccionayude a los hispanohablantes a entender mejor la GNU GPL.

This is an unofficial translation of the GNU General Public License intoSpanish. It was not published by the Free Software Foundation, and doesnot legally state the distribution terms for software that uses the GNU GPL–only the original English text of the GNU GPL does that. However, wehope that this translation will help Spanish speakers understand the GNUGPL better.

Copyright c©1989, 1991 Free Software Foundation, Inc. http://fsf.org/675 Mass Ave, Cambridge, MA 02139, EEUU

Se permite la copia y distribucion de copias literales de este documento,pero no se permite su modificacion.

Page 116: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

116 Licencia Publica GNU

B.2. Preambulo

Las licencias que cubren la mayor parte del software estan disenadas pa-ra quitarle a usted la libertad de compartirlo y modificarlo. Por el contrario,la Licencia Publica General de GNU pretende garantizarle la libertad decompartir y modificar software libre, para asegurar que el software es librepara todos sus usuarios. Esta Licencia Publica General se aplica a la mayorparte del software del la Free Software Foundation y a cualquier otro pro-grama si sus autores se comprometen a utilizarla. Existe otro software de laFree Software Foundation que esta cubierto por la Licencia Publica Generalde GNU para Bibliotecas. Si quiere, tambien puede aplicarla a sus propiosprogramas. Cuando hablamos de software libre, estamos refiriendonos alibertad, no a precio. Nuestras Licencias Publicas Generales estan disenadaspara asegurarnos de que tenga la libertad de distribuir copias de softwarelibre (y cobrar por ese servicio si quiere), de que reciba el codigo fuente oque pueda conseguirlo si lo quiere, de que pueda modificar el software o usarfragmentos de el en nuevos programas libres, y de que sepa que puede hacertodas estas cosas.

Para proteger sus derechos necesitamos algunas restricciones que prohi-ban a cualquiera negarle a usted estos derechos o pedirle que renuncie aellos. Estas restricciones se traducen en ciertas obligaciones que le afectansi distribuye copias del software, o si lo modifica.

Por ejemplo, si distribuye copias de uno de estos programas, sea gra-tuitamente, o a cambio de una contraprestacion, debe dar a los receptorestodos los derechos que tiene. Debe asegurarse de que ellos tambien reciben,o pueden conseguir, el codigo fuente. Y debe mostrarles estas condiciones deforma que conozcan sus derechos.

Protegemos sus derechos con la combinacion de dos medidas:

1) Ponemos el software bajo copyright

2) Le ofrecemos esta licencia, que le da permiso legal para copiar, distri-buir y/o modificar el software.

Tambien, para la proteccion de cada autor y la nuestra propia, queremosasegurarnos de que todo el mundo comprende que no se proporciona ningunagarantıa para este software libre. Si el software se modifica por cualquieray este a su vez lo distribuye, queremos que sus receptores sepan que lo quetienen no es el original, de forma que cualquier problema introducido porotros no afecte a la reputacion de los autores originales.

Por ultimo, cualquier programa libre esta constantemente amenazadopor patentes sobre el software. Queremos evitar el peligro de que los redis-tribuidores de un programa libre obtengan patentes por su cuenta, convir-tiendo de facto el programa en propietario. Para evitar esto, hemos dejadoclaro que cualquier patente debe ser pedida para el uso libre de cualquiera,o no ser pedida.

Page 117: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

B.3 Terminos y condiciones para la copia, distribucion ymodificacion 117

Los terminos exactos y las condiciones para la copia, distribucion y mo-dificacion se exponen a continuacion.

B.3. Terminos y condiciones para la copia, distri-bucion y modificacion

1) Esta Licencia se aplica a cualquier programa u otro tipo de trabajoque contenga una nota colocada por el tenedor del copyright diciendoque puede ser distribuido bajo los terminos de esta Licencia PublicaGeneral. En adelante, ((Programa)) se referira a cualquier programa otrabajo que cumpla esa condicion y ((trabajo basado en el Programa))se referira bien al Programa o a cualquier trabajo derivado de el segunla ley de copyright. Esto es, un trabajo que contenga el programa o unaprocion de el, bien en forma literal o con modificaciones y/o traducidoen otro lenguaje. Por lo tanto, la traduccion esta incluida sin limita-ciones en el termino ((modificacion)). Cada concesionario (licenciatario)sera denominado ((usted)).

Cualquier otra actividad que no sea la copia, distribucion o modifica-cion no esta cubierta por esta Licencia, esta fuera de su ambito. Elacto de ejecutar el Programa no esta restringido, y los resultados delPrograma estan cubiertos unicamente si sus contenidos constituyen untrabajo basado en el Programa, independientemente de haberlo pro-ducido mediante la ejecucion del programa. El que esto se cumpla,depende de lo que haga el programa.

2) Usted puede copiar y distribuir copias literales del codigo fuente delPrograma, segun lo has recibido, en cualquier medio, supuesto que deforma adecuada y bien visible publique en cada copia un anuncio decopyright adecuado y un repudio de garantıa, mantenga intactos todoslos 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 estaLicencia junto con el Programa. Puede cobrar un precio por el actofısico de transferir una copia, y puede, segun su libre albedrıo, ofrecergarantıa a cambio de unos honorarios.

3) Puede modificar su copia o copias del Programa o de cualquier por-cion de el, formando de esta manera un trabajo basado en el Progra-ma, y copiar y distribuir esa modificacion o trabajo bajo los terminosdel apartado 1, antedicho, supuesto que ademas cumpla las siguientescondiciones:

a) Debe hacer que los ficheros modificados lleven anuncios promi-nentes indicando que los ha cambiado y la fecha de cualquiercambio.

Page 118: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

118 Licencia Publica GNU

b) Debe hacer que cualquier trabajo que distribuya o publique yque en todo o en parte contenga o sea derivado del Programa ode cualquier parte de el sea licenciada como un todo, sin cargaalguna, a todas las terceras partes y bajo los terminos de estaLicencia.

c) Si el programa modificado lee normalmente ordenes interactiva-mente cuando es ejecutado, debe hacer que, cuando comience suejecucion para ese uso interactivo de la forma mas habitual, mues-tre o escriba un mensaje que incluya un anuncio de copyright y unanuncio de que no se ofrece ninguna garantıa (o por el contrarioque sı se ofrece garantıa) y que los usuarios pueden redistribuirel programa bajo estas condiciones, e indicando al usuario comover una copia de esta licencia. (Excepcion: si el propio programaes interactivo pero normalmente no muestra ese anuncio, no serequiere que su trabajo basado en el Programa muestre ningunanuncio).

Estos requisitos se aplican al trabajo modificado como un todo. Sipartes identificables de ese trabajo no son derivadas del Programa,y pueden, razonablemente, ser consideradas trabajos independientesy separados por ellos mismos, entonces esta Licencia y sus terminosno se aplican a esas partes cuando sean distribuidas como trabajosseparados. Pero cuando distribuya esas mismas secciones como partesde un todo que es un trabajo basado en el Programa, la distribuciondel todo debe ser segun los terminos de esta licencia, cuyos permisospara otros licenciatarios se extienden al todo completo, y por lo tanto atodas y cada una de sus partes, con independencia de quien la escribio.

Por lo tanto, no es la intencion de este apartado reclamar derechoso desafiar sus derechos sobre trabajos escritos totalmente por ustedmismo. El intento es ejercer el derecho a controlar la distribucion detrabajos derivados o colectivos basados en el Programa.

Ademas, el simple hecho de reunir un trabajo no basado en el Pro-grama con el Programa (o con un trabajo basado en el Programa) enun volumen de almacenamiento o en un medio de distribucion no haceque dicho trabajo entre dentro del ambito cubierto por esta Licencia.

4) Puede copiar y distribuir el Programa (o un trabajo basado en el,segun se especifica en el apartado 2, como codigo objeto o en formatoejecutable segun los terminos de los apartados 1 y 2, supuesto queademas cumpla una de las siguientes condiciones:

a) Acompanarlo con el codigo fuente completo correspondiente, enformato electronico, que debe ser distribuido segun se especifica

Page 119: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

B.3 Terminos y condiciones para la copia, distribucion ymodificacion 119

en los apartados 1 y 2 de esta Licencia en un medio habitualmenteutilizado para el intercambio de programas, o

b) Acompanarlo con una oferta por escrito, valida durante al menostres anos, de proporcionar a cualquier tercera parte una copiacompleta en formato electronico del codigo fuente correspondien-te, a un coste no mayor que el de realizar fısicamente la distribu-cion del fuente, que sera distribuido bajo las condiciones descritasen los apartados 1 y 2 anteriores, en un medio habitualmente uti-lizado para el intercambio de programas, o

c) Acompanarlo con la informacion que recibiste ofreciendo distri-buir el codigo fuente correspondiente. (Esta opcion se permitesolo para distribucion no comercial y solo si usted recibio el pro-grama como codigo objeto o en formato ejecutable con tal oferta,de acuerdo con el apartado b anterior).

5) Por codigo fuente de un trabajo se entiende la forma preferida del tra-bajo cuando se le hacen modificaciones. Para un trabajo ejecutable, seentiende por codigo fuente completo todo el codigo fuente para todoslos modulos que contiene, mas cualquier fichero asociado de definicionde interfaces, mas los guiones utilizados para controlar la compilacione instalacion del ejecutable. Como excepcion especial el codigo fuentedistribuido no necesita incluir nada que sea distribuido normalmente(bien como fuente, bien en forma binaria) con los componentes princi-pales (compilador, kernel y similares) del sistema operativo en el cualfunciona el ejecutable, a no ser que el propio componente acompaneal ejecutable. Si la distribucion del ejecutable o del codigo objeto sehace mediante la oferta acceso para copiarlo de un cierto lugar, en-tonces se considera la oferta de acceso para copiar el codigo fuentedel mismo lugar como distribucion del codigo fuente, incluso aunqueterceras partes no esten forzadas a copiar el fuente junto con el codigoobjeto. No puede copiar, modificar, sublicenciar o distribuir el Progra-ma excepto como preve expresamente esta Licencia. Cualquier intentode copiar, modificar sublicenciar o distribuir el Programa de otra for-ma es invalida, y hara que cesen automaticamente los derechos quete proporciona esta Licencia. En cualquier caso, las partes que hayanrecibido copias o derechos de usted bajo esta Licencia no cesaran ensus derechos mientras esas partes continuen cumpliendola.

6) No esta obligado a aceptar esta licencia, ya que no la ha firmado. Sinembargo, no hay hada mas que le proporcione permiso para modificaro distribuir el Programa o sus trabajos derivados. Estas acciones estanprohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modificao distribuye el Programa (o cualquier trabajo basado en el Programa),esta indicando que acepta esta Licencia para poder hacerlo, y todos sus

Page 120: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

120 Licencia Publica GNU

terminos y condiciones para copiar, distribuir o modificar el Programao trabajos basados en el.

7) Cada vez que redistribuya el Programa (o cualquier trabajo basadoen el Programa), el receptor recibe automaticamente una licencia dellicenciatario original para copiar, distribuir o modificar el Programa,de forma sujeta a estos terminos y condiciones. No puede imponeral receptor ninguna restriccion mas sobre el ejercicio de los derechosaquı garantizados. No es usted responsable de hacer cumplir esta li-cencia por terceras partes.

8) Si como consecuencia de una resolucion judicial o de una alegacion deinfraccion de patente o por cualquier otra razon (no limitada a asuntosrelacionados con patentes) se le imponen condiciones (ya sea por man-dato judicial, por acuerdo o por cualquier otra causa) que contradiganlas condiciones de esta Licencia, ello no le exime de cumplir las con-diciones de esta Licencia. Si no puede realizar distribuciones de formaque se satisfagan simultaneamente sus obligaciones bajo esta licenciay cualquier otra obligacion pertinente entonces, como consecuencia,no puede distribuir el Programa de ninguna forma. Por ejemplo, siuna patente no permite la redistribucion libre de derechos de autordel Programa por parte de todos aquellos que reciban copias directao indirectamente a traves de usted, entonces la unica forma en quepodrıa satisfacer tanto esa condicion como esta Licencia serıa evitarcompletamente la distribucion del Programa.

Si cualquier porcion de este apartado se considera invalida o imposiblede cumplir bajo cualquier circunstancia particular ha de cumplirse elresto y la seccion por entero ha de cumplirse en cualquier otra circuns-tancia. No es el proposito de este apartado inducirle a infringir ningunareivindicacion de patente ni de ningun otro derecho dec propiedad o im-pugnar la validez de ninguna de dichas reivindicaciones. Este apartadotiene el unico proposito de proteger la integridad del sistema de distri-bucion de software libre, que se realiza mediante practicas de licenciapublica. Mucha gente ha hecho contribuciones generosas a la gran va-riedad de software distribuido mediante ese sistema con la confianzade que el sistema se aplicara consistentemente. Sera el autor/donantequien decida si quiere distribuir software mediante cualquier otro sis-tema y una licencia no puede imponer esa eleccion.

Este apartado pretende dejar completamente claro lo que se cree quees una consecuencia del resto de esta Licencia.

9) Si la distribucion y/o uso de el Programa esta restringida en cier-tos paıses, bien por patentes o por interfaces bajo copyright, el tene-dor del copyright que coloca este Programa bajo esta Licencia puede

Page 121: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

B.3 Terminos y condiciones para la copia, distribucion ymodificacion 121

anadir una limitacion explıcita de distribucion geografica excluyendoesos paıses, de forma que la distribucion se permita solo en o entrelos paıses no excluidos de esta manera. En ese caso, esta Licencia in-corporara la limitacion como si estuviese escrita en el cuerpo de estaLicencia.

10) La Free Software Foundation puede publicar versiones revisadas y/onuevas de la Licencia Publica General de tiempo en tiempo. Dichasnuevas versiones seran similares en espıritu a la presente version, peropueden ser diferentes en detalles para considerar nuevos problemas osituaciones.

Cada version recibe un numero de version que la distingue de otras.Si el Programa especifica un numero de version de esta Licencia quese refiere a ella y a ((cualquier version posterior)), tienes la opcion deseguir los terminos y condiciones, bien de esa version, bien de cualquierversion posterior publicada por la Free Software Foundation. Si el Pro-grama no especifica un numero de version de esta Licencia, puedesescoger cualquier version publicada por la Free Software Foundation.

11) Si quiere incorporar partes del Programa en otros programas librescuyas condiciones de distribucion son diferentes, escribe al autor pa-ra pedirle permiso. Si el software tiene copyright de la Free SoftwareFoundation, escribe a la Free Software Foundation: algunas veces ha-cemos excepciones en estos casos. Nuestra decision estara guiada porel doble objetivo de de preservar la libertad de todos los derivadosde nuestro software libre y promover el que se comparta y reutilice elsoftware en general.

Ausencia de garantıa

12) Como el programa se licencia libre de cargas, no se ofre-ce ninguna garantıa sobre el programa, en todas la exten-sion permitida por la legislacion aplicable. Excepto cuan-do se indique de otra forma por escrito, los tenedores delcopyright y/u otras partes proporcionan el programa ((talcual)), sin garantıa de ninguna clase, bien expresa o implıci-ta, con inclusion, pero sin limitacion a las garantıas mer-cantiles implıcitas o a la conveniencia para un propositoparticular. Cualquier riesgo referente a la calidad y pres-taciones del programa es asumido por usted. Si se probaseque el Programa es defectuoso, asume el coste de cual-quier servicio, reparacion o correccion.

13) En ningun caso, salvo que lo requiera la legislacionc apli-cable o haya sido acordado por escrito, ningun tenedor

Page 122: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

122 Licencia Publica GNU

del copyright ni ninguna otra parte que modifique y/o re-distribuya el Programa segun se permite en esta Licenciasera responsable ante usted por danos, incluyendo cual-quier dano general, especial, incidental o resultante pro-ducido por el uso o la imposibilidad de uso del Programa(con inclusion, pero sin limitacion a la perdida de datoso a la generacion incorrecta de datos o a perdidas su-fridas por usted o por terceras partes o a un fallo delPrograma al funcionar en combinacion con cualquier otroprograma), incluso si dicho tenedor u otra parte ha sidoadvertido de la posibilidad de dichos danos.

fin de terminos y condiciones

B.4. Apendice: Como aplicar estos terminos a susnuevos programas

Si usted desarrolla un nuevo Programa, y quiere que sea del mayor usoposible para el publico en general, la mejor forma de conseguirlo es convir-tiendolo en software libre que cualquiera pueda redistribuir y cambiar bajoestos terminos.

Para hacerlo, anada los siguientes anuncios al programa. Lo mas seguroes anadirlos al principio de cada fichero fuente para transmitir lo mas efecti-vamente posible la ausencia de garantıa. Ademas cada fichero deberıa teneral menos la lınea de ((copyright)) y un indicador a donde puede encontrarseel anuncio completo.

((Una lınea para indicar el nombre del programa y una rapida

idea de que hace.))

Copyright c©19aa ((nombre del autor))

Este programa es software libre. Puede redistribuirlo y/o

modificarlo bajo los terminos de la Licencia Publica General

de GNU segun es publicada por la Free Software Foundation,

bien de la version 2 de dicha Licencia o bien (segun su

eleccion) de cualquier version posterior.

Este programa se distribuye con la esperanza de que sea

util, pero SIN NINGUNA GARANTIA, incluso sin la garantıa

MERCANTIL implıcita o sin garantizar la CONVENIENCIA PARA

UN PROPOSITO PARTICULAR. Vease la Licencia Publica General

de GNU para mas detalles.

Page 123: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

B.4 Apendice: Como aplicar estos terminos a sus nuevosprogramas 123

Deberıa haber recibido una copia de la Licencia Publica

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.

Anada tambien informacion sobre como contactar con usted mediantecorreo electronico y postal.

Si el programa es interactivo, haga que muestre un pequeno anunciocomo el siguiente, cuando comienza a funcionar en modo interactivo:

Gnomovision version 69, Copyright c©19aa nombre del autor

Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANTIA.

Para mas detalles escriba ((show w)).

Los comandos hipoteticos ((show w)) y ((show c)) deberıan mostrar laspartes adecuadas de la Licencia Publica General. Por supuesto, los coman-dos que use pueden llamarse de cualquier otra manera. Podrıan incluso serpulsaciones del raton o elementos de un menu (lo que sea apropiado para suprograma).

Tambien deberıas conseguir que su empleador (si trabaja como progra-mador) o tu Universidad (si es el caso) firme un ((renuncia de copyright)) parael programa, si es necesario. A continuacion se ofrece un ejemplo, altere losnombres segun sea conveniente:

Yoyodyne, Inc. mediante este documento renuncia a cualquier

interes 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 Publica General no permite que incluya sus programasen programas propietarios. Si su programa es una biblioteca de subrutinas,puede considerar mas util el permitir el enlazado de aplicaciones propietariascon la biblioteca. Si este es el caso, use la Licencia Publica General de GNUpara Bibliotecas en lugar de esta Licencia.

Page 124: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

124 Licencia Publica GNU

Page 125: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Apendice C

El termino “Open Source”

La definicion de Open Source nace con el motivo de presentar una alter-nativa al concepto de Free Software, enfocando mas en las ventajas tecnicase intentando ocultar un poco el aspecto filosofico detras del Free Software,que pueda provocar un rechazo inicial por parte de una empresa. Estos dosconceptos (Open Source y Free Software) apuntan casi a la misma categorıade software, sin embargo existe una diferencia filosofica entre ambas ramas,con opiniones encontradas y puntos de vista diferentes.

Se presenta a continuacion la traduccion de la definicion del concepto deOpen Source obtenida de http://www.opensource.org.ar. El sitio oficialdonde se encuentra la definicion es http://www.opensource.org.

C.0.1. Definicion de Open Source

Traduccion al castellano de “Open Source Definition” 1

(Version 1.9 )

Open source no solo significa acceso al codigo fuente. Las condicionesde distribucion de un programa open-source deben cumplir con el siguientecriterio:

1) Libre Redistribucion.

La licencia no debe restringir a nadie vender o entregar el softwarecomo un componente de una distribucion de software que contengaprogramas de distintas fuentes. La licencia no debe requerir royalty niningun tipo de cuota por su venta.

2) Codigo Fuente.

El programa debe incluir el codigo fuente, y se debe permitir su dis-tribucion tanto como codigo fuente como compilado. Cuando de algun

1La traduccion de “Open Source” serıa codigo fuente abierto, pero preferimos utilizarel termino en ingles, debido a su gran aceptacion.

Page 126: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

126 El termino “Open Source”

modo no se distribuya el codigo fuente junto con el producto, de-bera proveerse un medio conocido para obtener el codigo fuente sincargo, a traves de Internet.

El codigo fuente es la forma preferida en la cual un programador mo-dificara el programa. No se permite el codigo fuente deliberadamenteconfundido (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 debepermitir que estos se distribuyan bajo las mismas condiciones de lalicencia del software original.

4) Integridad del Codigo Fuente del Autor.

La licencia puede restringir la distribucion de codigo fuente modifica-do solo si se permite la distribucion de ”patch filescon el codigo fuentecon el proposito de modificar el programa en tiempo de construccion.La licencia debe permitir explıcitamente la distribucion de softwareconstruido en base a codigo fuente modificado. La licencia puede re-querir que los trabajos derivados lleven un nombre o numero de versiondistintos a los del software original.

5) No Discriminar Personas o Grupos.

La licencia no debe hacer discriminacion de personas o grupos de per-sonas.

6) No Discriminar Campos de Aplicacion.

La licencia no debe restringir el uso del programa en un campo especi-fico de aplicacion. Por ejemplo, no puede restringir su uso en negocios,o en investigacion genetica. (razones)

7) Distribucion de la Licencia.

Los derechos concedidos deben ser aplicados a todas las personas aquienes se redistribuya el programa, sin necesidad de obtener una li-cencia adicional. (razones)

8) La Licencia No Debe Ser Especıfica a un Producto.

Los derechos aplicados a un programa no deben depender de la dis-tribucion particular de software de la que forma parte. Si el programaes extraıdo de esa distribucion y usado o distribuido dentro de lascondiciones de la licencia del programa, todas las personas a las queel programa se redistribuya deben tener los mismos derechos que losconcedidos en conjuncion con la distribucion original de software. (ra-zones)

Page 127: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

127

9) La Licencia No Debe Contaminar Otro Software.

La licencia no debe imponer restricciones sobre otro software que esdistribuido junto con el. Por ejemplo, la licencia no debe insistir enque todos los demas programas distribuidos en el mismo medio debenser software open-source. (razones)

10) La licencia debe ser tecnologicamente neutral.

No debe requerirse la aceptacion y obtencion de la licencia por mediode una tecnologıa individual o tipo de interface.

Por ejemplo si se solicita la acpetacion de la licencia por medio deun clik en una pagina web, se limitarıa la posibilidad de distribuir lalicencia mediante FTP, CDROMs, etc.

Bruce Perens escribio el primer bosquejo de este documento como “TheDebian Free Software Guidelines”, y lo refino usando los comentarios de losdesarrolladores de Debian obtenidos en una conferencia via e-mail de unmes de duracion en Junio de 1997. Luego quito las referencias especıficasa Debian del documento y creo “Open Source Definition” o ‘’Definicion deOpen Source”.

Autores

Eric S. Raymond 〈[email protected]〉.Traducido por Diego Rodrigo 〈[email protected]〉.Ultimo punto traducido por Diego Brengi.

Page 128: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

128 El termino “Open Source”

Page 129: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Apendice D

Trampa en el Cyberespacio

Trampa en el Cyberespacio1.Roberto Di Cosmo

Liens-DmiEcole Normale Superieure

45, Rue d’Ulm - 75230 Paris CEDEX 05E-mail: [email protected]

Web: http://www.dmi.ens.fr/∼dicosmo

Durante las ultimas vacaciones de Navidad me he quedado asombradısi-mo con la fascinacion creciente de los medios de comunicacion por ese oscuroobjeto del deseo que se oculta detras de las palabras “ordenador”, “multi-media”, “web”, “internet” y sus derivados. Si uno creyera a esos medios decomunicacion y a un buen numero de expertos improvisados, no se podrıapretender ser un ciudadano de primera clase sin poseer el ultimısimo (y muycaro) material informatico que da acceso al paraıso encantado del “cyberes-pacio”.

Es tambien difıcil ignorar la omnipresente y extrana confusion que nosincita a pensar que el unico tipo existente de ordenador es el PC, por su-puesto equipado con un chip de Intel, y que en ese PC solo puede haber unprograma indispensable, Microsoft Windows 2.

Esto es todavıa mas curioso si consideramos que el fenomeno de servilis-mo intelectual ante estos dos gigantes americanos llega a su punto maximojusto en el momento en el cual los Estados Unidos parecen comenzar a

1El original frances esta desde el 20 de Marzo 1998 en la direccion: http://www.

mmedium.com/dossiers/piege.2La confusion es tal que ya no se distingue entre el “sistema operativo” y las “aplica-

ciones”: en la prensa se llego a hablar de Windows 97, cuando en realidad solo se tratabade Windows 95 provisto de un conjunto de aplicaciones como Word, Excel, etc., llamadocorrientemente Office 97!

Page 130: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

130 Trampa en el Cyberespacio

despertarse de un largo sueno que ha permitido a estos gigantes adquiriruna posicion de monopolio practicamente absoluta. Por el camino, ambasempresas han destruido un numero impresionante de empresas cuyos pro-ductos eran de calidad muy superior (todo esto esta muy bien documentadoen numerosas obras – como por ejemplo [1][2][3] – disponibles en los EstadosUnidos, pero no han sido, que yo sepa, traducidas al frances).

Pienso por ejemplo en la campana lanzada por Ralph Nader (defensorde los consumidores que ha logrado hacer retirar del mercado un automovilpeligroso producido por General Motors) y en el proceso que esta llevandoa cabo el DOJ (Department of Justice, el ministerio de justicia federal deEEUU) contra Microsoft en este momento. Pienso sobre todo en la sorpren-dente reaccion del publico americano en los sondeos de opinion en Internet:una mayorıa aplastante apoya las acciones del DOJ incluso cuando las en-cuestas son realizadas por empresas como CNN, que son decididamente pro-Microsoft en sus artıculos (sondeos de opinion de la CNN [4] y tambien dela ZDnet [5]; esta ultima limito arbitrariamente la duracion de la encuesta yno anuncio 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 publico esta bien lejos del despertar: mecidopor la suave voz del conformismo ambiental, se adormece aun mas y masen los brazos de Microsoft. Nuestro publico suena con un mundo feliz, en elcual un gran filantropo distribuye a todos los estudiantes de Francia copiasgratuitas de Windows 95 con la unica finalidad de ayudarlos a recuperar suatraso tecnologico. Nuestro publico sonrıe al pensar en las pantallas azulesllenas de mensajes tranquilizadores que explican como “el programa X haprovocado la excepcion Y en el modulo Z”: fallo que por supuesto no hasido culpa de Windows, sino del programa X. Nuestro publico duerme feliz

Page 131: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.1 Armario con cajones y lavado de cerebros 131

sin preguntarse por que un ordenador mucho mas potente que aquel queha servido para enviar hombres a la luna – y que ademas los ha traıdo devuelta vivos – no es capaz de manipular correctamente un documento de uncentenar de paginas, cuando este esta equipado con ese Microsoft Office quehace tan felices a todos nuestros comentaristas.

D.1. Armario con cajones y lavado de cerebros

He tenido muchas ocasiones de medir personalmente la profundidad deeste sueno hipnotico del cual he hablado anteriormente, pero la mas graciosaes seguramente aquella que se me presento hace algun tiempo durante unviaje en TGV. Las computadoras portatiles (esos embriones de computado-ras que cuestan tanto como un coche pequeno, que se pueden guardar en unmaletın y que sirven con mucha frecuencia para jugar al solitario) proliferanen estos tiempos casi tanto como los telefonos moviles, sobre todo en los tre-nes y aviones. Pues bien, durante uno de mis viajes, me encontraba sentadoal lado de un agradable senor, joven ejecutivo dinamico, que estaba ejecutan-do en su maquina el calamitoso (veremos por que mas adelante) programaDeFrag. Este programa muestra en la pantalla una hermosa matriz llena depequenos cuadraditos de diferentes colores que se mueven en todos los sen-tidos mientras el disco trabaja intensamente. No pude resistir la tentacion(espero que este senor no se ofenda si se reconoce en este artıculo) y despuesde haberlo elogiado por su hermoso portatil, le pregunte, fingiendo la mayorignorancia, que era ese lindo programa que yo no tenıa en mi portatil. Conun aire de superioridad mezclada con compasion ( “el pobre hombre no tienemi super programa”), me respondio que esta era una herramienta esencialque hay que lanzar cada cierto tiempo para hacer mas rapida la maquinadesfragmentando el disco. Continuo repetiendome de memoria los argumen-tos que se encuentran en los manuales de Windows: cuanto mas se utiliza eldisco mas se fragmenta y cuanto mas se fragmenta, mas lenta se vuelve lamaquina; esta es la razon por la cual el ejecuta concienzudamente DeFragcada vez que puede. En ese momento saque mi computadora portatil, queno utiliza Windows sino GNU/Linux (una version libre, gratuita, abierta ymuy eficaz de Unix, desarrollada por los esfuerzos comunitarios de millaresde personas en Internet) y le dije, con una expresion muy sorprendida, queen mi portatil el disco esta siempre muy poco fragmentado y cuanto mas seutiliza menos se fragmenta.

Nuestro ejecutivo, ya menos comodo, contesto que su portatil utilizabala ultima version de Windows 95 producida por la empresa mas grande desoftware del mundo, y que yo seguramente me estarıa equivocando en algunpunto. Trate entonces de hacerle olvidar por un instante la propaganda que

Page 132: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

132 Trampa en el Cyberespacio

lo habıa intoxicado hasta ese momento, explicandole de manera muy simpleel problema de la desfragmentacion: voy a tratar de resumirles a ustedes unaapacible conversacion que duro una buena media hora.

Usted sabe seguramente que sus datos estan guardados en “archivos”que son memorizados sobre el disco duro de la computadora. Este discoes como un gigantesco armario con cajones, cada cajon tiene la misma ca-pacidad (tıpicamente 512 bytes 3 ) y cada disco contiene algunos millonesde cajones. Si los datos que a usted le interesan son guardados en cajonescontiguos se puede acceder a ellos mas rapidamente que si estuvieran des-parramados (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 hayque encontrar un par de calcetines: uno las encuentra mucho mas rapido siambas se encuentran en el mismo cajon. Estamos entonces de acuerdo enque es mejor un armario bien ordenado que uno desordenado. El problemareside en saber como hacer para conservar el armario ordenado cuando estese utiliza frecuentemente.

Imaginemos ahora un ministerio que guarda sus expedientes en un enor-me armario con millones de cajones. Nos gustarıa, por las mismas razonesantedichas, que los documentos relativos a un mismo expediente se encuen-tren, en la medida de lo posible, en cajones contiguos. Usted debe contrataruna secretaria y tiene la opcion de elegir entre dos candidatas con practicasbastante diferentes: la primera, cuando un expediente debe eliminarse del ar-chivo, se limita a vaciar los cajones, y cuando un nuevo expediente entra, losepara en pequenos grupos de documentos de la medida de un cajon y archi-va cada grupo al azar en el primer cajon vacıo que encuentra en el armario.Cuando usted le senala que ası va a ser muy difıcil encontrar rapidamen-te todos los documentos que tienen que ver por ejemplo con el expedientedel Credit Lyonnais, ella responde que va a ser necesario contratar todoslos fines de semana una docena de ayudantes para poner de nuevo todo enorden. La segunda candidata, al contrario que la primera, conserva sobre suescritorio una lista de cajones vacıos contiguos, la cual pone al dıa todas lasveces que un expediente es cerrado y sacado de los cajones. Cuando entraun nuevo expediente, ella busca en su lista un conjunto de cajones vacıoscontiguos de la medida necesaria, y es ahı donde coloca el nuevo expediente.Ası, le explica ella, el armario permanecera siempre bien ordenado, inclusoaunque haya muchos movimientos de expedientes. No hay duda de que esla segunda secretaria la que debe ser contratada, y nuestro joven ejecutivoestuvo perfectamente de acuerdo.

3Un byte es un numero binario de 8 cifras, utilizado para medir el tamano de la memoriade un ordenador. Se utilizan tambien el Kilobyte, el Megabyte, y Gigabyte, abreviadosrespectivamente como Kb, Mb y Gb.

Page 133: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.1 Armario con cajones y lavado de cerebros 133

En ese momento fue facil hacerle entender que Windows 95 actuabacomo la primera secretaria y necesitaba de ayudantes que ordenen el arma-rio (el programa DeFrag), mientras que GNU/Linux actuaba como la buenasecretaria y no necesitaba de nadie para ayudarla. Al llegar a la estacion,nuestro gentil ejecutivo ya no estaba tan contento: le habıan ensenado queDeFrag hace andar mas rapido la maquina, pero habıamos visto juntos queen realidad es Windows quien la hace lenta!

En efecto, el problema de la gestion eficaz de los discos es muy viejo y ha-ce mucho tiempo que se sabe como resolverlo (la prueba es que Unix es masantiguo que Microsoft y tiene la buena secretaria desde 1984!). Y todavıahay cosas mucho peores que DeFrag; desafortunadamente, no tenemos tiem-po para contarles todas las pequenas y sabrosas historias sobre el programaScanDisk que se supone tiene que “reparar” los discos, pero que proponeopciones incomprensibles cuyo resultado final es, la mayorıa de las veces,la destruccion pura y simple de la estructura de los expedientes, aun cuan-do 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 ta-ladrado con una maquina), sino que las tecnicas correctas de gestion de undisco son ensenadas en los primeros cursos de informatica de la Universidaddesde hace mas de 10 anos.

La simple existencia de un programa como DeFrag o los danos producidospor el ScanDisk de Windows 95 deberıan ser suficientes para que cualquierpersona inteligente con poder de decision pudiera tachar Microsoft de lalista de sus proveedores. Y sin embargo, como prueba de la eficiencia dellavado de cerebros y del profundo sueno en el cual hemos estado sumidos,aquı en Francia estamos dispuestos a convertir el sistema informatico banca-rio a productos Microsoft, ası como a elegirlos tambien para la educacion denuestros hijos. El poder de la maquinaria comercial de ciertas empresas lo-gra realizar tal distorsion de la realidad que llegamos a creer fervientementeque los defectos mas graves de ciertos programas son por el contrario to-talmente indispensables (a proposito de esto, en el mundo informatico hacemucho tiempo que se emplea el dicho “it’s not a bug, it’s a feature!” – no esun defecto, es una funcionalidad!). Sucede tambien que los especialistas quetienen los conocimientos necesarios para desarmar todas estas trampas y po-ner en evidencia los errores, los peligros y las manipulaciones, sin riesgo deser considerados como competidores derrotados y grunones, se han calladodurante demasiado tiempo. Tenemos aquı un fenomeno bien extrano: por unlado, ningun cientıfico serio tiene ganas hoy en dıa de publicar un artıculoen la prensa que se dice de informatica, por miedo a manchar su reputacionpor haber tratado con mercachifles. Por el otro lado, al no tener el apoyo

Page 134: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

134 Trampa en el Cyberespacio

de cientıficos serios, la prensa informatica se transformo, vıa soporte publi-citario, en un eco poco edificante de los fabricantes de computadoras. Estola hace aun mas mercachifle, y aun menos frecuentable por expertos serios.

D.2. El impuesto a la informacion

Sin embargo el monopolio Wintel (Windows + Intel, termino recurrenteen la prensa americana) que se esta instalando en Francia y en el mundoentero tiene tales apuestas en juego, y no solamente economicas, que no nospodemos callar mas bajo ningun pretexto. No se trata solamente de aceptarvivir con una mala tecnologıa ignorando que se podrıa tener algo muchomejor: esto ya se ha producido varias veces, por ejemplo con el sistema devıdeo VHS que desplazo al Video 2000 y Betamax, que eran mucho mejo-res 4. Aquı se trata del hecho de que nuestros nuestros gobernantes hayanaceptado que el monopolio Microsoft-Intel adquiera un total dominio de lainformacion, explotandolo ademas en su exclusivo beneficio. Estoy seguro deque aquel entre ustedes que tenga algun conocimiento de economıa ya ve adonde quiero llegar: este monopolio logra desde hace muchos anos el cobrode una verdadera tasa monopolıstica, es decir, que explota la posibilidad quetiene un monopolio de vender a precios inflados, ejerciendo ası un verdaderochantaje sobre los consumidores que se ven forzados a comprarle a el. Estatasa es enorme, pero mas grave aun, su importe sale del espacio europeo sinque nos demos cuenta, y no solamente no produce riqueza alguna sino quepor el contrario la destruye (ver por ejemplo [6] y [7]).

Veamos ahora los medios por los cuales se consolida este monopolio ca-da dıa un poco mas, sin descuidar los riesgos no economicos que el mismoproduce sobre nuestra vida de todos los dıas. En el caso de la informatica,las posibilidades ofrecidas a las empresas sin escrupulos son particularmentetemibles. Trataremos de comprender esto comenzando por todo lo que no seentiende necesariamente como una practica dudosa o ilegal.

D.3. El caracter especıfico del software

Para comenzar a comprender porque pagamos un impuesto invisible cadavez que compramos un PC 5 o los programas Windows, hay que familiarizar-se primero con una caracterıstica que distingue la informatica de cualquierotro dominio tecnologico: el costo de la duplicacion de productos. Una vez

4Ver Technologie et Marche: journal d’un consommateur insatisfait, del mismo autor.5PC significaba solamente personal computer; ahora el nombre ha sido secuestrado por

un solo tipo de computadora personal, la cual utiliza microprocesadores Intel.

Page 135: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.3 El caracter especıfico del software 135

que un programa ha sido realizado, cosa que puede costar muy caro, se pue-de duplicar en un CD-Rom al costo de solo algunos francos por copia, o sepuede transmitirlo por la red a un costo que no cesa de reducirse, de ma-nera totalmente independiente de la calidad y del costo de produccion dela primera copia. Los unicos componentes cuyo costo no es infinitesimal sonaquellos a los que llamamos “el soporte”: las miles de paginas del manual depapel, o las docenas de disquettes necesarios para archivar el software cuan-do no se dispone de lectores de CD-Rom. Pero los editores de programas,que tienen todo el interes en hacer desaparecer ese costo fijo, no tardaronmucho en ocuparse de ese tema: usted habra remarcado que los PC quese venden en los supermercados vienen acompanados de programas peropracticamente de ningun manual, salvo alguna breve nota explicativa (sic!).Hay por supuesto manuales “on-line”, es decir no sobre papel. Nadie va aimpedirle que se gaste algunos centenares de francos para imprimirlos, si austed se le antoja. Yo mismo pude constatar personalmente que una empre-sa japonesa muy conocida, cuyo nombre me reservo, vende computadorasportatiles de las mas caras del mercado sin proveer siquiera un CD-Rom conlos programas: todo esta instalado en el disco duro, y para hacer una copiade seguridad todo depende de nosotros mismos, si queremos comprar los 40disquettes necesarios y pasar un dıa entero jugando a ser un disk-jockey conla maquina. Podemos decir entonces que actualmente, con estas practicas,el costo de copia de un programa esta practicamente reducido a cero.

Una segunda caracterıstica esencial es el status legal de un programa:por varias razones, no tan extranas si uno lo piensa detenidamente, el softwa-re, ese sofisticado producto de tecnologıa de punta utilizado por millones depersonas en su vida profesional, y convertido en piedra angular de una nuevarevolucion industrial, goza de la misma inmunidad que las obras de arte (dehecho, los industriales del software se llaman “editores”). Por ejemplo, nohay ninguna clausula legal ni ninguna jurisprudencia que permita garantizarque el software haya de cumplir una determinada funcion, ni siquiera aquellapara la cual usted lo ha comprado. Esta situacion es razonable cuando secompra una novela o un cuadro (de gustibus...decıan los romanos), pero dejade serlo cuando se aplica al software: usted no puede demandar a Microsoftlegalmente ante la justicia por defecto de construccion, al haber descubiertoque Windows 95 no esta hecho con las mınimas practicas establecidas de laciencia informatica; mientras que usted sı puede acusar a un fontanero o aun electricista por realizar una instalacion que no esta hecha conforme a lasnormas.

Lo peor es que no hay ninguna toma de responsabilidad por los danosque el software pueda producir. De nuevo, es razonable que usted no puedallevar a juicio a un cantante porque el ultimo CD tecno que comprara su hijoprovocara una disputa familiar en el curso de la cual se rompiera un jarron

Page 136: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

136 Trampa en el Cyberespacio

chino valiosısimo. Pero es perfectamente inaceptable que usted se quede in-defenso si pierde 200 Mb de datos comerciales muy valiosos de su disco duroa causa del vetusto sistema de archivos de Windows 95 y de su horripilanteprograma ScanDisk. Sobre todo sabiendo que podrıa probar muy facilmentedelante de un tribunal que los conocimientos tecnicos necesarios para rea-lizar un producto ampliamente superior, gracias al cual no hubiera perdidosus datos, son de dominio publico desde los anos 70, y que el codigo mis-mo que implementa estas tecnicas en el Unix de AT&T ha sido compradapor Microsoft. Pero en cambio, sı que puede arrastrar ante la justicia a suelectricista si este le instala cables electricos en los zocalos de madera de suapartamento 6.

Finalmente, una consecuencia muy grave de esta impunidad es que el“editor” de software no esta de ninguna manera obligado, desde el punto devista legal, a corregir los errores reconocidos y documentados, aun cuandoesos fallos sean voluntarios. Dicho de otra manera, el “editor” de software eslibre de venderle a usted lo que a el le parezca, o mejor dicho, aquello que sudepartamento publicitario le haga creer que compra, sin ninguna obligacionde resultados, y sin que usted tenga el menor recurso, aun en caso de malafe manifiesta. Peor aun, puede ocurrir que le hagan pagar por las versionesde “actualizacion”, que son en realidad correcciones de defectos, a preciostan caros como el producto original.

Ademas, este status jurıdico tan sorprendente, estaba probablementejustificado cuando los programas eran escritos por un ingeniero en su ga-rage, pero es absolutamente aberrante hoy en dıa. Ahora nos encontramoscon multinacionales del software cuyas finanzas son colosales, y no dan pro-vecho a todos los editores de software sino solamente a los mas poderosos.Esta claro que una gran empresa puede y debe obligar a un prestatario deservicios informaticos a firmar un contrato contrayendo obligaciones de re-sultados y conteniendo clausulas de garantıa, pero por desgracia, esto noesta al alcance del consumidor, ni de la mayorıa de las empresas, cuando eleditor de software en cuestion tiene la capacidad financiera suficiente paracomprar o destruir su empresa en algunas semanas.

Me imagino que en este momento, al igual que nuestro joven ejecuti-vo dinamico de hace un rato, usted comenzara a sentirse menos comodo:el cyberespacio encantado comienza a mostrar sus costados poco agrada-bles, y esta maravillosa empresa filantropica que ha sido siempre presentadacomo el summum de la tecnologıa informatica y del exito del libre mercadocomienza a parecer cada vez menos filantropica. Desafortunadamente, esta-mos solamente en el principio de nuestro paseo por el lado oscuro del planeta

6Practica peligrosa que esta prohibida actualmente en Europa.

Page 137: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.4 Los fabricantes atrapados en la trampa 137

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

D.4. Los fabricantes atrapados en la trampa

La posicion de monopolio de Microsoft le permite tambien desembara-zarse con facilidad de las otras posibles fuentes de costo para la comerciali-zacion del software: la asistencia tecnica y la distribucion. Para la primera,podrıamos imaginarnos que aunque el editor no este legalmente obligado aayudarle a instalar su software, se encontrara obligado a hacerlo para noperder los clientes. No se preocupe, Microsoft tiene la solucion: es suficienteleer unas frases que se encuentran en la licencia de Windows 95 de la cualreproduzco aquı un extracto:

6. SOPORTE TECNICO. El soporte tecnico para elPRODUCTO SOFTWARE no es proporcionado por Mi-crosoft Corporation o sus subsidiarias. Para obtenersoporte tecnico, remıtase al numero de soporte delFabricante de PC suministrado en la documentacionpara la computadora (ordenador). Si tiene dudas conrespecto a este CLUF (“Contrato de Licencia parael Usuario Final”), o si desea comunicarse con el Fa-bricante de PC por cualquier otra razon, remıtase ala direccion proporcionada en la documentacion de laCOMPUTADORA u ORDENADOR.

Astutos, verdad? Se hace responsable de todo al fabricante de la compu-tadora, el cual no tiene nada que ver con DeFrag pantallas azules y demasdesastres, pero acaba pagando las consecuencias financieras de esos errores(y yo sabre algo de eso, vista la cantidad de veces que trate inutilmente decomunicarme con el servicio de asistencia telefonica para la instalacion deWindows, siempre para el portatil de la marca japonesa que no he reveladomas arriba y que todavıa ocultare aquı). Si Windows 95 no estuviera en po-sicion de monopolio, los fabricantes de computadoras se librarıan con muchogusto de este tipo de acuerdos.

Para la distribucion del software es la misma historia. De nuevo son losfabricantes, ensambladores y revendedores de computadoras los que pagan elcosto: ellos deben preinstalar Windows 95 en las maquinas. Pero hoy existealgo aun mejor que es la distribucion del programa por Internet sin ningunsoporte material. Esto es un golpe genial: usted paga por un programa ydespues paga el gasto de obtenerlo por la red (y que gasto, con el tamanode un Microsoft Office en nuestros dıas), reduciendo efectivamente el costo

Page 138: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

138 Trampa en el Cyberespacio

total de la copia y distribucion por el “editor” a exactamente cero francos.Y se pregunta por que un cierto presidente de un cierto paıs del otro ladodel atlantico ha sugerido firmemente liberar completamente de impuestos alcomercio informatico? Bien, aquı tiene una parte de la respuesta!

En resumen, si hoy uno se llama Microsoft, y solamente si se llama Micro-soft, puede vender mas o menos cualquier cosa, sin obligacion de resultadoy sin temor a ser demandado. Todo esto con un costo unitario nulo, y a unprecio al publico que no baja jamas 7, y que se traduce en beneficio puro 8.Falta comprender por que no solamente el gran publico, que no conoce nadade computadoras, sino tambien las grandes empresas, los gobiernos y los me-dios (que deberıan disponer de servicios informaticos altamente calificados),no utilizan su libertad de elegir otra cosa que los productos Microsoft. Pararesponder a esta pregunta no es suficiente culpar a los mercanchifles de laprensa que se dice especializada, aun cuando su parte de responsabilidad esbien evidente. Deberemos llevar a cabo una exploracion mas profunda dela cara oculta de este gigante, para comenzar a descubrir ciertas practicasdudosas que rozan frecuentemente la ilegalidad, y que con mucho desagradoencuentro que no son comentadas en ninguna parte del panorama mediatico[frances], salvo en algunos pequenos folletos satıricos efımeros que no sonciertamente la lectura preferida de los altos responsables de las empresas 9.

D.5. El paıs de los tecnocretinos...

Para ver la cosa mas clara, olvidemos por un instante las computadoras,el software y todo eso. Siempre hemos estado condicionados a considerarestas cosas como utiles pero difıciles, es decir, a renunciar a formarnos unaopinion personal acerca de este tema. Nos han dicho que es demasiado com-plejo y que debemos limitarnos a seguir la sabia eleccion de los que se dicenexpertos (por ejemplo, la revista americana Byte, de gran difusion, tiene ensu logotipo la leyenda “Byte, because the experts decide”–Byte, porque losexpertos deciden).

7Contrariamente al costo del hardware, que baja a velocidad impresionante, el preciodel software Microsoft no baja de manera significativa, y a veces hasta sube, con cada nuevaversion: por ejemplo, Windows 95 en Francia se vende al precio al publico de 1.270 francos(antes de impuestos), mientras era disponible a menos de 800 francos en su lanzamientode 1995.

8Muchos editores de software venden sus programas sin una garantıa real, pero sonmuy pocos los que pueden tener todas esas ventajas juntas, y solamente Microsoft tieneel poder de imponer sus productos, creando de esa forma un verdadero impuesto a lainformacion.

9Se trata de Le Virus Informatique y Les puces informatiques, ver [8].

Page 139: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.6 ...no esta muy lejos 139

Dejemos de lado por un instante a los expertos, para ir a ver lo que pasaen el mundo paralelo imaginario de los TecnoCretinos, en el que una empresallamada MacroPrensa obtiene poco a poco el control absoluto de todas lasimprentas del planeta. Esta no controla directamente los periodicos, pero esla que los imprime con los caracteres MacroPrensa, de los cuales es la unicapropietaria. Un buen dıa, tras una gran campana publicitaria alabando lasbondades de un nuevo juego de caracteres que permitira obtener periodicosmas modernos, esta empresa comienza a imprimir todo con caracteres klin-gonianos (el alfabeto de los Klingons en la famosa serie StarTrek). De estamanera, nadie mas puede leer los nuevos libros o periodicos sin recurrir a laLupa de la MacroPrensa, disponible a la venta en todos los kioscos, dondees distribuıda con cargo a los editores de periodicos. El publico, encantadode la maravillosa novedad tecnologica, se adapta y compra la Lupa. Enva-lentonados por el exito de esta iniciativa, MacroPrensa comienza a cambiarel juego de caracteres periodicamente, todos los anos, y despues todos lossemestres; las viejas Lupas ya no pueden leer los nuevos periodicos y hacefalta renovarlas con grandes gastos cada dos o tres meses. Un competidorde MacroPrensa ve ahı una gran ocasion para producir una Minilupa muchomenos costosa que la Lupa Macroprensa, y comienza a venderla en los kios-cos. Pero los kioscos tienen un contrato de exclusividad con MacroPrensa yrehusan distribuırla. Peor aun, MacroPrensa demanda al competidor ante laJusticia por violacion de los derechos de autor, pues lo considera culpable dehaber analizado los caracteres klingonianos a fin de construir la Minilupa.Y gana. . .

D.6. ...no esta muy lejos

Pero que idiotas, dira usted, quien puede dejarse hacer eso? Pues bien,permıtame decirle que el mundo de los TecnoCretinos no esta muy lejos.Hace dos anos quise presentar a la UE una solicitud de financiacion parala visita de un investigador ingles a nuestro laboratorio. Para eso busque elformulario, y me dijeron que la manera mas facil de proceder era obtenerlodesde el servidor de Web www.cordis.lu de la comunidad europea, ya que elcorreo normal podıa tardar algun tiempo considerable. Dı ası con un docu-mento que se llamaba machin.doc y que estaba escrito con Microsoft Wordpara Windows version vaya-usted-a-saber. En Klingoniano. No hay proble-ma, me dije a mı mismo, tenemos un MacIntosh en el laboratorio con la lupaMicrosoft Word version 6.0. Esta es de la misma empresa, la mas reciente,luego podre leerlo bien. Cuando pense esto eran las 10 de la manana. Parami gran sorpresa, Microsoft Word en MacIntosh, despues de una docena deminutos de “conversion”, bloqueo la maquina y me vi obligado a apagar yvolver a encender, perdiendo mi trabajo. Ası comenzo una verdadera bata-

Page 140: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

140 Trampa en el Cyberespacio

lla con la Lupa, donde al final salı vencedor pero agotado a eso de las 19horas, con una version del formulario rellenado, obtenido imprimiendo laspaginas una a una y con manipulaciones complejas en cuyos detalles no en-trare. Basta decir que me entraron muchısimas ganas de llevar esto ante laJusticia, pero sin muchas esperanzas de ganar. Todo esto por que? Por unformulario extremadamente simple con las casillas Nombre, Apellido, etc.,que lo habrıamos podido preparar muy facilmente con un formato de archi-vo libre y publico, tal como el HTML que se utiliza desde 1991 en la Web.Han pasado ya dos anos y en http://www.cordis.lu nada ha cambiado.El aspecto es muy atractivo, pero los formularios y la documentacion quecontiene informacion que debe ser libre y gratuita y que son de importanciavital, estan todavıa presentados solamente en formato privado, tıpicamenteMicrosoft, e, increıble pero cierto, compatible solamente con los productosMicrosoft para PC.

A causa de esto, nuestro laboratorio pronto comprara un gran PC conWindows 95 y Microsoft Office, solamente para poder leer los documentosde la UE. La Lupa Klingoniana avanza. Ademas, con esta Lupa el formatode archivos cambia de version en version, de tal suerte que Word 5.0 nopuede hacer nada con los archivos de Word 7.0, y peor aun, el Word 6.0en Mac tiene problemas para leer archivos de Word para Windows. Hemoscaıdo en la trampa! No es suficiente con comprar Microsoft Word una vez;deberemos pagar de nuevo cada version, solo para poder continuar leyendolos archivos nuevos de otros. Y si por azar habıamos comprado un productocomplementario para la version 5.0, por ejemplo un diccionario en espanol,habra que comprar uno nuevo en la nueva version; la vieja sera “incompati-ble”, aun cuando el espanol no haya cambiado entretanto.

Advertira que se trata de un verdadero y limpio secuestro de nuestrainformacion: una vez que los datos entran en Word o Money, ya no hay ma-nera facil de recuperar todo el trabajo que usted ha hecho para transferirloa otro programa si decide no comprar mas productos Microsoft. Se cuidaronmuy bien de no suministrar convertidores eficaces hacia otros formatos 10.Ademas intentaron varias veces hacer que se aprobaran leyes prohibiendo alos competidores la utilizacion de sus formatos propios de archivos, o inclusosu analisis. Si se llegaran a aprobar estas leyes, una empresa que venda unaMinilupa convertidora serıa culpable de violacion de las leyes de derechos

10Desde hace muy poco, es posible bajar una impresionante panoplia de convertidores yvisualizadores desde http://www.microsoft.com/office/office/viewers.asp, pero esosolo 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 parausarlos! Lo que hace falta, son formatos libres y documentados, todo lo contrario de lafilosofıa Microsoft.

Page 141: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.7 Practicas dudosas 141

de autor 11. Pero son nuestros datos los que estan en juego. Bienvenidos alpaıs de los TecnoCretinos!

D.7. Practicas dudosas

Resumiendo la tecnica es simple: por un lado se hace caer a los consu-midores en la trampa secuestrando su preciosa informacion en un formatopropietario, el cual es constantemente “actualizado”. Debido a estas modi-ficaciones, los usuarios se ven obligados a comprar cada 6 o 12 meses unaactualizacion de todas sus aplicaciones, tan solo para poder continuar leyen-do sus propios datos o acceder a informacion que (de manera innecesaria)es suministrada bajo este formato privado. Por otro lado, se entrampa a loscompetidores: no se les da la documentacion [del sistema operativo] y seintroducen variantes arbitrarias con la unica meta de no permitir que losproductos que ellos desarrollan funcionen correctamente. Es mas, si la com-petencia llega a descubrir que una de las modificaciones tenıa como unico finel hacer funcionar su producto con menor eficiencia que el producto equiva-lente del monopolista, son condenados por haber hecho “ingenierıa al reves”(reverse engineering), el equivalente informatico a desmontar el motor de unTwingo para ver como esta hecho 12.

Esta ultima tecnica es especialmente poderosa si el editor de softwaredetenta a la vez el sistema operativo (Windows 95) y las aplicaciones (MSWord, Excel, etc). En tal caso es tecnicamente posible modificar el siste-ma para tornar inestables o inutilizables los productos de la competencia,y a la vez mejorar las prestaciones de sus propios productos. Es lo que seha hecho en Windows NT Workstation, limitando artificialmente a diez losaccesos simultaneos a la maquina; esto hace inutilizable el servidor Web deNetscape sobre NT Workstation (ver [13] y [14]). Si quiere resolver esto,debera comprar la version Windows NT Server, muchısimo mas cara, la cualincluye gratuitamente un servidor de Web de Microsoft. La treta pone fuerade juego a Netscape. Esto es simplemente maquiavelico, y aun mas cuandodescubrimos que las dos versiones, NT Workstation y NT Server, son practi-camente identicas y solo se diferencian en un punado de lıneas, tal y comose documenta en [15] y [16].

11Richard Stallman vino a Europa en 1991 para exponer los peligros de la aceptacionpasiva por parte de la CEE de este escandaloso asunto. Algunos de esos argumentos sepueden encontrar en [9].

12Para 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 “reverseengineering” [11]. Vease tambien la oposicion feroz a toda reglamentacion que pudieragarantizar la interoperabilidad entre sistemas distintos [12].

Page 142: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

142 Trampa en el Cyberespacio

El resultado final de estas practicas dudosas es simple: se impide queel usuario pueda elegir otra cosa que no sea un producto Microsoft. Juntocon la reduccion a cero de los costos y de los riesgos, tal cual como vimosanteriormente, esto permite al monopolio establecer un verdadero impuestosobre la informacion, donde Microsoft es el unico beneficiario. Despues detodo, si Bill Gates ha sido recibido con honores dignos de un Jefe de Estadoen el Elıseo, se debe a que se trata de la visita de la version “cyber” del re-caudador de impuestos. Un impuesto que no tiene nada de virtual: enormessumas de dinero salen de la Comunidad Europea cada ano en contrapartidapor productos de mala calidad que nos vuelven mas y mas dependientes dela mala tecnologıa del otro lado del Atlantico. Es mas, estos productos sedistribuyen en Europa a precios exorbitantes, muy superiores a los preciosamericanos o canadienses. No se deje enganar por los que le dicen que losprogramas en Europa son mas caros porque necesitan ser traducidos. Si echaun vistazo al servidor Web de Microsoft, se enterara de que consideran “ile-gal” (sic) comprar su software en version francesa en Canada (en donde esmucho mas barato que aquı) para utilizarlo en Francia [17]. Y el “libre” mer-cado? Nos ordenan como a las vacas lecheras, y la pasividad de los gobiernoseuropeos, que comienza a parecerse bastante a la cooperacion activa si unopiensa en http://www.cordis.lu, es absolutamente inexplicable, visto eltamano de este verdadero expolio.

D.8. Bordeando la ley

Llegamos finalmente a los actos francamente ilegales. Comenzando porla venta “vinculada”, que esta expresamente prohibiba en Francia (Libro I,Capıtulo II, Section 1 de la Ley del Consumidor, “Se prohibe [. . . ] subor-dinar la venta de un producto [. . . ] a la venta concurrente de otro [. . . ]”),y tambien en Europa (ver los artıculos 85 y sobre todo el 86 del tratado,ası como su aplicacion, en la detallada referencia [18]). Lo que quiere deciresto es que esta prohibido que le obliguen a comprar con el producto quea usted le interesa otro producto que no quiere. No se prohibe vender “lo-tes” de productos en un supermercado, pero en tal caso usted debe tener laopcion de comprar separadamente cualquier componente del lote, si ası lo de-sea, sin sobrecosto alguno. Sin embargo, durante mucho tiempo los grandesvendedores de PCs no le han permitido que comprara una computadora sinadquirirla con el sistema operativo de Microsoft (Windows 95 o NT ahora,DOS o Windows 3.x antes). Se puede convencer personalmente visitando losservidores Web de Dell y Gateway, por ejemplo. Vera que usted puede “cons-truir su propia computadora”, segun le dicen, pero nunca suprimir la LupaMicrosoft de dichos componentes, siendo que los programas (“software”) yel material electronico (“hardware”) son dos productos bien diferentes por

Page 143: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.8 Bordeando la ley 143

mas que traten de disimularlo 13. Al final, acabamos por no saber el precioreal del software. En efecto, haciendo partidas de acuerdos confidenciales,estos precios son a menudo muy inferiores a los precios de mercado. Uno deestos acuerdos ha sido condenado hace poco en los tribunales de la UE comopractica comercial ilegal.

Para que pueda hacerse una idea precisa de la envergadura economicadel asunto, considere el caso de una universidad parisina que compro 15 PCpara instalar GNU/Linux hace algunos meses. No se sabe cuanto pago elfabricante por Windows 95 pero si nos fiamos de lo que se dice en [7], elpaquete Office PME tiene un precio de venta al publico que es el doble delde Windows 95 y se vende a los mayoristas por poco mas de 600 francos; delo cual se puede estimar que Windows 95 tiene un precio mayorista de unos300 francos. Ası pues, aun suponiendo que el fabricante no tenga margen deganancia sobre el software (cosa de la cual dudo, dado que la preinstalaciones un servicio que tiene su costo), esta universidad ha sido obligada a pagar15 veces 300 francos, es decir 4.500 francos, por un producto que no querıa.Dicho de otra forma, el Estado Frances ha hecho en este caso un regalo de4.500 francos a Microsoft, una empresa no europea que no esta presisamen-te al borde de la quiebra ni necesitada de ayudas estatales. Si se extrapolaeste caso particular a las compras realizadas por todas las Universidadesde Francia que utilizan GNU/Linux, se trata ya de millones de francos porano. Habra que preguntarse quienes son los piratas en este caso. No puedocomprender las razones de un despilfarro semejante cuando se dice que lasarcas del estado estan vacıas.

Si uno busca bien, pero verdaderamente bien, es posible en teorıa intentarque le devuelvan el dinero (fastidiando al pobre fabricante de la computado-ra), pero se trata de una verdadera carrera de obstaculos. En nuestra escuelamuchos investigadores y alumnos han comprado computadoras o portatilespara instalar GNU/Linux o Next Step, pero han sido obligados a comprarWindows sin lograr ningun reembolso. Esta es la fuente mas importantede ganancias para Microsoft y es por esto que se puede hablar de verdade-ro impuesto sobre las computadoras: por cada PC comprado hay un tantopor ciento de dinero para los hinchados bolsillos de Microsoft, lo quiera us-ted o no. Es debido a estos 10 anos de tales practicas, durante los cualesamaso una inmensa riqueza y aplasto a toda su competencia, que Microsoftha sido amonestada por la justicia americana y europea en 1995, aunquesin ninguna consecuencia financiera [19]. Lo cual quiere decir que el botındel robo permanece en manos por el ladron, a cambio de la promesa de este

13El autor de este artıculo no se limito a mirar el sitio Web: unas llamados telefonicasbastaron para verificar que no se puede comprar una computadora sin software Microsofta Gateway o Dell.

Page 144: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

144 Trampa en el Cyberespacio

de no ser reincidente. Debido a esta condena sin castigo efectivo, hoy endıa sigue siendo muy difıcil comprar un PC sin Windows, a menos que unorecurra a los pequenos ensambladores de PCs clonicos. El caso de Dell y Ga-teway 2000 no es aislado, y cada PC comprado es un “usuario” de Windowsmas en las estadısticas, incluso si la primera cosa que hace el comprador estirar a la basura Windows 95 para instalar GNU/Linux.

D.9. Una mirada al posible futuro de la educacion

¿Que cosa puede suceder si no nos despertamos de nuestro sueno pro-fundo y permanecemos sumidos en la trampa de una industria y un sistemaeducativo informatizados por un monopolio privado? Gracias al famoso atra-so tecnologico frances, es posible responder a esta pregunta: otros paıses nosllevan ventaja de unos anos, tanto para bien como para mal, y esto nos per-mite contemplar un cierto numero de futuros posibles.

Comenzando por el futuro proximo, basta con ir muy cerca, a nuestravecina Suiza. El pasado 8 de octubre, el Ministro de Finanzas suizo anun-cio un acuerdo con Microsoft, por el cual el gobierno pondra a disposicion delos colegios unas 2.500 computadoras, y el gigante americano pondra otrastantas licencias de utilizacion de productos Microsoft y se ofrecera a formara 600 educadores para la utilizacion de computadoras [20] (Un regalo pare-cido ha sido hecho en Sudafrica). Es decir, por menos de lo que cuesta unacampana publicitaria nuestro monopolista ha adquirido el control total de lainformatica en la educacion suiza, y por ende en las empresas suizas, ya quecuando estos estudiantes alcancen un puesto de trabajo no conoceran otracosa que Microsoft Office. Visto en perspectiva, este acuerdo no parece tanbueno para Suiza, aunque al menos no habran pagado nada por el softwarede Microsoft.

Mejor dicho, para ser exactos, no lo habran pagado ahora, porque se lespodrıa empezar a pedir el pago mas adelante, como acaba de suceder enJapon. El pasado diciembre Microsoft anuncio la supresion al Japon de li-cencias globales de centro (“site licenses”, un esquema de contabilizacion delicencias de una empresa o una Universidad que permite pagar los progra-mas en proporcion al uso real, y no en relacion al numero de computadoras).Esta decision impondra un sobrecosto financiero injustificado y considerableque los japoneses van a tener que asumir de todas maneras, dado que nohay otros competidores a los que acudir.

Veamos un poco mas lejos en el futuro: la Universidad del Estado deCalifornia (CSU) esta apoyando en este momento la creacion por parte de

Page 145: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.10 Lo que esta en juego: el control de la informacion 145

Microsoft, GTE, Fujitsu y Hughes Electronics de una companıa, la CETI,que tendra el monopolio exclusivo para la renovacion del parque informaticode 23 campus universitarios de la CSU, donde hay mas de 350.000 estudian-tes y docentes. A cambio de una inversion de algunos centenares de millonesde dolares durante 10 anos en la infraestructura de la red, la CSU dejara ala CETI elegir las computadoras y los programas oficialmente usados enlos campus. La proposicion habla muy claro: se tratara solamente de Win-dows 95 Windows NT y Microsoft Office. Los beneficios previstos por laCETI, mas el impacto en la educacion de los que el dıa de manana seranresponsables de empresas (impacto seguro gracias a los cursos especializadosen productos informaticos privados), se cifra a algunos miles de millones dedolares en diez anos. Y esto solamente contabiliza los margenes de la ven-ta monopolista del hardware y del software a los estudiantes y docentes ensus campus, los cuales ya no podran seguir ciertos cursos sin utilizar esascomputadoras (ver [21] y la decision de reexaminar de acuerdo en [22] 14).

D.10. Lo que esta en juego: el control de la infor-macion

Pero los elementos comerciales y las polıticas que estan en juego superanampliamente el cuadro de la educacion y de la gestion de empresas. No es-tamos hablando de la simple venta de algunas computadoras y programas,sino del control total sobre toda forma de transmision y de tratamiento dela informacion, en la educacion, en las transacciones bancarias, en los nue-vos y viejos medios de comunicacion, y hasta en la intimidad de nuestracorrespondencia privada. Si alguno de los contendientes del sector obtieneuna posicion de monopolio en la gestion de esta informacion, estara en si-tuacion de hacer pagar un impuesto sobre toda operacion informatica (unporcentaje sobre la transaccion electronica, “vigorish” en ingles), tal y comoesta escrito negro sobre blanco en una nota interna de Nathan Myrhuold, elCTO de Microsoft. Dicha nota forma parte ahora del dossier del DOJ y fuepublicada por el Wall Street Journal el ano pasado [23].

Pero tal monopolio podra tambien obligarlo a usted a ceder una partemuy importante de su libertad personal, lo cual puede producir beneficiosmuy importantes. Reflexione por un instante sobre el hecho de que todotipo de informacion es susceptible de ser generada en una computadora yque se puede en principio seguir la pista de toda operacion informatica. Porejemplo, mientras usted observa unas bellas imagenes sentado comodamen-te delante de su PC multimedia, pueden ser copiados sus datos bancarios

14Nota: finalmente, el acuerdo fracaso a mediados de 1998 gracias a la oposicion firmede estudiantes y profesores.

Page 146: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

146 Trampa en el Cyberespacio

o puede ser constituıdo su perfil personal y psicologico para ser utilizado aespaldas suyas. Esto ya se hace desde hace tiempo con la ayuda de “cookies”en los navegadores Web [24]; ciertas empresas como Sidewalk, filial de Micro-soft, le obligan a aceptar una verdadera violacion de su vida privada paraacceder a sus servicios [25]. Gracias a extensiones privadas y vulnerablescomo el Active X de Microsoft, le pueden robar el dinero de su cuenta ban-caria mientras usted “navega por la red”, tal y como ha sido demostradoirrefutablemente por un grupo de informaticos de Hamburgo en la televisionalemana y en muchas publicaciones de las cuales no hemos visto ni rastroaquı en Francia (ver [26] para mas detalles).

Y aun si Microsoft no se aprovecha de las lagunas de seguridad de susistema, otros pueden hacerlo en su lugar. Hoy en dıa se puede transmitirun virus dentro del mas simple documentos Word, y si uno compra algovıa Internet utilizando transacciones “seguras” el numero de su tarjeta decredito podrıa ser pirateado con solo ocho horas de calculo en la maquinade un estudiante. Es para preocuparse, sobre todo si se piensa que el CreditLyonnais acaba de cerrar un acuerdo con Microsoft para la gestion de cuen-tas de sus clientes a traves de la Web (ver [27]).

Se puede tambien seguir el rastro de sus movimientos, los cuales son re-velados a espaldas suyas por su tarjeta de credito o su telefono mobil, comoquedo demostrado hace poco en el clamoroso escandalo Suizo, o tambienel affaire OM-Valenciennes (en este sentido, cabe tambien inquietarse porla fusion del servicio Microsoft Network con el servicio Wanadoo de FranceTelecom).

Para llegar a ese punto sin correr el riesgo de ser atrapado con las manosen la masa, es necesario controlar toda la cadena tecnologica: su compu-tadora debe utilizar un programa especıfico, capaz de sonsacar ciertas infor-maciones a sus espaldas; los proveedores de servicios Internet deben permi-tir guardar registros de la duracion y del tipo de conexiones que hace; losservidores Web que contienen la informacion que usted busca deben utilizarprogramas especıficos tambien capaces de guardar rastro de estos accessos, yde identificarlo comunicandose con su navegador. Y sobre todo, es necesarioque todo esto pase sin que usted lo sepa. Hoy en dıa un informatico me-dianamente dotado puede descubrir facilmente si tal o cual navegador Webesta revelando su identidad a cualquier servidor Web. Esto es posible porquetodavıa se usan protocolos informaticos que son de dominio publico, y debenpermanecer publicos para permitir que programas producidos por empresasdiferentes cooperen razonablemente. Pero si manana no hubiera mas que unsolo productor de software en el mercado, este harıa todo lo posible para queel intercambio de informacion se hiciera por medios menos transparentes ymucho mas difıciles de desenmascarar, tanto mas si pensamos en las leyes

Page 147: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.11 Una oportunidad para Europa y el empleo 147

sobre “reverse engineering” a las que aludimos anteriormente.

Como vera, no se trata solamente de elegir un programa de tratamientode textos.

D.11. Una oportunidad para Europa y el empleo

Mi sorpresa por la pasividad, incluso complicidad, de nuestros mediostoca su punto maximo. Estamos admitiendo y alabando practicas de filibus-teros que incluso ponen en juego nuestra independencia economica. Com-prendo que en los Estados Unidos no miren demasiado a donde van losmillones de dolares, ya que acaban aterrizando en los bolsillos de uno de susciudadanos. Pero no me explico por que cierran los ojos aquı, cuando estedinero sale de nuestras billeteras.

Hay que decir que la UE no ha permanecido del todo pasiva en estecampo, y parece haber una investigacion de envergadura sobre todas estaspracticas dudosas sobre las que hemos hablado [28]. En ciertos discursos demiembros de la DGIV se lee entre lıneas que la investigacion va en el mismosentido que la lanzada por la FTC del Japon hace poco. Sin embargo estono es suficiente: con la rapidez del desarrollo tecnologico en el tratamientode la informacion, cuando se llega a terminar una investigacion el dano yaesta hecho. Si, como en el acuerdo de 1995, no se aplica un castigo economico(como ciertas filtraciones hacen suponer), todo esto servira de poco.

Necesitamos una polıtica activa en el dominio de la informatica y deltratamiento de la informacion en general. En este area ya disponemos demedios tecnicos propios: no olvidemos que en efecto Europa posee talentossuperiores a los que podemos encontrar al otro lado del Atlantico. Por citarnada mas que dos ejemplos al azar, uno de los autores de NextStep, que hasido llamado “el programa mas respetado del planeta”, es frances; y Europaesta a la vanguardia en el desarrollo de los metodos formales de verificacionde programas, que permiten llevar a cabo proyectos vitales, el ultimo de loscuales fue el segundo lanzamiento del cohete Ariane 5.

Tenemos aquı una oportunidad unica para Europa de librarse de gol-pe del monopolio tecnologico americano y de dar tanto a nuetras empresascomo a nuestras escuelas una enorme ventaja. Este “atraso” del cual tantose habla es de hecho nuestra mejor ventaja. Significa que no hemos caıdocompletamente en las trampas hacia las cuales nos empujan. No olvidemosque “perder el tren” no es malo, si es un tren que va a descarrilar. Se puedeentonces elegir para nuestras empresas y nuestros hijos el libre acceso, a un

Page 148: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

148 Trampa en el Cyberespacio

costo mınimo, una informacion libre, abierta, segura y eficaz. Esto en todocaso lo hace un numero creciente de informaticos competentes, que eligensiempre que sea posible programas libres gratuitos, abiertos, modificablesy muy superiores a los productos trampa preinstalados. Y ademas, con unpotencial enorme para crear nuevos empleos.

D.12. Una posible alternativa: los programas li-bres

Cuando se trata de elegir el software de nuestros colegios y universidadescon el que nuestros hijos se iniciaran en la informatica, no se esta obligandoa atenerse a los equıvocos regalos de los cybermonopolistas. En lugar deun sistema privado que se cuelga cada dos por tres, cambia constantementede version sin razon alguna, y en el cual el codigo 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 amplia-mente la ocasion de ser probados [29]). Con dicho sistema todos los jovenespueden trabajar y aprender con toda seguridad, y permite que los espırituscuriosos adquieran una formacion informatica avanzada e inteligente, pues ladisponibilidad del codigo fuente les permite ver como esta hecho por dentro,e incluso “desmontarlo” y volverlo a montar si lo desean.

Y cuando se trata de equipar con sistemas informaticos a las grandesempresas, es mejor confiar en los programas en los cuales el codigo fuentey la documentacion es constantemente verificada y puesta al dıa por unacomunidad tecnicamente competente, pudiendose adaptar a sus necesidadesparticulares a bajo costo. Algunos estudios serios, llevados a cabo por con-sultoras expertas en informatica, han evaluado las ventajas economicas yestrategicas que supone para las empresas basarse en los programas abier-tos, en vez de atarse a los programas monopolistas (ver por ejemplo [30] y[31, 32]). Se pueden encontrar muchos ejemplos de empresas en Europa quehan puesto en practica esta teorıa con exito, exportandola despues al otrolado del Atlantico (ver [33] y la creciente lista [34])

Todo esto es posible sin invertir un centimo, gracias al trabajo comenza-do hace unos 15 anos por Richard Stallman y la Free Software Foundation.El objetivo declarado de esta era producir un sistema operativo enteramentelibre, denominado GNU [35]. Este trabajo ha sido completado recientementegracias al esfuerzo de miles de programadores competentes, que respondie-ron a la llamada de Linus Torvalds desde todos los paıses del mundo paracontribuir en conjunto, sin fines lucrativos, a completar este sistema ope-rativo libre, gratuito y abierto. Se trata de una version de Unix conocida

Page 149: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.13 Para concluir 149

bajo el nombre de Linux (ver por ej. [36, 37]), aunque serıa probablementmas justo llamarle GNU/Linux [38], como se hace en este artıculo. La his-toria de GNU/Linux es de aquellas que no se cuentan sin recordar palabrasque deberıan ser queridas no solamente por los franceses: libertad, igualdad,fraternidad. Se puede encontrar todo tipo de software para este sistema:servidores Web, maquina virtual Java, emuladores DOS, los utiles GNU,incluso paquetes ofimaticos. Y no hay que pagar nada para obtener estosproductos de base. La Comunidad Europea podrıa tambien dar un apoyoa este fenomeno tan positivo: una suma de algunas docenas de millones defrancos, cifra irrisoria en la escala del presupuesto europeo, permitirıa, si esbien utilizada, terminar rapidamente proyectos como GNUStep [39], favo-recer el desarrollo de GNU/linux y establecer una plataforma abierta y decalidad para tener paquetes ofimaticos interoperables.

La eleccion de un sistema abierto y libre puede neutralizar el impues-to sobre la informacion y tambien favorecer el empleo y hacer a nuestrasempresas mas competitivas. El dinero que ya no se esfuma (en Windows)puede dedicarse a la actividad productiva y a financiar los contratos de man-tenimiento con empresas locales de servicios informaticos, las cuales puedenadaptar el sistema a las necesidades especıficas de las empresas. Esto puedecrear un verdadero espacio de crecimiento y de empleos cualificados paraingenieros, los cuales seran ahora responsables de la calidad de su producto.No como los comerciantes mal pagados que intentan vender un productosobre el cual no tienen ningun control, y del cual los beneficios van a parara otra parte.

En Francia, los empleos de este genero seran indispensables en un futurovenidero si queremos que funcionen las futuras redes informaticas instaladasen las escuelas, dentro del cuadro del Plan Internet para Todos. Es necesarioa cualquier precio evitar cometer de nuevo el error del “guru en la caja”: estacreencia de que el manual de instalacion transmite toda la sabidurıa necesa-ria para la utilizacion de una computadora. Creencia que acabo convirtiendoun numero incalculable de computadoras Thomson del Plan Informatico pa-ra Todos de 1981 en unos caros pisapapeles.

D.13. Para concluir

La informatica y las computadoras nos dan la posibilidad de revolucionarnuestra forma de vivir cotidiana. Pero es nuestra responsabilidad elegir entreuna revolucion que nos acabe llevando a una oscura Edad Media tecnologicadominada por unos pocos senores feudales que se apropien de la escritura yde todo medio de comunicacion para recaudar impuestos cada vez que respi-

Page 150: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

150 Trampa en el Cyberespacio

remos; o por el contrario una revolucion que nos lleve a un mundo abierto ymoderno, donde el flujo libre de la informacion nos permita sacar provechodel enorme potencial de la cooperacion sin barreras y de la posibilidad decompartir nuestros conocimientos.

D.14. Agradecimientos

Esta traduccion en espanol no hubiera podido existir sin la ayuda deClara Rabinovich, de Delia Kesner, y sobre todo de Jose L. Marın ([email protected]).

Es para mi muy simbolico el hecho de que esta traduccion, ası como todaslas otras traducciones de este texto, haya sido hecha gracias a la coopera-cion sin barreras que solo un sistema informatico mundial abierto y modernopuede garantizar.

D.15. Copyright

c© Copyright Roberto Di Cosmo, 1997.

Las opiniones vertidas en este artıculo pertenecen unicamente a su autor,y no vinculan en modo alguno a la ENS, el DMI o el LIENS. Este textoesta protegido por las leyes de la propiedad intelectual. Queda autorizadaa todo individuo que no trabaje para Microsoft, ni para ninguna empresacon contratos de confidencialidad con Microsoft, la reproduccion para usopersonal y sin objeto de lucro de este artıculo, con la condicion de que seareproducido integralmente, incluıda esta nota de copyright. Microsoft y sussocios pueden solicitar al autor, si lo desean, una licencia individual de copia,a un precio de que sera establecido por el autor; en caso de violacion de estaclausula, se solicitara una indemnizacion de 1 millon de francos franceses.

D.16. References

[1] James Wallace and Jim Erickson. Hard Drive: Bill Gates and the Making of theMicrosoft Empire. Harperbusiness, 1993. ISBN 0887306292.[2] Robert X. Cringely. Accidental Empires : How the Boys of Silicon Valley MakeTheir Millions, Battle Foreign Competition, and Still Can’t Get a Date. Harperbu-siness, 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.

Page 151: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

D.16 References 151

[7] M.V. Microsoft m’a tue. 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 LosAngeles, http://www.dap.csiro.au/Interest/LA-Law.html.[11] The CLRC recommendations on reverse engineering and decompilation: givinglocal 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 Commissioneuropeenne. 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 formatte detelle sorte que les conditions se trouvent trop a droite sur plein de navigateurs. Faitederouler 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 diploma-tique, January 1998. Aussi disponible comme http://www.monde-diplomatique.

fr/md/1998/01/LANG/9761.html.[32] Bernard Lang and Jean-Claude Guedon. Linux, mini os contre maxi exploi-tation. Liberation, 7 November 1997. Aussi disponible comme http://pauillac.

Page 152: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

152 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 siecle? Le mon-de diplomatique, November 1997.

D.17. About this document...

This document was generated using the LaTeX2HTML translator Version 96.1(Feb 5, 1996) Copyright c©1993, 1994, 1995, 1996, Nikos Drakos, Computer BasedLearning 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 MET1998.

Roberto Di CosmoFri Oct 9 22:48:54 MET 1998

Page 153: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

Apendice E

GNU Free DocumentationLicense

Version 1.2, November 2002Copyright c© 2000,2001,2002 Free Software Foundation, Inc.

51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Everyone is permitted to copy and distribute verbatim copies of this licensedocument, but changing it is not allowed.

Preamble

The purpose of this License is to make a manual, textbook, or other functionaland useful document “free” in the sense of freedom: to assure everyone the effectivefreedom to copy and redistribute it, with or without modifying it, either commer-cially or noncommercially. Secondarily, this License preserves for the author andpublisher a way to get credit for their work, while not being considered responsiblefor modifications made by others.

This License is a kind of “copyleft”, which means that derivative works of thedocument must themselves be free in the same sense. It complements the GNUGeneral 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 withmanuals providing the same freedoms that the software does. But this License isnot limited to software manuals; it can be used for any textual work, regardless ofsubject matter or whether it is published as a printed book. We recommend thisLicense 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 containsa notice placed by the copyright holder saying it can be distributed under the termsof this License. Such a notice grants a world-wide, royalty-free license, unlimited induration, to use that work under the conditions stated herein. The “Document”,

Page 154: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

154 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 distributethe work in a way requiring permission under copyright law.

A “Modified Version” of the Document means any work containing the Do-cument or a portion of it, either copied verbatim, or with modifications and/ortranslated into another language.

A “Secondary Section” is a named appendix or a front-matter section ofthe Document that deals exclusively with the relationship of the publishers or aut-hors 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, ifthe Document is in part a textbook of mathematics, a Secondary Section may notexplain any mathematics.) The relationship could be a matter of historical connec-tion 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 aredesignated, as being those of Invariant Sections, in the notice that says that theDocument is released under this License. If a section does not fit the above definitionof Secondary then it is not allowed to be designated as Invariant. The Documentmay contain zero Invariant Sections. If the Document does not identify any InvariantSections then there are none.

The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document isreleased under this License. A Front-Cover Text may be at most 5 words, and aBack-Cover Text may be at most 25 words.

A “Transparent” copy of the Document means a machine-readable copy, re-presented in a format whose specification is available to the general public, thatis suitable for revising the document straightforwardly with generic text editors or(for images composed of pixels) generic paint programs or (for drawings) some wi-dely available drawing editor, and that is suitable for input to text formatters or forautomatic translation to a variety of formats suitable for input to text formatters.A copy made in an otherwise Transparent file format whose markup, or absenceof markup, has been arranged to thwart or discourage subsequent modification byreaders is not Transparent. An image format is not Transparent if used for anysubstantial amount of text. A copy that is not “Transparent” is called “Opaque”.

Examples of suitable formats for Transparent copies include plain ASCII wit-hout markup, Texinfo input format, LaTeX input format, SGML or XML usinga publicly available DTD, and standard-conforming simple HTML, PostScript orPDF designed for human modification. Examples of transparent image formats in-clude PNG, XCF and JPG. Opaque formats include proprietary formats that can beread and edited only by proprietary word processors, SGML or XML for which theDTD and/or processing tools are not generally available, and the machine-generatedHTML, PostScript or PDF produced by some word processors for output purposesonly.

The “Title Page” means, for a printed book, the title page itself, plus suchfollowing pages as are needed to hold, legibly, the material this License requires toappear in the title page. For works in formats which do not have any title pageas such, “Title Page” means the text near the most prominent appearance of thework’s title, preceding the beginning of the body of the text.

A section “Entitled XYZ” means a named subunit of the Document whose

Page 155: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

155

title either is precisely XYZ or contains XYZ in parentheses following text thattranslates XYZ in another language. (Here XYZ stands for a specific section namementioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”,or “History”.) To “Preserve the Title” of such a section when you modify theDocument means that it remains a section “Entitled XYZ” according to this defi-nition.

The Document may include Warranty Disclaimers next to the notice whichstates that this License applies to the Document. These Warranty Disclaimers areconsidered to be included by reference in this License, but only as regards disclai-ming warranties: any other implication that these Warranty Disclaimers may haveis 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 commercia-lly or noncommercially, provided that this License, the copyright notices, and thelicense notice saying this License applies to the Document are reproduced in allcopies, 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 furthercopying of the copies you make or distribute. However, you may accept compensa-tion in exchange for copies. If you distribute a large enough number of copies youmust also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and youmay publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printedcovers) of the Document, numbering more than 100, and the Document’s licensenotice requires Cover Texts, you must enclose the copies in covers that carry, clearlyand legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identifyyou as the publisher of these copies. The front cover must present the full title withall words of the title equally prominent and visible. You may add other material onthe covers in addition. Copying with changes limited to the covers, as long as theypreserve the title of the Document and satisfy these conditions, can be treated asverbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you shouldput the first ones listed (as many as fit reasonably) on the actual cover, and continuethe rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering morethan 100, you must either include a machine-readable Transparent copy along witheach Opaque copy, or state in or with each Opaque copy a computer-network lo-cation from which the general network-using public has access to download usingpublic-standard network protocols a complete Transparent copy of the Document,free of added material. If you use the latter option, you must take reasonably pru-dent steps, when you begin distribution of Opaque copies in quantity, to ensurethat this Transparent copy will remain thus accessible at the stated location until

Page 156: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

156 GNU Free Documentation License

at least one year after the last time you distribute an Opaque copy (directly orthrough your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Documentwell before redistributing any large number of copies, to give them a chance toprovide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under theconditions of sections 2 and 3 above, provided that you release the Modified Ver-sion under precisely this License, with the Modified Version filling the role of theDocument, thus licensing distribution and modification of the Modified Version towhoever possesses a copy of it. In addition, you must do these things in the ModifiedVersion:

A. Use in the Title Page (and on the covers, if any) a title distinct from thatof the Document, and from those of previous versions (which should, if therewere any, be listed in the History section of the Document). You may use thesame title as a previous version if the original publisher of that version givespermission.

B. List on the Title Page, as authors, one or more persons or entities responsiblefor authorship of the modifications in the Modified Version, together with atleast 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 theother copyright notices.

F. Include, immediately after the copyright notices, a license notice giving thepublic 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 requiredCover 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 anitem stating at least the title, year, new authors, and publisher of the ModifiedVersion as given on the Title Page. If there is no section Entitled “History”in the Document, create one stating the title, year, authors, and publisherof the Document as given on its Title Page, then add an item describing theModified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public accessto a Transparent copy of the Document, and likewise the network locationsgiven in the Document for previous versions it was based on. These may beplaced in the “History” section. You may omit a network location for a workthat was published at least four years before the Document itself, or if theoriginal publisher of the version it refers to gives permission.

Page 157: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

157

K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve theTitle of the section, and preserve in the section all the substance and tone ofeach of the contributor acknowledgements and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their textand in their titles. Section numbers or the equivalent are not considered partof the section titles.

M. Delete any section Entitled “Endorsements”. Such a section may not be in-cluded in the Modified Version.

N. Do not retitle any existing section to be Entitled “Endorsements” or to con-flict in title with any Invariant Section.

O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices thatqualify 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. Todo this, add their titles to the list of Invariant Sections in the Modified Version’slicense notice. These titles must be distinct from any other section titles.

You may add a section Entitled “Endorsements”, provided it contains nothingbut endorsements of your Modified Version by various parties–for example, state-ments of peer review or that the text has been approved by an organization as theauthoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passageof up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts inthe Modified Version. Only one passage of Front-Cover Text and one of Back-CoverText may be added by (or through arrangements made by) any one entity. If theDocument already includes a cover text for the same cover, previously added byyou or by arrangement made by the same entity you are acting on behalf of, youmay not add another; but you may replace the old one, on explicit permission fromthe previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License givepermission to use their names for publicity for or to assert or imply endorsementof any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under thisLicense, under the terms defined in section 4 above for modified versions, providedthat you include in the combination all of the Invariant Sections of all of the originaldocuments, unmodified, and list them all as Invariant Sections of your combinedwork in its license notice, and that you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multipleidentical Invariant Sections may be replaced with a single copy. If there are multipleInvariant Sections with the same name but different contents, make the title ofeach such section unique by adding at the end of it, in parentheses, the name ofthe 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 inthe license notice of the combined work.

Page 158: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

158 GNU Free Documentation License

In the combination, you must combine any sections Entitled “History” in thevarious original documents, forming one section Entitled “History”; likewise com-bine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedi-cations”. You must delete all sections Entitled “Endorsements”.

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documentsreleased under this License, and replace the individual copies of this License in thevarious documents with a single copy that is included in the collection, provided thatyou follow the rules of this License for verbatim copying of each of the documentsin all other respects.

You may extract a single document from such a collection, and distribute itindividually under this License, provided you insert a copy of this License into theextracted document, and follow this License in all other respects regarding verbatimcopying of that document.

7. AGGREGATION WITH INDEPENDENTWORKS

A compilation of the Document or its derivatives with other separate and inde-pendent 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 usedto limit the legal rights of the compilation’s users beyond what the individual workspermit. When the Document is included in an aggregate, this License does not ap-ply to the other works in the aggregate which are not themselves derivative worksof the Document.

If the Cover Text requirement of section 3 is applicable to these copies of theDocument, 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 Documentwithin the aggregate, or the electronic equivalent of covers if the Document is inelectronic form. Otherwise they must appear on printed covers that bracket thewhole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute trans-lations of the Document under the terms of section 4. Replacing Invariant Sectionswith translations requires special permission from their copyright holders, but youmay include translations of some or all Invariant Sections in addition to the originalversions of these Invariant Sections. You may include a translation of this Licen-se, 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 theoriginal versions of those notices and disclaimers. In case of a disagreement betweenthe translation and the original version of this License or a notice or disclaimer, theoriginal 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 typicallyrequire changing the actual title.

Page 159: “Software Libre y GNU/Linux” Apunte Te´oricotallergnulinux.sourceforge.net/apuntes/apunteteorico_latexdefault.pdf · si´on que tienen dentro del mundo del “software libre”

159

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except asexpressly provided for under this License. Any other attempt to copy, modify, subli-cense or distribute the Document is void, and will automatically terminate yourrights 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 suchparties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNUFree Documentation License from time to time. Such new versions will be similarin spirit to the present version, but may differ in detail to address new problems orconcerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If theDocument specifies that a particular numbered version of this License “or any laterversion” applies to it, you have the option of following the terms and conditionseither of that specified version or of any later version that has been published (notas a draft) by the Free Software Foundation. If the Document does not specify aversion number of this License, you may choose any version ever published (not asa draft) by the Free Software Foundation.

ADDENDUM: How to use this License for yourdocuments

To use this License in a document you have written, include a copy of theLicense in the document and put the following copyright and license notices justafter the title page:

Copyright c© YEAR YOUR NAME. Permission is granted to copy,distribute and/or modify this document under the terms of the GNUFree Documentation License, Version 1.2 or any later version publishedby the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is includedin the section entitled “GNU Free Documentation License”.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replacethe “with . . . Texts.” line with this:

with the Invariant Sections being LIST THEIR TITLES, with theFront-Cover Texts being LIST, and with the Back-Cover Texts beingLIST.

If you have Invariant Sections without Cover Texts, or some other combinationof the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommendreleasing these examples in parallel under your choice of free software license, suchas the GNU General Public License, to permit their use in free software.