Administre GNU/Linux Sin importar la distribución
Transcripción
Administre GNU/Linux Sin importar la distribución
Administre GNU/Linux Sin importar la distribución Jaime E. Gómez Hernández Fis. Ing. MSc. PhD. ii Este fue escrito y paginado bajo Linux y utilizando LATEX por su autor y fue impreso y empastado en Colombia por Skina Technologies Ltda. http://www.skinatech.com Tel: 57 (1) 226-2080 Carrera 64 No. 96-17 Bogotá D.C. Colombia ISSN 1657-7620 c 1998-2014 Gómez H. Se permite la copia, distribución y/o modificación de este documento bajo los términos de la licencia de Libre Documentación de GNU Version 1.1 o alguna versión posterior publicada por la Free Software Foundation; Se incluyen en la Sección Invariante los textos de la Portada, contraportada, reverso. Una copia de la licencia se incluye en apéndice A. Jaime E. Gómez Hernández Fis. Ing. MSc. PhD. Skina Technologies Ltda. (http://www.skinatech.com) Grupo LinuxCOL (http://www.linuxcol.org) Bogotá D.C. Colombia. Índice general 1. Comenzando con Linux 1 1.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1. Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2. GNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.3. Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3. Distribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2. Instalación 15 2.1. Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.1.2. Preparación del PC . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2. Proceso de instalación . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.1. Objetivo de la instalación . . . . . . . . . . . . . . . . . . . . 24 2.2.2. Iniciando la instalación . . . . . . . . . . . . . . . . . . . . . . 25 2.2.3. Pasos a seguir . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.4. Creando las particiones para Linux . . . . . . . . . . . . . . . 33 2.2.5. Selección de paquetes . . . . . . . . . . . . . . . . . . . . . . . 36 2.2.6. Servicios en el Arranque . . . . . . . . . . . . . . . . . . . . . 47 iii ÍNDICE GENERAL iv 3. Conceptos Básicos 55 3.1. Comandos de Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.1.1. Comandos básicos . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.1.2. Comandos en background . . . . . . . . . . . . . . . . . . . . . 55 3.1.3. Interprete de comandos: Shell . . . . . . . . . . . . . . . . . . 57 3.2. Sistemas de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.2.1. Organización de los directorios . . . . . . . . . . . . . . . . . . 67 3.2.2. Montar un sistema de archivos . . . . . . . . . . . . . . . . . . 72 3.2.3. Uso de mtools . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.3. Actualización del kernel . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.3.1. Inclusión de los modulos del kernel . . . . . . . . . . . . . . . 76 3.3.2. Inclusión de las correcciones del kernel . . . . . . . . . . . . . 78 3.3.3. Recompilar el kernel . . . . . . . . . . . . . . . . . . . . . . . 79 4. Sistema Básico 83 4.1. Configuración y Control de acceso . . . . . . . . . . . . . . . . . . . . 84 4.1.1. Usuarios y Grupos . . . . . . . . . . . . . . . . . . . . . . . . 85 4.1.2. Configuración de LILO . . . . . . . . . . . . . . . . . . . . . . 93 4.1.3. Reinicialización del sistema . . . . . . . . . . . . . . . . . . . 98 4.2. X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.2.1. Xfree86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.2.2. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.2.3. Redes e Internet . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.3. Gestión de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.3.1. Herramientas de administración . . . . . . . . . . . . . . . . . 122 4.3.2. Conversión de paquetes . . . . . . . . . . . . . . . . . . . . . . 124 ÍNDICE GENERAL v 4.4. Configuración de hardware . . . . . . . . . . . . . . . . . . . . . . . . 127 4.4.1. Harddrake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.4.2. Kudzu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.4.3. Configuración del sonido . . . . . . . . . . . . . . . . . . . . . 130 5. Configuración de Servicios 133 5.1. Configuración de servicios . . . . . . . . . . . . . . . . . . . . . . . . 133 5.1.1. Servicio de impresión . . . . . . . . . . . . . . . . . . . . . . . 133 5.1.2. Compartir Recursos . . . . . . . . . . . . . . . . . . . . . . . . 145 A. Licencias Públicas GNU 151 B. Marcas Registradas 167 Índice de figuras 1.1. Genealogı́a Incompleta de UNIX . . . . . . . . . . . . . . . . . . . . . 6 1.2. Genealogı́a Incompleta de GNU/Linux . . . . . . . . . . . . . . . . . 9 2.1. Esquema general de división del disco duro en particiones . . . . . . . 21 2.2. Selección CD-ROM como primer dispositivo de inicio . . . . . . . . . 26 2.3. Copiando disco de arranque desde Windows . . . . . . . . . . . . . . 29 2.4. Escogiendo un lenguaje para la instalación . . . . . . . . . . . . . . . 32 2.5. Seleccionando modelo y distribución del teclado . . . . . . . . . . . . 33 2.6. Editando particiones con Diskdrake . . . . . . . . . . . . . . . . . . 34 2.7. Agregar una partición . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.8. Formato de particiones . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.9. Seleccionando componentes a instalar . . . . . . . . . . . . . . . . . . 37 2.10. Seleccionando paquetes individuales a instalar . . . . . . . . . . . . . 39 2.11. Progreso del proceso de instalación . . . . . . . . . . . . . . . . . . . 39 2.12. Password de root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.13. Centro de Configuración . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.14. Escogencia de la zona horaria . . . . . . . . . . . . . . . . . . . . . . 42 2.15. Configuración de la red local . . . . . . . . . . . . . . . . . . . . . . . 44 2.16. Configuración de la conexión por módem . . . . . . . . . . . . . . . . 46 vii ÍNDICE DE FIGURAS viii 2.17. Selección del nombre de la impresora . . . . . . . . . . . . . . . . . . 47 2.18. Modelo de la impresora . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.19. Instalación del LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.20. Configuración de tarjeta de vı́deo para X-window . . . . . . . . . . . 52 2.21. Configuración de monitor para X-window . . . . . . . . . . . . . . . . 53 3.1. Redirección de Entrada y Salidas . . . . . . . . . . . . . . . . . . . . 61 3.2. Estructura de directorios de Linux según FSSTND . . . . . . . . . . . 67 3.3. Kernel menuconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.4. Kernel xconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.1. Linux Mandrake DrakConf . . . . . . . . . . . . . . . . . . . . . . . . 84 4.2. Administración de usuarios con Userdrake . . . . . . . . . . . . . . . 88 4.3. Userdrake: Adición de un usuario . . . . . . . . . . . . . . . . . . . . 89 4.4. Bienvenida a Linuxconf X-Window . . . . . . . . . . . . . . . . . . . 90 4.5. Linuxconf: Tareas de administración de cuentas . . . . . . . . . . . . 90 4.6. Linuxconf: Cuentas de usuarios . . . . . . . . . . . . . . . . . . . . . 91 4.7. Linuxconf: Información de usuario . . . . . . . . . . . . . . . . . . . 91 4.8. Administración de usuarios con Kuser . . . . . . . . . . . . . . . . . 92 4.9. Kuser: Adicion de un usuario . . . . . . . . . . . . . . . . . . . . . . 92 4.10. Drakboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.11. Bienvenida a Linuxconf . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.12. Linuxconf:Configuración de OS de arranque . . . . . . . . . . . . . . 97 4.13. Sesión con gdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.14. Sesión con kdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.15. XF86Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ÍNDICE DE FIGURAS ix 4.16. Pantalla principal de xf86cfg . . . . . . . . . . . . . . . . . . . . . . 104 4.17. xf86cfg: ratón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.18. xf86cfg: teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.19. xf86cfg: Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.20. xf86cfg: tarjeta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.21. XFdrake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.22. Webmin: Interfaces de Red . . . . . . . . . . . . . . . . . . . . . . . . 111 4.23. Webmin: Configuración de eth0 . . . . . . . . . . . . . . . . . . . . . . 112 4.24. Webmin: archivo /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . 113 4.25. Webmin: Editar direcciones de servidores . . . . . . . . . . . . . . . . 114 4.26. Configuración de Módem con modemconf . . . . . . . . . . . . . . . . 115 4.27. Linuxconf: en consola para configurar red . . . . . . . . . . . . . . . 116 4.28. Linuxconf: Interfaz PPP . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.29. Conexión a Internet con Kppp . . . . . . . . . . . . . . . . . . . . . . 118 4.30. Configuración de una nueva conexión con Kppp . . . . . . . . . . . . . 118 4.31. Configuración del dispositivo serial con Kppp . . . . . . . . . . . . . . 119 4.32. Manejo de paquetes con kpackage . . . . . . . . . . . . . . . . . . . . 124 4.33. Manejo de paquetes con gnorpm . . . . . . . . . . . . . . . . . . . . . 125 4.34. Manejo de paquetes con rpmdrake . . . . . . . . . . . . . . . . . . . . 126 4.35. HardDrake: Herramienta de administración de dispositivos . . . . . . 127 4.36. HardDrake: Sound-wizard . . . . . . . . . . . . . . . . . . . . . . . . 128 4.37. Kudzu: Detección y configuración automática de Hardware . . . . . . 129 4.38. Sndconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.1. Bienvenida del servidor CUPS . . . . . . . . . . . . . . . . . . . . . . 135 5.2. CUPS: Labores de administración . . . . . . . . . . . . . . . . . . . . 136 ÍNDICE DE FIGURAS x 5.3. CUPS: Descripción de impresora . . . . . . . . . . . . . . . . . . . . 137 5.4. CUPS: Conexión de la impresora . . . . . . . . . . . . . . . . . . . . 137 5.5. CUPS: Modelos de impresoras . . . . . . . . . . . . . . . . . . . . . . 138 5.6. CUPS: Impresoras configurada . . . . . . . . . . . . . . . . . . . . . . 138 5.7. Printerdrake: Pantalla principal . . . . . . . . . . . . . . . . . . . . 139 5.8. Printerdrake: Tipos de conexión de impresoras . . . . . . . . . . . . 140 5.9. Printerdrake: Descripción de impresora . . . . . . . . . . . . . . . . 140 5.10. Printerdrake: Modelos de impresoras . . . . . . . . . . . . . . . . . 141 5.11. Ventana principal de Kups . . . . . . . . . . . . . . . . . . . . . . . . 142 5.12. Kups: Conexión de la impresora . . . . . . . . . . . . . . . . . . . . . 142 5.13. Kups: Impresora Local . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.14. Kups: Modelos de impresoras . . . . . . . . . . . . . . . . . . . . . . . 144 5.15. Kups: Descripción de impresora . . . . . . . . . . . . . . . . . . . . . 144 5.16. Kups: Confirmación de Impresora configurada . . . . . . . . . . . . . 145 5.17. Linuxconf: Tareas como servidor . . . . . . . . . . . . . . . . . . . . 146 5.18. Linuxconf: Configuración de NFS . . . . . . . . . . . . . . . . . . . . 147 5.19. Configuración de Samba con swat . . . . . . . . . . . . . . . . . . . . 149 5.20. Swat: Compartir directorios con Samba . . . . . . . . . . . . . . . . . 149 Índice de cuadros 2.1. Lista de algunos dispositivos bajo Linux . . . . . . . . . . . . . . . . 20 3.1. Comandos Linux/Unix de manipulación de archivos y directorios . . . 56 3.2. Comandos Linux/Unix más frecuentes . . . . . . . . . . . . . . . . . 56 3.3. Equivalencia de comandos Linux/Unix y DOS . . . . . . . . . . . . . 57 3.4. Interpretes de comandos en Linux/Unix . . . . . . . . . . . . . . . . . 58 3.5. Variables de entorno más usuales . . . . . . . . . . . . . . . . . . . . 59 3.6. Algunos filtros en lı́nea de comandos Linux/Unix . . . . . . . . . . . 62 3.7. Instrucciones bash para programación shell . . . . . . . . . . . . . . . 64 3.8. Archivos de bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.9. Directorios de Linux más frecuentes . . . . . . . . . . . . . . . . . . . 68 3.10. Subdirectorios de usr . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.11. Subdirectorios de var . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.12. Sistemas de archivos más comunes . . . . . . . . . . . . . . . . . . . . 72 3.13. Opciones del comando mount . . . . . . . . . . . . . . . . . . . . . . 73 3.14. Herramientas mtools . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.1. Posibles interfaces de administración . . . . . . . . . . . . . . . . . . 83 4.2. Opciones básicas de rpm . . . . . . . . . . . . . . . . . . . . . . . . . 122 xi Prefacio Presentación Este libro pretende recopilar la experiencia de mas de 10 años trabajando con GNU/Linux y de observar toda su evolución Despues de varios años de estar enseñando como administrar linux se desarrolla la teoria de la unificación. Este libro ha pasado por varios titulos y nunca supe escoger alguno, y por esto tiene tres: La teoria de la unificacion de mi formación como fı́sico mostrando que hay una ley por encima de todo y que las dstribuciones no son mas que instancias de casos particulares de esa ley; la administración por capas que quiza no soy el autor original de la teorı́a pero yo lo bautizo asi, mostrando lo que siempre ha sido un paradigma de UNIX en el que las herramientas complejas se construyen como la integración de herramientas simples de proposito especifico, esto lleva a que GNU/Linux tenga cinco capas de operacion en las que se puede mover un administrador: (1) Archivos de configuracion, (2) comandos en linea, (3) Menus en consola, (4) Aplicaciones graficas X11 y finalmente administracion remota via www u otro mecanismo, entocnes quedo con un tintulo mas largo que el mismo libro. Esta guı́a no esta orientada a principiantes en el área de sistemas, ni a usuarios finales de ordenadores instalados con GNU/Linux. Para obtener el máximo provecho es recomendado que el lector tenga algun tipo de formación y conocimiento en administración de sistemas. El temario está dividido en cinco capı́tulos: el primero se dedica a la presentación de Linux, historia y caracterı́sticas técnicas; el segundo muestra la instalación de Linux; xiii xiv Prefacio el tercero enseña al usuario a utilizar las interfaces gráficas; el cuarto capı́tulo ilustra la forma de realizar las configuraciones básicas para tener un sistema funcional y el quinto y último lo instruye en las ordenes básicas y el funcionamiento general del sistema. Esta guı́a se basa originalmente en el libro Curso Linux del Club de Informática Diskóbolo (http://diskobolo.mat.ucm.es) de la Universidad Complutense de Madrid, escrito por Francisco Javier Ahijado Martı́n-Navarro (iCesofT) y David Flores Santacruz (Castor) en el año 1997. En el año 1998 es actualizado, y ampliado por integrantes de el grupo de Usuarios de Linux en Colombia LinuxCOL (http://www.linuxcol.org) en la Universidad de Los Andes en Santafé de Bogotá, Colombia, particularmente por su director: Jaime Enrique Gómez Hernández (Kasandra). En los años siguientes se continuó trabajando, actualizándolo, ampliándolo y construyendo versiones para cada distribución importante en le momento hasta llegar a incluir seis diferentes: RedHat, Mandrake, Conectiva, SuSE, Slackware y Debian. Aún, seguro se comparten algunos párrafos originales de Curso Linux, pero en la actualizada ya lo supera ampliamente, no solo en tamaño sino en su En el año 2005, el autor ahora trabajando para SkinaTech, hace otro giro radical (o quizá un retorno) y se opta por integrar todas las versiones en un solo libro y seguir dos paradigmas trazados por el autor La teorı́a de la unificación y La administración por capas que lleva a incluir un nuevo libro en la serie dedicado exclusivamente a la administración. La teorı́a de la unificación surge despues de mas de diez años observando evolución de GNU/Linux. La competencia entre varias casas productoras por el liderazgo del mercado ha empezado a perjudicar el movimiento de software libre y al mismo GNU/Linux como su mayor exponente. Esta lucha ha llevado a desinformación y confusión entre los usuarios, perdiendo todas las ventajas ofrecidas por el software libre como la independencia de proveedor y tendiendo hacia los oscuros tiempos de UNIX en los cuales existian decenas de versiones no muy compatibles entre ellas, cada una de ellas luchando por su porción de mercado, lo que los llevo a su derrota comercial. Al igual que con UNIX, ha habido intentos de estandari- Prefacio xv zación y unificación como LSB (Linux Standard Base), pero no es respetado del todo por los fabricantes. Como la diferenciación es un viejo paradigma de mercadeo, cada distribución ha tendido a separarse de las otras, pero no debemos olvidar que Todos los linux son iguales, y que las diferencias son solo superficiales. Uno de los enfoques de este libro es mostrar que la distribución no es sino un maquillaje diferente de un mismo sistema y que es posible superar las particularidades de las distribuciones y concentrarse en un único GNU/Linux. El otro lineamiento que marca profundamente esta última versión del libro es La administración por capas. Alguna vez en una conversación con un alumno que me preguntaba que si era posible hacer determinada tarea en GNU/Linux y le contestaba que en este medio no hay que preguntarse si se puede hacer sino de cuantas formas es posible hacerlo. Dentro de esa gran gama de posibilidades se pueden diferenciar cinco capas de interacción con el sistema: 1. Archivos texto 2. Comandos de consola 3. Menús en consola 4. Interfaz gráfica X 5. Acceso remoto Entre más abajo nos encontremos, menos diferentes son las diferentes distribuciones y se esta mas cerca del real GNU/Linux. Prefacio xvi Convenciones Dentro de este libro se trata de mantener una única convención de fuentes y estilos para resaltar como se muestra a continuación: Negrilla: Nombres propios de productos, compañı́as o empresas. Ejm: Mandrake Itálica: Anglicismos o términos técnicos. Es prácticamente imposible prescindir de estos términos aún cuando exista un equivalente en Español para la gran mayorı́a Ejm: floppy. “Comillas”: Términos a resaltar en Español. Palabras no completamente correctas, con significados adaptados o análogos de otros contextos. Ejm: memoria “virtual” Typewriter: Programas o Comandos del sistema. Esto indica que se puede escribir la palabra en una lı́nea de comandos y será ejecutada; De la misma forma se utiliza para los nombres de directorios y para diferenciar el código de scripts o el contenido de archivos texto. Ejm: startx Sans serif: Selección en la pantalla durante un proceso. Principalmente en proceso de instalación y/o configuración. Ejm: Español. Si es una tecla a presionar o un botón en interfaz gráfica se coloca entre paréntesis cuadrados. Ejm: [Aceptar] Agradecimientos A todos los integrantes del equipo de SkinaTech que colaboran todo el tiempo en el desarrollo de este libro; y muy especialmente a mi esposa que está todo el tiempo apoyandome y dándome ánimo. Capı́tulo 1 Comenzando con Linux 1.1. Descripción Podrı́amos definir a linux1 como un sistema operativo basado en la filosofı́a de diseño de UNIX compartiendo, por esto, una buena cantidad de caracterı́sticas de estos últimos como: multiusuario, multitarea, memoria protegida, consumo de recursos bajo demanda, etc. Como puede verse no es nada obsoleto, como algunas personas han tratado de afirmar: un auto último modelo es tecnologı́a de punta aun cuando se base en los mismos principios alguna vez descritos y puestos en práctica por Daimler en 1898. Este se ha actualizado, mejorado, perfeccionado al nivel que todos conocemos hoy en dı́a. Al definirlo multitarea y multiusuario implica que puede haber varios usuarios utilizando un computador al mismo tiempo, y varios procesos ejecutándose a la vez. Siendo rigurosos a menos que se tenga un computador con más de un procesador (o un multicore o multithread) no es posible ejecutars varios procesos al tiempo. Sin embargo el cambio entre un proceso y otro es tan rápido que da la impresión de estar ejecutándose a la vez. Como se ha mencionado antes, GNU/Linux es un sistema operativo que se desa1 Léase GNU/Linux cada vez que escriba Linux para ser justo con la participación tan importante del proyecto GNU en la vida de Linux 1 2 Comenzando con Linux rrolló para 386, por lo tanto los requerimientos mı́nimos, en términos actuales, son irrisorios: un procesador 386 o superior y al menos 4 Mbytes de memoria para poder ejecutarse, sin embargo con 4 Mbytes solo servirá para realizar tareas simples como enrutador o servidor de impresión sin interfaz gráfica de usuario. Es necesario tener 8 Mbytes o mas para disponer de una interfaz gráfica. El espacio en disco duro requerido depende de lo que se quiera hacer y los programas que se deseen instalar. Una instalación mı́nima del sistema pueden ser solo 40 Mbytes, pero se recomienda al menos unos 200 Mbytes de disco para una instalación pequeña con una interfaz gráfica muy sencilla. Considerando las distribuciones esto puede cambiar: por ejemplo con Slackware o Debian es posible tener instalaciones mı́nimas de 40 Mbytes, mientras que SuSE pide 80 Mb y con RedHat o Mandriva actuales es necesario alrededor de 800 Mb para el contenido mı́nimo. En el otro extremo del espectro pueden usarse hasta 2 Gbytes de RAM en el kernel 2.2 y hasta 64 Gb en el 2.4 y 2.6 usando kernels PAE en arquitectura 32-bits, o 256 Tb en arquitectura de 64bits AMD64; adicionalmente un CentOS estándar puede llegar a ocupar 5 Gb en disco y los paquetes disponibles para Debian podrı́an superar fácilmente los 20 Gb. GNU/Linux es un sistema operativo desarrollado inicialmente para la arquitectura de procesadores 386 de Intel. Actualmente es el sistema operativo que mas plataformas soporta incluyendo procesadores de diversos proveedores y arquitecturas como Alpha (AXP) de DEC/Compaq/HP, RS6000 de IBM, M68K y PowerPC de Motorola usados por Apple e IBM, IA64 o Itanium de Intel, Opteron y Athlon64 de AMD, HP PA-RISC de Hewlett Packard, Sparc y Ultra Sparc de Sun, S390 de IBM, procesadores MIPS usados por Silicon Graphics, IBM, DEC, CRAY, y muchos otros que aparecen cada dia como las nuevas versiones para para celulares y PDAs Cortex de ARM y Snapdragon de Qualcomm. Sin embargo, la versión mas utilizada sigue siendo sobre la arquitectura x86 y sus equivalentes incluyendo la familia Pentium (Clásico, MMX), Pentium Pro (Celeron, II, III, IV y Xeon), Core 2, i3, i5, i7 y Atom de Intel, la familia K5, K6 (I, II y III), K7, K8 (Duron, Athlon, Phenom), FX, E-Series, A-Series de AMD, los 686 (MX y MII) y CyrixIII de Cyrix, C3, C3-2 (Nehemiah) y Nano de VIA, los Winchip (C6, 2, 2A y 3) de IDT, el Crusoe y Efficeon de Transmeta y otros compatibles. 1.2 Historia 3 Este panorama ha cambiado desde la introducción al mercado de computadores de escritorio de los procesadores de 64 bits: AMD, desde mediados de 2004 ofrece sus propios diseños K8 (Opteron,Athlon64,Hammer,Turion,Phenom), con el atractivo adicional de ser completamente compatibles con la arquitectura anterior de 32bits; Intel desde el segundo cuarto de 2003 y en 2005 ofrece Pentium IV y Xeon con tecnologı̀a EM64T (Extended Memory 64 Technology) y en el 2009 introdujo tres nuevos diseños Core i3, i5 i7; y por último, el lanzamiento por parte de Microsoft de sus sistemas para 64 bits progresivamente mas estables: Windows XP en el 2004, Windows Vista 64-bits en el 2006, Windows 7 64-bits desde 2009, ahora el mas nuevo Windows 8 ya exclusivamente de 64-bits, los que innegablemente confirma el liderazgo de estas plataformas. Por esta razón, la presente guı́a está primordialmente orientada hacia la instalación en un PC (x86 64), aunque no deja de ser útils como referencia para cualquier otra plataforma: una vez instalado, Linux se utiliza y administra de la misma manera. GNU/Linux ha roto la atadura perversa entre el hardware y el software. El éxito de Intel y AMD estuvo siempre ligado al éxito de Microsoft y sus sistemas operativos. En este momento cualquier fabricante puede, de forma independiente, desarrollar el mejor hardware que el diseño y la tecnologı́a permita y tener, casi inmediatamentei, el sistema operativo y a su disposición un gran conjunto de aplicativos incluyendo la plataforma de desarrollo. 1.2. Historia Linux es usualmente denominado como un UNIX mas. La respuesta a esto es un SI y un NO. Linux es un sistema operativo “tipo” UNIX, pero no es un UNIX tal como se verá a continuación. 4 1.2.1. Comenzando con Linux Unix La historia comienza con Ken Thompson en el año 1969 en el grupo de investigación de Bell Labs. Para usar un computador que estaba sin utilizar (un PDP-7), escribe la primera versión de UNIX. Al instante, se une al grupo el reconocido Dennis Ritchie que habı́a trabajado anteriormente en MULTICS. Muchas de las caracterı́sticas de UNIX son heredadas de MULTICS como el interpretador de comandos (shell) y la organización de directorios, aunque también se tomo ejemplo de otros sistemas operativos como el MIT CTSS y del sistema XDS-940. Thompson y Ritchie fueron felices en los años venideros trabajando en UNIX, portándolo a máquinas mas grandes (PDP-11/20), desarrollando el lenguaje C, escribiendo gran parte del sistema en este lenguaje y agregándole funcionalidades como el multiprogramming. Como era tan ampliamente usado en Bell Labs, progresivamente se fue filtrando a diversas universidades, tomando un nombre, una versión y en ocasiones un release: Unix Versión 6 de 1976. Una anécdota divertida es que el número de la versión lo daba el manual: UNIX Programmer’s Manual y no tenia nada que ver con el desarrollo del código fuente del sistema. En 1978 el control del proyecto fue asumido por el USG (UNIX Support Group) dentro de AT&T, organización superior a Bell Labs, con la versión 7 del sistema. Este grupo continua trabajando en el sistema agregando caracterı́sticas como el Sun NFS y stream I/O system, hasta la versión 9 en 1989, la última liberada por este grupo. Para el exterior: Universidades y Gobierno, se tenia otra familia de distribuciones que inicia con el Sistema III en 1982 que era muy similar a la Versión 7 interna. Esta evoluciona a Sistema V en 1983. El USG también evoluciona y se convierte en el USDL (Unix System Development Lab) el cual continua liberando versiones del Sistema V: Release 2 en 1984 y Release 3 en 1987. Las caracterı́sticas de UNIX, sobre todo su modularidad, llama la atención de muchas compañı́as y organizaciones, principalmente universidades, creando sus propios grupos de investigación y desarrollo de UNIX. La principal es la Universidad de California en Berkeley que da origen a la familia BSD (Berkeley Software Distributions), la cual llega a trabajar con DARPA (Defense Advanced Research Pro- 1.2 Historia 5 jects Agency) para desarrollar la versión 4BSD. En Berkeley se desarrollan tanto el C-Shell como el editor ex/vi. El desarrollo de BSD y Sistema V continua de forma paralela en muchas compañı́as dando origen a la diversidad que se conoce en UNIX: DEC (Digital Equipment Corporation) desarrolla Ultrix para su plataforma VAX para luego reemplazarla por OSF/1 en plataformas Alpha AXP y luego por DEC/UNIX y True64; Sun Microsystems produce Sun OS para su plataforma Sparc y luego Solaris para Sparc/UltraSparc; Microsoft reescribe UNIX para máquinas 8088 dando origen a al familia XENIX que influencia (no lo suficiente) a Windows NT y el resto de la familia; IBM crea AIX para toda su familia, desde PC’s hasta mainframes y la genealogı́a continua extensamente: la familia BSD con FreeBSD, NetBSD y OpenBSD, IRIX de Silicon Graphics, HPUX de Hewlett Packard, UNICOS de Cray, NexStep de NeXT y MacOS X de Apple, Open Server y Unixware de SCO (anteriormente Santa Cruz Operations), inclusive versiones académicas como XINU y Minix. Y esto se sigue moviendo. En la figura 1.1 se puede observar una genealogı́a incompleta del sistema UNIX [silberschatz]. Una versión actualizada y completa puede ser descargada de (http://www.levenez.com/unix/). 1.2.2. GNU Uno de los grandes actores en esta historia y que a veces es dejado a un lado es Richard Stallman, quien en el año 1984 (siete años anterior a Linux) creó todo el fundamento legal que protege y promueve todos los programas de libre distribución: la Licencia Pública General o GPL (ver Anexo A). La historia cuenta que el señor Stallman, el cual vivió la época cuando cada cual escribı́a sus drivers 2 , se molestó porque un proveedor le dijo que no podı́a compartir sus desarrollos sobre una plataforma con sus compañeros u otro usuario del mismo hardware. De forma muy constructiva, Richard Stallman, en aquel tiempo en el MIT, decidió fundar un grupo FSF (Free Software Fundation) con un proyecto GNU (GNU is not Unix) con el propósito de hacer todos los programas necesarios 2 Cuando los hombres eran hombres cada uno escribı́a sus propios drivers. Conocimiento popular 6 Comenzando con Linux Figura 1.1: Genealogı́a Incompleta de UNIX 1.2 Historia 7 disponibles libremente y contrató abogados para escribir la licencia que iba a guardar los derechos del software que se iba a hacer en este proyecto y aquı́ fue cuando surge la GPL. Lo radical de la GPL es que es una licencia para garantizar el derecho de la comunidad de tener acceso a los programas y sus fuente. En resumen, en un programa protegido por la esta licencia debe cumplir con las siguientes reglas: El software se puede copiar, distribuir y utilizar libremente. Siempre debe estar acompañado de su código fuente. El código puede ser modificado libremente. Las modificaciones mantienen mismas condiciones de la licencia. No permite limitar a otros estos derechos al redistribuir. Cualquier autor puede poner su software bajo la GPL. Esto permite que los programas bajo esta licencia siempre estén disponibles, que se dispone del código en caso que no se siga teniendo soporte de el, que puedo hacer con el lo que mi capacidad intelectual me permita, siempre y cuando lo libere, con la garantı́a que los demás harán lo mismo. 1.2.3. Linux En Septiembre de 1991, un estudiante universitario finlandés llamado Linus Torvalds, publicó en el repositorio de la Universidad de Helsinki el código de un sistema operativo tipo Unix para descarga protegido por la Licencia Pública General de GNU (GNU/GPL). Las razones de esta iniciativa, desde escribirlo hasta publicarlo, son aún hoy en dı́a, motivo de leyenda entre estas se cuentan conocer mejor su nuevo 386, imposibilidad de alterar el código de Minix, falta de novia, etc. Lo dramático de su movida, fue que le entrego a un público ávido de un sistema operativo libre, algo con lo cual trabajar y se dio una explosión de colaboración 8 Comenzando con Linux alrededor del mundo hasta llevarlo, de 10 mil lineas en el 1991, a los niveles de hoy en dı́a donde hay mas de 12 millones de lı́neas de código y miles de colaboradores. Volviendo a nuestra disertación, Linux no comparte ni código, ni origen con ningún UNIX, pero es considerado de la familia. Es casi como un familiar polı́tico de los UNIX, digamos un el esposo de una tı́a: todos lo ven como de la familia, lo invitan a la reuniones, se le tiene respeto, inclusive el sigue las costumbres de la familia, y todo eso, sin compartir nada de su sangre o código genético. Lo que Linux comparte con todos los UNIX es su filosofı́a de diseño, habiendo sido influenciado directamente por Minix3 , se continua basando en herramientas pequeñas de propósito especifico modulares y eficientes, donde las herramientas complejas son integración de muchas pequeñas. Adicionalmente, contrario a lo que muchos pretender sugerir, el peligro de separación en proyectos o lineas de desarrollo diferentes como ocurrió en la historia de UNIX es mı́nimo: el código es abierto y por lo tanto no hay secretos que proteger, esta protegido por la licencia GNU/GPL que obliga a publicar todos los cambios, mejoras o arreglos que se le hagan y siempre se sigue la polı́tica de conciliación mas que la de confrontación. 1.3. Distribuciones En sı́, Linux es sólo el núcleo del sistema operativo, pero necesita aplicaciones y programas para “hacer algo”. Muchos han sido portados a Linux, otros han sido creados especı́ficamente para Linux. Todos ellos se encuentran en Internet dispuestos a que cualquiera los baje y los instale en su sistema. Como esto es una ardua tarea no tardan en surgir compañı́as y organizaciones dedicadas a reunir todos esos programas facilitando la tarea de crear un sistema Linux funcional. En la actualidad existe un sinnúmero de distribuciones (http://www.distrowatch.org), en la que pueden distiguirse dos grandes familias 3 El código de Minix no fue usado por Torvalds porque este estaba protegido por licencias bastante restrictivas 1.3 Distribuciones 9 con cuatro actores importantes (figura 1.2) 4 . Haremos mención detallada de las mas importantes dentro del contexto mundial (En estricto orden alfabético). Figura 1.2: Genealogı́a Incompleta de GNU/Linux CentOS CentOS (http://www.centos.org) es una reconstrucción 100 % compatible de RedHat Entrerprise Linux, cumpliendo estrictamente los requerimientos des redistribución de RedHat. Los principales cambios radican en remover las marcas y la apariencia asociada con la casa matriz de el ”Prominente productor Norteamericano de Linux enterprise”. Al ser una reconstrucción a partir de los mismos fuentes, es 100 % compatible con RedHat pero con la ventaja de ser completamente libre. Otras ventajas son su creciente comunidad de desarrolladores y usuarios, reconstrucción inmediata, actualizaciones rápidas y múltiples medios de soporte IRC, listas de 4 Una versión actualizada y completa puede ser descargada de (http://nonplusx.wordpress.com/) 10 Comenzando con Linux correos, foros y FAQ dinamico. Tı́picamente, los usuarios de CentOS son organizaciones e individuos que necesitan un sistema operativo de nivel empresarial sin el costo de la certificación y el soporte. Particularmente es muy popular entre los proveedores de servicios de hosting, VPSs y Nube. Debian Debian (http://www.debian.org) es una distribución bastante popular que no está desarrollada por ninguna compañı́a sino que es fruto del trabajo de diversos voluntarios en toda la comunidad de Internet. Es, por lo tanto, una distribución completamente gratis y libre, en donde todo el software es de fuente abierta (Open Source) con un grupo de selecto de licencias permitidas como BSD Modificada, X11, MPL, Artistic, y por supuesto la preferida GNU/GPL5 , etc. Además es bastante completa y estable gracias a su sistema de instalación de paquetes DEB y esta disponible en un sinnumero de plataformas. Sin embargo, tal vez sea algo difı́cil para alguien que empieza por primera vez con Linux. Esto no quiere decir que si es la primera vez que se va a instalar Linux y se tiene una Debian a mano vaya a ser imposible instalarla. Es importante mencionar que Debian es la única distribución que también ofrece una versión de su distribución basado en otro kernel diferente a Linux: GNU Hurd. Por su enfoque libre, esta distribución ha sido la que mas distribuciones ha generado entre otras a Knoppix, Ubuntu y Kuine por mencionar solo unas pocas. Oracle La historia de Oracle con GNU/Linux data desde cuando declaran que no hay mejor plataforma para correr su popular plataforma de base de datos. En su momento eran partners de RedHat y producian unos afinamientos especiales sobre el sistema base llamándolo unbreakable GNU/Linux. A partir de 2006 inicia a 5 GNU Licencia publica General (Apéndice A) 1.3 Distribuciones 11 ofrecer su propia versión basada en RedHat - CentOS con sus desarrollos y mejoras particulares. Gracias a su músculo comercial y a su base instalada de clientes ha venido socavando la ya establecida predominancia de RedHat en el mercado. Mandriva - Mageia Mandriva (http://www.mandrivasoft.com) surge originalmente como un clon de RedHat incorporando las bondades del ambiente integrado KDE con la estabilidad e instalación de RedHat. Años después, ya en su propio camino, con un excelente instalador y buenas herramientas de administración en permanente desarrollo, es una de las distribuciones mas vendidas en el mundo, ganando, desde sus inicios, varios premios como el Mejor producto Linux del año 1999 por la revista Linux World. En principios del 2005 adquiere a la distribución brasileña Conectiva, lo que da origen al nombre Mandriva, en parte para satisfacer a sus nuevos socios pero también para resolver los problemas con una demanda de los propietarios del nombre ”Mandrake el Mago”. Es una distribución que ha pasado por muchas afugias económicas y venida a menos en los ultimos años, tanto ası́ que por temor de su desaparición un grupo de usuarios hace una derivación del código fundando Mageia que viene operando regularmente desde 2010. Tiene varios hijos para aplicaciones especiales como PCLinuxOS y TinyME. Red Hat - Fedora Red Hat (http://www.redhat.com) es la distribución mas populares del mercado empresarial con algo de competencia de SuSE y Oracle Linux, y continua dando origen a muchas otrass distribuciones. Muy sencilla de instalar, excelente auto-detección y soporte de dispositivos, instalador gráfico y un conjunto muy completo de aplicaciones comerciales en su distribución oficial y cuenta con asociados muy importantes como IBM, Oracle y SGI. A finales del 2003 Red Hat deja de ofrecer versiones libres, solo concentrándose en sus productos empresariales como RedHat Advanced Server y RedHat Enterprise 12 Comenzando con Linux Edition con un licenciamiento cerrado, pero crea un proyecto nuevo conocido como Fedora Core como su versión de desarrollo de libre distribución. Fedora es la version de desarrollo y pruebas de RedHat, saca una version nueva cada seis meses y por lo tanto es muy dinámica, con actualizaciones diarias e inclusive algunas veces comete errores en sus lanzamientos por ser muy de avanzada y probar nuevas herramientas. El cierre de las versiones RedHat da origen también a un conjunto de clones de sus versiones comerciales. Estos recompilan los fuentes que están obligados a liberar por GPL, retiran el nombre y los logos y obtiene versiones libres totalmente legales y equivalentes.Entre ellos están WhiteBox, Lineox y el recomendado por el autor CentOS. SuSE SuSE (http://www.suse.de) es una distribución alemana la cual combina el sistema de paquetes de RedHat con una organización derivada de Slackware. Esta distribución es la mas popular en Europa y tiene un gran soporte para diferentes lenguas incluido el Español. Es una de las más fáciles de instalar y configurar gracias a Yast (Yet Another Setup Tool): una meta-herramienta de configuración, la cual provee un sistema de instalación gráfica y de administración del sistema a prueba de fallas. La distribución oficial viene además con una gran cantidad de paquetes, lo que implica una instalación completa que supera los siete gigabytes en disco duro. Esta distribución se puede considerar como el extremo opuesto a Debian: muy celosa de sus desarrollos, protegidos con licencias restrictivas y con poco cuidado de mantener y retroalimentar la cultura del GNU/GPL. En el año 2003, fue comprado por Novell al igual que Ximian y generan una agresiva y tı́midamente exitosa campaña de conquista de mercado de escritorios en su empaquetamiento con el producto Novell Linux Desktop. Despues de muchas criticas y despues de observar los resultados de RedHat con Fedora, en 2006 lanzan OpenSuSE como versión de desarrollo y de libre distribución. 1.3 Distribuciones 13 Ubuntu Ubuntu (http://www.ubuntulinux.org) es un sistema operativo completo para escritorio, originado en Debian, disponible libremente con soporte profesional y de la comunidad. La comunidad Ubuntu esta constituida alrededor de los principios del Ubutu Manifiesto: el software debe estar disponible libre de costo, que debe ser usada por la gente en su lengua nativa y a pesar de cualquier dishabilidad, debe tener la libertad de personalizar y alterara sus programas en la forma que ellos piense apropiada. Ubuntu es una palabra antigua africana que significa ”Humanidad para los otros 2 Ubuntu Linux trae el espı́ritu de esta palabra al mundo del software. Se puede decir sin temor a equivocarnos que esta distribución es la mas popular del momento en ambiente de escritorio, siendo ofrecido por tambien en tabletas y teléfonos móviles. Ha originado una gran familia de versiones como Kubuntu, Xubuntu, Ubuntu Studio y derivados aún mas populares como Linux Mint , etc. Capı́tulo 2 Instalación 2.1. 2.1.1. Preliminares Descripción Para instalar GNU/Linux primero es conveniente recoger la información sobre el hardware disponible: tarjeta de vı́deo, módem, tarjeta de red, dispositivo de CD/DVD, etc. Ya que, aunque es difı́cil encontrar hardware no soportado por Linux y durante la instalación se detecta automáticamente mucho del hardware presente, es posible que durante el proceso se necesite conocer determinadas caracterı́sticas sobre el sistema en el que se va a instalar. 2.1.2. Preparación del PC Componentes Esta sección está dedicada a describir el hardware del PC según el punto de vista de Linux. Este punto de vista es heredado de la filosofı́a Unix, en la que todo es representado por archivos, incluidos los dispositivos de hardware. Por lo tanto, Linux virtualiza el acceso a los dispositivos por medio de archivos que suelen estar en el directorio /dev (por device: dispositivo). Se muestra un resumen de dispositivos en 15 16 Instalación la tabla 2.1. Se incluyen en esta descripcion una serie de dispositivos ya considerados obsoletos como los puertos paralelos o los ratones seriales, pero los concientemente los hemos mantenido por completitud de la enumeracion. Discos duros IDE Dentro de un PC antiguo pueden haber, usualmente, hasta cuatro discos IDE. El sistema IDE agrupa varios estándares: el original IDE, el extendido EIDE y las últimas versiones de alto desempeño UDMA/33, /66, /100 y /133. Las versiones estándar solo soportan 2 discos por canal, mientras que algunas versiones especiales pueden llegar a 7 o mas dispositivos. Cada disco duro tiene un nombre en Linux en función de como se haya conectado. Si el disco duro está funcionando en el primer canal como maestro se llamará /dev/hda (hard drive a), y si es esclavo /dev/hdb. En caso de que estemos en el segundo canal IDE los nombres correspondientes serán /dev/hdc y /dev/hdd. Es posible que sea un poco confuso todo esto y que no se tenga idea de donde se encuentra el disco duro. En ese caso es bueno tener en cuenta que casi todos los computadores vienen de fábrica con un solo disco duro que siempre es el /dev/hda. Un caso a notar son los dispositivos extraibles ATAPI (ATA Packet Interface) que incluyen CD-ROM, DVD, ZIP y LS-120. Estos funcionan conectados como un disco duro más y por lo tanto la nomenclatura es igual que si fuese un disco duro. Dispositivos como /dev/cdrom o /dev/zip son simples vı́nculos simbólicos al original: usualmente /dev/hdb o /dev/hdc. SCSI Las interfaces SCSI (Small Computer Systems Interface) son, en principio, equivalentes a las IDE, solo que son mas versátiles (puede conectar discos, cintas, scanners y muchos otros dispositivos), son de mejor desempeño y también mas costosas. Si el disco es SCSI, el esquema de nombres es similar, siguiendo el orden de conexión fı́sica, pasando a ser en este caso /dev/sda, /dev/sdb,. . . , 2.1 Preliminares 17 (SCSI disk a, b, . . . ). Las unidades de CD-DVD reciben nombres del tipo /dev/sr0,. . . , /dev/srn y las cintas son del tipo /dev/st0,. . . , /dev/stn. Es prudente mencionar que esta nomenclatura, en las ultimas versiones del kernel ( ¡2.6.13) y gracias a Udev, se ha generalizado a todos los dispositivos de almacenamiento: conectados a puerto paralelo1 , IDE, USB, Firewire o SATA (Serial ATA) a los cuales se conectan discos duros, DVD, CDROM, BlueRay o unidades de memoria de estado solido son asociados con discos SCSI recibiendo esta misma nomenclatura. Por ejemplo es muy posible que la memoria USB que posee, o su cámara digital, al ser conectada al equipo sea asociada al dispositivo SCSI como /dev/sdb. Unidades de disquete Las unidades de disquete en Linux se llaman /dev/fd0 y /dev/fd1 (floppy disk 0 ó 1), correspondiendo cada nombre a las unidades A: y B: en DOS. Actualmente, los computadores nuevos ya no vienen con unidad de disquete o poseen una única unidad por lo que sólo se podrá utilizar /dev/fd0. Como se menciono anteriormente, las unidades ZIP y LS-120 no se conectan como disquetes sino son dispositivos IDE o SCSI. Existen otras unidades que, en cambio, si se conectan como disquetes, que son las cintas tipo QIC-(40,80,3010,3020) o Travan TR-2,3 producidas por múltiples compañı́as como Iomega, HP, Colorado y Conner. Estas cintas son conocidas dentro del sistema como floppy tape o ftape y utilizan diferentes dispositivos como /dev/qft0 y /dev/nqft0 o /dev/zqft0 en caso de usar compresión en lı́nea. Puertos de serie Los dos dispositivos que comúnmente se conectan a los puertos serie son ratones y módems. En Linux los puertos seriales se denominan ttySx, por ejemplo /dev/ttyS0 para COM1 y /dev/ttyS1 para el COM2. La anterior nomenclatura de los puertos seriales /dev/cua0 y /dev/cua1 ya es considerada obsoleta. 1 Estos utilizan protocolos de emulación de SCSI como el PPA o IMM a través de la interfaz paralela 18 Instalación Existe un problema con los puertos serie en el hardware del PC y que puede provocar problemas desconcertantes. Aun cuando existen cuatro puertos seriales por diseño, solo existen dos interrupciones asignadas para este servicio. Este problema es independiente del sistema operativo e implica que, en general, no se puede utilizar a la vez /dev/ttyS0 y /dev/ttyS2, ni tampoco /dev/ttyS1 y /dev/ttyS3 (COM1 con COM3 y COM2 con COM4 en DOS, respectivamente). Hay dos formas de superar este inconveniente: una, reasignar y otra compartir IRQ’s entre dispositivos; ambas posibilidades son ampliamente soportadas por el Linux. Por lo general aquellos que tengan un ratón conectado a un puerto de serie lo tendrán en /dev/ttyS0 y su módem deberá estar instalado en el /dev/ttyS1 o /dev/ttyS3. Si el ratón es tipo PS/2 (conector redondo) entonces estará en un dispositivo especial llamado /dev/psaux o /dev/mouse0 y no usará ningún puerto serial. En caso que posea un conversor USB-Serial como los que usan los conectores de las PDAs Palm, estos serán asociados a dispositivos especiales como /dev/ttyUSB0 o /dev/ttyUSB1. Puertos Paralelos Los uso más habituales para un puerto paralelo en el PC son la conexión a la impresora y el uso de dispositivos paralelos-scsi como escaners y unidades de CD-ROM o ZIP externas. El primer puerto paralelo, donde se suele conectar la impresora, se llama bajo Linux /dev/lp0 (line printer 0), aunque también podrá encontrarse con /dev/parport0. Puertos USB El soporte para dispositivos USB se incluye a partir de la versión 2.2 del kernel y continua evolucionando dı́a tras dı́a. Los dispositivos USB se encuentran usualmente en /dev/usb pero aun hay diversidad en la forma de nombrarlos: /dev/ttyUSBx para Seriales, /dev/usb/dcxxxx para Cámara digital y /dev/usbscannerxxx para Scanners. 2.1 Preliminares 19 Esta diversidad de nomenclatura esta originando toda una nueva forma de llamar los dispositivos como se ve en el cuadro 2.1. Tarjetas de red Las tarjetas de red tienen una nomenclatura diferente a los otros dispositivos y son del tipo eth0,. . . , ethN para ethernet y wlan0,. . . , wlanN si son inhalámbricas. Estas últimas han sido los dispositivos que han generado mas dolores de cabeza en los últimos años. Aun cuando hay una buena cantidad de drivers para la gran mayorı́a de ellas y un excelente soporte de casas productoras de hardware, siempre estan apareciendo nuevos chips y puede encontrarse con una que no esta incluida dentro del kernel. Particiones Los discos duros pueden ser divididos en compartimentos independientes entre sı́. Estos compartimentos son llamados particiones y es el esquema que se seguirá para repartir el disco duro entre DOS o Windows y Linux. El número de particiones primarias de un disco duro está limitado a cuatro, aunque una partición primaria puede ser sub-particionada en mas particiones lógicas por el sistema operativo que la use. La información de como está particionado un disco duro: su tamaño y tipo de partición es guardada al principio del mismo, y es un estándar que siguen todos los sistemas operativos. Suponiendo que se tienen cuatro particiones primarias en /dev/sda, estas serán denominadas por Linux /dev/sda1, /dev/sda2, /dev/sda3 y /dev/sda4. Las particiones lógicas que se crean a partir de una primaria-extendida se denominarán a partir de /dev/sda5 en adelante (ver figura 2.1). Existe un primer sector en el disco duro que no pertenece a ninguna partición llamado MBR (Master Boot Record) y contiene un pequeño programa de inicio que es el primero en ejecutarse. Él es el encargado de iniciar el sistema operativo: MSWindows pone ahı́ el suyo. Este se cambiará por el que use Linux, que es por ejemplo GRUB (GRand Unified Bootloader) y que permitirá escoger entre diferentes sistemas 20 Instalación Dispositivo Linux trad Kernel 2.4 Devfs Udev Maestro 1er IDE /dev/hda /dev/discs/disc0 /dev/ide/hd/c0b0t0u0 /dev/sda 1ra part primaria /dev/hda1 /dev/discs/disc0/part0 /dev/ide/hd/c0b0t0u0p1 /dev/sda1 2da part primaria /dev/hda2 /dev/discs/disc0/part1 /dev/ide/hd/c0b0t0u0p2 /dev/sda2 3ra part primaria /dev/hda3 /dev/discs/disc0/part2 /dev/ide/hd/c0b0t0u0p3 /dev/sda3 4ta part primaria /dev/hda4 /dev/discs/disc0/part3 /dev/ide/hd/c0b0t0u0p4 /dev/sda4 1ra part lógica /dev/hda5 /dev/discs/disc0/part4 /dev/ide/hd/c0b0t0u0p5 /dev/sda5 2da part lógica /dev/hda6 /dev/discs/disc0/part5 /dev/ide/hd/c0b0t0u0p6 /dev/sda6 ... ... ... ... Esclavo 1er IDE /dev/hdb /dev/discs/disc1 /dev/ide/hd/c0b0t1u0 /dev/sdb Maestro 2do IDE /dev/hdc /dev/discs/disc2 /dev/ide/hd/c0b1t0u0 /dev/sdc Esclavo 2do IDE /dev/hdd /dev/discs/disc3 /dev/ide/hd/c0b1t1u0 /dev/sdd CD ATAPI /dev/cdrom /dev/cdroms/cdrom0 /dev/ide/cd /dev/sr0 ZIP ATAPI /dev/zip /dev/floppy/0 /dev/ide/fd /dev/sda 1er disco SCSI /dev/sda /dev/discs/disc1 /dev/sd/c1b2t3u4 /dev/sda 1ra part primaria /dev/sda1 /dev/discs/disc1/part0 /dev/sd/c1b2t3u4p1 /dev/sda1 2da part primaria /dev/sda2 /dev/discs/disc1/part1 /dev/sd/c1b2t3u4p2 /dev/sda2 ... ... ... ... 2do disco SCSI /dev/sdb /dev/discs/disc2 ... /dev/sdb 3er disco SCSI /dev/sdc /dev/discs/disc3 ... /dev/sdc ... ... ... ... 1ra cinta SCSI /dev/st0 /dev/tapes/tape0 ... /dev/st0 1er CD SCSI /dev/scd0 /dev/cdroms/cdrom1 ... /dev/sr0 ... ... ... ... 1ra disquete (A:) /dev/fd0 /dev/floppy/0 ... /dev/fd0 2da disquete (B:) /dev/fd1 /dev/floppy/1 ... /dev/fd1 1er serie com1 /dev/ttyS0 /dev/tts/0 ... /dev/ttyS0 2do serie com2 /dev/ttyS1 /dev/tts/1 ... /dev/ttyS1 3er serie com3 /dev/ttyS2 /dev/tts/2 ... /dev/ttyS2 4to serie com4 /dev/ttyS3 /dev/tts/3 ... /dev/ttyS3 Módem /dev/modem /dev/modem /dev/modem /dev/modem/ Puerto PS/2 /dev/psaux /dev/psaux /dev/psaux /dev/psaux 1er paralelo /dev/lp0 /dev/lp0 /dev/printers/0 /dev/lp0 2do paralelo /dev/lp1 /dev/lp1 /dev/printers/1 /dev/lp1 Cuadro 2.1: Lista de algunos dispositivos bajo Linux 2.1 Preliminares 21 operativos incluyendo DOS/Windows y MacOS, el que deseamos arrancar. GRUB ha sido el programa preferido para esta tarea en los ultimos años, pero no es el único, existen varias opciones comerciales y libres como LILO LInux LOader usado como estándar por las primeras versiones de GNU/Linux. Figura 2.1: Esquema general de división del disco duro en particiones Linux necesita al menos una partición primaria o lógica para poder funcionar, pero lo mı́nimo aconsejable es tener dos particiones: una dedicada a Linux para su sistema de archivos y otra de tamaño menor dedicada a la memoria de intercambio denominada swap. La memoria de intercambio permite funcionar con más memoria RAM (Random Access Memory) de la que en realidad se tiene: por ejemplo es posible tener 512 Mbytes de RAM y 1024 de swap por lo que el sistema parecerá tener en realidad 1.5 Gbytes. Esta memoria virtual no solo tiene como función aumentar la memoria RAM disponible sino que es uno de los punto claves en el desempeño de la máquina: Cuando un proceso lleva un tiempo inactivo, este se graba o baja al disco, liberando memoria RAM para otros procesos. Por supuesto el disco duro es mucho mas lento que la RAM, por lo que sigue siendo bueno tener mucha RAM a la mano. La recomendación general es tener de memoria de intercambio el doble de la memoria RAM, pero existe libertad en su escogencia: si tiene una buena cantidad de RAM, digamos 1Gb2 , tener un swap del mismo tamaño bastarı́a dado el tamaño de los programas de hoy en dı́a; si se tiene poca RAM, digamos 32M, se puede poner 256M 2 Las particiones de swap solı́an tener el limite de 128 Mbytes, cual fue removido desde las últimas versiones del kernel 2.2. 22 Instalación de swap, lo que aumenta las posibilidades de la máquina, pero no aumentarı́a para nada su desempeño. Linux es capaz de distribuir su sistema de archivos en varias particiones, lo que tiene una clara ventaja: si una partición falla el resto de los datos correspondientes a otras particiones sigue intacto. Aunque una instalación casera y por primera vez será suficiente con tener todo el sistema de archivos en una sola partición. Re-partición del disco GNU/Linux necesita sus propias particiones, y si ya se tiene instalado DOS/Windows es necesario quitar un “trozo” de su partición. Existe forma de instalar Linux en un directorio de DOS(FAT) o NTFS, pero no es recomendado por seguridad y desempeño. Reparticionar un disco duro normalmente significa destruir la partición actual y volver a crear unas nuevas, perdiendo todos los datos que este pudiese contener. Sin embargo, existen varios programas en la actualidad que permite reparticionar sin perder los datos: con las diferentes distribuciones de Linux viene una utilidad que permite cambiar el tamano de particiones FAT, VFAT, FAT32 y NTFS3 . Todas las distribuciones permiten realizar esta labor automáticamente, sin intervención del usuario, pero como el objetivo de este libro es entender como funciona GNU/Linux, continuamos con el procedimiento manual. Para utilizar la herramienta de re-particionamiento se debe seguir una serie de pasos: 1. Copiar los datos importantes. Reparticionar un disco es una operación delicada en la que un error puede representar la pérdida de datos4 , por ello es recomendable copiar todos los datos importantes antes de hacer nada. De todas formas, aunque no se vaya a instalar Linux ni se vaya a reparticionar el disco duro, es conveniente tener 3 Tambien existen algunos productos comerciales disponibles en el mercado como Partition Magic o Patition Manager, pero de igual manera, siempre se recomienda tener un buen backup de esta partición antes de realizar cualquier tarea 4 Al autor nunca le ha ocurrido, pero aún se reconoce el peligro 2.1 Preliminares 23 siempre una copia de seguridad de los datos importantes; los problemas nunca avisan. 2. Leer la documentación Es importante leer la documentación de la herramienta, existen muchos aspectos y detalles correspondiente a particularidades del hardware que se deben tener en cuenta. 3. Defragmentar el disco duro. Para poder dividir la partición eficientemente es recomendado que todos los datos estén al principio de la misma. No es necesario pero es una buena practica. Para defragmentar se puede usar la utilidad defrag de DOS/Windows. 4. Tener a mano un disco de rescate Para tener una salida rapida en caso que ocurra un incidente, es importante tener un mecanismo de arranque del sistema o un sistema de rescate. Los nuevos sistemas permiten generar ya sea un CD/DVD de rescate o colocarlo en una memoria USB. Si aun tiene un antiguo DOS/Windows con unidad de disquete, se debe crear uno de arranque del sistema operativo y copiar a él los ficheros FIPS.EXE, RESTORRB.EXE y ERRORS.TXT. También se debe copiar FDISK.EXE. Si se encuentra en DOS seguramente esta en C:\DOS y si esta en Windows se halla en C:\WINDOWS\COMMAND. Para crear un disquete de arranque se utiliza simplemente la orden FORMAT A: /s. 5. Arrancar el instalador / particionador. Encienda el ordenador y arranque por el instalador (CD/DVD), el ordenador deberá ejecutar el sistema operativo contenido en ésta. Siga las instrucciones hasta llegar al particionamiento del disco. Este mostrará los resultados del diagnostico del disco y si todo esta correcto, dará la opción de dividir la partición actual en dos, ajustando el tamaño disponible. Siempre mueva la parte final de la particion de MS-Windows y nunca el inicio, esto puede dañar su habilidad para arrancar. 24 Instalación Es importante tener en cuenta que en algunos ordenadores, principalmente portatiles, existen dos particiones de MS-Windows: una para el sistema operativo y otra muy pequeña para el sistema de rescate. El espacio disponible, removido de la particion principal se dedicará a GNU/Linux. 6. Crear nuevas particiones. Para un sistema básico necesitará como mı́nimo dos particiones, uno para memoria virtual swap y otro para el sistema operativo. Un tamaño mı́nimo para Linux usable puede ser de unos 5 Gb, aunque todo dependerá de las aplicaciones que se piense instalar y del espacio libre en el disco duro: Las nuevas versiones de GNU/Linux que vienen en un DVD puede superar los 10 Gbytes, claro tenga también en cuenta el espacio para sus datos personales. 2.2. Proceso de instalación 2.2.1. Objetivo de la instalación El objetivo es instalar Linux en un computador con una configuración tı́pica de fábrica. Esta es un solo disco duro IDE/SATA, con una sola partición primaria dedicada totalmente a Windows/DOS/MacOS. Una vez terminada la instalación se deberá tener una primera partición dedicada a Windows/DOS/MacOS, una segunda partición dedicada al espacio de intercambio para Linux y la última para contener todo el sistema de archivos de Linux. Además se instalará en el MBR del disco duro el GRUB de forma que se podrá escoger entre los dos sistemas operativos instalados a la hora de arrancar. 2.2 Proceso de instalación 2.2.2. 25 Iniciando la instalación Para poder instalar Linux se ha de iniciar una versión especial del sistema operativo preparada para realizar todo el proceso. Para hacer esto existen como mı́nimo tres opciones disponibles, de las que mencionaremos las mas populares en su orden de importancia incluyendo algunas ya obsoletas: 1. Inicio ATAPI (CD/DVD): Su computador puede iniciar el sistema operativo directamente desde el CD/DVD con tan solo dejar el disco en la unidad lectora y reiniciando el computador. Si esto no ocurre es posible que sea necesario presionar una tecla de función, dependiendo del BIOS puede ser F9 o F11. Lea rápidamente el mensaje en pantalla al arranque del computador En ocasiones es necesario cambiar en el BIOS del computador la secuencia de arranque para iniciar iniciar desde el ATAPI CD/DVD. En el momento de inicio del computador presione la tecla [Del] o la que indique el sistema para iniciar el setup: puede ser [F1] o [F2] según el fabricante. Una vez dentro, escoja BIOS FEATURES SETUP y cambie la secuencia de inicio Boot Sequence a algo como CDROM,C,A. Esta escogencia puede cambiar, en algunos BIOS se tiene un menú propio para la secuencia de arranque (figura 2.2). Si no se quiere estar cambiando los parámetros no hay que preocuparse, simplemente se actúa como si el computador no tuviese esta caracterı́stica. 2. Dispositivos USB: Las últimas versiones de BIOS permite tambien el inicio por dispositivos USB, ya sean memorias, unidades de CD o cualquier otro medio de almacenamiento. Los pasos para lograr un inicio exitoso son idénticos al anterior punto, pero es conveniente advertir que no todas las distribuciones soportan estas opciones. Si la eleccion es una memoria USB, es necesario copiar la distribucion y/o los archivos de arranque para que pueda ser usada. En distribuciónes live CD como Ubuntu ofrecen programas que permiten copiar toda la distribución en un memoria booteable. En otras distribuciones como Fedora-RedHatofrecen imagenes para ser copiadas en memorias USB e iniciar desde ahi la instalación. 26 Instalación Figura 2.2: Selección CD-ROM como primer dispositivo de inicio 2.2 Proceso de instalación 27 3. Disquetes de Arranque: Si aún ası́ falla y no se consigue iniciar la instalación, queda la posibilidad de arrancar desde disquete siempre y cuando posea una unidad lectora y su distribución de elección aun lo soporta. Debido al tamaño limitado de un disquete (1.44 Mb), el sistema de instalación no puede ser copiado un disquete, ni siquiera un kernel completo con todo el soporte de hardware, entonces se ofrece un conjunto de imagenes, unas con soporte particular de software, con drivers adicionales y cada una con una caracteristica diferente, como el medio de instalación tanto local como remota (cdrom, hd, network) y soporte de hardware en el equipo (usb, pcmcia). Primero es necesario escoger una imagen de disquete indicada para las condiciones de instalación. En el directorio images (install) se encuentra una serie de imágenes: boot.img: Imagen de inicio estándar. cdrom.img: Instalación estándar desde CD-ROM. network.img (bootnet.img): Instalación por red usando los protocolos FTP, NFS o HTTP pcmcia.img: Instalación en portátiles con tarjetas PCMCIA. La fuente puede ser CD-ROM o disco duro. network_drivers.img: Drivers para tarjegas de Red Debian necesita al menos dos disquetes para iniciar la instalación: el rescue y el root. rescue.bin: Disquete de arranque. root.bin: Sistema instalador. sbm.bin: Smart Boot Manager, arranque genérico. bf24.bin: Disquete de arranqe con kernel 2.4. Slackware tambien requiere un grupo de disquetes para iniciar la instalación. Las imágenes de boot terminadas en la letra ı̈”son para soporte de canales IDE, mientras que las terminadas en la letra ”s”son para dispositivos SCSI. Algunos ejemplos representativos y quizá los mas importantes son: 28 Instalación bare.i: Estándar con soporte IDE incluido ATAPI/CD-ROM. usb.i: Adiciona al bare.i el soporta USB. scsi.s: Instalación con soporte SCSI (casi todos). iomega.s: Con soporte SCSI sobre paralelo de dispositivos IOMEGA. Las imágenes de ıroot son: install.1,2: Discos de Instalación estándar de Slackware. pcmcia.dsk: Disco adicional para soporte de portátiles. network.dsk: Disco adicional para soporte de dispositivos de red. Estas dos últimas distribuciones ofrecen una imagen que puede obviar todas las anteriores imagenes mencionadas : sbootmgr.dsk que al iniciar por la unidad de disquete, permite seleccionar posteriormente entre varios dispositivos para el arranque como el cdrom o el disco duro haciendo las cosas extremadamente simples. Para hacer el disco de arranque se introduce un disquete de 3.5 pulgadas sin errores en la unidad. Si esta usando MS-DOS/Windows, en el directorio dosutils del CD-ROM, se encuentra el programa rawrite.exe que se utiliza de la siguiente forma: C:\> d: D:\> cd \dosutils D:\dosutils> rawrite Enter disk image source file name: ..\images\laimgn.img Enter target diskette drive: a: Please insert a formatted diskette into drive A: and press --ENTER-- : [Enter] D:\dosutils> o en una sola lı́nea de comandos D:\DOSUTILS>rawrite -f ..\images\laimgn.img -d a: 2.2 Proceso de instalación 29 Es recomendable realizar esto desde el modo DOS, ya que desde una consola MS-DOS de Windows pueden presentarse problemas. Si no desea salirse a DOS es recomendable usar rawritewin.exe el cual realiza la misma tarea desde una ventana(ver figura 2.3). Figura 2.3: Copiando disco de arranque desde Windows Si se encuentra en linux basta con la siguiente linea de comandos para transferir la imagen al disquete. # dd if=laimgn.img of=/dev/fd0 Las últimas generaciones de distribuciones ya no ofrecen imágenes de disquetes por su limitada capacidad y a cambio ofrecen una imagen de un CD de inicio boot.iso que permite escoger otras opciones de medios de instalación como disco duro o medios remotos usando de protocolos como ftp o http. 4. Autoboot: Si se utiliza MS-DOS/Windows-9x, y se cuenta con una distribución que ofrezca esta opcion, se debe primero salir de la interfaz gráfica. Una vez se esta en modo DOS, en la unidad de CD-ROM se encuentra el directorio DOSUTILS y desde allı́ se ejecuta el programa AUTOBOOT.BAT. Con esta orden se iniciará Linux directamente desde el CD-ROM y comenzará la instalación. Es posible que desde DOS no tenga soporte para CD-ROM, entonces antes de ir a modo DOS copie el archivo AUTOBOOT.BAT y el directorio AUTOBOOT a un un directorio temporal de su disco duro y desde ahı́ ya podrá arrancar la instalación 30 Instalación 2.2.3. Pasos a seguir Recopilando las instalaciones de todos los sistemas operativos, se puede observar que la información necesaria y las tareas a realizar son en gran parte las mismas. En algunos sistemas operativos, el instalador toma desiciones por el usuario haciendo la interacción mas sencilla, pero por supuesto, su potencial es mas limitado. La secuencia que vamos a presentar es : Sistema • Teclado: Español • Paı́s: España • Huso horario: GMT-5 • Teclado: Español Hardware • Impresora: Sin Impresora • Ratón o Glide: USB botones genérico • Tarjeta de sonido • Interfaz gráfica: VESA Genérica Redes e Internet • Red - lan - inhalámbrica Seguridad • Nivel de seguridad: Estándar • Cortafuegos: Inhabilitado Arranque • Cargador de Arranque: GRUB en /dev/sda 2.2 Proceso de instalación 31 • Servicios: 40 activados de 56 registrados Una vez ha comenzado la instalación es cuestión de seguir cada paso que indica el computador. Hay dos posibilidades de interfaz: una gráfica (por defecto) y otra en texto, pero ambas son equivalentes. En este texto solo se presentarán las pantallas gráficas en X11. Si se tiene problemas para la instalación gráfica, ya sea porque su tarjeta no cumple con el estándar VESA o por cualquier otra razón, el instalador entrará por defecto al modo texto. Se puede intentar un modo gráfico de baja resolución, presionando en el inicio [F1], para mas opciones y escribiendo en la pantalla de presentación “vgalo” o la simple consola de texto escribiendo “text” y ası́ se comenzará la instalación en el modo escogido. boot: text La primera pantalla muestra DrakX: la instalación gráfica de Skina GNU/Linux Linux. A la izquierda se muestra la secuencia de tareas a seguir, divididas en dos grandes grupos: instalación y configuración; a la derecha se presenta el proceso actual con botones en la parte inferior que siempre incluyen una ayuda y el avanzar a la siguiente etapa. En algunas pantallas también se presenta el botón de [Avanzado] para opciones de mas alto nivel. La instalación se ha simplificado radicalmente comparada con versiones anteriores, aunque también ha perdido algunas caracterı́sticas llamativas como la posibilidad de seleccionar independientemente los pasos y los temas de la presentación. A continuación se pregunta por el lenguaje que se desea usar durante la presentación. Por defecto se sugiere el Inglés, pero se permite realizarla en Castellano (Español), el cual es ofrecido con varios regionalismos. (figura 2.4). Una vez se escoge el idioma se presenta la licencia de Skina GNU/Linux . Es prudente y aconsejable leer con detenimiento esta licencia, en ella se expresan los derechos y deberes que tiene la casa matriz productora de la distribución y el usuario. Una vez se ha leı́do la licencia el sistema procede a detectar los dispositivos de almacenamiento SCSI e IDE. DrakX puede instalar el soporte para la mayorı́a de 32 Instalación Figura 2.4: Escogiendo un lenguaje para la instalación dispositivos de forma automática, en caso que no lo logre preguntará por los parámetros del dispositivo: posiblemente la dirección de entrada/salida y la interrupción que utiliza. Ahora se procede con la selección de dispositivos de entrada y salida iniciando por la escogencia de el teclado (los ratones y otros dispositivos apuntadores son detectados automaticamente). Se busca el modelo que corresponde al que se encuentra usando. Para este caso se escogerá el teclado Español (figura 2.5). También se da otra opción de configuración: Estadounidense (con acentos), pero si se desea uno diferente a los ofrecidos por defecto, se presiona [Mas] para ver las otras opciones de configuración de teclado. Una vez se ha escogido el teclado, se pregunta por el nivel de seguridad del sistema. Existen tres opciones de un extremo a otro. La seguridad Baja esta orientada a estaciones de trabajo en redes locales, mientras que la opción Alta es recomendada para servidores, i.e. máquinas con muchos usuarios. Se escoge Media/Alta, aunque la última, un usuario anterior de Linux/Unix puede encontrarla un poco restrictiva. 2.2 Proceso de instalación 33 Figura 2.5: Seleccionando modelo y distribución del teclado 2.2.4. Creando las particiones para Linux A continuación, el sistema presenta la pantalla de selección del Sistema de Archivos. DrakX usa la herramienta gráfica diskdrake para realizar esta labor. La gráfica muestra, en colores, la forma en que se encuentra particionado el disco duro: rojo para ext2, verde para Swap, azul para FAT (Windows) y blanco para vacı́o. Al seleccionar una partición en la parte inferior se muestran las posibles operaciones con ella (izquierda) y la información de su estado actual (derecha). En la parte inferior se encuentra el botón de [Asignación automática], el cual realiza la tarea por el usuario y esta recomendado por el autor. Aquı́ se prefiere realizarlo de forma manual ya que se quiere controlar el tamaño de las particiones. Todos los cambios que se hagan no serán guardados hasta que se seleccione [Hecho ]. Si en cualquier momento se descubre que se ha cometido un error grave se podrá recuperar el estado inicial presionando en la derecha la opción [Mas]→[Recargar] y este reiniciará el proceso. Una vez que se haya seleccionado [Hecho] y aceptado los cambios no existe posibilidad de recuperar el estado inicial (figura 2.6). Si se ha seguido las instrucciones de esta guı́a existirá una primera partición para 34 Instalación Figura 2.6: Editando particiones con Diskdrake DOS/Windows (Azul) y un espacio vacı́o a continuación. Si este es el caso, se selecciona el espacio vacı́o y a la izquierda la opción [Crear] para añadir una nueva partición, diskdrake presentará una caja de dialogo con la siguiente información (ver figura 2.7): Sector de comienzo: el cual se deja en el valor por defecto, a menos que se quiera la partición en un lugar fı́sico particular en el disco. El tamaño de la partición: en donde se introduce el valor en Megabytes de la partición. Este valor puede ser escrito o usar la barra de scroll. Tipo de sistema de archivos: Linux native para los archivos de Linux y Linux swap para la partición de intercambio Punto de montaje: El directorio donde sera asignado la partición. Si es una partición dedicada a todo el sistema de archivos de Linux habrá que introducir el sı́mbolo “/” que significa el directorio raı́z. La partición de intercambio no tiene punto de montaje. 2.2 Proceso de instalación 35 Preferencia: Extendida o Primaria si se desea una partición lógica o una primaria Figura 2.7: Agregar una partición Entonces se crea primero la partición de intercambio como estaba planeado: se pulsa sobre la partición vacı́a, y sobre [Crear], no se introduce ningún punto de montaje; el tamaño será lo que se desee, seguramente 128 Mbytes como mı́nimo y el tipo será Linux swap. Como se menciona anteriormente, el tamaño de 128 Mbytes para la partición de intercambio es solamente tentativo, dependiendo del uso del sistema y de la memoria RAM que tenga. Se presiona [Aceptar] para continuar. Y se observa la nueva partición verde. Se presiona nuevamente lo que resta del disco en blanco y se procede a [Crear]. El punto de montaje es “/” en donde ira todos los archivos de Linux; de tamaño se toma todo el espacio restante y por supuesto el tipo será Linux Native. Después de [Aceptar] se tiene completamente copado el disco con tres particiones y se encuentra listo para continuar seleccionando [Hecho]. Una vez creadas las particiones, el proceso instalación continua y la siguiente pantalla pregunta que particiones formateará, estas particiones serán las que contengan el sistema de archivos de Linux. Es posible que se haya creado algunas de las particiones como lógicas y no primarias. En este caso hay que recordar que estas se llamarán, por ejemplo /dev/hda5 o /dev/hda6. La lista de particiones muestra el nombre, el punto de montaje y el tipo de formato y se seleccionan ambas presionando el botón a su izquierda. Si presiona el botón de [Avanzado] tendrá la opcione de escoger Verificar el disco en busca de bloques malos si lo desea (figura 2.8). 36 Instalación Figura 2.8: Formato de particiones 2.2.5. Selección de paquetes A continuación se muestra una lista de componentes a instalar. Para alguien novato puede presentar un problema porque no sabrá lo que es la mayorı́a de los paquetes. No hay de que preocuparse, los componentes básicos necesarios para el funcionamiento de Linux se instalan automáticamente, lo que se puede seleccionar ahora son grupos de programas relacionados. La recomendación en este punto es mixta: yo personalmente, instalo todo lo que el espacio en disco me permita y gasto mucho tiempo de mi vida investigando que tengo y para que sirve, pero aun ası́ no uso ni el 30 % de lo instalado: otros recomiendan que instale solamente lo necesario ya que mas adelante habrá tiempo de instalar y desinstalar los paquetes: Ambas posiciones tienen ventajas y desventajas Ud. decide cual es su estilo o su necesidad (figura 2.9). A continuación se presenta una descripción de los diferentes grupos y paquetes: ? Estación de Trabajo • Estación de trabajo de oficina: Herramientas de productividad personal (Abiword, Koffice, PIM’s, . . . ) • Estación de Juegos: Juegos tanto en consola como para X11 • Estación de Multimedios: Soporte para gráficas, sonido y vı́deo • Estación de Internet: Navegadores, correo, etc. 2.2 Proceso de instalación 37 Figura 2.9: Seleccionando componentes a instalar • Computadora de red (Cliente): Clientes de protocolos de red (samba, ssh, telnet, ftp, . . . ) • Configuración: Herramientas de configuración de sistema (DrakConf, linuxconf, webmin, . . . ) • Estación de trabajo cientı́fica: Herramientas de para trabajo cientı́fico (octave, Xoscope, . . . ) • Herramientas para consola: Shells y filtros • Desarrollo: Herramientas y librerı́as para el desarrollo de programas (Compiladores, depuradores, . . . ) • Documentación: Howtos y documentación general • LSB: Linux Standard Base ? Servidor • Servidor Web/FTP: servidor de paginas WWW (Apache) y servidor de ftp (file transfer protocol) anónimo 38 Instalación • Servidor Correo/Groupware/Noticias: Servidores de comunicación como correo y noticias (News) • Servidor Bases de Datos: PosgreSQL y MySQL • Servidor DNS/NIS: Servidor de Nombres Domain Name Server Y Paginas amarillas Network Information System • Computadora servidor de red: Servidores de red (telnet, finger, rwho, ssh, ...) ? Entorno Gráfico • KDE: Interfaz de escritorio KDE basado en Qt • Gnome: Interfaz de escritorio de Gnome, basado en GTK • Otros entornos gráficos: Escritorios Enlightenment, Xfce, blackbox y Windowmaker En la parte inferior se ofrece la posibilidad de seleccionar paquetes individualmente. Esta opción se recomienda solo para usuarios con cierta experiencia ya que puede ser larga y tediosa: Skina GNU/Linux K2.6 tiene mas de 1500 paquetes en su distribución GNU/GPL (figura 2.10). Al final de este libro, en el apéndice ?? se tiene una tabla con la descripción de cada paquete incluido en esta versión. La opción de instalarlo todo solo se recomienda siempre y cuando se tenga suficiente disco duro: alrededor de 3.5 Gbytes. El sistema realiza una comprobación de espacio y pedirá confirmación del tamaño de la instalación. Una vez escogidos los paquetes el proceso de instalación dará inicio. La pantalla de instalación indicará el tiempo que ha transcurrido, el tiempo total estimado y el tiempo restante estimado (figura 2.11). Es posible que si indica la existencia de otros CD-ROM, estos serán solicitados durante el proceso. Establecer la clave del root y otros usuarios A continuación hay que introducir una palabra clave o password para el usuario root. Se introduce una clave dos veces, la segunda es de confirmación. No hay que 2.2 Proceso de instalación Figura 2.10: Seleccionando paquetes individuales a instalar Figura 2.11: Progreso del proceso de instalación 39 40 Instalación preocuparse si no se ve lo que se escribe, se hace de esta forma para que nadie pueda ver en la pantalla la clave (figura 2.12). El root es el usuario con todos los privilegios en una máquina Linux; es aquella persona, que puede configurar el sistema y adicionar otros usuarios menos “privilegiados”. Figura 2.12: Password de root A propósito, es también recomendado, tal como lo sugiere la siguiente pantalla, adicionar un usuario corriente, por decir invitado o su usuario favorito, para ser usado cotidianamente en vez de root. El usuario root solo debe usarse para labores de administración y nunca debe usarse como una cuenta corriente, es muy peligroso, ya que los errores de root tienen consecuencias para todos los usuarios. Skina GNU/Linux tiene la opción de escoger un usuario para que el sistema entre con el, siempre que se encienda sin necesidad de ingresar la clave. En el modo experto esta opción no se ofrece, mientras que si se hace en el recomendado, aunque siempre se puede configurar esta caracterı́stica después de instalado. Esta elección es recomendada para cuando se esta migrando o si la máquina que se esta instalando puede ser usada por otras personas y no se desea tener una cuenta para cada una de ellas. Es muy importante que no olvidar estas claves, si lo hace en teorı́a no se podrán recuperar (en la práctica existen varios ”trucos”:-) ). Mas adelante se discutirá mas detalladamente, sobre root, las claves y los usuarios. Una vez adicionado los usuarios presione [Hecho] para continuar. 2.2 Proceso de instalación 41 En este momento, el proceso de instalación muestra una pantalla con el resumen de la configuración hecha hasta ahora y algunos valores tomados por defecto. Para configurar cualquiera de ellos basta con presionar con el ratón el botón asociado. Figura 2.13: Centro de Configuración El primero a cambiar es la zona horaria. En la caja de dialogo que se muestra esta una lista de jerárquica en forma de árbol de Continente/Ciudad que rige las diferentes zonas horarias en el mundo. Si no se encuentra la cuidad, se escoge una que tenga la misma hora de su ubicación, por ejemplo América/Bogotá para toda Colombia (figura 2.14). Esta selección es muy importante para las correcciones horarios de los paı́ses con estaciones. A la pregunta El reloj de su computador usa GMT? se contestará negativamente. Configuración de la Red La configuración de redes se inicia con la autodetección de dispositivos. Se solicita aprobación para realizar este proceso ya que puede congelar la máquina. A continuación se presenta el menú de elección del tipo de conexión que se posee. Estos 42 Instalación Figura 2.14: Escogencia de la zona horaria son: Conexión por Módem: Modulador/demodulador para conectarse vı́a telefónica con el proveedor de servicio de acceso a Internet Conexión RDSI: Igual que el módem pero usando lı́neas digitales Conexión DSL o ADSL: (Asymmetric Digital Subscriber Loop/Line) Nuevo tipo de conexión telefónica hasta de 1.5 Mbps Conexión por cable: Conexión por fibra óptica, la misma de la TV por cable Conexión a la red local: Conexión a red local Conexión Inalámbrica: Conexión a una red inalámbrica (Wireless) Si se esta en una red local, y se tiene una tarjeta de red, el sistema intenta autodetectarla y confirma si es la única tarjeta. Como siempre, si no se tiene éxito en la autodetección, mostrará una lista de los dispositivos soportados para que el usuario escoja la correcta. 2.2 Proceso de instalación 43 Mucha de la información necesaria para la red local debe ser proveida por el administrador de sistema o el departamento de soporte. Es posible que la red local en la que se encuentra use DHCP (Dynamic Host Configuration Protocol) de tal forma que un servidor remoto proveerá toda la información necesaria al computador. De lo contrario será necesario introducir los datos manualmente y pedir que active la interfaz de red en el momento del boot (figura 2.15). Todos los valores relevantes a la conexión son: Nombre de su computador: nombre y dominio (ejm: irulan.skina.com.co). El número IP: Es un número único dentro de la red, asignado a su máquina. Este consta de cuatro números entre 1 y 254 separados por punto. (ejm: 192.168.1.12). Atención, este número no puede ser escogido arbitrariamente ya que puede entrar en conflicto con otros computadores de la red5 . Número IP de Máscara, Red y Broadcast: Estos números son estándar de las redes y el instalador los trata de asignar automáticamente. Máscara son todos 255 y terminado en 0, Red es el número IP de la máquina pero terminado en cero y Broadcast es terminado en 255. A menos que tenga una buena razón para cambiar estos valores, no lo haga Número IP del Portal, Pasarela o Puerta de Enlace (Gateway): Usualmente existe un portal a través del cual se sale de la red local. Se acostumbra utilizar el mismo número del servidor terminado en 254 o en 1. (ejm: 192.168.1.1) pero no es una ley que se cumpla siempre. Dispositivo de pasarela de red: Usualmente el dispositivo por el cual se conecta a la pasarela (ejm: eth0). Número IP del DNS (Servidor de nombres): La red local debe tener un computador que traduce números IP a nombres reales y viceversa, conocido como 5 Estos valores de red aquı́ mostrados son Clase C o sea red Local, no los use en su instalación, son solo para ilustrar 44 Instalación servidor de nombres. Este es necesario para que las diferentes máquinas se pueden encontrar entre si. Por supuesto puede usarse mas de uno como servidores redundantes. Proxies HTTP/FTP: Cuando se usa una máquina para negociar las conexiones con Internet, esta se conoce como Proxy. Esta almacena temporalmente todo lo que transita por ella poniéndolo a disposición de sus compañeros en la red local y por lo tanto acelerando la navegación. Se suelen dar los valores de la dirección IP y del puerto para el acceso (ejm: http://192.168.1.1:3128) Es importante nuevamente resaltar que tanto los valores como el nombre no pueden ser asignados arbitrariamente, sino que son dados por el administrador de red, ya sea local o globalmente en Internet y muchos de estos son asignados por defecto por el sistema o tienen valores que siguen estándares universales. Figura 2.15: Configuración de la red local Configuración de la conexión a Internet La otra opción es la conexión usando módem, la cual es sin temor a dudas, la mas popular. La configuración de la conexión pregunta si intenta encontrar el módem y si 2.2 Proceso de instalación 45 no tiene éxito, preguntará el puerto serial al cual esta conectado. Tal como se explico anteriormente, este dispositivo sera /dev/ttySx, muy posiblemente el /dev/ttyS3 correspondiente al COM4 en DOS/Windows. Las caracterı́sticas de la conexión se piden a continuación en una caja de dialogo (figura 2.16). Nombre de la conexión para identificar esta conexión Número de teléfono a cual se va a llamar ID de conexión Su identificación de usuario Contraseña Su palabra clave Autenticación El tipo de autenticación. Por defecto es PAP Nombre del dominio La extensión al nombre, ej: (skina.com.co). No requerido Primer servidor DNS Servidor de Nombres primario. No requerido pero recomendado Segundo servidor DNS Servidor de Nombres secundario. No requerido pero recomendado No pierda su tiempo si tiene un winmodem ya que esta imitación de módem reemplaza el hardware real por el software del controlador convirtiéndolos en dispositivos muy especiales, inclusive algunas compañı́as los llaman softmodems. Los mas antiguos tienen chips de marca PCtel y Rockwell pero ahora la diversidad es grande e incluye también productos de Intel, Motorola, Lucent, IBM y 3Com, todos incompatibles entre ellos. La nomenclatura también es bastante confusa, hay módems HSP (Host Signal Processor), DSP (Digital Signal Processor), HCF (Host Controlled Family), HSF (Host Signal Family), todos queriendo decir que es el CPU de la máquina quien realmente hace el trabajo. Por supuesto, estos “conversores” análogo/digital son menos costosos pero tienen un valor negativo en el desempeño del equipo. La mayorı́a de estos controladores ya han sido portados a Linux pero aún 46 Instalación Figura 2.16: Configuración de la conexión por módem no tienen la estabilidad suficiente para ser incluidos en el kernel (al menos en el 2.4), ası́ que se debe confiar en los disponibles en Internet. Remı́tase al capitulo ?? para instalar nuevo hardware. Configuración de la impresora El soporte para impresión se incluye por defecto en la instalación. Skina GNU/Linux Linux solo incluye el nuevo sistema abierto de impresión IPP (Internet Printing Protocol) en la forma de su implementación libre: CUPS (Sistema de Impresión común de Unix) dejando a un lado el sistema tradicional estándar Unix lpr (Line printer) usado anteriormente por todas las distribuciones y mantenido en algunas pocas. En la conexión de la impresora se escoge una impresora local. Linux puede utilizar impresoras conectadas al computador que se esta utilizando (paralelo, serial o USB) o impresoras remotas en otros computadores, utilizando diversos protocolos: LPR (Unix), SMB (MS-Windows), NCP (Novell Netware), CUPS o IPP (Internet Printing Protocol) (figura 2.17). 2.2 Proceso de instalación 47 La primera pregunta a continuación es el Nombre de la impresora el cual tiene por defecto lp, legado del sistema lpr, para el cual deberı́a dejarse de esta forma. Si desea otro nombre, adicionelo usando el carácter pipe “|”. Por ejemplo lp|laser. La descripción y la localización de la impresora es útil para su anuncio en la red. Figura 2.17: Selección del nombre de la impresora Como se escogió una impresora local, a continuación se detecta el dispositivo donde está conectada y el modelo de la misma. Si no se tiene éxito, se pregunta al usuario por el dispositivo y el modelo. Si no se está seguro de la respuesta se sugiere revisar la sección dedicada a la descripción del hardware del PC bajo el punto de vista de Linux. Normalmente la respuesta es /dev/lp0 como es sugerido. También se presentará ahora una lista de impresoras, se selecciona la correcta o la que más se parezca al modelo a usar (figura 2.18). Una vez configurada la impresora se presentará una pantalla de confirmación de la configuración con la impresión de una página de prueba. Si se está conforme con esta configuración se escoge [Hecho] y se presiona [Aceptar]. 2.2.6. Servicios en el Arranque Todo Linux al iniciar, lanza varios programas que proveen servicios al sistema y al usuarios conocidos como daemons o servidores silenciosos y mal traducidos se conocen como demonios. Estos programas de servicios son muy livianos, pero es 48 Instalación Figura 2.18: Modelo de la impresora inútil e inseguro tenerlos corriendo si no se van a usar. En la siguiente pantalla se escogen cuales van a ser lanzados al inicio del sistema. Al colocar el ratón sobre el nombre se abre una ventana de ayuda que describe que hace cada uno. Se van a mencionar solo algunos de los mas importantes para tener en cuenta. acpi: Sistema moderno de ahorro de energı́a. alsa: Sistema avanzado de Sonido de Linux. apm: Sistema tradicional de ahorro de energı́a. autofs: Controla el montaje automático de dispositivos extraibles como el CDROM y el disquete. crond: Ejecuta programas con una frecuencia o fechas programadas. cupsd: El programa que maneja las tareas de impresión CUPS. cups-lpr: Servicio estándar lpr proveido por CUPS. drakfont: Mantiene actualizadas las fuentes para X-Window. 2.2 Proceso de instalación httpd: Apache servidor de páginas WWW y programas CGI. kudzu: Detección y configuración automática de hardware. lpd: El programa que maneja las tareas de impresión lpr. named: El programa de servidor de nombres (DNS). netfs: Monta los compartidos de red . network: Activa y desactiva las interfaces de red. pcmcia: Mantiene los dispositivos PCMCIA en los portátiles. portmap: Gestor de conexiones RPC usados por otros servicios. postfix: Agente de transporte de correo o MTA (Mail Transport Agent). postgresql: Servicio para la base de datos PostgreSQL. proftp: El servidor de FTP preferido por Skina GNU/Linux . smb: Servicio de conexión a MS-Windows (Samba). snmpd: Servicio de snmp (Simple Network Management Protocol). squid: El muy conocido proxy-cache. sound: Activa y desactiva dispositivos de sonido. sshd: Acepta conexiones usando Secure Shell. syslog: Sistema para mantener bitácoras. telnet: Sistema tradicional de conexión remota. webmin: Servicio de administración remota via http. xfs: Servidor de fuentes para X-Window. xinetd: Activa otros demonios y servicios como rsh, rlogin, etc. 49 50 Instalación Instalando LILO Como se mencionó en la sección anterior, LILO (Linux Loader) es un pequeño programa que se instala usualmente en el MBR y que permite seleccionar que sistema operativo a arrancar. Este es necesario aún cuando Linux sea el único sistema en el computador. A continuación se pregunta por opciones de su instalación (figura 2.19), en su orden: El tipo de sistema a instalar ya sea LILO grafico o LILO en texto y Grub, un programa alternativo de seleccion de sistema operativo. Grub: Opción alterna a LILO ofrecida por Skina GNU/Linux LILO con menú gráfico: La nueva versión bastante llamativa LILO con menú texto: Es posible que el menú gráfico no funcione Como dispositivo de arranque es recomendado instalarlo en el MBR y para esto se selecciona /dev/hda. No seleccione /dev/hda1 porque seguramente destruirá el sistema de archivos de Windows/DOS. Por defecto LILO configura la Demora antes de arrancar la imagen por omisión en 10 segundos y Estos pueden ser cambiados a su gusto. Si se presiona [Avanzada] se obtiene una extensión de opciones, que incluye, el uso de lba el cual es recomendado para discos duros nuevos, pero algunos BIOS no lo soportan; el modo compacto se ignora ya que solo es necesarios en casos muy particulares; el modo de vı́deo Normal; si se quiere borra el /tmp al inicio el cual es recomendado y finalmente la memoria RAM del sistema. Este ultimo valor puede ser peligroso en algunas tarjetas madres que usan parte de la memoria RAM para el vı́deo, entonces una máquina con 64 Mbytes, realmente tiene 56 porque ha usado 8 Mbytes para el vı́deo. Si escoge un valor equivocado por exceso, su Linux no arrancara. Sea cuidadoso al escoger un modo de vı́deo de frame buffer, i.e. diferente a Normal, puede ser que su tarjeta de vı́deo no lo soporte. El LILO instala por defecto una 2.2 Proceso de instalación 51 Figura 2.19: Instalación del LILO opción de vı́deo estándar por seguridad. En caso de tener problema con su escogencia use linux-nonfb para entrar sin problema. Se presiona [Aceptar] y la pantalla muestra las opciones de los diferentes modos de arranque de LILO que incluye los diferentes sistemas operativos presentes en el disco. Si tiene mas usuarios en su máquina es posible que desee que este arranque por Windows por defecto y solo cuando se escoja en el boot, arranque por Linux. Para realizar esto se señala dos y se presiona [Modificar]. En la pantalla se activa el botón de Sistema por defecto Por omisión. Se presiona [Aceptar]. Una vez se esta satisfecho con la configuración de lilo se presión [Hecho]. Ya no se pregunta si se desea crear un disco de arranque. Es extremadamente útil para situaciones de emergencia en las que no sea posible iniciar Linux por métodos “normales”. Configuración de X-window El sistema gráfico estándar en las máquinas UNIX y particularmente en Linux, es X-window, y ahora se procede a su instalación. El sistema intentará detectar la 52 Instalación tarjeta de vı́deo y el monitor presente en el equipo. En general se tiene éxito en la auto-detección, pero de no ser ası́ siempre se puede escoger de la lista de dispositivos proveida por el sistema. Existe una gran cantidad de tarjeta soportadas por XFree86 (ahora Xorg), y por lo tanto la lista de estos dispositivos es extensa (alrededor de 1000). Si la tarjeta de el ordenador no se encuentra en ella, y definitivamente no esta soportada, se puede escoger Unsupported VGA compatible o Generic VGA Compatible, aunque estas solo proveerán 16 colores en una resolución máxima de 800x600 usando estándar VESA-1 de VGA16 (figura 2.20). Con algunas tarjetas no soportadas tambien puede escogerse el despliegue gráfico a través de Framebuffer (FBDEV) usando el estándar VESA-2, pero no es recomendado por su bajo desempeño. Figura 2.20: Configuración de tarjeta de vı́deo para X-window La lista de monitores es también extensa, y pero posible que no exista el que se posee (figura 2.21). Para esto existen varias opciones estándar con la capacidad máxima del monitor, por ejemplo 1024x768 a 70 MHz. Si se desconoce esta caracterı́stica, aun es posible escoger dos opciones genéricas: Standard VGA : Monitores algo obsoletos que soportan VGA a frecuencias 2.2 Proceso de instalación 53 predeterminadas Super VGA: Monitores que soportan SVGA a diferentes frecuencias (Multisync) Se recomienda ser conservador en esta selección. Si escoge erróneamente la frecuencia de refresco y su monitor no esta protegido es posible que puede dañarlo permanentemente. Todos los monitores modernos se apagan automáticamente apenas se trata de levantar una frecuencia mayor a la soportada. Figura 2.21: Configuración de monitor para X-window Con el monitor, la tarjeta y la memoria de vı́deo es posible determinar tanto la resolución como la cantidad de colores (profundidad). El instalador sugiere una combinación, pero esta puede ser cambiada al gusto del usuario. Al presionar [Aceptar] se pregunta si se desea probar la configuración. El autor recomienda que se acepte con cautela, ya que es posible que su tarjeta de vı́deo se infarte y tenga que reiniciar todo nuevamente. Una vez se realiza la prueba, aparece la pantalla de confirmación en donde se puede cambiar toda la configuración, tarjeta, monitor, resolución, etc. Una vez se considere 54 Instalación satisfactoria la configuración se presiona [Hecho] Puede también responder afirmativamente a la pregunta si se desea que el computador lance automáticamente X al iniciar. Una vez se termina este proceso, se presiona [Siguiente] y se pregunta si se desean instalar actualizaciones desde la red, cuestión muy conveniente por seguridad y finalmente se presenta la pantalla de felicitaciones, se tiene un Mandrake Linux instalado, y se prepara para reiniciar. El disco de instalación sera expulsado y la máquina reiniciada una vez se presione [Reiniciar]. Capı́tulo 3 Conceptos Básicos 3.1. 3.1.1. Comandos de Linux Comandos básicos Los comandos son esencialmente los mismos que cualquier sistema UNIX. En la tablas 3.1 y 3.2 se tiene la lista de comandos mas frecuentes. En la tabla 3.3 se tiene una lista de equivalencias entre comandos Unix/Linux y comandos DOS. 3.1.2. Comandos en background Linux, como cualquier sistema Unix, puede ejecutar varias tareas al mismo tiempo. En sistemas monoprocesador, se asigna un determinado tiempo a cada tarea de manera que, al usuario, le parece que se ejecutan al mismo tiempo. Para ejecutar un programa en background, basta con poner el signo ampersand (&) al término de la lı́nea de comandos (ver sección 3.1.3). Por ejemplo, si se quisiera copiar el directorio /usr/src/linux al directorio /tmp: #cp -r /usr/src/linux /tmp & 55 56 Conceptos Básicos Comando/Sintaxis Descripción Ejemplos cat fich1 [. . . fichN] Concatena y muestra un archivos cat /etc/passwd cd [dir] Cambia de directorio cd /tmp chmod permisos fich Cambia los permisos de un archivo chmod +x miscript chown usuario:grupo fich Cambia el dueño un archivo chown nobody miscript cp fich1. . . fichN dir Copia archivos cp foo foo.backup diff [-e]arch1 arch2 Encuentra diferencia entre archivos diff foo.c newfoo.c du [-sabr] fich Reporta el tamaño del directorio du -s /home/∗ file arch Muestra el tipo de un archivo file arc desconocido find dir test acción Encuentra archivos. find . -name “∗.bak” -print grep [-cilnv] expr archivos Busca patrones en archivos grep mike /etc/passwd head -count fich Muestra el inicio de un archivo head prog1.c mkdir dir Crea un directorio. mkdir temp mv fich1 . . . fichN dir Mueve un archivo(s) a un directorio mv a.out prog1 mv fich1 fich2 Renombra un archivo. mv ∗.c prog dir less / more fich(s) Visualiza página a página un archivo. more muy largo.c less acepta comandos vi. less muy largo.c ln [-s] fich acceso Crea un acceso directo a un archivo ln -s /users/mike/.profile . ls Lista el contenido del directorio ls -l /usr/bin pwd Muestra la ruta del directorio actual pwd rm fich Borra un fichero. rm foo.c rm -r dir Borra todo un directorio rm -rf prog dir rmdir dir Borra un directorio vacı́o rmdir prog dir tail -count fich Muestra el final de un archivo tail prog1.c vi fich Edita un archivo. vi .profile cat dict1 dict2 > dict Cuadro 3.1: Comandos Linux/Unix de manipulación de archivos y directorios Sintaxis Descripción Ejemplos at [-lr] Ejecuta un comando mas tarde at 6pm Friday < script cal [[mes] año] Muestra un calendario del mes/año cal 1 2025 date [mdhm] Muestra la hora y la fecha date echo string Escribe mensaje en la salida estándar echo “Hola mundo” finger usuario Muestra información general sobre finger [email protected] hora [fecha] . [+Form] un usuario en la red id Número id de un usuario id usuario kill [-señal] PID Matar un proceso kill 1234 man comando Ayuda del comando especificado man gcc passwd Cambia la contraseña. passwd ps [axiu] Muestra información sobre los procesos ps -ux que se están ejecutando en el sistema ps -ef Muestra información de los usuarios who man -k printer who / rwho conectados al sistema. Cuadro 3.2: Comandos Linux/Unix más frecuentes 3.1 Comandos de Linux 57 Linux DOS Significado cat type Ver contenido de un archivo. cd, chdir cd, chdir Cambio el directorio en curso. chmod attrib Cambia los atributos. clear cls Borra la pantalla. ls dir Ver contenido de directorio. mkdir md, mkdir Creación de subdirectorio. more more Muestra un archivo pantalla por pantalla. mv move Mover un archivo o directorio. rmdir rd, rmdir Eliminación de directorio. rm -r deltree Eliminación de directorio y su contenido. Cuadro 3.3: Equivalencia de comandos Linux/Unix y DOS Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante un mensaje: # [Done] cp -r /usr/src/linux /tmp Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se podrı́a pasarlo a background de la siguiente manera: 1. Se suspende la ejecución del programa, pulsando Ctrl+Z. 2. Se ejecutamos la siguiente orden: bg 3.1.3. Interprete de comandos: Shell El interprete de comandos es el programa que recibe lo que se escribe en la terminal y lo convierte en instrucciones para el sistema operativo. En otras palabras el objetivo de cualquier intérprete de comandos es ejecutar los programas que el usuario teclea en el prompt del mismo. El prompt es una indicación que muestra el intérprete para anunciar que espera una orden del usuario. Cuando el usuario escribe una orden, el intérprete ejecuta dicha orden. En dicha orden, 58 Conceptos Básicos puede haber programas internos o externos: Los programas internos son aquellos que vienen incorporados en el propio intérprete como echo o kill, mientras que los externos son programas separados (ej: aplicaciones de /bin,/usr/bin,. . . ). En el mundo Linux/Unix existen tres grandes familias de Shells como se muestra en la tabla 3.4. Estas se diferencian entre sı́ básicamente en la sintaxis de sus comandos y en la interacción con el usuario. Tipo de Shell Shell estándar Clones libres AT&T Bourne shell sh ash, bash, bash2 Berkeley Ç”shell csh tcsh AT&T Korn shell ksh pdksh, zsh Otros interpretes — esh, gush, nwsh Cuadro 3.4: Interpretes de comandos en Linux/Unix Sintaxis de los comandos Los comandos tienen la siguiente sintaxis: # programa arg1 arg2 ... argn Se observa que, en la “lı́nea de comandos”, se introduce el programa seguido de uno o varios argumentos. Ası́, el intérprete ejecutará el programa con las opciones que se hayan escrito. Cuando se quiere que el comando sea de varias lı́neas, se separa cada lı́nea con el carácter barra invertida “\”. Además, cuando se quiere ejecutar varios comandos en la misma lı́nea, los separa con punto y coma “;”. Por ejemplo: # make modules ; make modules_install En los comandos, también se puede utilizar los comodines (wildcards): El asterisco (∗) es equivalente a uno o más caracteres en el nombre de un archivo. Ejm: ls *.c lista todos los archivos con extensión c. 3.1 Comandos de Linux 59 El signo de interrogación (?) es equivalente a un único carácter. Ejm: ls curso.te? lista el archivo curso.tex completando el último carácter. Un conjunto de caracteres entre corchetes es equivalente a cualquier carácter del conjunto. Ejm: ls curso_linux.t[aeiou]x lista curso linux.tex seleccionando la e del conjunto. . Variables de entorno Una variable de entorno es un nombre asociado a una cadena de caracteres. Dependiendo de la variable, su utilidad puede ser distinta. Algunas son útiles para no tener que escribir muchas opciones al ejecutar un programa, otras las utiliza el propio shell (PATH, PS1,. . . ). La tabla 3.5 muestra la lista de variables más usuales. Variable Descripción DISPLAY Donde aparecen la salidas de X-Windows. HOME Directorio personal. HOSTNAME Nombre de la máquina. MAIL Archivo de correo. PATH Lista de directorios donde buscar los programas. PS1 Prompt. SHELL Intérprete de comandos por defecto. TERM Tipo de terminal. USER Nombre del usuario. Cuadro 3.5: Variables de entorno más usuales La forma de definir una variable de entorno cambia con el interprete de comandos, se muestra tcsh y bash siendo los dos mas populares en el ámbito Linux: bash: export VARIABLE=Valor tcsh: setenv VARIABLE Valor 60 Conceptos Básicos Por ejemplo, para definir el valor de la variable DISPLAY: bash: export DISPLAY=localhost:0.0 tcsh: setenv DISPLAY localhost:0.0 Alias Un alias es un nombre alternativo para un comando. Ası́, en lugar de escribir el comando propiamente dicho, escribirı́amos el alias de dicho comando. Un alias se puede definir por varios motivos, por ejemplo: Dar nombres familiares a comandos comunes: alias md=’mkdir’ Crearı́a un alias para el comando mkdir, similar al de DOS. Dar nombres a comandos largos: alias tbz2=’tar -cv --use-compress-program=bzip2 -f’ Crearı́a un alias para el comando tar para que use el compresor bzip2 en lugar de gzip. Para no tener que escribir todos los alias siempre que entremos al sistema, escribirı́amos dicho alias en el archivo ~/.bash\_profile (ver sección 3.1.3). Redireccionamiento de E/S La filosofı́a de Linux/Unix es en extremo modular. Se prefieren las herramientas pequeñas con tareas puntuales a las meta-herramientas que realizan todo. Para hacer el modelo completo es necesario proveer el medio para ensamblar estas herramientas en estructuras mas complejas. Esto se realiza por medio del redireccionamiento de las entradas y las salidas. Todos los programas tiene por por defecto una entrada estándar (teclado) y dos salidas: la salida estándar (pantalla) y la salida de error (pantalla). En ellos se puede 3.1 Comandos de Linux 61 Figura 3.1: Redirección de Entrada y Salidas sustituir la entrada y salidas estándar por otro dispositivo utilizando los caracteres “<” y “>”, es decir, hacer que se lea un archivo que contenga las opciones a ejecutar y un archivo de salida, respectivamente. Por ejemplo: Entrada: Se desea realizar una transferencia de archivos por ftp automática. Para ello se va a utilizar el programa ncftp con unas determinadas instrucciones preestablecidas. Se crea un archivo entrada con dichas instrucciones: open linuxcol.uniandes.edu.co cd /pub/linux/utils get * quit y se ejecuta el programa: ncftp < entrada . Salida: Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo: 62 Conceptos Básicos ls [iI]* > listado.txt Es importante resaltar que el carácter de redirección de salida “>” destruirá el archivo al cual apunta, si este existe, para ser reemplazado por uno nuevo con los resultados del proceso. Si se desea anexar la información a uno ya existente debe usarse doble carácter “” : Tuberı́as o pipes En la lı́nea de comandos la integración entre diferentes programas se realiza por medio de la re-dirección de las entradas y salidas a través de pipes o tuberı́as. Una tuberı́a o pipe es una combinación de varios comandos que se ejecutan simultáneamente, donde el resultado del primero se envı́a a la entrada del siguiente. Esta tarea se realiza por medio del carácter barra vertical “|”. Por ejemplo si se quiere ver todos los archivos que hay en el directorio /usr/bin, se ejecuta lo siguiente: # ls /usr/bin | more. De este modo, la salida del programa ls (listado de todos los archivos del directorio /usr/bin) irá al programa more (modo paginado, es decir, muestra una pantalla y espera a que se pulse una tecla para mostrar la siguiente). Dentro de esta estructura se han construido una serie de programas conocidos como “filtros” los cuales realizan procesos básicos sobre textos (ver tabla 3.6). Filtros Función sort Ordena las lineas de un texto cut Corta secciones de una linea od Convierte archivos a forma octal u otras paste Une lı́neas de diferentes archivos tac Concatena e imprime archivos invertidos tr Traduce o borra caracteres uniq Remueve lı́neas repetidas wc Cuenta bytes, palabras y lı́neas Cuadro 3.6: Algunos filtros en lı́nea de comandos Linux/Unix 3.1 Comandos de Linux 63 Algunos filtros han llegado a ser tan complejos que son en si, un lenguaje de procesamiento de texto, de búsqueda de patrones, de construcción de scripts, y muchas otras posibilidades. Estas herramientas pasan a ser parte de la siguiente sección. Entre ellos podemos mencionar herramientas tradicionales en Linux/Unix como awk y sed y otras mas modernas como Perl y Python. Programación shell La programación del shell es una de las herramientas mas apreciadas por todos los administradores y muchos usuarios de Linux/Unix ya que permite automatizar tareas complejas, comandos repetitivos y ejecutarlas con un solo llamado al script 1 o hacerlo automáticamente a horas escogidas sin intervención de personas. La programación shell en Unix/Linux es, en cierto sentido, equivalente a crear archivos .BAT en DOS, conservando las distancias, ya que Unix/Linux es inmensamente mas potente. Estos scripts pueden usar un sinnúmero de herramientas como: Comandos del sistema Linux/Unix (ejm: ls, cut) Funciones intrı́nsecas del shell (ejm: kill, nice) Lenguaje de programación del shell (ejm: if/then/else/fi) 2 (ver tabla 3.7) Programas y/o lenguajes de procesamiento en lı́nea. (ejm: awk, sed, Perl) Programas propios del usuario escritos en cualquier lenguaje. El lenguaje de programación de cada shell provee de una amplia gama de estructuras de control como se muestra en el cuadro 3.7. Un sencillo ejemplo es realizar un backup de solo ciertos directorios (prog_dir1 y prog_dir2), luego comprimirlos usando bzip2 y enviarlos a un área de almacenamiento (digamos una unidad ZIP previamente montada en /mnt/zipdrive), 1 2 Archivos con instrucciones o programas para el shell El nombre del “C”shell, viene de su similitud con el lenguaje “C.en su programación. El Korn shell es mas similar al Fortran en su sintaxis 64 Conceptos Básicos for name [ in word; ] do list ; done select name [ in word ; ] do list ; done case word in [ pattern [ | pattern ] ... ) list ;; ] ... esac if list then list [ elif list then list ] ... [ else list ] fi $while list do list done $until list do list done [ function ] name () { list; } Cuadro 3.7: Instrucciones bash para programación shell y además con que el nombre del archivo contenga la fecha del dı́a. Suena difı́cil? Realmente no lo es. Se crea un archivo texto con cualquier nombre, por ejemplo mibackup que contenga las instrucciones que se desea ejecutar. #!/bin/sh # echo "---------- Captura fecha -----------" fecha=‘date +%Y%m%d‘ # echo "---------- Haciendo Tar -----------" tar cvf backup$fecha.tar prog_dir1 prog_dir2 # echo "----------- Comprimiendo -----------" bzip2 backup$fecha.tar # echo "---------- Enviándolos a zip -------" cp ./backup$fecha.tar /mnt/zipdrive # echo "----------- Limpiando --------------" rm -f ./backup$fecha.tar # 3.1 Comandos de Linux echo "----------- Final 65 -------------" Luego, se le asigna permisos de ejecución con el comando chmod +x mibackup y esta listo para ser ejecutado. En el script aquı́ mostrado es importante resaltar varios principios importantes: la primera lı́nea determina el shell que se esta usando (sh o bash); las variables no se declaran solo se asignan; su valor es retornado usando el sı́mbolo $. Si desea mas información acerca de programación en shell se puede consultar los manuales en lı́nea del shell: bash o tcsh3 . Re-utilización de comandos El shell almacena una historia de los comandos que el usuario ha escrito. Por medio de esta historia es posible volver a ejecutar una orden que ya se ha escrito anteriormente sin tener que escribirla de nuevo. El comando history muestra la secuencia de comandos, con un número a su izquierda. Con este número es posible llamar de nuevo el comando utilizando el caracter admiración “!”; Por ejemplo history retorna 1 history 2 ls 3 cd public_html 4 ls 5 rm *.bak 6 history y para ejecutar nuevamente el comando rm *.bak solo es necesario escribir !5. También se puede pedir el último rm que se ha ejecutado escribiendo !rm. 3 man bash o man tcsh 66 Conceptos Básicos El último comando se repite con doble admiración “!!”. Es posible también editar el último comando utilizando el caracter “^” pero este conocimiento se esta volviendo poco útil, ya que los nuevos shells permiten viajar por la “historia” y editar los comandos usando únicamente las flechas del teclado. Archivos de bash Cada shell posee ciertos archivos donde mantiene su configuración. Estos tiene una jerarquı́a que va desde el archivo general de configuración del sistema para todos los shells, pasando por el archivo propio del shell, hasta los archivos personales del usuario. A continuación, en la tabla 3.8, se muestran los archivos utilizados para especificar opciones dentro de bash. Es importante aclarar que no es necesario que todos estos archivos existan dentro del directorio personal, el sistema posee su configuración por defecto. Archivo Descripción /bin/bash Ejecutable bash. /etc/profile ~ /.bash profile Archivo de inicialización utilizado por los shells. ~ /.profile ~ /.bash login utilizado por los shells ~ /.bash logout ~ /.bashrc Ejecuta cuando sale del shell ~ /.inputrc Archivo de inicialización individual. Archivo(s) de inicialización personal Ejecuta cuando entra al shell Archivo personal de inicialización del shell. Cuadro 3.8: Archivos de bash 3.2 Sistemas de archivos 3.2. 3.2.1. 67 Sistemas de archivos Organización de los directorios Linux organiza la información en archivos, los cuales están contenidos en directorios. Un directorio puede contener subdirectorios, teniendo ası́ una estructura jerárquica, como en cualquier otro sistema operativo. Las nuevas versiones de Linux (incluido Red Hat, Mandrake y en menor medida SuSE) siguen el estándar FSSTND (Linux Filesystem Standard) el cual estipula los nombres, la ubicación y la función de la mayorı́a de los directorios y los archivos del sistema. La figura 3.2 muestra la estructura básica del sistema de archivos de Linux como es definida por FSSTND. El estándar FSSTND llego hasta la versión 1.2 en 1997 y esta evolucionando a FHD (Filesystem Hierarchy Standard) actualmente en versión 2.2. La página oficial del estándar se encuentra en al referencia [1]. Figura 3.2: Estructura de directorios de Linux según FSSTND 68 Conceptos Básicos Conociendo esta estructura básica, el usuario/administrador podrá moverse más fácilmente por los directorios, ya que la mayorı́a de éstos, tienen un determinado uso. En la tabla 3.9 se tiene la descripción de los directorios más comunes. Directorio Descripción / Raı́z (root), forma la base del sistema de archivos. /boot Archivos del kernel (compilados). /bin Archivos ejecutables esenciales para todo usuario. /dev Archivos de dispositivos. /etc Archivos de configuración. /etc/rc.d Archivos de inicialización (Red Hat). /home Generalmente, directorios de los usuarios. /home/ftp Contenido del servidor FTP. /home/httpd Contenido del servidor WWW. /lib Librerı́as esenciales y módulos del kernel. /mnt Directorios donde “montar” diversos dispositivos . /mnt/cdrom Directorio donde se “monta” el CD-ROM. /mnt/floppy Directorio donde se “monta” el disquete. /proc Información sobre partes del sistema. /root Directorio del usuario principal del sistema. /sbin Archivos ejecutables para tareas de administración. /tmp Temporal. /usr Programas, docs, . . . compartidos por el sistema /var Archivos variables del sistema, bitácoras, temps, . . . Cuadro 3.9: Directorios de Linux más frecuentes La tabla 3.10 muestra los principales subdirectorios del directorio usr. La tabla 3.11 muestra los principales subdirectorios del directorio var. Permisos Linux, como cualquier sistema Unix, es multiusuario, por lo que, los permisos de los archivos están orientados a dicho sistema. Los permisos de cualquier archivo tienen tres partes: permisos del propietario, permisos del grupo y permisos del resto. Ası́, se ve que un archivo pertenece a un determinado propietario y a un determinado grupo 3.2 Sistemas de archivos 69 Directorio Descripción /usr/X11R6 Paquete XFree86 (X-Windows) Release 6. /usr/bin Archivos ejecutables para usuarios. /usr/dict Listados de palabras (diccionarios). /usr/doc Documentación. /usr/doc/FAQ F.A.Q. (o P.U.F.). /usr/doc/HOWTO HOWTO’s. /usr/etc Archivos de configuración del sistema. /usr/games Juegos. /usr/include Archivos de encabezado. /usr/info Sistema de información GNU info. /usr/lib Librerı́as /usr/local Jerarquı́a de archivos locales. /usr/man Manuales. /usr/sbin Archivos ejecutables de admin. no vitales. /usr/share Datos independientes de la arquitectura. /usr/src Código fuente. /usr/src/linux Código fuente del kernel de Linux. Cuadro 3.10: Subdirectorios de usr 70 Conceptos Básicos Directorio Descripción /var/catman Manuales formateados localmente. /var/lib Información del estado de aplicaciones. /var/local Variables del aplicaciones en /usr/local. /var/lock Archivos de cerrojo. /var/log Bitácoras del sistema. /var/named Archivos del DNS. /var/nis Base de datos para NIS (Network Inf. Service). /var/preserve Archivos de respaldo para vi o ex. /var/run Archivos relevantes a programas corriendo. /var/spool Colas de trabajos para realizar mas tarde. /var/spool/at Archivos creados por comando at. /var/spool/cron Archivos creados por comando crontab. /var/spool/lpd Archivos de impresora. /var/spool/mail Archivos de correo de cada usuario. /var/spool/mqueue Archivos de correo de salida. /var/spool/news Archivos de noticias de salida. /var/spool/smail Archivos de correo de smail. /var/tmp Temporal. Cuadro 3.11: Subdirectorios de var 3.2 Sistemas de archivos 71 y, dependiendo de los permisos que tenga asociado dicho archivo, se podrá tener acceso a él o no.4 Los permisos son de lectura (r), escritura (w) y ejecución (x). Estos se definen mediante letras (parecido al comando attrib de DOS). Con el signo “+” añadimos un permiso y con el signo “−” se lo quitamos. Además, los permisos pueden ser generales o no, es decir, si se pone +x serı́a permiso de ejecución a todos, sin embargo, si se pone u + x sólo el propietario podrı́a ejecutarlo. De este modo, se tiene: u para propietario, g para grupo y a para el resto. Ejemplo: Se tiene una serie de archivos después de listar con ls -l el cual muestra el propietario (skina), el grupo (users) y los permisos de izquierda a derecha: propietario, grupo y el resto. []$ ls -l -rw-r--r-- 1 skina users -rw-r--r-- 1 skina users 17680 Nov 29 16:52 GNU-GPL.tex 2573 Nov 30 19:52 Makefile -rw-r--r-- 1 skina users 1562 Nov 29 13:47 autorizacion.txt drwxr-xr-x 2 skina users 1024 Nov 23 01:02 bin/ -rw-r--r-- 1 skina users -rw-r--r-- 1 skina users drwxr-xr-x 2 skina users drwxr-xr-x 3 skina users -rw-r--r-- 1 skina users 61566 Oct 26 22:29 lista_paquetes_mdk.tex -rw-r--r-- 1 skina users 53227 Nov 23 01:08 lista_paquetes_rh.tex -rw-r--r-- 1 skina users 949 Nov 30 19:26 creditos.tex 550 Nov 30 19:48 guia_linux.tex 3072 Nov 30 22:55 images/ 1024 Nov 30 00:09 install/ 3864 Nov 30 19:56 parte1.tex []$ Estos permisos llevan asociado un número: el cuatro para lectura, el dos para la escritura y el uno para la ejecución. De esta manera, un archivo tiene tres números asignados: propietario, grupo y resto. Por ejemplo, si tenemos un fichero con los permisos 644 corresponderı́a a: el propietario puede leer/escribir, el grupo sólo puede leer y el resto sólo puede leer. Vemos que, para asignar lectura y escritura, basta con sumar lectura(4)+escritura(2). El comando para modificar los permisos es chmod y tiene la siguiente sintaxis: chmod permisos archivo(s). Por ejemplo se desea que todos las personas puedan escribir sobre el archivo créditos.tex, entonces 4 Los directorios deben tener permiso de ejecución para poder acceder a ellos. 72 Conceptos Básicos # chmod a+w créditos.tex o su equivalente en números # chmod 666 créditos.tex 3.2.2. Montar un sistema de archivos Ya se ha visto que Linux accede a los dispositivos mediante archivos (directorios de /dev), y, por este motivo, en Linux no hay el concepto de unidades, ya que todo está bajo el directorio principal “/”. En Linux no se accede a la primera disquetera mediante la orden A: como en DOS sino en un directorio donde se ha “montado” del dispositivo previamente como /mnt/floppy. De este modo, tenemos dos conceptos nuevos: “montar” Decirle a Linux que se va a utilizar un determinado dispositivo con un determinado sistema de archivos y estará en un directorio especificado. En la tabla 3.12 se muestran los sistemas de archivos más comunes en Linux. Tipo Descripción ext2 Sistema de archivos de Linux. msdos Sistema de archivos de DOS. vfat Sistema de archivos de Windows 9X (nombres largos). iso9660 Sistema de archivos de CD-ROM. nfs Sistema de archivos compartido por red de UNIX. smb Sistema de archivos compartido por red Windows. Cuadro 3.12: Sistemas de archivos más comunes “desmontar” Decirle a Linux que se ha dejado de utilizar un determinado dispositivo. Para “montar” un determinado sistema de archivos de un dispositivo, se utiliza el comando mount. La sintaxis es la siguiente: 3.2 Sistemas de archivos 73 # mount -t sistema_archivos dispositivo directorio [-o opciones] donde: sistema archivos puede ser cualquiera de los que aparece en la tabla 3.12; dispositivo puede ser cualquier dispositivo del directorio /dev o, en el caso de nfs, un directorio de otro ordenador; directorio es el directorio donde estará el contenido del dispositivo y opciones pueden ser cualquiera de la tabla 3.13, en el caso de no poner ninguna opción, mount utilizará las opciones por defecto5 . Una vez “montado” el dispositivo, si no se va a volver utilizar se puede “desmontarlo” con el comando umount con la siguiente sintaxis: # umount directorio Siempre, después de utilizar un dispositivo hay que “desmontarlo”, para que se almacenen correctamente los datos en dicho dispositivo. Un ejemplo de ello, es el hecho de que, un lector de CD-ROM, que haya sido “montado”, no se abrirá hasta que no se “desmonte”. Opción Descripción rw Lectura/escritura. ro Sólo lectura. exec Se permite ejecución. user Los usuarios pueden “montar”/“desmontar”. suid Tiene efecto los identificadores de propietario y del grupo. auto Se puede montar automáticamente. async Modo ası́ncrono. sync Modo sı́ncrono. dev Supone que es un dispositivo de caracteres o bloques. Cuadro 3.13: Opciones del comando mount Se muestran unos cuantos ejemplos: 1. Disquete de DOS: mount -t msdos /dev/fd0 /mnt/floppy -o rw,noexec umount /mnt/floppy 5 rw, suid, dev, exec, auto, nouser, async 74 Conceptos Básicos 2. Disquete de Windows 9X: mount -t vfat /dev/fd0 /mnt/floppy -o user,rw umount /mnt/floppy 3. CD-ROM: mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro umount /mnt/cdrom 4. Directorio exportado de host2: mount -t nfs host2:/tmp /mnt/host2 umount /mnt/host2 Archivo /etc/fstab En ocasiones, cuando se tienen varios dispositivos que se suelen “montar”, se puede ahorrar tener que escribir continuamente la oportuna orden mount, simplemente incluyendo una lı́nea en el archivo /etc/fstab. El archivo /etc/fstab contiene lı́neas donde se indica qué dispositivo debe “montar”, el lugar donde “montarlo”, ası́ como el sistema de archivos y las opciones (en este archivo, se pueden poner dos opciones más: auto y noauto, que indican si se debe “montar” automáticamente al arrancar el sistema o no, respectivamente). Un ejemplo de /etc/fstab puede ser: # Dispositivo Directorio FS Opciones /dev/hda2 / ext2 /dev/hda1 /boot ext2 defaults 1 1 defaults 1 2 /dev/hda3 /usr ext2 ro,suid,dev,exec,auto,nouser,async 1 2 /dev/hda5 /home ext2 rw,suid,dev,exec,auto,nouser, \ async,usrquota,grpquota 1 2 /dev/hda6 /ftp ext2 defaults 1 2 /dev/hda7 swap swap defaults 0 0 # /dev/fd0 /mnt/floppy vfat noauto,user,noexec,rw # /mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0 /mnt/zip /mnt/zip supermount fs=vfat,dev=/dev/sda4 0 0 /dev/pts devpts # none mode=0620 0 0 3.2 Sistemas de archivos none /proc proc 75 defaults 0 0 # /ftp/iso/mdk80a_skina.iso /ftp/pub/8.0ad1 iso9660 loop 0 0 # host2:/tmp /mnt/host2 nfs defaults Este archivo contiene varios casos bastante interesantes: Las primeras cinco lineas montan las diferentes particiones del disco en los directorios del sistema, incluyendo el swap. La particion de /usr tiene sus opciones explicitas para no permitir escritura, solo lectura (read-only). La particion de /home permite el manejo de quotas para usuarios y grupos. El dispositivo /dev/fd0 puede ser montado o desmontado por un usuario en el directorio /mnt/floppy con el comando # mount /mnt/floppy. El cdrom y el zipdrive están controlados por el sistema a través del supermount y los usuarios no necesitan montar o desmontar. Con solo tener acceso al directorio /mnt/cdrom encontraran el CDROM montado y este sera desmontado una vez se deje de usar. En el directorio /ftp/pub/8.0ad1 se esta montando un archivo /ftp/iso/mdk80a_skina.iso que es una imagen de un CDROM. En el directorio /mnt/host2 se esta montando el directorio de red \tmp desde el equipo host2. Por supuesto solo el root puede disponer de estos dispositivos. 3.2.3. Uso de mtools El hecho de tener que “montar” y “desmontar” puede ser un poco engorroso a la hora de utilizar determinados dispositivos (comúnmente, la disquetera). Por ello, se dispone de las herramientas mtools (ver tabla 3.14). Dichas herramientas, utilizan los dispositivos sin tener que “montar” y “desmontar”; y su sintaxis es parecida a la de los programas de DOS. 76 Conceptos Básicos Comando Descripción mdir Muestra el contenido del dispositivo dir. mcopy Copia archivos copy. mdel Borra archivos del. mformat Formatea la unidad format. mcd Cambia de directorio cd. mmd Crea un directorio md. mrd Borra un directorio rd. Cuadro 3.14: Herramientas mtools 3.3. Actualización del kernel Hay ocasiones en las que se quiere o se debe actualizar el kernel, bien para añadirle alguna funcionalidad que no estaba incluida, o bien, para corregir algún error (bug) que tuviese. En este apartado, se va a ver cómo se realiza este proceso. 3.3.1. Inclusión de los modulos del kernel La forma mas sencilla de incluir soporte en el kernel es mediante la inclusión de módulos en el kernel. Esto se puede realizar con el comando insmod o modprobe. Por ejemplo para incluir el módulo de soporte para la tarjeta SCSI compatible con Adaptec 1520 se da el siguiente comando: # modprobe aha152x aha152x=0x140,11,1,1 el cual no solo incluye el módulo sino que además informa de la ubicación de la tarjeta: dirección 0x140 e interrupción 11. Este comando puede ser escrito en el archivo rc.local, pero es una solución que se considera poco elegante ya que todas las distribuciones tiene un archivo donde se describen los módulos que debe cargar el módulo en el momento de arrancar: modules.conf (antiguamente conf.modules) para la gran mayorı́a. 3.3 Actualización del kernel 77 Winmodems Esto módulos inclusive pueden venir de proveedores externos como ocurre con el soporte para los winmodems. Por ejemplo: para el Motorola SM56 se baja el paquete de la pagina www y se ejecuta: #rpm -Uvh sm56-85.1-10.i386.rpm #sm56setup [country-code] (57 para Colombia) Este proceso realiza la inclusión de el módulo en el archivo /etc/modules.conf una linea del tipo: alias char-major-24 sm56 options sm56 country=57" y ha creado un dispositivo /dev/sm56 para su softmodem. Con los módems con chipset PCTel la cuestión puede ser un poco mas primitiva: Se obtiene un archivo comprimido pctel-2.4.tar.gz el cual se descomprime con el comando # tar zxvf pctel-2.4.tar.gz y se cambia al directorio y se construyen los dos módulos para el kernel con el comando make: pctel.o en src/module y ptserial.o en src/ptserial, el primero de fábrica y el segundo open source, ajustando los archivos Makefile al modelo del módem. Con los comandos # make # make install se construyen los módulos y se colocan en el sitio correcto: usualmente /lib/modules/2.4.3 y en este momento se pueden “subir” al kernel con los comandos 78 Conceptos Básicos # insmod pctel # insmod ptserial y ahora solamente es necesario revisar en que número del puerto serial en el que se ha conectado el módem revisando el archivo /var/log/messages el que usualmente es el /dev/ttyS15. Los otros módems reconocidos por funcionar bastante bien en GNU/Linux son los que poseen chips Lucent. Para estos se consiguen los paquetes con los módulos para el kernel del tipo: ltmodem-kv 2.4.8.i386.rpm los que instalan los modulos lt modem.o y lt serial y adiciona al archivo modules.conf las siguientes lineas. # lt_drivers: autoloading and insertion parameter usage alias char-major-62 lt_serial # options lt_modem vendor_id=0x115d device_id=0x0420 Forced=3,0x130,0x2f8 # section for lt_drivers ends 3.3.2. Inclusión de las correcciones del kernel Una corrección patch es un archivo que añade alguna funcionalidad al kernel o corrige algún error, sin necesidad de tener que instalar de nuevo todos los fuentes del kernel. Aplicación de las correcciones Pasos a seguir: 1. Copiar la corrección al directorio /usr/src: # cp parche /usr/src Si el parche está comprimido, descomprimirlo con el programa correspondiente. 2. Aplicar la corrección: patch -p0 < parche &> error_log 3. Recompilar el kernel (sección 3.3.3). Para todas las distribuciones es recomendado usar los parches o actualizaciones oficiales de la casa matriz en formato propio (rpm, tgz o deb) y no otros porque pueden generar ciertas dificultades en la configuración y en la compilación. 3.3 Actualización del kernel 3.3.3. 79 Recompilar el kernel Recompilar el kernel es algo que puede fallar. Las decisiones tomadas no siempre son las mas correctas ası́ que es prudente guardar una imagen del kernel actual y dejar un bloque en el lilo que le permita entrar nuevamente a este kernel viejo: en el directorio donde tenga su kernel (/boot en la mayorı́a) realice una copia con algo como # cp vmlinuz vmlinuz.orig y en el lilo agregue una sección mas con un label ilustrativo como “viejo” como sigue: # image=/boot/vmlinuz label=linux root=/dev/hda3 vga=788 # image=/boot/vmlinuz.orig label=viejo root=/dev/hda3 vga=788 # Y luego corre lilo para dejar grabado la nueva configuración. Ahora si se esta listo para compilar y cometer errores. Pasos a seguir: 1. Ir al directorio donde están los fuentes de linux (/usr/src/linux): # cd /usr/src/linux 2. Configurar el kernel: # make opción, donde opción puede ser: config Modo texto. menuconfig Modo texto, con ventanas (figura 3.3). xconfig Modo gráfico en X-Windows (figura 3.4). 3. Determinar los archivos que han cambiado y los que necesitan ser compilados de nuevo: make dep 80 Conceptos Básicos Figura 3.3: Kernel menuconfig Figura 3.4: Kernel xconfig 3.3 Actualización del kernel 81 4. Borrar los archivos antiguos no necesarios: make clean 5. Crear los módulos: make modules 6. Instalar los módulos: make modules_install. Recuerde renombrar los módulos viejos mv /lib/modules/2.2.12 /lib/modules/2.2.12.old. 7. Crear el nuevo kernel: make 8. Instalar kernel: make [opción] donde opción puede ser: install Crea kernel por defecto y la coloca en /boot. Luego corre lilo para poder iniciar por el nuevo kernel. zImage Crea una imagen comprimida del kernel. Si desea generar un disquete con el kernel para probarlo utilice make zdisk. make zlilo llama lilo para arrancar por este kernel comprimido. bzImage Crea una imagen comprimida aún mas pequeña que la opción anterior. Generalmente, los pasos 3 y 4 se suelen hacer juntos: make dep ; make clean Ası́ como los pasos 5 y 6: make modules ; make modules_install Capı́tulo 4 Sistema Básico A partir de este momento se propone iniciar las labores de configuración y administración necesarias para tener un sistema totalmente funcional. Antes de continuar es bueno mencionar que en Linux hay siempre múltiples formas de hacer una tarea: desde lı́nea de comandos en una consola hasta las múltiples interfaces gráficas en X-window,pasando por herramientas gráficas en consola y administración remota por red. Es imposible que esta guı́a sea exhaustiva en todas las posibilidades, pero en principio se trata de mostrar mas de una opción. Se usaran iconos para indicar cada una de las posibles opciones: consola, ventanas e Internet tal como muestra la tabla 4.1. Icono Interfaz Consola y/o lı́nea de comandos Interfaz gráfica - ventanas Remota por red / WWW Cuadro 4.1: Posibles interfaces de administración 83 84 Sistema Básico 4.1. Configuración y Control de acceso Skina GNU/Linux provee desde la versión 7.0 un centro de control para la configuración y administración gráfica del sistema: DrakConf y ahora cambiando su nombre a Mandrake Control Center. Esta consiste en un conjunto botones distribuidos en un árbol jerárquico que activan diferentes programas de propósito especifico. Estos lanzan pequeños programas hechos en Perl o Python como la herramienta de detección de hardware (HardDrake) y módulos independientes de una versión propia de Linuxconf 1 (1.16) (figura 4.1). Figura 4.1: Linux Mandrake DrakConf Lo mas interesante de DrakConf es que usa los mismos programas que la instalación DrakX para tareas de configuración, e inclusive el 90 % de ellos funcionan también en consola texto aparte de X-window. Estos programas son, en orden alfabético: diskdrake: Fdisk gráfico drakboot: Modos de inicio 1 Linuxconf es la meta-herramienta de configuración de Linux que se describirá mas adelante. 4.1 Configuración y Control de acceso 85 drakconnect: Redes drakfloppy: Creación disquete de arranque drakfont: Administrador de fuentes drakgw: Compartir conexión a Internet drakxservices: Servicios de arranque keyboardrake: Teclado harddrake: Hardware menudrake: Menús del sistema mousedrake: Ratón packdrake: Creación de paquetes rpm printerdrake: Impresoras rpmdrake: Paquetes rpm userdrake: Usuarios shorewall: Wizard para cortafuegos XFdrake: X-window Skina GNU/Linux aun incluye algunas herramientas muy útiles de casa matriz Red Hat como sndconfig, kudzu, netconfig y otros. 4.1.1. Usuarios y Grupos Como se mencionó anteriormente, root es usuario especial que se distingue de los demás usuarios en los poderes que tiene sobre el sistema. Este no tiene ninguna restricción sobre lo que puede hacer en el sistema. Cuando se instala Linux por 86 Sistema Básico primera vez, la única cuenta que existe por defecto en el sistema es la del root. Debido al poder de este usuario es peligroso utilizarlo habitualmente para tareas cotidianas que no necesiten los privilegios especiales esta cuenta, se debe dejar para las tareas de administración y mantenimiento del sistema. Para el trabajo cotidiano hay que crear una cuenta personal sin privilegios que proteja al sistema de los posibles errores cometidos. Si no se hizo durante la instalación es el momento de hacerlo. Antes de continuar es importante explicar la información que va a ser solicitada para poder crear un usuario y/o un grupo. Lo mas normal es tener un nombre mortal (Kasandra Padisha) con el que se identifica entre humanos, un login (kpadisha) que se usa para ingresar, un directorio personal o casa (home) (/home/kpadisha) en donde tendra todos los permisos para crear, borrar o modificar archivos, un interpretador de comandos (shell) (/bin/bash) que definen el estilo interacción de sus consolas y un grupo al cual esta afiliado (users). A cada usuario y grupo se le identifica con un número conocido como el uid (User identification) y el gid (Group identification) respectivamente. Estos números son usados indistintamente del login, por los programas o por el mismo sistema operativo. Existe un grupo de comandos en consola que permiten realizar todas las labores de usuarios y grupos y estos son: chsh: Cambio el shell (Change Shell). passwd: Cambio la contraseña. groupadd: Crear un grupo. groupdel: Borrar un grupo. groupmod: Modificar un grupo. useradd o adduser: Crear un usuario. userdel o deluser: Borrar un usuario. usermod: Modificar un usuario. 4.1 Configuración y Control de acceso 87 Por ejemplo, con el comando adduser kpadisha en una terminal como superusuario, se crea una cuenta de usuario kpadisha con los valores por defecto del sistema. El siguiente paso es establecer la clave que usará kpadisha, esto se hace con passwd kpadisha: el sistema preguntará cual es la que se quiere poner, habrá que introducir dos veces a ciegas la clave. Si los valores por defecto del sistema no son suficientes, se pueden introducir cada uno de los valores antes mencionados con un conjunto mas amplio de opciones: # adduser -u 501 -g users -c "Kasandra Padisha" \ -d /home/kpadisha -s /bin/tcsh -p miclave kpadisha La sintaxis completa del comando adduser es: # adduser -u uid -g gid -c nombre -d home \ -s shell cuenta -p contrase~ na donde: uid es el número de usuario, gid el número de grupo, nombre el nombre del usuario (normalmente, nombre y apellidos), home el directorio principal del usuario, shell el intérprete de comandos y cuenta es el nombre que pondremos como login2 . Para terminar una sesión se deberá escribir la orden exit, con lo que volveremos al login. Hay que hacer notar que terminar una sesión no quiere decir apagar el ordenador ni que Linux deje de funcionar. Simplemente consiste en que un usuario ha abandonado el terminal y lo deja libre para otro usuario, que puede ser el mismo pero con otro nombre. Ahora que ya está creado el usuario kpadisha, es posible realizar el proceso de identificación con otro usuario distinto de root. Con lo que ya no es obligatorio trabajar con root. La herramienta de administración de usuarios proveida por casa matriz de Skina GNU/Linux es userdrake que suele estar embebida dentro del ambiente de DrakConf pero puede ser ejecutada independientemente, inclusive desde linea de comandos. 2 El usuario root tiene como uid=0 y gid=0 88 Sistema Básico Figura 4.2: Administración de usuarios con Userdrake La ventana de Userdrake (figura 4.2) esta compuesta por varias zonas; de arriba a abajo tenemos primero un conjunto de menús desplegables con las opciones comunes: [Fichero], [Acciones], [Opciones] y [Ayuda]. Mas abajo están los botones de acceso rápido a las acciones mas frecuentes que son [Añadir Usuario], [Añadir Grupo], [Editar] o[Borrar] lo seleccionado y [Refrescar] la lista de grupos o usuarios. Adelante están dos pestañas donde se encuentra la lista detallada de usuarios y grupos existentes en el momento. Para adicionar un usuario, basta presionar el botón [Añadir Usuario] y una ventana se desplegará solicitando la información relevante que será: el nombre, el login, su contraseña y su interpretador de comandos (shell). También se pregunta si se desea crear un directorio propio para este usuario y cual recomienda, si crea un grupo privado o si se va a a inscribir a alguno previamente existente y finalmente su icono para identificarlo en la pantalla gráfica de ingreso (figura 4.3). Para administrar usuarios se puede usar una de las herramientas de configuración mas poderosas que ha tenido Linux, conocida como Linuxconf 3 , que al igual que la mayorı́a de herramientas de configuración, es un conjunto de módulos integrados 3 Excluida de la mayorı́a de distribuciones para fomentar la diferenciación entre competidores y en contra de la estandarización 4.1 Configuración y Control de acceso 89 Figura 4.3: Userdrake: Adición de un usuario dentro de una misma presentación consistente. Esta herramienta permite realizar virtualmente todas las labores de administración por consola, interfaz gráfica o por red. Para este caso se usará la interfaz de X-window (figura 4.4). El ingreso se puede hacer directo llamando el comando userconf o usando la interfaz principal, despues de llamar linuxconf y de su bienvenida, se presiona el botón de [Usuarios] (Users) para entrar a administrar los usuarios. Esto despliega una nueva ventana con todas las tareas relacionadas con esta sección: Cuentas de Usuarios, Definición de Grupos y Cambiar contraseña de root (figura 4.5). En las otras carpetas se encuentran cuentas especiales como las usuarios remotos por PPP y las polı́ticas generales de administración de cuentas. Por el momento se presiona [User Accounts] y se despliega una nueva ventana con todos los usuarios existentes (figura 4.6). Para adicionar el usuario kasandra, se presiona el botón de [Adicionar] (Add) en la parte inferior de la barra superior. Inmediatamente despliega una formulario donde se pregunta toda la información del usuario (figura 4.7). Al presionar [Aceptar] (Accept) una vez se han llenado la información, se requiere contraseña, la cual se 90 Sistema Básico Figura 4.4: Bienvenida a Linuxconf X-Window Figura 4.5: Linuxconf: Tareas de administración de cuentas 4.1 Configuración y Control de acceso 91 Figura 4.6: Linuxconf: Cuentas de usuarios pregunta dos veces para evitar equivocaciones. Se recomienda asignar el grupo users y evitar a toda costa el grupo de root u otro grupo de administración. Figura 4.7: Linuxconf: Información de usuario 92 Sistema Básico La herramienta de administración de usuarios kuser del ambiente KDE ofrece una interfaz amable para la administración de usuarios. Figura 4.8: Administración de usuarios con Kuser Kuser (figura 4.8) consiste de dos ventanas, la izquierda muestra todos los usuarios existentes y la derecha los grupos de usuarios. Para adicionar el usuario kasandra, se hace click en el icono de [Add] en la parte izquierda de la barra superior. Figura 4.9: Kuser: Adicion de un usuario Inmediatamente se pregunta el nombre del usuario y se abre una caja de dialogo 4.1 Configuración y Control de acceso 93 donde se pregunta toda la información del usuario (figura 4.9). No olvide asignar una contraseña y un shell de inicio. En la siguiente página de esta caja de dialogo se encuentran opciones extendidas de administración como activación o fechas limites de uso. En la última puede asignar un grupo de trabajo del usuario. Se recomienda asignar el grupo users y evitar a toda costa el grupo de root u otro grupo de administración. Antes de salir no olvide salvar los cambios realizados. 4.1.2. Configuración de LILO Muchas veces el ordenador es compartido por varias personas que no quieren saber nada de LILO ni de Linux y lo único que quieren es que se inicie su sistema operativo sin problemas. Para ello se puede configurar LILO para que inicie un sistema operativo por defecto, esto se hace entrando en el sistema como root y escribiendo la orden: lilo -D windows -d 50 Con lo que se configura windows como sistema operativo por defecto y que cargue este a los 5 segundos de no pulsar ninguna tecla. Suponiendo claro, que se haya definido ası́ el nombre de la partición4 . Este proceso puede hacerse también editando el archivo de configuración de LILO /etc/lilo.conf que para este momento debe lucir como: boot=/dev/hda map=/boot/map install=/boot/boot.b vga=0x0f06 default=linux keytable=/boot/es.klt lba32 prompt timeout=30 message=/boot/message # 4 Algunas distribuciones le asignan el nombre DOS a esta partición 94 Sistema Básico image=/boot/vmlinuz label=linux root=/dev/hda3 vga=788 # image=/boot/vmlinuz label=linux-nonfb root=/dev/hda3 # image=/boot/vmlinuz label=failsafe root=/dev/hda3 # other=/dev/hda1 label=windows table=/dev/hda # other=/dev/fd0 label=floppy unsafe # Donde se puede observar que LILO se instala en la MBR del disco primario boot=/dev/hda; el disco se trata como lba32 (mas de 1024 cilindros); el teclado es Español (es.klt); va a preguntar por el sistema de arranque prompt; el tiempo de espera timeout esta en 3 segundos (en décimas de segundo) y el sistema por omisión (default) es el sistema linux. Después del comentario # se identifican varios párrafos correspondientes a los sistemas instalados y modos de arranque, identificados por un label: linux:Linux instalado en la partición /dev/hda3 usando un modo de VGA de Frame Buffer: 788 para inicio gráfico. windows:MS-Windows instalado en la partición /dev/hda1 linux-nonfb:Mismo linux sin inicio gráfico. failsafe:Mismo linux pero para emergencias. floppy:Arranque de un disquete de sistema. 4.1 Configuración y Control de acceso 95 Una vez salvado es necesario correr # /sbin/lilo para activar los cambios. Sea muy cuidadoso con los cambios y valores asignados en este archivo ya que pueden terminar dañando la entrada a su instalación y se haga necesario el uso de su disquete de rescate. El sitio natural para esta tarea es el centro de control o DrakConf, en el cual se escoge [Arranque] → [Cargador de Arranque] lo que lanza la herramienta drakboot --boot (figura 4.10) que es la misma que se usó en el proceso de instalación (sección 2.2.6). Lo primero que se observa, en la parte superior de la ventana es la escogencia del cargador que puede ser LILO (gráfico o texto) y Grub, seguido por el disco de arranque y el tiempo de espera antes de entrar a la opcion por defecto. Cuando se presiona el botón de [Siguiente] y se lanza una nueva ventana en done se muestran cada una de las opciones de entrada que apareceran en el menú de inicio y se da la posibilidad de configurar cada una de ellas, con su identificación, su particion de arranque, su kernel y el ramdisk (initrd.img). Figura 4.10: Drakboot 96 Sistema Básico Para configurar LILO también se puede usar Linuxconf. Para este caso se usará la interfaz de red (www): en un navegador se escribe la dirección del servidor al puerto 98 con http://mi servidor:98 (figura 4.11) . Figura 4.11: Bienvenida a Linuxconf Es conveniente resaltar que para entrar a linuxconf por red, es necesario usar el password de root y esto es un posible hueco de seguridad. No lo haga a menos que este seguro de no ser “escuchado” por la red. Una vez se ha entrado, se va a Modo de Arranque y se tiene la configuración de LILO. Se divide en tres grupos ? Configurar 4.1 Configuración y Control de acceso 97 • Valores por defecto de LILO • Configuraciones de LILO • Configuraciones de otros OS bajo LILO ? Cambiar • Configuraciones de arranque por defecto ? Agregar • Un kernel nuevo • Un kernel que Ud. compiló • Modo de arranque por defecto En cada una de ellas se puede ver los valores actuales de LILO. Pero para la labor a realizar solo interesa la configuración de arranque por defecto en la cual se puede seleccionar el cambio a DOS/Windows (figura 4.12). Figura 4.12: Linuxconf:Configuración de OS de arranque Se presiona aceptar y se confirma la activación de la nueva configuración. Al reiniciar el computador, este debe arrancar por DOS/Windows por defecto. 98 Sistema Básico 4.1.3. Reinicialización del sistema Una de las caracterı́stica de Linux es que utiliza una pequeña parte de la la memoria RAM del ordenador (cache) para acumular pequeños grupos de tareas del disco duro y las realiza cada determinado tiempo. Esta técnica permite acelerar todos los procesos con ficheros, ya que las tareas con el disco duro, intrı́nsecamente lento, se realizan por “tandas”, y los datos son leı́dos y escritos en el disco de vez en cuando, mientras el resto del tiempo son manipulados directamente de la memoria RAM. Por ello no es recomendable apagar un ordenador corriendo Linux sin antes advertir al sistema de alguna forma que se prepare para ser parado. Si se le advierte antes, el sistema descargará la información que tenga en memoria salvándola en el disco duro; además mandará una señal de terminación a los procesos que se encuentren ejecutándose en ese momento para que finalicen. Para informar a Linux que se desea parar el sistema y apagar el ordenador se utiliza la orden halt, el sistema entonces realizará diversas funciones preparándose para la parada de la máquina. Sólo cuando el sistema indique en la pantalla: The system is halted System halted se podrá apagar el ordenador. En algunas máquinas con control de potencia, el comando halt apagará la máquina de forma automática. Es posible que se desee reiniciar el ordenador en lugar de apagarlo, entonces la orden shutdown -r now parará el sistema y después reiniciará el ordenador. Un “atajo” a esta orden es pulsar las teclas [CRTL-ALT-SUP] a la vez, tendrá el mismo efecto5 . En servidores, el que alguien tenga la posibilidad de reiniciar la máquina de forma tan directa, no es muy conveniente. Esta caracterı́stica puede controlarse creando un archivo /etc/shutdown.allow en el cual se colocan los usuarios que tienen permitido bajar el sistema. Cuando se presiona [CRTL-ALT-SUP], el sistema revisa que 5 A su vez halt es lo mismo que shutdown -h now 4.1 Configuración y Control de acceso 99 alguno de estos usuarios se encuentre conectado en una consola o en su defecto root antes de proceder. De forma mas radical, se puede suprimir del todo esta posibilidad y obligar a usar el comando explicito de halt o reboot para reiniciar la máquina. En el archivo /etc/inittab se encuentra la linea de definición de este comando # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now y se puede borrar o comentar y la próxima vez que se inicie la máquina este comando no estará disponible. Las interfaces gráficas, tanto KDE como GNOME se pueden configurar para que permitan hacer halt y reboot en el momento que un usuario termina la sesión (logout). También es posible realizarlo desde el login gráfico como muestra las figura 4.13 y figura 4.14. En el menú superior de GDM (Gnome Display Manager), presione [Sistema] y este le permitirá seleccionar cualquiera de estas dos tareas o en KDM en la parte inferior derecha se encuentra el botón de Apagar y este le permitirá seleccionar cualquiera de estas dos tareas. Figura 4.13: Sesión con gdm 100 Sistema Básico Figura 4.14: Sesión con kdm Este es el proceso que se debe seguir siempre para apagar el ordenador cuando esté funcionando con Linux. Es posible, sin embargo, que sea imposible apagar Linux adecuadamente, como por ejemplo por un corte de luz en medio de una sesión con Linux. Linux es capaz de resistirlo y comprobará automáticamente la integridad del sistema de archivos la próxima vez que se inicia, pero es posible que se pierdan alguno de los datos que nunca llegaron a escribirse en disco. Puede ocurrir en ciertas ocasiones que el proceso no sea tan transparente y en el momento de chequear la integridad el sistema pida la contraseña de root y se niegue a continuar. Esto ocurre cuando las reparaciones son serias y el sistema no se atreve a realizarlas automáticamente. Ingrese la palabra clave de root y haga una revisión del disco manualmente usando el comando fsck (file system check) y el nombre del disco en problemas de la siguiente forma # fsck /dev/hda3 y siga las reparaciones cuidadosamente. Puede que sea afortunado y nada del sistema se haya dañado y simplemente cuando termine, salga de la cuenta con exit y la máquina se reiniciará. 4.2 X-Window 4.2. 4.2.1. 101 X-Window Xfree86 X-Window es uno de los estándares que se comparte en toda la comunidad Linux/Unix. Tiene origen en el proyecto Athena del MIT (Massachusets Institute of Technology) y DEC en el año 1984 dirigido por Robert (Bob) Scheifler. En el año 1987 el MIT libera la última la versión bajo su control: X11 y de ahı́ en adelante es entregado al X Consortium quien se encarga de liberarla bajo una licencia con ciertas restricciones, hasta la actualidad que se tiene la versión 11 Release 6.4 conocida como X11R6.4. La comunidad de software libre da origen a un proyecto que tiene como objetivo el desarrollo de una versión de X de fuente abierta bajo licencia similar a GNU/GPL conocido como XFree86. XFree86 no puede ser GNU/GPL porque comparte código con X Consortium y con algunos productores de hardware. Inclusive el lanzamiento de X11R6.4 provoco una confrontación entre X Consortium y XFree86; los primeros quisieron cambiar la licencia original de X-Window por una mas restrictiva y bajo la amenaza de Xfree86 de independizar su desarrollo, X Consortium hecho para atrás sus intenciones. Esto en el 2004 esto se volvió realidad, pero esta vez, originada por un licenciamiento de Xfree86 que entraba en conflicto con GPL de XFree86 que dio origen a un rechazo generalizado de todas las distribuciones, en inclusive de muchos de sus principales desarrolladores y finalmente dió origen al proyecto Xorg (http://www.x.org) para reemplazarlo, el cual, en este momento esta condenando a la desaparición a Xfree86. X-Window provee una primera capa para construir una interfaz gráfica: este sistema media entre el hardware y el software; tiene muchas caracterı́sticas avanzadas incluidas el despliegue remoto y múltiples pantallas locales y además es independiente del entorno de ventanas. El entorno de ventanas esta controlado por un “manejador de ventanas” que es el programa que permite usar y manipular las diferentes entidades gráficas. Por esta configuración es posible tener muchas diferentes tipos de ventanas, interacción 102 Sistema Básico y apariencia. En Linux existe una cantidad apreciable de estos manejadores entre libres y comerciales como se menciona en la sección ?? y se muestra en las figuras desde la ?? hasta la ??. Todos ellos tienen un estilo particular de presentación de ventanas y de comportamiento. 4.2.2. Configuración Para poder utilizar estos entornos, primero es necesario configurar X-Window. Es posible que, cuando se ha instalado Linux y se ha seleccionado X-Window, el programa de instalación haya configurado adecuadamente X-Window. Ası́ que, se puede probar, primero siendo algo tı́mido se puede usar el comando # X -probeonly lo que muestra toda la información del servidor X. Si no hay señal de error se puede ejecutar X,con escribir: startx. Al ejecutar esto es posible que ya funcione. Si no funciona, se debe configurar correctamente. Para ello, se tienen varios programas de configuración que se mencionan a continuación. xf86config Este programa funciona en consola, en modo texto. Ahora está un poco en desuso en favor de interfaces gráficas, pero aun es útil para cuando es necesario bajarse de nivel en el momento en que las otras herramientas no funcionan. XF86Setup Dependiendo de qué versión se tenga instalada de X-Window (3.3.6 o menor), se puede usar XF86Setup. Este programa es en modo gráfico (VGA16 por defecto) y permite configurar todo de un modo interactivo y por lo tanto más sencillo (figura 4.15). Este consta de cinco carpetas donde en orden se recopila información del ratón, del teclado, de la tarjeta de vı́deo, incluyendo caracterı́sticas especiales, el monitor, 4.2 X-Window 103 y finalmente las caracterı́sticas de las despliegue como resolución y profundidad de colores y ciertas caracterı́sticas especiales de comportamiento. Figura 4.15: XF86Setup xf86cfg Si se instalo XFree86 versión 4.0 (o mayor) se puede usar también xf86cfg, que al igual que XF86Setup, es una herramienta gráfica interactiva para la creación del archivo de configuración XF86Config (figura 4.16). La presentación es bastante particular porque muestra un grafo con los dispositivos de pantalla, tarjeta, ratón, teclado y CPU; con el botón derecho se puede escoger configurar y escoger tanto el modelo como las opciones para cada dispositivo. En la parte superior de la pantalla principal se tienen cuatro botones, ratón, teclado, tarjeta y monitor. Al presionar uno de estos, se adiciona al grafo: para un nuevo ratón o dispositivo apuntador o en caso de tener varias tarjetas de vı́deo como ahora lo permite el Xfree86 v4.0. 104 Sistema Básico Figura 4.16: Pantalla principal de xf86cfg 4.2 X-Window 105 Una vez se tiene el objeto, y se coloca el ratón sobre el, se despliega automáticamente las caracterı́sticas del dispositivo. Al presionarlo con el botón derecho, se despliega un menú en el cual se puede configurar, asignar opciones, deshabilitar o remover. En la pantalla de configuración de ratón puede verse el nombre o identificador: Mouse1, el dispositivo: /dev/mouse y el tipo del ratón: Auto (figura 4.17). Figura 4.17: xf86cfg: ratón El despliegue del teclado muestra nuevamente un identificador, el tipo de teclado y la configuración según el idioma (figura 4.18). Como se observo durante la instalación, un gran número de monitores esta soportado por XFree86, pero esto termina siendo traducido a frecuencias de refresco que el monitor es capaz de soportar. En esta pantalla es interesante observar en la parte inferior que se especifica a que tarjeta de vı́deo se tiene conectado el monitor. La tarjeta de vı́deo tiene como identificador en principio su marca y modelo, pero en este caso también existen genéricas que en el fondo, poseen el mismo chip central 106 Sistema Básico Figura 4.18: xf86cfg: teclado 4.2 X-Window 107 Figura 4.19: xf86cfg: Monitor 108 Sistema Básico que muchas de marca. Se escoge la correspondiente o la mas cercana a la que se posee. Figura 4.20: xf86cfg: tarjeta Hecho todo esto, se presiona salir (Quit) y se confirman los archivos donde se guarda esta información aquı́ proveida. Xconfigurator Este programa es una producción original de Red Hat ha evolucionado a XFdrake en Mandrake. Este programa es en modo consola con ventanas o gráfico en otras versiones (figura 4.21). Permite configurar la tarjeta gráfica, el monitor, resolución, etc.Tiene además una excelente capacidad de auto-detección de dispositivos. 4.2 X-Window 109 Figura 4.21: XFdrake 4.2.3. Redes e Internet En la etapa de instalación se mencionaron los principios básicos de la configuración de red. En esta sección se mostraran las herramientas disponibles para realizar esta tarea, incluyendo la conexión remota a un ISP (Proveedor de Servicio Internet) Para Linux (y los demás Unix) por su filosofı́a de diseño todos los dispositivos son considerados archivos sin demasiado misterio. Por esto la configuración de la interfaz de red es muy similar, no importa si se tiene una tarjeta de red o un módem. Configuración de la Red Una vez se tiene la tarjeta de red configurada se tiene un dispositivo denominado eth0 y ahora se le asignan los valores que ya se mencionaron en la instalación en al sección 2.2.5. La herramienta utilizada durante la instalación esta disponible también para configuración: draknet, en donde se pueden asignar todos los valores de dirección IP, gateway y proxy. 110 Sistema Básico Hasta ahora se ha ignorado una de las mas nuevas y exitosas herramientas de configuración de Linux: Webmin. De acceso remoto a través de SSL (Secure Socket Layer): protocolo seguro HTTP y diseño modular que permite realizar la inmensa mayorı́a de las tareas de administración. Una vez se tiene el servidor activado, se conecta a la máquina a administrar con protocolo seguro al puerto 10000 con https://my servidor:10000. 4.2 X-Window 111 Para configurar las interfaces de red se escoge la en la entrada de webmin la carpeta [Hardware] y luego las funciones [Network Configuration]→[Network Interfaces ] con el que se obtiene una lista de las interfaces de red disponibles en el momento (figura 4.22). Figura 4.22: Webmin: Interfaces de Red Se escoge la interfaz de red eth0 y se tiene los espacios para escoger tanto la forma de asignar los valores DHCP, BOOTP o estático. Para este ultimo tenemos los valores de número IP, de Máscara y Broadcast y si se activa en el inicio. La conexión de Webmin es por red ası́ que se recomienda para configurar otros dispositivos, diferentes 112 Sistema Básico al que se usa para conectarse, ya que cambiar los valores puede echar abajo el servidor. Existe la posibilidad de asignar interfaces virtuales asociadas a la actual, que por el momento se dejará a un lado (figura 4.23). Figura 4.23: Webmin: Configuración de eth0 Si el equipo se encuentra en un red local y no se tiene un servidor de nombres, es bastante incomodo usar números IP. La forma mas directa de solucionar este problema es con el archivo /etc/hosts en donde se puede tener una tabla local de IP’s y nombres: primero el numero y luego los diferentes nombres de las máquinas como se muestra a continuación: 127.0.0.1 localhost.localdomain localhost 192.168.1.1 irulan.skina.com.co irulan 192.168.1.10 caladan.skina.com.co caladan 192.168.1.101 chani.skina.com.co chani Este archivo se puede editar utilizando herramientas gráficas o por red como webmin. Después de la bienvenida se presiona la carpeta [Hardware] y luego las funciones 4.2 X-Window 113 [Network Configuration]→[hostaddreses] con el que se presenta la lista de servidoresIP’s presentes en el archivo /etc/hosts (figura 4.24). Si se escoge [Add a new host address] se tiene una forma para llenar con los valores (figura 4.25). Figura 4.24: Webmin: archivo /etc/hosts Configuración del dispositivo Si la tarjeta de red no ha sido configurada, remı́tase a la configuración del kernel (Sección 3.3), donde encontrará como configurar un nuevo dispositivo. Para los módems (no winmodems) este proceso no es necesario. En términos sencillos, un módem es un dispositivo conectado a un puerto serial: usualmente COM2 o COM4 (/dev/ttyS1 o /dev/ttyS3) el cual usa un protocolo especial para convertirse en una interfaz de red. Linux le asigna el archivo /dev/modem que, generalmente es un link (acceso directo) a alguno de los puertos mencionados. Esto se puede realizar manualmente de la siguiente manera # ln -s /dev/ttyS3 /dev/modem 114 Sistema Básico Figura 4.25: Webmin: Editar direcciones de servidores Los winmodems usan otros nombres diferentes de los seriales estándares para sus dispositivos, como /dev/ttyLT0 por Lucent o /dev/sm56 por Motorola, pero finalmente se realiza el mismo vı́nculo a /dev/modem. Skina GNU/Linux tiene un pequeño programa que realiza esta tarea conocido como modemconf (figura 4.26). Heredero de modemtool original de Linuxconf y Red Hat incluido en las versiones antiguas en su control-panel. Este último fue reemplazado en varias de las nuevas distribuciones, pero el paquete aun esta disponible en la red. El siguiente paso es la configuración de la conexión a la red, no importando que sea tarjeta de red o módem. Conexión a Internet La información necesaria para la configuración de red se mencionó en la etapa de instalación y aquı́ no es diferente, ası́ que solo se mostraran las dos posibilidades para la configuración a Internet vı́a módem. 4.2 X-Window 115 Figura 4.26: Configuración de Módem con modemconf Linuxconf puede ser corrido en consola y no es necesario tener ventanas para realizar tareas de administración. Si esta en un shell y quiere correrlo en modo texto use el comando # linuxconf --text. Se puede mover entre opciones y botones con [tabulador] y [flechas] y escogerlas con [barra espaciadora] o [return]. No se deje engañar por las gráficas, estas son realmente en consola de texto, solo que han sido muy bien logradas por los programadores, tal que lucen como ventanas reales de X-window (figura 4.27). Para realizar la configuración de la red entre en las opciones: ♦ Configuración → Configuración de red −→ Tareas como cliente Como solo se tiene un módem, únicamente se necesita configurar la conexión PPP/SLIP/PLIP: presionar Agregar, se escoge el protocolo PPP6 ; Adicione el teléfono, el puerto del módem (/dev/modem), seleccione usar autenticación PAP (Password Authentication Protocol), su login y su contraseña proveı́das por el ISP. Acepte y presione Salir para llegar a la ventana principal. Una vez terminada la configuración de la interfaz, es necesario activarla, y para tal 6 En general todos los proveedores de Internet actualmente usan PPP (Point to Point Protocol) 116 Sistema Básico Figura 4.27: Linuxconf: en consola para configurar red Figura 4.28: Linuxconf: Interfaz PPP 4.2 X-Window 117 propósito se selecciona ♦ Control → Panel de Control −→ Controlar enlaces PPP/SLIP/PLIP Seleccione la interfaz generada PPP0 y se responde afirmativamente a la pregunta de Desea activar el enlace de red? . El sistema debe proceder a llamar y a ejecutar la conexión. Es relevante mencionar que Linuxconf no es del todo un proyecto unificado. Cada casa matriz tiene su versión “hecha en casa” para ser adaptada a sus particularidades, que sumado a su diseño modular, las opciones de sub-paquetes para realizar una sola tarea es amplia. Esto lleva a que el camino aqui presentado no sea único y sea solo una de las muchas opciones con esta herramienta. Este proceso mostrado con Linuxconf puede ser llevado a cabo gráficamente presionando el botón de [Configuración de redes] en DrakConf el cual lanzará draknet que ya fue usado durante la instalación (sección 2.2.5). Una de las herramientas mas populares para la conexión a Internet es kppp del escritorio KDE. Esta tiene excelentes caracterı́sticas como autodetección y seguimiento del costo de las llamadas. Para invocarlo se puede ir al escritorio y en el grupo Internet lo encuentra o simplemente con el comando kppp. En la ventana principal de kppp, se observan las diferentes conexiones configuradas, usuario y contraseña. Ya que no se tiene ninguna conexión pre-configurada presiona Configuración para para crear una nueva (figura 4.29). En la ventana de configuración se oprime [Nueva] y aparece la ventana de nueva conexión con la [Configuración de marcado]. Se editan los espacios con el nombre de la conexión, el teléfono a usar, y el protocolo de autenticación. También aquı́ se puede adicionar opciones al demonio pppd (adicionales a las existentes en /etc/ppp/options) las cuales se van a omitir (figura 4.30). Las otras carpetas, suelen tener valores por defecto que no hay necesidad de cambiar ya que el servidor de Internet las asignará cuando se negocie la conexión a través de DHCP, pero de todas maneras se deben revisar. Los valores aquı́ asignados son 118 Sistema Básico Figura 4.29: Conexión a Internet con Kppp Figura 4.30: Configuración de una nueva conexión con Kppp 4.2 X-Window 119 los mismos que se asignan para una conexión a red local. Al final de las carpetas se encuentra el seguimiento de coste. Aun no está todavı́a con información de todos los paı́ses pero es posible configurar que contabilice el tráfico de bytes de entrada y salida. Ahora se oprime el botón [OK] situado en la parte inferior de la ventana, y se habrá creado la configuración de la conexión a su ISP. Una vez vuelva a la ventana de configuración, se verifica que la información de la linea y de los dispositivos es correcta. En general los valores por defecto son los correctos pero eso nunca es válido para la máquina que se posee ;-). Para ello oprima [Dispositivo Serie] y asigne correctamente el dispositivo y los demás datos (figura 4.31). Figura 4.31: Configuración del dispositivo serial con Kppp Se oprime [módem] y se obtendrá una serie de utilidades y opciones para el dispositivo. Se podrá configurar todos los strings de llamado y reinicio del módem. Además se puede hacer una prueba del módem y extraer la información de el mismo con [Con- 120 Sistema Básico sultar módem], y además abrir una terminal del módem para hablar directamente con el. Para iniciar la conexión, en la ventana principal, se escoge el nombre de la conexión, se teclea el login y el password y se oprime conectar. Aparecerá inmediatamente en la pantalla una pequeña ventana en donde encontrará los mensajes de conexión y/o error. Es posible que las lı́neas de acceso se encuentren ocupadas. Si esto sucede puede seguir intentando hasta lograr la conexión. Cuando logre la conexión se podrá hacer uso de cualquier servicio de Internet. En el momento en que se decida terminar su sesión, se debe tener la precaución de desconectarse pues corre el riesgo de ocupar la lı́nea telefónica por más tiempo del necesario, y además estará privando a otros de este servicio. Una de las herramientas mas poderosas y simples para conectarse a Internet es wvdial (http://www.worldvisions.ca/wvdial/). Es un programa en linea de comandos con “inteligencia”. Únicamente es necesario tener una archivo de configuración /etc/wvdial.conf para realizar una conexión. Este archivo luce de la siguiente forma: [Dialer Defaults] Modem = /dev/ttyS3 Baud = 57600 Init = ATZ Phone = 111-111 Username = kasandra Password = my-password en el se muestra que el modem se encuentra en ttyS3 (COM4), usa 56Kbps, el teléfono es 111-111, el usuario sera kasandra y la contraseña my-password. Por supuesto es un pequeño hueco de seguridad tener la contraseña escrita en un archivo plano pero por ahora lo ignoramos. 4.2 X-Window 121 En una consola, el comando wvdial, se encargara de realizar la llamada, esperar la respuesta y de forma inteligente determinar el modo de autenticación: PAP, CHAP o en linea, y realiza la conexión. Puede sonar algo primitivo esta forma de conectarse, pero hay cosas que no pueden realizarse fácilmente con programas gráficos. Por ejemplo: El usuario llega a su casa a las 10 pm. y desea que su máquina a esa hora ya se haya conectado a Internet y tenga todo su correo disponible localmente. Este proceso es extremadamente simple usando un script con wvdial y fetchmail, y el tiempo lo controla con cron, pero realizarlo con herramientas como kppp y por decir, evolution para el mail, es cercano a imposible. Establecer el nombre del ordenador Si el sistema Linux recientemente instalado tiene como nombre localhost, y se desea personalizar el nombre del computador, las herramientas de configuración de red que se han tratado, todas permiten asignar el nombre al equipo. Por completitud, esto se puede realizar en linea de comandos utilizando el comando hostname como root. Si por ejemplo se quiere llamar al computador ordenador irulan basta con escribir el comando # hostname irulan. 122 4.3. 4.3.1. Sistema Básico Gestión de paquetes Herramientas de administración Como se mencionó en la instalación, los programas para Skina GNU/Linux vienen en forma de paquetes comprimidos con extensión RPM (Red Hat Package Manager). Para la gestión de dichos paquetes, se dispone de varios programas: En “lı́nea de comandos” se utiliza el programa rpm, al cual permite no solo instalar o desinstalar paquetes, sino además puede solicitarse información, verificar dependencias, etc. En la tabla 4.2 aparecen las opciones generales. Opción Descripción -i Instala (install) –force fuerza la instalación -h Indica el progreso -v . -U Actualiza (update) –force fuerza la actualización -h hash -v . -e Desinstalar (erase) -q Información (query) -a Todos los paquetes instalados -i Información principal -l Lista de archivos -p Información de paquetes no instalados Cuadro 4.2: Opciones básicas de rpm Vemos unos cuantos ejemplos: 1. Instalar el paquete tcd-1.2.0-30.i386.rpm (CD player): 4.3 Gestión de paquetes 123 # rpm -ivh tcd-1.2.0-30.i386.rpm tcd ################################### 2. Ver la información del paquete instalado tcd: # rpm -qi tcd Name : tcd Version : 1.2.0 Relocations: (not relocateable) Vendor: Skina Ltda. Bogota, Colombia Release : 30 Build Date: Tue Aug 22 21:52:05 2000 Install date: Mon Oct 18 Build Host: irulan.skina.com.co Group : Sound Source RPM: gnmedia-1.2.0-30.src.rpm Size : 536181 License: LGPL Packager : [email protected] URL : http://www.gnome.org Summary : Compact curses based CD player Description : Compact curses based CD player, with easier key control and more features than other CD players, such as track repeat, continuous play, track database, etc. Authors: -------Changwoo Ryu <[email protected]> Raja R Harinath <[email protected]> Tom Tromey <[email protected]> 3. Ver la información del paquete tcd que no está instalado: # rpm -qip tcd-1.2.0-30.i386.rpm y saldrá la misma información que antes. 4. Borrar el paquete instalado tcd: # rpm -e tcd-1.2.0-30 Existen varios programas para el entorno X-Window, de fácil utilización. Cada interfaz gráfica provee una herramienta: KDE tiene kpackage como su herramienta gráfica de manejo de paquetes (figura 4.32). 124 Sistema Básico Figura 4.32: Manejo de paquetes con kpackage En GNOME se encontraba gnorpm que fue abandonado y reemplazado por una adicion a nautilus: nautilus-rpm pero para el autor no es un reemplazo. Esta aplicación presenta una interfaz avanzada y amable con las mismas habilidades de kpackage (figura 4.33). Además, Skina GNU/Linux provee una herramienta propia: rpmdrake, la cual tiene origen en un concepto similar a kpackage pero esta se extiende agregando otras utilidades hasta la presente distribución donde se convierte en un administrador de “la distribución” particular mas que de paquetes individuales (figura 4.34). 4.3.2. Conversión de paquetes Una de los retos de la administración de paquetes, es la falta de disponibilidad de los programas en los formatos requeridos. Ejm: Los usuarios de Slackware usualmente desean usar paquetes que vienen en formato rpm. Para resolver este problema esta disponible un programa llamado alien para lı́nea de comandos, el cual permite convertir los paquetes a distintos formatos: tgz (utilizado por Slackware), 4.3 Gestión de paquetes 125 Figura 4.33: Manejo de paquetes con gnorpm deb (utilizado por Debian) o rpm (utilizado por Red Hat, Mandrake, SuSE y OpenLinux). 126 Sistema Básico Figura 4.34: Manejo de paquetes con rpmdrake 4.4 Configuración de hardware 4.4. 127 Configuración de hardware La inclusión de nuevo hardware o de hardware que no fue apropiadamente instalado es una de las labores que eran bastante temidas hace algún tiempo. Skina GNU/Linux provee varias herramientas que permiten la detección y configuración de estos equipos. 4.4.1. Harddrake La herramienta mas poderosa que posee Skina GNU/Linux para la configuración de hardware es HardDrake el cual integra programas tres niveles de programas: Figura 4.35: HardDrake: Herramienta de administración de dispositivos Librerı́a Detect: Es la máquina de auto-detección reuniendo varias herramientas como isapnptools y SuperProbe Harddrake: La interfaz gráfica que combina la detección con la configuración 128 Sistema Básico Harddrake Wizard: Es una herramienta de configuración genérica y es el reemplazo de Soundrake y Etherdrake Para iniciar la herramienta, en una consola se escribe harddrake o desde el botón de configuración de hardware en DrakConf. Esto puede tomar algo de tiempo mientras realiza su tarea. Una vez se activa muestra un administrador gráfico de dispositivos (figura 4.35). Se señala el dispositivo que se desea configurar y se corre la herramienta particular para el, por ejemplo la herramienta de configuración de sonido i.e. sound-wizard (figura 4.36) que aparece cuando se presiona [Corra herramienta de configuración ] (Run configuration Tool). Figura 4.36: HardDrake: Sound-wizard En esta ventana se pueden cambiar el modulo del kernel (driver) utilizado, y en caso que tenga problemas también le será posible cambiar los datos de interrupciones (IRQ) o áreas de memoria y demás, cuestión que, en principio, no es muy buena idea ya que estos han sido pre-seleccionados como consecuencia de la detección. Cuando se presiona [OK] se corre una prueba de tres sonidos: 8 bits, 16 bits y MIDI. Si se 4.4 Configuración de hardware 129 oyeron correctamente, se presiona nuevamente [OK] para confirmar la configuración. Mas adelante se presentan otras formas de configurar el sonido. 4.4.2. Kudzu Una de las herramientas mas completas que es incluida en Skina GNU/Linux para la configuración automática de hardware es Kudzu. De casa matriz Red Hat, es usada por varias distribuciones e integra programas de auto-detección de hardware con la generación de archivos de configuración. Para iniciarlo, en una consola se escribe kudzu. En ese momento, compara el hardware existente con una base de datos almacenada en /etc/sysconfig/hwconf. Esto puede tomar algo de tiempo mientras realiza su tarea. Si encuentra alguna diferencia con la configuración original reporta la diferencia y da la opción de mantener la configuración actual, de crear la nueva o simplemente ignorar el evento. En la figura 4.37 se muestra el reporte de un cambio de ratón en el sistema. Figura 4.37: Kudzu: Detección y configuración automática de Hardware 130 4.4.3. Sistema Básico Configuración del sonido El funcionamiento de la tarjeta de sonido durante mucho tiempo fue un arte que pocos dominaban sobre Linux. En este momento se ha progresado considerablemente en el área hasta casi tener soporte para la gran mayorı́a de tarjetas del mercado y lograr que los mismos fabricantes provean el soporte sobre Linux. Si en la instalación no fue detectado el dispositivo de sonido ahora se incluirá el soporte en el sistema. Se va a usar la herramienta de configuración de Red Hat: sndconfig que es también distribuida con Skina GNU/Linux pero no instalada por defecto. Como usuario root, en una consola escriba el comando sndconfig y presione [return]. El programa procederá a detectar las tarjetas PnP (Plug and Play) tanto ISA como PCI, y por esto mostrará una advertencia si se esta corriendo bajo X Window. Si la detección es exitosa, se muestra la elección y se procederá a correr muestras de sonido digital y análogo para verificar que el sistema esta corriendo correctamente. Si la auto-detección no es exitosa se tiene la posibilidad de escoger manualmente la tarjeta (figura 4.38). Figura 4.38: Sndconfig La adición de la tarjeta de sonido se ve reflejado en el archivo /etc/conf.modules el cual ordena los módulos que se anexan al kernel en el momento de arranque y 4.4 Configuración de hardware 131 los parámetros particulares relativos al hardware a soportar. Por ejemplo, si se tiene una SoundBlaster, se le adicionaran las siguientes lineas al archivo alias sound-slot-0 sb options sb io=0x220 irq=7 dma=0 mpu_io=0x300 alias midi opl3 options opl3 io=0x388 donde leyendo linea por linea: la tarjeta es una Sound Blaster (sb) en la dirección 0x200, la interrupción numero 7 y el dma 1, el sintetizador midi MPU401 usa la dirección 0x300, el sintetizador FM de sonido midi de la tarjeta es un Yamaha OPL3 el cual esta en la dirección 0x388. Es importante notar que esta es la forma en que todo el hardware es soportado por los nuevos Linux, el kernel es modular y simplemente se adicional lineas al archivo conf.modules para incluir el soporte. Capı́tulo 5 Configuración de Servicios 5.1. 5.1.1. Configuración de servicios Servicio de impresión La impresión en sistemas tipo UNIX siempre ha representado un problema. A diferencia de otros sistemas con un solo proveedor como Microsoft Windows o Apple MacOS, UNIX no tiene un estándar único. Este ha estado dominado por dos corrientes diferentes Berkeley Line Printer Daemon (LPD) [RFC1179] y el AT&T Line Printer System, siendo el primero el mas difundido hasta nuestros dı́as. Ambos sistemas fueron diseñados en los 70’s para imprimir texto en impresoras de linea o postscript en dispositivos apropiados. Cada proveedor ha extendido el soporte a otros tipos de impresoras obteniendo diferentes “sabores” del estándar. En este proceso han emergido varios reemplazos como LPRng, Palladin y PLP, pero ninguno cambia de manera fundamental las capacidades del diseño original. En los últimos años se ha hecho esfuerzos para obtener un estándar POSIX de impresión sin mucho éxito. En 1999 el IPP (Internet Printing Protocol) define las extensiones para el protocolo HTTP para el soporte de servicios de impresión remota. El documento es aceptado por la IETF (Internet Engineering Task Force) en Octubre de ese mismo año con un soporte amplio de la industria. 133 134 Configuración de Servicios CUPS (Common UNIX Printing System) es un sistema de impresión portable, extensible y seguro para sistemas operativos tipo UNIX. Es una implementación del protocolo IPP (Internet Printing Protocol) versión 1.1 aprobado en el 2000. Este estándar ha sido adoptado por muchos proveedores incluyendo el mayor enemigo de estándares de comunidad como es Microsoft y su producto Windows 2000. El desarrollo actual de CUPS sobre Linux esta siendo llevado a cabo por Easy Software Products bajo licencia GNU GPL con excepción del CUPS API que tiene licencia GNU LGPL para garantizar el uso de este estándar en aplicaciones no GPL. CUPS además provee interfaces de compatibilidad con estándares como LPD (Line Printer Daemon), SMB (Server Message Block) y AppSocket (a.k.a. JetDirect) [cups]. Aun cuando se ha configurado una impresora durante la instalación con DrakX, no se esta exento de afinar su configuración, adicionar una nueva o simplemente cambiar de impresora. CUPS es, en esencia, un servidor www. Entonces, no solo los trabajos de impresión transportan por este medio, sino que la administración puede hacerse con un simple navegador. Basta con contactar la dirección http://elservidor:631 y se tendrá un menú con las tareas a realizar con el servidor en el que se encuentra trabajando (figura 5.1). Tareas de Administración (Do Administration Tasks): Realizar labores de administración en el servidor. Por supuesto, necesita contraseña de root. Administración de Grupos de Impresoras (Manage Printer Classes): Manejar las clases en las que se agrupan las impresoras. On-Line Help: Ayuda en linea. Administración de Trabajos de impresión (Manage Jobs): Administrar los trabajos en el servidor Administración de impresoras (Manage Printers): Manejar las impresoras visibles en el servidor desde la máquina local. 5.1 Configuración de servicios 135 Bajar los últimos programas de CUPS (Download the Current CUPS Software): Bajar la última versión de CUPS. Figura 5.1: Bienvenida del servidor CUPS Se selecciona [Do Administration Tasks] y se ingresa la contraseña de root de la máquina. Si se teme por los posibles huecos de seguridad que conlleva esto, tiene razón. Las contraseñas viajan en texto por la red haciendo posible que otras personas las vean. Solo use administración remota en redes locales o seguras, no todos los servidores deben tener este servicio de administración disponible. CUPS ha implementado una autenticación digerida (Digest) usando chequeo de integridad MD5 pero hasta el momento pocos navegadores soportan esta opción. Al iniciar las labores de administración se muestra las tres entidades involucradas en la impresión: trabajos, clases e impresoras (figura 5.2). 136 Configuración de Servicios Figura 5.2: CUPS: Labores de administración Se inicia seleccionando la adición de una impresora [Add Printer]. Aparecerá entonces la pantalla de descripción de la impresora donde el único valor obligado es el nombre. También se tiene un espacio para la descripción y la ubicación. CUPS al igual que los otros sistemas de impresión, puede utilizar impresoras conectadas al computador que se esta utilizando o impresoras remotas en otros computadores, utilizando diversos protocolos: LPR (Unix), SMB (MS-Windows) y NCP (Novell Netware) y ponerlas a disposición de otros clientes siguiendo los mismos protocolos. Se escogerá una impresora local seleccionando el primer puerto paralelo como dispositivo de conexión (figura 5.4). La instalación presentará inicialmente una lista de marcas, de la cual se escoge la adecuada y se presiona continuar para entonces obtener una lista de impresoras (figura 5.5) de la marca escogida. Se selecciona la correspondiente o la que mas se parezca al modelo. Una vez configurada la impresora se presentará la pantalla reportando el resultado. Si se presiona el nombre de la impresora se obtiene la descripción total del dispositivo (figura 5.6). 5.1 Configuración de servicios Figura 5.3: CUPS: Descripción de impresora Figura 5.4: CUPS: Conexión de la impresora 137 138 Configuración de Servicios Figura 5.5: CUPS: Modelos de impresoras Figura 5.6: CUPS: Impresoras configurada 5.1 Configuración de servicios 139 Como se menciona al inicio del presente capitulo, el centro de control de Skina GNU/Linux , DrakConf dispone de un conjunto de botones para diferentes tareas de administración, entre ellas incluye un botón de configuración de Impresoras presionando [Sistema]→[Printer] el cual llama la misma herramienta utilizada en el momento de la instalación: printerdrake. Por esto la Sección 2.2.5 puede ser seguida paso a paso para instalar las impresoras. Se escoge su versión en texto para las ilustraciones. Al iniciar printerdrake muestra las colas instaladas (figura 5.7) y un botón de adición [Add]. Si no se ha instalado una impresora previamente el sistema inicia por defecto adicionando una cola. Figura 5.7: Printerdrake: Pantalla principal Se presenta ahora la posibilidad de escoger la conexión a la impresora: remotas usando LPR (Unix) o SMB (MS-Windows), o local por puerto paralelo. Se escogerá una 140 Configuración de Servicios impresora local. Figura 5.8: Printerdrake: Tipos de conexión de impresoras Printerdrake tratará de detectar el dispositivo donde se encuentra conectada la impresora, que por defecto es el primer puerto paralelo conocido como /dev/lp0. Aparecerá entonces la ventana de descripción con todos la información de la impresora: el Nombre: lp por defecto1 , la descripción y la ubicación. Figura 5.9: Printerdrake: Descripción de impresora La instalación presentará una lista de impresoras (figura 5.10), se selecciona la correspondiente o la que mas se parezca al modelo. Una vez seleccionada se pregunta si desea hacer una prueba, la cual se recomienda. Una vez configurada la impresora se presentará nuevamente la pantalla de colas y 1 Herencia del formato de LPD 5.1 Configuración de servicios 141 Figura 5.10: Printerdrake: Modelos de impresoras se puede presionar hecho [Done] y posteriormente pulsar [OK] para abandonar el programa. La interfaz de usuario KDE presenta una herramienta de administración de CUPS denominada kups. Este programa es fundamentalmente equivalente a la interfaz de administración remota proveida por el servidor de impresión y presenta una secuencia de pantallas con el mismo objetivo. Se selecciona la herramienta en el menú de KDE o se escribe el comando 2 . La ventana inicial muestra a la izquierda un explorador jerárquico con las impresoras y las clases previamente configuradas o presentes en la red en otros servidores CUPS. A la derecha se muestran dos carpetas, una con la descripción de la impresora o clases (Infos) y la segunda con la información de los trabajos de la impresora o clase seleccionada (Jobs) (figura 5.11). En el menú se encuentran varias tareas como enviar impresiones de prueba o inclusive configurar el demonio de CUPS, labores que se omiten por el momento. 2 Si usa KDE como interfaz estándar, presionando [Ctrl+F2], obtiene una ventana en donde se pueden ejecutar los comandos sin abrir una consola 142 Configuración de Servicios Figura 5.11: Ventana principal de Kups Se inicia seleccionando la adición de una impresora [Printer]→[Add]. Aparecerá entonces la pantalla de inicio del Wizard que guiará la instalación de una nueva impresora. Se presiona [Next] para continuar. A continuación se presenta una lista de las posibles conexiones de la impresora (figura 5.12). Figura 5.12: Kups: Conexión de la impresora Local Printer: Impresora local serial o paralela 5.1 Configuración de servicios 143 Class of printers: Grupo de impresoras LPD Line Printer Daemon: Impresora remota estándar UNIX IPP Internet Printing Protocol: Impresora remota utilizando protocolo IPP. SMB Windows shared printer: Impresora compartida por Windows. Socket AppSocket network printer: Impresora compartida por Mac OS. Se escogerá una impresora local seleccionando el primer puerto paralelo como dispositivo de conexión (figura 5.13). Figura 5.13: Kups: Impresora Local Después de presionar [Next] se presenta una lista de marcas y modelos, de la cual se escoge la adecuada y se presiona [Next] (figura 5.14). Ahora es necesario dar la descripción de la impresora donde el único valor obligado es el nombre. También se tiene un espacio para la descripción y la ubicación (figura 5.15). Una vez configurada la impresora se presentará la pantalla reportando el resultado y solicitando confirmación (figura 5.16). Si se presiona [OK] se culmina el proceso. 144 Configuración de Servicios Figura 5.14: Kups: Modelos de impresoras Figura 5.15: Kups: Descripción de impresora 5.1 Configuración de servicios 145 Figura 5.16: Kups: Confirmación de Impresora configurada 5.1.2. Compartir Recursos Después de la impresión, el espacio en disco es el recurso mas difundido dentro de las redes locales. Para compartir recursos Linux hereda de UNIX un estándar conocido como NFS (Network File System) originado por Sun en los años 70. El otro protocolo usado por Linux es SMB implementado por Samba para compartir tanto impresión como archivos con MS-Windows. Usando NFS La forma mas directa de ofrecer un directorio por NFS es editando el archivo /etc/exports. En este archivo se escribe, el directorio a exportar, las máquinas que tiene permitido el acceso y los permisos que estos tienen. A continuación se muestra el ejemplo del manual de este archivo [man] # sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash) 146 Configuración de Servicios En este ejemplo se ve en la primera linea que se comparte la raı́z “/” a un equipo llamado master con permisos de lectura y escritura, mientras que para el equipo trusty, tiene lectura escritura y además la identidad de root es transferida del servidor al cliente; /project se comparte a todos los equipos con un nombre iniciado por proj en una red. Una vez se tiene el archivo a satisfacción, se debe reiniciar el servidor NFS con el comando # /etc/rc.d/init.d/nfs restart y garantizar que este inicia automaticament cuando el sistema esta arrancando. Para esto se utilizan herramientas de manejo de servicios como drakxservices en Mandrake o ntsysv en Red Hat. Los directorios compartidos por NFS pueden ser manejados desde Linuxconf (como casi todo). En la pantalla principal se escoge Redes (Networking) y en la carpeta de Tareas de Servidor se tiene Sistemas de archivos exportados (Exported File Systems NFS) en donde se muestra la lista de directorios compartidos. Se presiona [Adicionar] (Add) para llenar los valores que se describieron anteriormente (figura 5.17 y 5.18). Figura 5.17: Linuxconf: Tareas como servidor 5.1 Configuración de servicios 147 Figura 5.18: Linuxconf: Configuración de NFS Desde el punto de vista del cliente, el directorio compartido ha de ser montado como cualquier otro disco: es simplemente un “dispositivo de red”. En la linea de comandos es como se ve a continuación: # mount -t nfs myservidor:/pub /usr/local/pub o puede ser incluido en el archivo /etc/fstab en donde se encuentran todos los dispositivos de almacenamiento de archivos que son montados al inicio del sistema como se ve en el siguiente ejemplo. # Ejemplo de archivo /etc/fstab # /dev/hdb3 / ext2 defaults 1 1 /dev/hda1 /mnt/windows vfat defaults 1 2 /dev/hda2 swap swap defaults 0 0 # chani.skina.com.co:/pub /usr/local/pub nfs defaults 1 2 El anterior archivo es solo un ejemplo, para ilustrar como se monta un sistema de archivos remoto desde el inicio del sistema. Si desea profundizar mas en el tema puede remitirse a la sección 3.2. 148 Configuración de Servicios Samba Samba es, con Linux y Apache, uno de los proyectos mas exitosos de software libre. Se llama a si mismo un Servidor de archivos para Linux usando Windows SMB (Server Message Block)/CIFS (Common Internet File System). El conjunto de aplicaciones y servicios que componen el proyecto van desde compartir archivos a hacer control de dominio de Windows NT. Configurar un servidor Samba es, en principio, asignar su dominio. Todas las distribuciones incluyen una configuración estándar donde los directorios de los usuarios y las impresoras están compartidos por defecto. Ahora se procederá a hacerlo de forma explicita. Para compartir un directorio, se va a utilizar la herramienta de configuración desarrollada dentro del proyecto Samba: swat. Esta es un servidor que permite la configuración del servidor por medio de protocolo HTTP. Una vez se tiene el servicio de swat corriendo, desde un navegador se llama la dirección http://localhost:901 el cual, después de dar usuario y contraseña presenta la pantalla de bienvenida (figura 5.19. Para iniciar se llama la forma de [Globals] donde se puede configurar tanto del Dominio (Workgroup) como el control de acceso y demás caracterı́sticas del servicio, del cual se mantendrán los valores por defecto. Para compartir directorios se llama la pantalla de [Shares]. Como se menciono, Samba incluye por defecto la configuración para que todos los los usuarios puedan compartir su directorio raı́z (home), pero se puede diseñar uno nuevo escribiendo su nombre y presionando [Create Share], al tiempo aparece la pantalla con todas las opciones: el comentario que se muestra la anunciar el compartido, el sitio del directorio a compartir, la lista de usuarios y máquinas que pueden tener acceso a el y una vez se han llenado estos valores se presiona [Commit Changes] para salvar los valores (figura 5.20). Una vez se ha validado y actualizado la información se reinician los servicios de smb y estos directorios estarán disponibles para otros usuarios de la red local Windows. 5.1 Configuración de servicios Figura 5.19: Configuración de Samba con swat Figura 5.20: Swat: Compartir directorios con Samba 149 Apéndice A Licencias Públicas GNU La siguiente información es la traducción al Español de la Licencia Pública General GNU y de la Licencia de Libre Documentación de GNU. Es una traducción NO OFICIAL, por tanto su uso deberá ser únicamente para fines informativos. LICENCIA PÚBLICA GENERAL GNU Versión 2, Junio 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA Cada 02111-1307, USA quien tiene permitido copiar y distribuir al pie de letra copias de este documento de licencia, pero la no es permitido cambiarlo. Preámbulo Las licencias para la mayorı́a del software se quitarte dise~ nan tu libertad para compartirlo y cambiarlo. contrario, la Licencia Pública General GNU se para asegurar que el software sea libre para usuarios. Esta Licencia Pública General se todos aplica cualquier otro programa cuyos autores se comprometan a de ella. (Algún otro software de 151 la a libre sus a mayorı́a del software de la Fundación del Software Libre uso el destina garantizar tu libertad de compartir y cambiar software -- para Por la y a hacer Fundación del 152 Licencias Públicas GNU Software Libre esta cubierto por la Licencia Pública General de Librerı́as GNU en lugar de la anterior.) Puedes aplicarlo a tus programas, también. Cuando nosotros referimos a hablamos de software la libertad, no al precio. libre, nosotros Nuestras Licencias Públicas Generales se dise~ nan para asegurar libertad para distribuir copias de software libre (y para este fuente servicio o puedas si lo deseas), que conseguirlo si lo que tienes recibas el quieres, la cobrar código cambiar software o usar pedazos de ellos en nuevos programas el libres; y saber que puedes hacer estas cosas. Para proteger tus restricciones que derechos, prohı́ban nosotros derechos o te pida cederlos. que necesitamos alguien te hacer niegue estos Estas restricciones se traducen a ciertas responsabilidades para ti si distribuyes copias del software, o si lo modificas. Por ejemplo, si distribuyes copias de tal programa, gratis o a un costo, debes dar a los receptores derechos reciban que tienes. o puedan ya sea todos los Debes de asegurar que ellos, conseguir el código también, fuente. Y debes mostrarles estos términos y ası́ ellos sabrán sus derechos. Nosotros protegemos tus derechos con dos pasos: (1) registrar el software, y (2) ofrecerte esta licencia que te da permiso legal para copiar, distribuir y/o modificar el software. También, para la protección de cada autor y nuestra, nosotros queremos dejar por seguro que todos comprendan que garantı́a para software este software libre. Si el no hay es modificado por alguien más y es pasado, nosotros queremos que sus receptores sepan que lo que ellos tienen no es el original, ası́ para cualquier problema que sea introducido por otros no se reflejará sobre la reputación de los autores originales. Finalmente, constantemente cualquier por programa las patentes libre de es amenazado software. Nosotros deseamos de evitar el peligro de que los redistribuidores de un programa libre obtengan licencias de patente individuales, con en el efecto de hacerse propietarios del programa. prevenir patente esto, debe nosotros hemos dejado permitir el uso libre claro de que todos Para cualquier o no ser permitido en su totalidad. Las condiciones y términos precisos para copiar, distribuir y 153 modificar sigue a continuación. TÉRMINOS Y CONDICIONES PARA COPIAR, DISTRIBUIR Y MODIFICAR. 0. Esta Licencia trabajo que Copyright de aplica a cualquier programa por el esta Licencia "trabajo se Pública General. El u otro tenedor diciendo que puede distribuirse bajo los adelante, del términos "Programa", refiere a cualquier programa o trabajo, más y un con base en el Programa" significa o el Programa cualquier decir, se contenga un aviso puesto trabajo derivado bajo la ley del Copyright: o es un trabajo que contiene el Programa o una porción de él, o al pie de la letra o con modificaciones y/o traducido a otro idioma. sin limitación (De aquı́ en adelante, la traducción se incluye en el término "modificación".) Cada permisionario se dirige como "usted". Otras actividades a excepción del copiado, distribución y modificación no son cubiertas por esta Licencia; ellas afuera esta de su alcance. restringido, y El acto de ejecutar el las salidas del la están Programa Programa se no cubren únicamente si sus contenidos constituyen un trabajo con base en el Programa (independiente de que se halla hecho corriendo el Programa). Ya sea que esto es cierto depende de lo que el Programa hace. 1. Usted puede copiar y distribuir al pie de la letra copias el código fuente cualquier del Programa como usted medio, con tal que usted lo recibe, por notoriamente y adecuadamente publique sobre cada copia un apropiado aviso de Copyright los y avisos cualquier Programa una negación de garantı́a; guarde intacto todos que refieran a esta Licencia y a la ausencia garantı́a; una copia y de a cualquier otro receptor de esta Licencia conjuntamente de del con el Programa. Usted puede cobrar un costo para el acto fı́sico de transferir una copia, y usted puede en su opción ofrecer protección de garantı́a a cambio de un costo. 2. Usted puede modificar su copia o copias del Programa o cualquier porción de él, ası́ formando un trabajo con base el Programa, trabajos y en copiar y distribuir tales modificaciones bajo los términos de Sección 1 de arriba, con o tal que usted también conozca todas estas condiciones: * a) Usted debe hacer que los archivos modificados lleven 154 Licencias Públicas GNU avisos destacados afirmando que usted cambió los archivos y la fecha de cualquier cambio. * b) Usted debe hacer que cualquier trabajo que usted distribuye o publica, que en su totalidad o en parte contiene o se deriva del Programa o cualquier parte de él, debe ser autorizado como un todo sin ningún cargo a todos los terceros bajo los términos de esta Licencia. * c) Si el programa modificado normalmente lee los comandos interactivamente comenzó a cuando es ejecutado, usted debe, correr con tal uso interactivo en la cuando manera ordinaria, imprimir o mostrar un anuncio incluyendo un apropiado otra, de Copyright y un aviso de que no hay garantı́a diciendo usuarios que pueden usted provee una garantı́a) redistribuir el y programa Licencia. (La interactivo excepción: si el Programa bajo en sı́ los estas de esta mismo pero no imprime normalmente tal anuncio, con base al Programa no se requiere que (u que condiciones, y dı́gale al usuario como ver una copia trabajo más aviso es en su imprima un anuncio.) Estos requerimientos se aplican al trabajo una totalidad. no son derivadas considerarse modificado Si las secciones identificables del del Programa, y puede como trabajo razonablemente los trabajos separados e independientes en sı́ mismos, entonces esta Licencia, y sus términos, no se aplican a esas secciones cuando usted los distribuye como separados. trabajos Pero cuando usted distribuye las mismas secciones como parte de una totalidad que es un trabajo con base en Programa, los la distribución de la totalidad debe términos de permisionarios para cada esta Licencia, cuyos permisos se extienden en su entera y estar todas las partes sin para totalidad, considerar el sobre otros y ası́ quien lo derechos o escribió. Ası́, no es disputar usted; intento sus más controlar de esta sección derechos reclamar al trabajo escrito enteramente bien, el intento está en ejercer la distribución de los el trabajos por derecho a colectivos o derivados con base en el Programa. Además, la mera agregación de otro trabajo no basado Programa Programa) con el Programa (o con un trabajo con sobre un volumen de almacenaje base o en el en el medio distribución no se maneja al otro trabajo bajo el alcance esta Licencia. de de 155 3. Usted puede copiar y distribuir el Programa (o un trabajo con base en él, bajo la Sección 2) en el código objeto o forma ejecutable bajo los términos de Secciones 1 y en 2 de arriba con tal que usted también haga lo siguiente: * a) Acompa~ narlo con el completo código-máquina correspondiente, que debe distribuirse bajo los original términos de Secciones superiores 1 y 2 sobre un medio habitualmente usado para el intercambio de software; o, * b) Acompa~ narlo con una oferta escrita, valedera para por lo menos no tres a~ nos, para dar a cualquier tercero, por un cargo mayor a su costo de ejecutar la distribución fı́sica, copia completa correspondiente al código-máquina, distribuido una para ser bajo los términos de las Secciones superiores 1 y 2 sobre un medio habitualmente usado para el intercambio de software; * c) o, Acompa~ narlo con la información que usted recibió, como la oferta para distribuir el código original correspondiente. (Esta no alternativa se permite únicamente para la distribución comercial y únicamente si usted recibió el programa en el código objeto o en forma ejecutable con tal oferta, en el acuerdo con la Subsección superior b.) El código fuente para un trabajo significa la forma preferida del trabajo ejecutable, código fuente cualquier los para hacerle modificaciones. el código para los módulos trabajo que todo el contiene, más asociada, más Sin embargo, como una excepción especial, el original que un usados para controlar compilación e instalación del ejecutable. cosa todos Para significa archivo de definición de interfaz scripts código fuente completo distribuido no necesita incluir cualquier se distribuye normalmente (o en forma de fuente o binaria) con los componentes importantes (compilador, núcleo, etcétera) del sistema operativo sobre el cual el corre, menos que ese componente en sı́ mismo a ejecutable acompa~ ne al ejecutable. Si la hecho distribución del ejecutable o del código por el ofrecimiento a un acceso para copiar lugar designado, equivalente cuenta como terceros entonces el ofrecimiento a copiar el código fuente desde el distribución del código no fuente, son obligados a copiar el fuente objeto es desde un de acceso mismo lugar si bien los conjuntamente con el código de objeto. 4. Usted no puede copiar, modificar, sublicenciar, o 156 Licencias Públicas GNU distribuir el Programa a excepción de los expresado bajo esta Licencia. Cualquier sublicenciar nulo, y intento para copiar, modificar, distribuir el Programa, de otra manera, terminarán automáticamente sus derechos Licencia. o o bajo es esta Sin embargo, las partes que hayan recibido copias, derechos, licencias de usted bajo esta terminado como Licencia partes no habrán permaneciendo sus en el cumplimiento lleno. 5. A Usted no se le exige que acepte esta Licencia, desde que usted no la ha firmado. Sin embargo, nada más le otorga permiso a usted para modificar o distribuir el Programa o sus trabajos derivados. si usted no modificar base Estas acciones son prohibidas por la ley acepta esta Licencia. Por lo tanto, por o distribuir el Programa (o cualquier trabajo el Programa), usted indica su Licencia al hacerlo, y todos sus términos y las condiciones para aceptación con en copiar, distribuir o modificar el Programa o a esta trabajos con base en él. 6. Cada vez que usted redistribuye el Programa (o cualquier trabajo con base en el Programa), el receptor automáticamente recibe una licencia del concedente original para copiar, distribuir o modificar el Programa sujeto a estos términos condiciones. adicional Usted sobre no el puede imponer ejercicio derechos otorgados aquı́. de ninguna los y restricción receptores de Usted no es responsable de los imponer el cumplimiento por terceros a esta Licencia. 7. Si, como consecuencia de una alegación o fallo de la corte a la (no transgresión de la patente o por cualquier otra limitada condiciones a que las consecuencias de se imponen sobre usted la razón patente), (por orden las de la corte, arreglo o de otra manera), contradicen las condiciones de esta esta Licencia, ello no lo excusa de las Licencia. simultáneamente ningunas sus otras consecuencia ejemplo, si condiciones Si usted no puede distribuir por obligaciones obligaciones usted una redistribución bajo esta pertinentes, no puede distribuir licencia libre de de regalı́as el patente del de satisfacer Licencia y entonces como Programa. Por no permite Programa por la todos aquellos que recibieran copias directamente o indirectamente mediante usted, satisfacer a entonces la única manera que ambos y esta Licencia estarı́a usted en podrı́a reprimir enteramente la distribución del Programa. Si cualquier porción de esta sección se invalida o no se hace cumplir bajo cualquier circunstancia particular, el balance 157 de la sección se destina a aplicarse y la sección como un todo se destina a aplicarse en otras circunstancias. No es el ninguna para propósito de esta sección inducirlo patente u otros reclamos de derecho de a infringir propiedad disputar la validez de ninguno de tales reclamos; sección tiene el único propósito único de o esta proteger la integridad del sistema de libre distribución de software, que es implementada Mucha por las prácticas de la licencia gente ha hecho contribuciones generosas a pública. aun amplia gama de software distribuido mediante este sistema basados en la confianza está en sobre la aplicación uniforme de ese sistema; manos del autor/donante el decidir si él o ella es dispuesto distribuir software mediante cualquier otro sistema y un permisionario no puede imponer la elección. Esta sección se destina para dejar completamente aclarado que se cree debe de ser una consecuencia del resto de lo esta Licencia. 8. Si la distribución y/o el uso del Programa se restringe en ciertos paı́ses o por patentes o por interfaces registradas, el tenedor original del Copyright quien pone al Programa bajo esta Licencia geográfica puede agregar una limitación de distribución explı́cita excluyendo a esos paı́ses, para que la distribución se permita únicamente en o entre esos paı́ses que no ası́ se excluyan. limitación En tal caso, esta Licencia incorpora la como si estuviera escrita en el cuerpo de esta Licencia. 9. La Fundación de Software Libre puede publicar revisiones y/o versiones nuevas de la Licencia Pública General de vez en cuando. Tales versiones nuevas serán similares en el espı́ritu a la versión actual, pero pueden diferir en detalles para dirigir intereses o problemas nuevos. A el que cada versión se le da un número distintivo de versión. Si Programa especifica un número de versión de esta Licencia lo aplica y además para "cualquier versión posterior" usted tiene la opción de seguir los términos y , las condiciones o de esa versión o de cualquier versión posterior publicada por la Fundación de Software Libre. no especifica puede Si el Programa un número de versión de esta Licencia, usted escoger cualquier versión alguna vez publicada por la Fundación de Software Libre. 10. Si usted desea de incorporar partes del Programa en otros programas libres cuya condiciones de distribución son 158 Licencias Públicas GNU diferentes, software escriba al autor para pedir que es registrado por la permiso. Fundación Libre, escriba a la Fundación de Software Libre; veces hacemos excepciones para esto. Para de el Software nosotros Nuestra decisión a será orientada por las dos metas de conservar la condición libre de los y todos derivados de nuestro software libre de promocionar la compartición y reuso de software generalmente. NINGUNA GARANTÍA 11. PORQUE EL PROGRAMA SE LICENCIA LIBRE DE EL CARGO, NO HAY GARANTÍA PARA EL PROGRAMA, AL ALCANCE PERMITIDO POR APLICABLE. ESCRITO EXCEPTO LOS CUANDO DE OTRA MANERA TENEDORES DEL COPYRIGHT Y/O LA LEY CONSTATABLE POR LAS OTRAS PARTES PROVEEN AL PROGRAMA "COMO ES" SIN GARANTÍA DE CUALQUIER TIPO, YA SEA EXPRESADO O IMPLICADO, INCLUYENDO, PERO NO ES LIMITADO A, LAS GARANTÍAS IMPLICADAS DE LA MERCABILIDAD Y LA APTITUD PARA A UN PROPÓSITO PARTICULAR. EL RIESGO ENTERO CON RESPECTO ~O DEL PROGRAMA ESTA CON USTED. EL LA CALIDAD Y EL DESEMPEN PROGRAMA AL PROBARSE DEFECTUOSO, USTED ASUME EL COSTO TOTAL DEL SERVICIO NECESARIO, REPARACIÓN O CORRECCIÓN. 12. EN NINGÚN CASO A MENOS QUE SEA REQUERIDO APLICABLE POR LA O DE ACUERDO POR ESCRITO DE CUALQUIER TENEDOR COPYRIGHT, O REDISTRIBUIR CUALQUIER OTRA PARTE QUE PUEDA EL PROGRAMA COMO SE CONSECUENTE, PERMITE INCIDENTAL O ESPECIAL DEL MODIFICAR Y/O ARRIBA, RESPONSABLE A USTED POR LOS DA~ NOS, INCLUYENDO CUALQUIER GENERAL, LEY QUE ES DA~ NO PROVENGAN FUERA DEL USO O INHABILIDAD PARA USAR EL PROGRAMA (INCLUYENDO PERO NO LIMITADO A LA PERDIDA DE DATOS O LOS DATOS ENTREGADOS INEXACTOS O LAS PERDIDAS SUFRIDAS POR USTED O POR TERCEROS POR UN FALLO DEL PROGRAMA AL OPERAR CON CUALQUIER PROGRAMA), AUN CUANDO TAL TENEDOR O LA OTRA PARTE ~OS. AVISADO DE LA POSIBILIDAD DE TALES DAN FIN DE TÉRMINOS Y CONDICIONES LE O OTRO HALLAN 159 Licencia de Documentación Libre GNU Version 1.1, Marzo 2000 Copyright (C) 2000 Free Software Foundation, Inc. ple Place, Suite 330, Boston, MA 59 Tem 02111-1307, USA Se permite la copia y distribución de copias literales de este documento de licencia, pero no se permiten cambios. 1. PREÁMBULO El propósito de esta licencia es hacer que un manual, libro de texto, u otro documento escrito sea libre en el sentido de libertad: para asegurar a todo el mundo la libertad efectiva de copiarlo y redistribuirlo, sin modificaciones, cial. En segundo término, esta licencia preserva autor o para con o bien de manera comercial o no comer quien publica una manera para de el obtener reconocimiento por su trabajo, al tiempo que no es consid erado responsable de las modificaciones realizadas por terceros. Esta licencia es una especie de "copyleft" que significa que los trabajos derivados del documento deben a su vez ser libres en el mismo sentido. Esta licencia plementa la Licencia licencia de copyleft Hemos dise~ nado Pública dise~ nada esta General para GNU, el com que es una software libre. Licencia para usarla en manuales de software libre, ya que el software libre necesita docu mentación libre: un programa libre debe venir con los man uales que ofrezcan la mismas libertades que ware. da el soft Pero esta licencia no se limita a manuales de soft ware; puede ser usada para cualquier trabajo textual, tener en cuenta impreso. su sin temática o si se publica como libro Recomendamos esta licencia principalmente para trabajos cuyo propósito sea instructivo o de referencia. 2. APLICABILIDAD Y DEFINICIONES Esta Licencia se aplica a cualquier manual u otro trabajo que contenga una nota propietario de los del derechos de reproducción que indique que puede ser distribuido bajo los términos de esta Licen cia. El "Documento", en adelante, se refiere a cualquiera de dichos público manuales es un o trabajos. licenciatario, "Usted". Una "Versión Modificada" cualquier Cualquier y será del traducciones es un Documento del como designa trabajo que contenga el Documento o una porción del mismo, ya sea una copia literal o y/o miembro denominado apéndice con modificaciones a otro idioma. Una "Sección Secundaria" titulado o una sección preliminar al prólogo del Documento que tiene que ver exclusivamente con 160 Licencias Públicas GNU la relación de quien publica o los autores del Documento con el tema general del Documento (o asuntos relacionados) y cuyo contenido no entra directamente en eral. (Por tal de matemáticas, una Sección Secundaria puede matemáticas.) gen no explicar La relación puede ser un asunto de conexión histórica, o de ética tema ejemplo, si el Documento es en parte un texto posición legal, comercial, filosófica, o polı́tica con el tema o con materias relacionadas. Las "Secciones Invariantes" son ciertas darias cuyos tı́tulos son Invariantes, en la nota que indica liberado bajo esta Licencia. Secciones denominados que como el Secun Secciones documento es Los "Textos de Cubierta" son ciertos pasajes cortos de texto que se listan, como Textos de Portada o Textos de Contra Portada, en la nota que indica que el documento es liberado bajo esta Licencia. Una copia "Transparente" del Documento significa una copia para lectura en máquina, representada en un especificación está contenidos pueden ser vistos y editados editores de formato cuya disponible al público general, cuyos texto directamente con genéricos o (para imágenes compuestas por pixeles) con programas genéricos para gráficas o (para dibujos) algún editor de dibujos ampliamente disponible, y que sea adecuado para exportar a formateadores de texto o para traducción automática a una variedad de formatos ade cuados para ingresar a formateadores de texto. hecha en Una copia un formato que de otra forma serı́a Transparente pero cuyo formato ha sido dise~ nado para impedir o dificul tar subsecuentes modificaciones por parte de los lectores no es Transparente. Una copia que no es "Transparente" llamada "Opaca". copias Transparentes incluyen formato ASCII plano sin formato, de Texinfo, formato de LaTeX, SGML o XML que usen un DTD disponible ampliamente, y HTML simple estándares y esté dise~ nado Los es Los ejemplos de formatos adecuados para formatos Opacos para incluyen que siga los modificaciones humanas. PostScript, PDF, formatos propietarios que pueden ser leı́dos y editados unicamente con procesadores de palabras propietarios, SGML o XML para los cuáles los DTD y/o herramientas de están disponibles generalmente, procesamiento no y el HTML generado en una máquina, producido por algún procesador de con propósitos de presentación. La para un libro impreso,la portada siguientes necesarias material que esta para Licencia portada. Para trabajos en como tal, aparición "Portada" más misma más requiere formatos del solo significa, las páginas mantener, legiblemente, significa prominente palabras "Portada" el que aparezca en la que no tienen Portada el texto tı́tulo cerca a del precediendo el comienzo del cuerpo del texto. la trabajo, 161 3. COPIA LITERAL Usted puede copiar y distribuir el Docu mento en cualquier medio, sea en forma comercial o no com ercial, siempre y cuando esta Licencia, las notas de dere cho de autor, y la nota de licencia que Licencia se aplica indica que esta al Documento se reproduzcan en todas las copias, y que usted no adicione ninguna otra condición sobre las expuestas en en esta Licencia. No puede usar medidas técnicas para obstruir o controlar la lectura o copia posterior de las copias que usted haga o distribuya. Sin embargo, usted puede aceptar compensación a cambio de las copias. Si distribuye un número suficientemente grande de copias también deberá sección 3. Usted seguir las condiciones de la también puede prestar copias, bajo las mismas condiciones establecidas anteriormente, y puede exhibir copias públicamente. 4. COPIADO EN CANTIDADES Si publica copias impresas del Documento que sobrepasen las 100, y la del Documento nota de copias con cubiertas que lleven en forma clara y todos esos textos de legible, Cubierta: Textos de Portada en la portada, y Textos de Contra Portada en la contra Ambas Licencia exige Textos de Cubierta, debe incluir las portada. cubiertas deben identificarlo a usted clara y legi blemente como quien publica tales copias. La portada presentar el tı́tulo debe completo con todas las palabras del tı́tulo igualmente prominentes y visibles. Usted puede adi cionar otro material en las cubiertas. Las copias con cam bios limitados a las cubiertas, siempre que preserven el tı́tulo del Documento y satisfagan estas condiciones, puede considerarse como copia literal. Si los textos requeridos para la cubierta son muy voluminosos para que ajusten leg iblemente, debe colocar los primeros listados (tantos como sea razonable colocar) con el resto en páginas tribuye en la cubierta real, y continuar adyacentes. Si publica o dis copias Opacas del Documento cuya cantidad excedaı́ las 100, debe incluir una copia Transparente que pueda ser leı́da por una máquina con cada copia Opaca, o indicar en o con cada copia Opaca una dirección en una red de dores publicamente computa accesible que contenga una copia com pleta y Transparente del Documento, libre de material adi cional, a la cual el público general de la red tenga acceso para bajar anónimamente sin cargo, usando los de protoco redes públicos y estándares. Si usted hace uso de la última opción, deberá tomar medidas razonablemente pru dentes, cuando comience la distribución de las copias Opacas en cantidad, para asegurar que esta copia Transpar ente permanecerá accesible en el sitio indicado por lo 162 Licencias Públicas GNU menos un a~ no después de su última distribución al de copias de sus agentes o distribuidores). Se solicita, es requisito, que contacte permitirle la aunque no a los autores del Documento antes de redistribuir cualquier para público Opacas de esa edición (directamente o a través gran oportunidad número de que de copias, le provean una versión actualizada del Documento. 5. MODIFICACIONES Usted Versión Modificada puede copiar y las secciones 2 y 3 anteriores, siempre que la Versión distribuir una del Documento bajo las condiciones de Modificada bajo usted libere esta misma Licencia, con la Versión Modificada asumiendo el rol del Documento, por tanto licenciando la distribución Versión Modificada a quienquiera que posea este. En adición, lo y modificación de la una copia de debe hacer lo siguiente en la Versión Modificada: 1. Uso en la Portada (y en las alguna) cubiertas, si hay de un tı́tulo distinto al del Documento, y de ver siones anteriores (que deberı́an, si hay alguna, estar lis tados en la sección de Historia del Documento). Puede usar el mismo tı́tulo que versiones anteriores del original siempre que quién publicó la primera versión lo permita. 2. Listar en la Portada, como autores, una o más personas o entidades responsables por modificaciones menos cinco la autorı́a o las en la Versión Modificada, junto con por lo de los autores principales del Documento (Todos sus autores principales, si hay menos de cinco). 3. Establecer en la Portada del nombre de quién publica la Versión Modificada, como quien publica. 4. Preservar todas las notas de derechos de repro ducción del Documento. 5. Adyacente a las otras notas de derecho de repro ducción, adicionar una nota de derecho de reproducción de acuerdo a sus modificaciones. 6. Incluir, immediatamente derecho de reproducción, una nota permiso público después de la nota de de licencia dando el para usar la Versión Modificada bajo los términos de esta Licencia, de la forma mostrada más ade lante en el Addendum. 7. Preservar en esa nota de licencia el listado completo de Secciones Invariantes y de los Textos Cubiertas que sean de las requeridos como se especifique en la nota de Licencia del Documento. 8. Incluir una copia sin modificación de esta Licencia. 9. Preservar la sección con tı́tulo "Historia", y su tı́tulo, y adicionar a esta una sección estableciendo al 163 menos el tı́tulo, el a~ no,los nuevos autores, y quién pub licó la Versión Modificada como reza en la Portada. Si no hay una sección titulada "Historia" en el Documento, crear una estableciendo el tı́tulo, el a~ no, los autores publicó el Documento y quien como reza en la Portada, a~ nadiendo además un artı́culo describiendo la Versión Modificada como se estableció en la oración anterior. 10. Preservar la localización en red, si hay , dada en el Documento para acceso público a una copia ente Transpar del Documento, ası́ como las otras direcciones de red dadas en el Documento para versiones cuáles Estas estuviese basado. anteriores pueden sección "Historia". Se puede omitir la en ubicarse ubicación las en la en red para un trabajo publicado por lo menos 4 a~ nos antes que el Documento mismo, o si quien publicó originalmente la versión a la que se refiere da permiso. 11. En cualquier sección titulada "Agradecimientos" o "Dedicatorias", preservar el tı́tulo de la sección, y preservar en la sección toda la sustancia y el tono de los agradecimientos y/o dedicatorias de cada contribuyente que estén incluı́das. 12. Preservar todas las Secciones Invariantes del Documento, sin alterar su texto ni sus tı́tulos. Números de sección o el equivalente no son considerados parte de los tı́tulos de la sección. 13. Borrar ciones". Una cualquier sección titulada "Aproba tal sección no pueden estar incluida en las Versiones Modificadas. 14. No retitular "Aprobaciones" Invariante. apendices ninguna sección existente como o conflictuar con tı́tulo de alguna Sección Si la Versión Modificada incluye secciones nuevos o o preliminares al prólogo que califican como Secciones Secundarias y contienen material no copiado del Documento, puede opcionalmente designar algunas o todas esas secciones como invariantes. Para hacerlo, cione sus la nota de tı́tulos licencia deben ser de siempre de Versión Modificada. Tales una sección titulada "Aproba que contenga unicamente aprobaciones de su Versión Modificada observaciones la distintos de cualquier otro tı́tulo de sección. Puede adicionar ciones", adi tı́tulos a la lista de Secciones Invariantes en por varias fuentes--por ejemplo, peritos o que el texto ha sido aprobado por una organización como un estándar. Puede adicionar un pasaje de hasta cinco palabras como un Texto de Portada, y un pasaje de hasta 25 palabras como Portada, un texto de Contra al final de la lista de Textos de Cubierta en la Versión Modificada. Solamente un pasaje de Texto de Por tada y un Texto de Contra Portada puede ser adicionado por 164 Licencias Públicas GNU (o a manera de arreglos hechos por) cualquier entidad. Si el Documento ya incluye un texto de cubierta para la misma cubierta, previamente adicionado por usted o hecho por la misma entidad, actua, no puede adicionar otra; pero puede anterior, por arreglo a nombre de la cual usted reemplazar el con permiso explı́cito de quien previamente pub licó y agregó tal texto. publica(n) el El(los) autor(es) y quien(es) Documento no dan con esta Licencia permiso para usar sus nombres para publicidad o para asegurar o implicar aprobación de cualquier Versión Modificada. 6. COMBINANDO DOCUMENTOS Puede combinar el Documento con otros documentos liberados bajo esta Licencia, bajo los términos definidos en la sección 4 anterior para versiones modificadas, siempre que incluya en la las Secciones nales, sin modificar, Invariantes combinación todas Invariantes de todos los documentos origi y las liste como Secciones de su trabajo combinado en la respectiva nota de licencia. El trabajo combinado necesita contener mente una copia sola de esta Licencia, y múltiples Secciones Invariantes idénticas pueden ser reemplazadas por una sola copia. Si hay múltiples Secciones Invariantes con el mismo nombre pero con contenidos diferentes, haga el cada una tı́tulo de este, entre paréntesis, el nombre del autor o de publicó de de estas secciones único adicionándole al final originalmente esa quien sección, si es conocido, o si no, un número único. Haga el mismo ajuste a los tı́tulos de sección en la lista de Secciones Invariantes en la nota de licencia del trabajo combinado. En la combinación, debe combinar cualquier sección titulada "Historia" de los var ios documentos originales, formando una "Historia"; de la misma titulada "Agradecimientos", y cualquier "Dedicatorias". sección titulada forma combine cualquier seción sección titulada Debe borrar todas las secciones tituladas "Aprobaciones." 7. COLECCIONES colección que DE DOCUMENTOS consista liberados bajo esta Usted puede hacer una del Documento y otros documentos Licencia, y reemplazar las copias individuales de esta Licencia en los varios documentos con una sola copia que esté incluida en la colección, que siga siempre las reglas de esta Licencia para una copia lit eral de cada uno de los documentos en cualquiera de todos los aspectos. Usted puede extraer un solo documento de una de tales colecciones, y distribuirlo individualmente esta Licencia, siempre que inserte una bajo copia de esta Licencia en el documento extraido, y siga esta Licencia en todos los otros aspectos concernientes a la copia literal 165 de tal documento. 8. AGREGACIÓN CON TRABAJOS INDEPENDIENTES Una recopilación del Documento o de sus derivados con otros documentos o trabajos separados e independientes, en cualquier tipo distribución todo como una Versión Modificada que no se del Documento, siempre clamen derechos de reproducción por la compi lación. Tal recopilación es llamada un "agregado", y Licencia esta no aplica a los otros trabajos auto-contenidos y por lo tanto compilados con el Documento, o haber de o medio de almacenamiento, no cuenta como un sido compilados, si a cuenta de no son ellos mismos trabajos derivados del Documento. Si el requerimiento de la sección 3 del Texto de la Cubierta es aplicable a estas copias del Documento, entonces si el Documento es menor que un cuarto del agregado entero, Los Textos de la Cubierta del Docu mento pueden ser solamente el colocados Documento en cubiertas que enmarquen entre el agregado. De otra forma deben aparecer en cubiertas enmarcando todo el agregado. 9. TRADUCCIÓN La traducción es considerada como una clase de modificación, ası́ que puede distribuir traducciones del Documento bajo los términos de la las Secciones miso especial de reproducción, sección los pero propietarios usted puede Reemplazar de los originales incluir una incluya también de además de las de las Secciones Invariantes. Puede traducción la derechos incluir traducciones de algunas o todas las Secciones Invariantes versiones 4. Invariantes con traducciones requiere per de esta versión Licencia original siempre que en ingles de esta Licencia. En caso de un desacuerdo entre la traducción y la versión original en Inglés de esta Licencia, la versión original en Inglés prevalecerá. 10. TERMINACIÓN Usted no puede copiar, modificar, subli cenciar, o distribuir el Documento excepto como lo permite expresamente esta copia, Licencia. Cualquier otro intento modificación, sublicenciamiento o distribución del Documento es nulo, y terminarán automáticamente sus chos de bajo esta Licencia. hayan recibido copias, o derechos, de su parte Licencia no dere Sin embargo, los terceros que bajo esta tendrán por terminadas sus licencias siempre que tales terceros permenezcan en total conformidad. 11. REVISIONES FUTURAS DE ESTA LICENCIA La Foundation la GNU Free Documentation License Tales Free Software puede publicar nuevas y revisadas versiones de versiones nuevas de tiempo en tiempo. serán similares en espı́ritu a la 166 Licencias Públicas GNU presente versión, pero pueden solucionar problemas o http://www.gnu.org/copyleft/. tiene un diferir en detalles para intereses. Vea Cada versión de la Licencia número de versión que la distingue. Si el Docu mento especifica que una versión numerada particularmente de esta licencia o "cualquier versión posterior" se aplica a este, tiene la opción de seguir los términos y condi ciones de esa versión especificada o de cualquiera versión posterior que hubiera sido publicada (no como un borrador) por la Free Software Foundation. especifica un número de versión de escoger Si esta el Documento no Licencia, puede cualquier versión que haya sido publicada(no como un borrador) por la Free Software Foundation. E.0.1 ADDENDUM: Como usar esta Licencia para sus documen tos Para usar esta licencia en un documento que usted haya escrito, incluya una copia de la Licencia en el y ponga el documento siguiente derecho de reproducción y notas de licencia justo después del tı́tulo de la página: Copyright (C) a~ no su nombre. Permission is granted to copy, this document distribute tion License, Version 1.1 or any later by the and/or modify under the terms of the GNU Free Documenta version published Free Software Foundation; with the Invariant Sec tions being list their titles, with the Front-Cover being list, Texts and with the Back-Cover Texts being list. copy of the license is included in the section A entitled ‘‘GNU Free Documentation License’’. Si no tiene Secciones Invariantes, Invariant Sections" en vez de antes. Si decir escriba cuales son "with no invari no tiene Textos de Portada, escriba "no Front- Cover Texts" en vez de "Front-Cover Texts being list"; y de la misma forma para los Textos de Contra Portada. Si su documento contiene ejemplos de código de programa no triviales, le recomendamos liberar estos ejemplos en alelo par bajo una licencia de software libre de su elección, tal como la GNU General Public License, para uso en software libre. permitir su Apéndice B Marcas Registradas La siguientes marcas registradas son nombradas en este libro: AIX, AS/400: de IBM Corp. http://www.ibm.com Alpha AXP: de DEC (Digital Equipment Corp.)/Compaq http://www.compaq.com Athlon, Duron y K6: de AMD (American Micro Devices) http://www.amd.com Caldera Systems, C-logo y OpenLinux, Lizard: de Caldera Systems Inc. http://www.caldera.com Conectiva Linux: de Conectiva http://www.conectiva.com Corel Linux: de Corel http://www.corel.com Debian Linux: de Debian http://www.debian.org DOS/Windows-9x,NT,W2K,XP de Microsoft Corp. http://www.microsoft.com Itanium y Pentium: de Intel http://www.intel.com Linux: de Linus Torvalds M6 y 686: de Cyrix http://www.cyrix.com 167 168 Marcas Registradas Macintosh, MacOS: de Apple Computer Inc. http://www.apple.com Mandrake Linux: de Mandrakesoft. http://www.mandrake-linux.com Motif y OpenMotif: de OSF (Open Sofware Fund.). http://www.osf.com OpenServer y Unixware: de SCO (Santa Cruz Operations) http://www.sco.com PowerPC, M68K: de Motorola http://www.motorola.com Red Hat Linux, RPM: de Red Hat Inc http://www.redhat.com Slackware: de Patrick Volkering http://www.slackware.com StarOffice, Solaris, Sparc, UlraSparc, NFS: de Sun http://www.sun.com SuSE, Yast: de SuSE Gmhb http://www.suse.de Trustix, XPloy, Xsentry: de Trustix http://www.trustix.com Turbolinux: de Turbolinux http://www.turbolinux.com UNIX: de AT&T Company http://www.att.com/ X-Window: de X Consortium http://www.X.org Microsystems Bibliografı́a [cups] Easy Software Products.“CUPS Documentation”.Documentacion de CUPS (Common Unix Printing System) (http://www.cups.org) o en el sistema ya instalado http://localhost:631/documentation.html (.).2000 [Flores] David Flores Santacruz, Francisco Javier Ahijado MartinNavarro.“Curso de Linux”.Universidad Complutense de Madrid, Club de Informática Diskobolo http://diskobolo.mat.ucm.es (1997). [1] Rusty Paul Rusty Russell y Daniel Quinlan Filesystem Hierarchy Standard http://www.pathname.com/fhs/ 2001 [gnome] Diversos autores.“Manuales de projecto GNOME”.. (GNOME Project http://www.gnome.org).2001 [howtos] Diversos autores.“HOWTOS”.LinuxDOC project (HOWTO o Comos recopilados en el proyecto LinuxDOC http://www.linuxdoc.org).2001 [kde] Diversos autores.“Manuales del proyecto KDE”.. (KDE Project http://www.kde.org ).2001 [linuxcol] LinuxCOL.“Grupo de Usuarios Colombianos de Linux”.. (http://www.linuxcol.org).2001 [man] Diversos autores.“Manuales de Linux”.. (LinuxDOC project y Productores de Software: Todas las páginas de manual que han sido necesarias para el documento.).2001 169 170 BIBLIOGRAFÍA [silberschatz] Abraham Silberschatz, Peter B. Galvin.“Operating System Concpets”.Addison - Wesley Publishing Company (1994). [welsh] Matt Welsh.“Linux: Installation and Getting Started”.Traducido por Proyecto LuCAS1 : “Linux: Instalación y Primeros Pasos” (Versión 2.2.2).1992– 1996 [mdk80] MandrakeSoft Guı́a de usuario Mandrake Linux 8.0 http://www.linuxmandrake.com/en/doc/80/en/user.html/ [rgmdk80] MandrakeSoft Manual de Referencia Mandrake http://www.linux-mandrake.com/en/doc/80/en/ref.html/ 1 LinUx en CAStellano Linux 8.0