



Linux:  Instalaci'on  y  Primeros  Pasos
______________________________________________________________________________________________________
                             Copyright Oc 1992-1996  Matt Welsh (Traducci'on: Proyecto LuCAS)



Versi'on 2.2.2 - En castellano ver1.0, 8 Agosto de 1996.
Fecha de montaje: 10 de noviembre de 1996


Este es un libro de instalaci'on y gu'ia para nuevos usuarios del sistema Linux, dirigido tanto a los m'as
n'oveles en UNIX, como a los m'as expertos.  Contiene informaci'on sobre como conseguir el Linux, la
instalaci'on de nuevo software, un tutorial para principiantes de UNIX y una introducci'on a la adminis-
traci'on del sistema.  Hemos pretendido ser tan gen'ericos como nos ha sido posible de tal modo que el
libro pueda ser aplicable a cualquiera de las distribuciones de software para Linux.
    Este libro es de distribuci'on gratu'ita. Esto quiere decir que puedes copiarlo y redistribuirlo pero bajo
determinadas condiciones. Por favor, mira el copyright y las notas sobre su distribuci'on en la p'agina xiii.


'Indice  General


 Prefacio                                                                                          ix

    Audiencia  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   ix

    Organizaci'on del Libro  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    x

    Reconocimientos   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   xi

    La traducci'on  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   xi

    Cr'editos y aspectos Legales  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   xii

    Notaci'on usada en el documento   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  xiv



 1  Introducci'on a Linux                                                                        1

    1.1   Sobre este libro  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1

    1.2   Breve historia de Linux   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2

    1.3   Caracter'isticas del sistema  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4

    1.4   Software  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6

          1.4.1  Comandos y utilidades b'asicas   . . . . . . . . . . . . . . . . . . . . . . . . . .    6

          1.4.2  Formateado y proceso de textos  . . . . . . . . . . . . . . . . . . . . . . . . . .    7

          1.4.3  Lenguajes de programaci'on y utilidades   . . . . . . . . . . . . . . . . . . . . .   10

          1.4.4  El sistema X Window   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11

          1.4.5  Redes  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12

          1.4.6  Programas de comunicaciones y BBS  . . . . . . . . . . . . . . . . . . . . . . .   13

          1.4.7  Enlazando con MS-DOS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   14

          1.4.8  Otras aplicaciones   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   15

    1.5   Acerca del Copyright  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   16

    1.6   Dise"no y filosof'ia de Linux  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   *
 *17

          1.6.1  Consejos para novatos en UNIX . . . . . . . . . . . . . . . . . . . . . . . . . .   19


                                                   i

         1.6.2   Consejos para los gur'us   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   20

    1.7  Diferencias Entre Linux y Otros Sistemas Operativos  . . . . . . . . . . . . . . . . . .   20

         1.7.1   >Por qu'eusar Linux?  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21

         1.7.2   Linux vs. MS-DOS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   21

         1.7.3   Linux vs. Otros Sistemas Operativos  . . . . . . . . . . . . . . . . . . . . . . .   22

         1.7.4   Otras implementaciones de UNIX . . . . . . . . . . . . . . . . . . . . . . . . .   23

    1.8  Requerimientos de Hardware   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   24

         1.8.1   Requisitos de Placa Base y de CPU   . . . . . . . . . . . . . . . . . . . . . . .   25

         1.8.2   Requisitos de memoria  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   26

         1.8.3   Requisitos de la controladora de disco duro   . . . . . . . . . . . . . . . . . . .   26

         1.8.4   Requisitos de espacio en disco . . . . . . . . . . . . . . . . . . . . . . . . . . .   27

         1.8.5   Requisitos de monitor y adaptador de v'ideo  . . . . . . . . . . . . . . . . . . .   27

         1.8.6   Hardware diverso  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   27

         1.8.7   Tarjetas Ethernet  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   29

    1.9  Fuentes de informaci'on sobre Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . .   29

         1.9.1   Documentaci'on On-Line  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   30

         1.9.2   Linux en el WWW  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   30

         1.9.3   Libros y otras publicaciones  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   31

         1.9.4   Grupos de NEWS USENET . . . . . . . . . . . . . . . . . . . . . . . . . . . .   31

         1.9.5   Listas de correo en Internet  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   32

    1.10 C'omo obtener ayuda  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   33



2   Obtenci'on e Instalaci'on de Linux                                                         37

    2.1  Distribuciones de Linux   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   37

         2.1.1   Conseguir Linux desde Internet  . . . . . . . . . . . . . . . . . . . . . . . . . .   38

         2.1.2   Conseguir Linux desde otras fuentes online   . . . . . . . . . . . . . . . . . . .   39

         2.1.3   Conseguir Linux por correo  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   39

         2.1.4   Conseguir la Slackware   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   40

    2.2  Preparaci'on para instalar Linux  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   46

         2.2.1   Visi'on general de la instalaci'on  . . . . . . . . . . . . . . . . . . . . . . . . . .   46

         2.2.2   Conceptos sobre particiones  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   47

         2.2.3   Necesidades de reparticionado en Linux   . . . . . . . . . . . . . . . . . . . . .   48

         2.2.4   Reparticionado de los discos  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   50

   2.3   Instalaci'on del software de Linux  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   51

         2.3.1  Arranque de Linux  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   52

         2.3.2  Dispositivos y particiones en Linux  . . . . . . . . . . . . . . . . . . . . . . . .   54

         2.3.3  Creaci'on de las particiones en Linux  . . . . . . . . . . . . . . . . . . . . . . .   55

         2.3.4  Creaci'on del espacio de intercambio (swap)   . . . . . . . . . . . . . . . . . . .   58

         2.3.5  Creaci'on de los sistemas de ficheros . . . . . . . . . . . . . . . . . . . . . . . .   59

         2.3.6  Instalaci'on del software   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   60

         2.3.7  Creaci'on del disco de arranque o instalaci'on del LILO  . . . . . . . . . . . . .   63

         2.3.8  Otros procedimientos de instalaci'on   . . . . . . . . . . . . . . . . . . . . . . .   64

   2.4   Procedimientos post-instalaci'on  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   64

   2.5   Resolviendo problemas  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   65

         2.5.1  Problemas con el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   66

         2.5.2  Problemas con el hardware   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   68

         2.5.3  Problemas con la instalaci'on del software   . . . . . . . . . . . . . . . . . . . .   72

         2.5.4  Problemas despu'es de instalar Linux  . . . . . . . . . . . . . . . . . . . . . . .   74



3  Tutorial de Linux                                                                           79

   3.1   Introducci'on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   79

   3.2   Conceptos b'asicos de UNIX  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   80

         3.2.1  Creaci'on de una cuenta   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   80

         3.2.2  Presentaci'on en el sistema (loggin in)   . . . . . . . . . . . . . . . . . . . . . .   80

         3.2.3  Consolas virtuales   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   81

         3.2.4  Int'erpretes de comandos y comandos  . . . . . . . . . . . . . . . . . . . . . . .   81

         3.2.5  Salida del sistema   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   83

         3.2.6  Cambiando la palabra de paso . . . . . . . . . . . . . . . . . . . . . . . . . . .   83

         3.2.7  Ficheros y directorios   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   83

         3.2.8  El 'arbol de directorios  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   84

         3.2.9  Directorio de trabajo actual  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   84

         3.2.10 Refiriendose al directorio home  . . . . . . . . . . . . . . . . . . . . . . . . . .   86

   3.3   Primeros pasos en UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   86

         3.3.1  Moviendonos por el entorno  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   86

         3.3.2  Mirando el contenido de los directorios  . . . . . . . . . . . . . . . . . . . . . .   87

         3.3.3  Creando directorios nuevos   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   89

     3.3.4   Copia de ficheros  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   89

     3.3.5   Moviendo ficheros   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   90

     3.3.6   Borrando ficheros y directorios   . . . . . . . . . . . . . . . . . . . . . . . . . .   90

     3.3.7   Mirando los ficheros   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   90

     3.3.8   Obteniendo ayuda en l'inea . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   91

3.4  Sumario de Ordenes B'asicas  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   91

3.5  Explorando el Sistema de Ficheros   . . . . . . . . . . . . . . . . . . . . . . . . . . . .   94

3.6  Tipos de int'erpretes de comandos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   97

3.7  Car'acteres comod'in   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   98

3.8  Fontaner'ia UNIX  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  101

     3.8.1   Entrada y salida estandard   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  101

     3.8.2   Redireccionando la entrada y salida   . . . . . . . . . . . . . . . . . . . . . . .  102

     3.8.3   Uso de tuber'ias (pipes)   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  103

     3.8.4   Redirecci'on no destructiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  104

3.9  Permisos de Ficheros  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  105

     3.9.1   Conceptos de permisos de ficheros   . . . . . . . . . . . . . . . . . . . . . . . .  105

     3.9.2   Interpretando los permisos de ficheros   . . . . . . . . . . . . . . . . . . . . . .  106

     3.9.3   Dependencias  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107

     3.9.4   Cambiando permisos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  107

3.10 Manejando enlaces de ficheros  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108

     3.10.1  Enlaces duros (Hard links)   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  108

     3.10.2  Enlaces simb'olicos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  109

3.11 Control de Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  110

     3.11.1  Tareas y procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  110

     3.11.2  Primer plano y Segundo plano   . . . . . . . . . . . . . . . . . . . . . . . . . .  111

     3.11.3  Env'io a segundo plano y eliminaci'on procesos  . . . . . . . . . . . . . . . . . .  111

     3.11.4  Parada y relanzamiento de tareas  . . . . . . . . . . . . . . . . . . . . . . . . .  113

3.12 Usando el editor vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  115

     3.12.1  Conceptos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  116

     3.12.2  Comenzando con vi   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  116

     3.12.3  Insertando texto   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  117

     3.12.4  Borrando texto  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  118

         3.12.5 Modificando texto   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  119

         3.12.6 Ordenes de movimiento   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  120

         3.12.7 Guardando ficheros y saliendo de vi  . . . . . . . . . . . . . . . . . . . . . . .  120

         3.12.8 Editando otro fichero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  121

         3.12.9 Incluyendo otros ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  121

         3.12.10Ejecutando comandos del int'erprete   . . . . . . . . . . . . . . . . . . . . . . .  121

         3.12.11Obteniendo ayuda   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  122

   3.13  Personalizando su entorno  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  122

         3.13.1 Guiones del int'erprete de comandos   . . . . . . . . . . . . . . . . . . . . . . .  123

         3.13.2 Variables del int'erprete de comandos y el entorno  . . . . . . . . . . . . . . . .  124

         3.13.3 Guiones de inicializaci'on del int'erprete  . . . . . . . . . . . . . . . . . . . . . .  126

   3.14  >Quieres seguir por tu cuenta?   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  127



4  Administraci'on del Sistema                                                              129

   4.1   Acerca de Ra'ices, Sombreros y la Sensaci'on de Poder  . . . . . . . . . . . . . . . . .  129

         4.1.1  La cuenta root  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  129

         4.1.2  Abusando del sistema   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  131

         4.1.3  Como proceder con los usuarios . . . . . . . . . . . . . . . . . . . . . . . . . .  131

         4.1.4  Fijando las reglas  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  132

         4.1.5  Lo que todo esto significa  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  132

   4.2   Arrancando el Sistema   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  133

         4.2.1  Utilizando un disquete de arranque  . . . . . . . . . . . . . . . . . . . . . . . .  133

         4.2.2  Utilizando LILO   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  134

   4.3   Cerrando el Sistema   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  135

   4.4   Gesti'on de Usuarios   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  136

         4.4.1  Conceptos de gesti'on de usuarios  . . . . . . . . . . . . . . . . . . . . . . . . .  136

         4.4.2  A"nadiendo usuarios   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  138

         4.4.3  Borrando usuarios   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  138

         4.4.4  Poniendo atributos de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . .  138

         4.4.5  Grupos   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  139

   4.5   Archivando y Comprimiendo Ficheros   . . . . . . . . . . . . . . . . . . . . . . . . . .  139

         4.5.1  Utilizando tar   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  140

         4.5.2  gzip y compress  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  141

         4.5.3   Junt'andolo todo   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  141

    4.6  Usando Disquetes y Haciendo Copias de Seguridad  . . . . . . . . . . . . . . . . . . .  142

         4.6.1   Utilizando disquetes para copias de seguridad  . . . . . . . . . . . . . . . . . .  143

         4.6.2   Utilizando disquetes como sistemas de ficheros   . . . . . . . . . . . . . . . . .  143

    4.7  Actualizando e Instalando Nuevo Software  . . . . . . . . . . . . . . . . . . . . . . . .  144

         4.7.1   Actualizando el n'ucleo  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  145

         4.7.2   Actualizando las librer'ias   . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  146

         4.7.3   Actualizando gcc  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  147

         4.7.4   Actualizando otro software   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  147

    4.8  Gestionando Sistemas de Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  148

         4.8.1   Montando sistemas de ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . .  148

         4.8.2   Comprobando sistemas de ficheros   . . . . . . . . . . . . . . . . . . . . . . . .  150

    4.9  Utilizando un fichero de intercambio   . . . . . . . . . . . . . . . . . . . . . . . . . . .  151

    4.10 Tareas Varias  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  152

         4.10.1  Ficheros de arranque del sistema  . . . . . . . . . . . . . . . . . . . . . . . . .  152

         4.10.2  Estableciendo el nombre del ordenador  . . . . . . . . . . . . . . . . . . . . . .  153

    4.11 Qu'eHacer En Una Emergencia   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  154

         4.11.1  Recuperaci'on utilizando un disquete de mantenimiento  . . . . . . . . . . . . .  154

         4.11.2  Arreglando la password de root  . . . . . . . . . . . . . . . . . . . . . . . . . .  155

         4.11.3  Arreglando sistemas de ficheros corrompidos . . . . . . . . . . . . . . . . . . .  155

         4.11.4  Recuperando ficheros perdidos   . . . . . . . . . . . . . . . . . . . . . . . . . .  156

         4.11.5  Arreglando librer'ias corrompidas  . . . . . . . . . . . . . . . . . . . . . . . . .  156



5   Caracter'isticas avanzadas                                                                157

    5.1  El sistema X Window   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  157

         5.1.1   Requisitos de hardware   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  158

         5.1.2   Instalaci'on de XFree86  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  160

         5.1.3   Configuraci'on de XFree86  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  162

         5.1.4   Introducci'on de los datos de la tarjeta gr'afica  . . . . . . . . . . . . . . . . . .  169

         5.1.5   Funcionamiento de XFree86  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  172

         5.1.6   Ejecuci'on con problemas  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  173

    5.2  Acceso a ficheros MS-DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  174

    5.3  Redes con TCP/IP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  175

         5.3.1  Hardware requerido   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  175

         5.3.2  Configuraci'on de TCP/IP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  176

         5.3.3  Configuraci'on de SLIP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  182

         5.3.4  Utilizaci'on de dip   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  185

   5.4   Red con UUCP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  187

   5.5   Correo Electr'onico  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  187

   5.6   News y USENET  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  188



A  Fuentes de Informaci'on de Linux                                                        191

   A.1   Documentos en L'inea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  191

   A.2   Manuales del Proyecto de Documentaci'on de Linux  . . . . . . . . . . . . . . . . . . .  193

   A.3   Libros y Otros Trabajos Publicados . . . . . . . . . . . . . . . . . . . . . . . . . . . .  194

         A.3.1  Usando UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  195

         A.3.2  Administraci'on de Sistemas  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  195

         A.3.3  The X Window System   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  196

         A.3.4  Programaci'on  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  196

         A.3.5  Manejo del Kernel   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  197



B  Lista de Vendedores de Linux                                                           199



C  Tutorial de FTP y Lista de Sites                                                        203

   C.1   Aprendiendo ftp  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  203

   C.2   Registrandose  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  204

   C.3   Moviendonos dentro   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  204

   C.4   Traerse ficheros  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  206

   C.5   Saliendo de FTP  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  208

   C.6   Usando ftpmail   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  208

   C.7   Lista de FTP Sites de Linux  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  209



D  Lista de BBS de Linux                                                                    211

   D.1   Estados Unidos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  211

   D.2   Fuera de los Estados Unidos  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  213
______________________________________________________________________________________________________viii


E   Linux en Espa"na                                                                           217

    E.1  Internet Sites en Espa"na  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  217

    E.2  BBS Espa"noles con ficheros Linux   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  217



F   The GNU General Public License                                                       219

    F.1  Pre'ambulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  219

    F.2  T'erminos y Condiciones para la Copia, Distribuci'on y Modificaci'on  . . . . . . . . . .  220

    F.3  Ap'endice: C'omo aplicar estos t'erminos a sus nuevos programas  . . . . . . . . . . . .  224



Glosario                                                                                        227


Prefacio



"You are in a maze of twisty little passages, all alike."

   Tiene ante usted a uno de los sistemas m'as completos y amenazantes que jam'as se ha escrito:
Linux, el cl'onico de UNIX gratuito para el ordenador personal (PC), generado por un heterogeneo
equipo formado por gur'us de UNIX y hackers junto al reci'en llegado de turno. El sistema en s'i refleja
esta compleja herencia y, a pesar de que el desarrollo de Linux puede parecer un esfuerzo voluntario
desorganizado, el sistema es potente, r'apido y gratuito.  Es un verdadero sistema operativo de 32-
bits1.

   Mis propias experiencias con Linux comenzaron hace a"nos, cuando me sent'e a adivinar como
instalar la 'unica "distribuci'on" disponible en aquel tiempo_un par de disquetes que me hizo llegar
H.J. Lu.  Descargu'e una pila de ficheros y le'i p'aginas y p'aginas de notas de instalaci'on l'ibremente
organizadas.  De alg'un modo, consegu'i instalar este sistema b'asico y hacer que todo funcionase.
Esto fue mucho antes de que se pudiera comprar el software de Linux en CD-ROM a distribuidores
mundiales; de hecho, antes de que Linux siquiera supiese como acceder a una unidad CD-ROM.
Esto fue antes del XFree86, antes de Emacs, antes del soporte de software comercial, y antes de que
Linux llegase a ser un verdadrero rival de MS-DOS, Microsoft Windows, y OS/2 en el mercado del
ordenador personal.

   Tiene en sus propias manos el mapa y libro de ruta hacia el mundo de Linux.  Espero que este
libro le ayude a echarse a andar con el que yo considero que es el m'as r'apido y m'as potente sistema
operativo que existe para el ordenador personal. Instalar su propio sistema Linux puede ser un gran
momento de diversi'on_de modo que coja una taza de caf'e, sientese c'omodamente, y siga leyendo.

   Mientras est'e con ello coja una taza tambi'en para m'i. Yo tambi'en he estado despierto enredando
con el Linux durante d'ias.

Audiencia



Este libro esta destinado a cualquier usuario de PC que quiera instalar y usar el Linux en su sis-
tema. Se asume que Ud. tiene unos conocimientos b'asicos sobre ordenadores personales y sistemas
operativos tales como MS-DOS, pero no se asume ning'un conocimiento previo sobre Linux o UNIX.
_________________________________________1
    N. del T.: En la actualidad ya existen versiones de 64-bits para algunas otras plataformas hardware disti*
 *ntas del
PC


                                                  ix
______________________________________________________________________________________________________x


    A pesar de esto, sugerimos a los principiantes de UNIX que investiguen en alguno de los muchos
y buenos libros que existen sobre 'el. Algunos de ellos aparecen listados en el Ap'endice A.

Organizaci'on del Libro



Este libro contiene los siguientes cap'itulos:

    Cap'itulo 1, Introducci'on a Linux, da una introducci'on general a lo que es Linux, que puede hacer
por Ud., y que se necesita para hacerlo funcionar en su sistema.  Tambi'en proporciona sugerencias
'utiles para obtener ayuda y reducir el stress general.

    Cap'itulo 2, Obtener e Instalar Linux, explica como obtener el software de Linux, as'i como la
forma instalarlo_desde reparticionar su unidad, crear sistemas de ficheros, y cargar el software en
el sistema. Contiene instrucciones que se suponen generales para cualquier distribuci'on de Linux, y
conf'ia en que la documentaci'on suministrada para su versi'on particular cubra todos los huecos.

    Cap'itulo 3, Tutorial de Linux, es una introducci'on completa de como usar el sistema Linux para
principiantes de UNIX. Si ya tiene experiencia previa con UNIX, la mayor'ia de este material deber'ia
serle familiar.

    Cap'itulo 4, Administraci'on del Sistema, presenta muchos de los conceptos importantes de la
administraci'on del sistema bajo Linux. Esto ser'a tambi'en de inter'es para administradores de sistemas
UNIX que quieran saber acerca de las formas concretas de llevar un sistema en Linux.

    Cap'itulo 5, Caracter'isticas Advanzadas, presenta al lector un gran n'umero de las caracter'isticas
avanzadas que soporta el Linux, tales como el Sistema X-Window y el protocolo de red TCP/IP. Se
incluye una gu'ia completa de configuraci'on de XFree86-3.1.

    Ap'endice A, Fuentes de Informaci'on de Linux, es un listado de otras fuentes de informaci'on
acerca de Linux, incluyendo grupos de noticias, listas de distribuci'on, documentos en-l'inea, y libros.

    Ap'endice B, Lista de Vendedores de Linux, proporciona una breve lista de vendedores de software
que ofrecen software y servicios de Linux.

    Ap'endice C, Tutorial de FTP y Lista de Sites, es un tutorial para recibir ficheros desde Internet
con FTP. Este ap'endice tambi'en incluye una lista de sites de FTP que mantienen software Linux.

    Ap'endice D, Lista de BBS Linux, es una lista de BBS2 a lo ancho del mundo que mantienen
software de Linux. Dado que la mayor'ia de usuarios de Linux no disponen de acceso a Internet, es
importante que se ponga a disposici'on la informaci'on sobre los sistemas BBS.

    Ap'endice F, La licencia GNU General Public License, contiene una copia de la Licencia GNU, el
acuerdo de licencia bajo el cual se distribuye Linux. Es muy importante que los usuarios de Linux
entiendan la GPL; en los 'ultimos meses han surgido muchos desacuerdos sobre los t'erminos de dicha
Licencia3.
_________________________________________
   2Sistema de Tabl'on de Boletines, Bulletin Board Sistem
   3N. del T.: Precisamente por eso hemos decidido dejar el original de la GPL intacto y en ingl'es. No conoc*
 *emos de
la existencia de ninguna traducci'on oficial de la GPL al castellano.
 ______________________________________________________________________________________________________xi


    Ap'endice E, Linux en Espa"na, es una relaci'on de todos aquellos aspectos de Linuxque puedan in-
 teresar al usuario espa"nol. Contempla forums de mensajer'ia espa"noles, BBS, canales de distribuci'on,
 ftp-sites espa"noles, etc

 Reconocimientos



 Este libro ha tardado mucho en hacerse, y mucha gente ha sido responsable de su realizaci'on.  En
 particular, me gustaria agradecer a Larry Greenfield y Karl Fogel por su trabajo en la primera
 versi'on del Cap'itulo 3, y a Lasr Wirzenius por su trabajo en el Cap'itulo 4.  Gracias a Michael K.
 Johnson por su apoyo al LDP4 y las convenciones LATEX usadas en este manual, y a Ed Chi, quien
 me envi'o una copia impresa del libro para su edici'on.

    Gracias a Melinda A. McBride de SSC, Inc., quien hizo un excelente trabajo completando el
'indice de los Cap'itulos 3, 4, y 5.  Tambi'en quisiera agradecer a Andy Oram, Lar Kaufman, y Bill
 Hahn de O'Reilly and Associates por su ayuda al Linux Documentation Project.

    Gracias a Linux Systems Labs, Morse Telecommunications, Yggdrasil Computing, y otros por su
 soporte del Linux Documentation Project a trav'es tanto de las ventas de este libro como de otros
 trabajos.

    Muchas gracias a gran cantidad de activistas, incluyendo (sin ning'un orden espec'ifico) a Linus
 Torvalds, Donald Becker, Alan Cox, Remy Card, Ted T'so, H.J. Lu, Ross Biro, Drew Eckhardt, Ed
 Carp, Eric Youngdale, Fred van Kempen, Steven Tweedie, y otros muchos m'as, por dedicar tanto
 tiempo y energ'ia a este proyecto, y sin los cuales no habr'ia nada sobre lo que escribir.

    Gracias especialmente al gran n'umero de lectores que han enviado sus 'utiles comentarios y cor-
 recciones.  Hay tant'isimos que citar aqui.  >Qui'en necesita un corrector ortogr'afico teniendo tanta
 audiencia?



                                                                                          Matt Welsh
                                                                                  13 de Enero de 1994
 La traducci'on


 Lo anterior es por parte del autor.  Asi que, por lo que al equipo de traducci'on respecta tengo que
 agradecer especialmente a aquellos que han colaborado en traducir este gran mont'on de l'ineas, que
 yo solo no me hubiera atrevido ni siquiera a intentarlo: Gerardo Izquierdo, Juan Jose Amor, Eduardo
 Lluna, Luis Ram'on Duarte, Guillermo Bautista y Carlos Mart'inez Chacartegui, as'i como a todos
 aquellos que tambi'en se ofrecieron a colaborar en esta tarea.

    Quiero hacer constar que todo nuestro esfuerzo ha sido llevado a cabo de una forma completamente
 altruista. Ninguno de nosotros somos profesionales de la traducci'on y eso, lamentablemente, se nota.
 Te ruego que seas benevolente con nosotros y que, en la medida de tus posibilidades, nos ayudes a
 hacer de este libro la mejor fuente de consulta en espa"nol sobre Linux.
 _________________________________________
    4LDP es Linux Documentation Project, o Proyecto de Documentaci'on de Linux
______________________________________________________________________________________________________xii


    Un agradecimiento especial a mi gran amigo Ram'on Gutierrez, quien me dio la idea de traducir
este libro y me apoy'o hasta terminarlo, adem'as de encargarse de la tarea m'as importante, la de
montar todos los trozos.



                                                                                      Alfonso Belloso
                                                                             10 de noviembre de 1996
Cr'editos y aspectos Legales



El Proyecto de Documentaci'on de Linux es un amplio grupo de escritores, correctores, y editores
que est'an trabajando en un conjunto definitivo de manuales de Linux.  El coordinador general del
proyecto es Matt Welsh, ayudado por Lars Wirzenius y Michael K. Johnson.

    Este manual no es m'as que uno entre un conjunto de varios distribuidos por el Proyecto de
Documentaci'on de Linux, que incluyen una Gu'ia de Usuario de Linux, Gu'ia del Administrador
del Sistema, y Gu'ia del Hacker del Kernel.  Estos manuales est'an todos disponibles en formato
fuente LATEX y salida Postscript a trav'es de FTP an'onimo en sunsite.unc.edu, en el directorio
/pub/Linux/docs/LDP.5

    Animamos a cualquiera al que le guste escribir o editar a que se una a nosotros a fin de mejorar
la documentaci'on de Linux.  Si dispone de acceso a correo electr'onico de Internet (e-mail), puede
apuntarse al canal DOC de la lista de distribuci'on de correo Linux-Activists enviando un mensaje
a


      linux-activists-request@niksula.hut.fi


con la l'inea


      X-Mn-Admin:  join DOC


como primera l'inea del cuerpo del mensaje.

    S'irvase ponerse en contacto con el autor y coordinador de este manual si tiene preguntas, postales,
dinero, o ideas. Matt Welsh puede ser localizado via Internet e-mail en mdw@sunsite.unc.edu, y en
la vida real en


      205 Gray Street
      Wilson, N.C. 27896
      U.S.A.


_________________________________________
   5N. del T.: Esperamos que, en breve, pueda recoger esta versi'on traducida y actualizada tambi'en all'i
______________________________________________________________________________________________________xiii


UNIX es una marca comercial de X/Open.
Linux no es una marca comercial, y no tiene conexi'on alguna con UNIXTM o X/Open.
El Sistema X Window es una marca comercial del Massachusetts Institute of Technology.
MS-DOS y Microsoft Windows son marcas comerciales de Microsoft, Inc.


Copyright Oc 1992-1994  Matt Welsh
205 Gray Street NE, Wilson NC, 27893 USA
mdw@sunsite.unc.edu



Linux Installation and Getting Started puede ser reproducido y distribuido, en su totalidad o en
parte, sujeto a las siguientes condiciones:6


   0. La nota de copyright de arriba y esta notificaci'on de permiso se deben conservar completas en
      todas las copias completas o parciales.


   1. Cualquier traducci'on o trabajo derivado de Linux Installation and Getting Started debe ser
      aprobado por el autor por escrito antes de su distribuci'on.


   2. Si Ud.  distribuye Linux Installation and Getting Started parcialmente, debe incluir instruc-
      ciones para obtener la versi'on completa de este manual, y proporcionar medios para la obtenci'on
      de una versi'on completa.


   3. Se pueden reproducir peque"nas porciones como ilustraciones para revistas o citas en otros
      trabajos sin esta notificaci'on de permiso si se da la menci'on oportuna.


   4. La Licencia P'ublica General "GNU General Public License", a la que se hace referencia m'as
      abajo, puede reproducirse bajo las condiciones dadas con ella.


   5. Varias secciones de este documento est'an sujetas a copyrights separados.  Cuando esas sec-
      ciones est'en cubiertas por un copyright distinto, se har'a saber el susodicho copyright.  Si
      Ud distribuye Linux Installation and Getting Started en parte, y esa parte esta,
      en su totalidad,  cubierta bajo un copyright separado conocido,  se aplicar'an las
      condiciones de ese copyright.
_________________________________________
   6N. del T.: Las mismas condiciones son aplicables a esta traducci'on
______________________________________________________________________________________________________xiv


    Se pueden conceder excepciones a estas reglas con fines acad'emicos: Escriba a Matt Welsh, a la
direcci'on de arriba, o por correo electr'onico a mdw@sunsite.unc.edu, y pregunte. Estas restricciones
est'an aqu'i para protegernos como autores, no para restringirles a Uds. como educadores o aprendices.

    El autor anima a los distribuidores de software de Linux en cualquier medio a usar el libro como
una gu'ia de instalaci'on y de nuevo usuario.  Dado el copyright de arriba, Ud.  es libre de imprimir
y distribuir copias de este libro con su software.  Puede optar por distribuir este libro sin cargo
alguno, o para lograr un beneficio. Si lo hace asi, puede desear incluir un peque"no "suplemento de
instalaci'on" para su versi'on.

    El autor desear'ia saber de cualquier plan de publicar y distribuir este libro comercialmente. De
este modo, podemos asegurar de que Ud.  se mantiene al dia con nuevas revisiones.  Y, si hubiese
una nueva versi'on a punto de salir, Ud.  podr'ia desear retrasar la publicaci'on del libro hasta que
est'e disponible.

    Si Ud.  esta distribuyendo este libro comercialmente, cualquier donaci'on, royalties, y/o copias
impresas serian enormemente apreciadas por el autor.  La contribuci'on en este sentido muestra su
apoyo al software libre y al Proyecto de Documentaci'on de Linux.



Todo el c'odigo fuente en Linux Installation and Getting Started se ha puesto bajo la licencia GNU
General Public License. Vea el Ap'endice F con una copia de la licencia GNU "GPL."
Notaci'on usada en el documento



Este acuerdo de notaci'on deber'ia de ser obvio, no obstante se incluye aqu'i por si acaso.


Negita           Usado para resaltar conceptos nuevos, AVISOS, y palabras clave de un len-
                 guaje.


it'alicas        Usado para enfatizar en el texto, y ocasionalmente para citas o presentaciones al
                 comienzo de una secci'on. Tambi'en usado para indicar comandos que teclee el usuario
                 cuando se muestra interacci'on con la pantalla (ver debajo).


<sesgado>        Usado para marcar meta-variables en el texto, especialmente en representaciones
                 de la l'inea de comandos. Por ejemplo,


                      ls -l <foo>


                 donde <foo> "equivale a" un nombre de fichero, como /bin/cp.


Escritura de m'aquina
                 Usada para representar interacci'on de pantalla, como en


                      $  ls -l /bin/cp
                      -rwxr-xr-x  1 root     wheel     12104 Sep 25 15:53 /bin/cp


                 Tambi'en se usa en ejemplos de c'odigo, ya sea c'odigo C, un script de la shell, o
                 cualquier otro, y para mostrar ficheros en general, tales como ficheros de config-
______________________________________________________________________________________________________xv


                 uraci'on.  Cuando sea necesario, y por una mejor claridad, estos ejemplos o figuras
                 se incluir'an en cajas.

________
|_Tecla_|        Representa una tecla a pulsar. A menudo lo ver'a de esta forma:
                            ________
                      Press |_return_|to continue.


3                Un diamante en el margen, como un diamante negro en una pista de esqui, se"nala
                 "peligro" o "precauci'on". Lea detenidamente los p'arrafos marcados de esta forma.
______________________________________________________________________________________________________xvi




Cap'itulo  1



Introducci'on  a  Linux



Linux es probablemente el acontecimiento m'as importante del software gratuito desde el original
Space War, o, m'as recientemente, Emacs. Se ha convertido en el sistema operativo para los negocios,
educaci'on, y provecho personal.  Linux ya no es solo para gur'us de UNIX que se sientan durante
horas frente a la resplandeciente consola (aunque le aseguramos que un gran n'umero de usuarios
pertenece a esta categor'ia). Este libro le ayudar'a a sacarle el m'aximo partido.

   Linux (pronounciado con una i corta, como en LIH-nucs) es un cl'onico del sistema operativo
UNIX que corre en ordenadores Intel 80386 y 80486.  Soporta un amplio rango de software, desde
TEX a X Windows al compilador GNU C/C++ a TCP/IP. Es una implementaci'on de UNIX vers'atil,
distribuida gratuitamente en los t'erminos de la Licencia GNU (vea el Ap'endice F).

   Linux puede convertir cualquier PC 386 o 486 en una estaci'on de trabajo.  Le pondr'a todo el
poder de UNIX en la punta de sus dedos.  En los negocios ya se instala Linux en redes enteras,
usando el sistema operativo para manejar registros financieros y de hospitales, un entorno de usuario
distribuido, telecomunicaciones, etc. Universidades de todo el mundo usan Linux para dar cursos de
programaci'on y dise"no de sistemas operativos.  Y, por supuesto, entusiastas de los ordenadores de
todo el mundo est'an usando Linux en casa, para programar, entretenerse, y conocerlo a fondo.

   Lo que hace a Linux tan diferente es que es una implementaci'on gratuita de UNIX. Fue y aun
es desarrollado por un grupo de voluntarios, principalmente en Internet, intercambiando c'odigo,
comentando fallos, y arreglando los problemas en un entorno abierto.  Cualquiera es bienvenido a
sumarse al esfuerzo de desarrollo de Linux:  todo lo que se pide es inter'es en producir un cl'onico
gratuito de UNIX y algunos conocimientos de programaci'on. El libro que tiene en sus manos es su
gu'ia de viaje.

1.1     Sobre este libro



Este libro es una gu'ia de instalaci'on e iniciaci'on al sistema Linux. El objetivo es conseguir que los
nuevos usuarios se adapten y hagan funcionar el sistema, condensando tanto material importante
como sea posible dentro de un libro. En lugar de abarcar muchos de los vol'atiles detalles t'ecnicos,


                                                  1
______________________________________________________________________________________________________2      *
 *                                           @


esas cosas que tienden a cambiar con el veloz desarrollo, le ofrecemos una base suficiente con la que
podr'a buscar m'as por Ud. mismo.

    Linux no es dif'icil de instalar y usar. Sin embargo, como cualquier implementaci'on de UNIX, a
menudo hay algo de magia negra implicada para conseguir que todo funcione correctamente. Esper-
amos que este libro le introduzca en el mundo del Linux y le muestre cuan atractivo puede llegar a
ser este sistema operativo.

    En este libro se tratan los siguientes temas.



    o >Qu'e es Linux? El dise"no y la filosof'ia de este sistema operativo 'unico, y lo que puede hacer
      por Ud.


    o Todos los detalles de lo que es necesario para correr Linux, incluyendo sugerencias sobre que
      tipo de configuraci'on hardware se recomienda para un sistema completo.


    o Como obtener e instalar Linux. Hay muchas distribuciones del software de Linux. Presentamos
      una discusi'on general de las distribuciones de software de Linux, como obtenerlas, e instruc-
      ciones gen'ericas para instalar el software (que deber'ian ser aplicables a cualquier distribuci'on).

      Esta edici'on tambi'en contiene instrucciones espec'ificas para la distribuci'on Slackware de Linux.


    o Un breve tutorial de introducci'on a UNIX, para aquellos usuarios que nunca antes hayan tenido
      contacto con UNIX. Este tutorial deber'ia proporcionar, esperamos, material suficiente para que
      completos novatos consigan los conocimientos b'asicos de como moverse por el sistema.


    o Una introducci'on a la administraci'on de sistemas con Linux.  Esto abarca las tareas m'as
      importantes con las que los nuevos administradores de Linux necesitar'an familiarizarse, tales
      como crear usuarios, manejar los sistemas de ficheros, y muchas m'as.


    o Informaci'on sobre configuraci'on de aspectos m'as avanzados de Linux, como el Sistema X Win-
      dow, redes con TCP/IP y SLIP, y la puesta en marcha del correo electr'onico y sistemas de
      news.



    Este libro es para el usuario de ordenador personal que desea iniciarse en Linux.  No se asume
experiencia previa de UNIX, pero se espera que los novatos busquen m'as materiales sobre la marcha.
Para los no familiarizados con UNIX, se da una lista de fuentes de informaci'on 'utiles en el Ap'endice A.
En general, se pretende que este libro se lea junto con otro libro sobre conceptos b'asicos de UNIX.

1.2      Breve historia de Linux



UNIX es uno de los sistemas operativos m'as populares del mundo debido a su extenso soporte y
distribuci'on.  Originalmente fue desarrollado como sistema multitarea con tiempo compartido para
miniordenadores y mainframes a mediados de los 70, y desde entonces se ha convertido en uno de los
sistemas m'as utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema
de su estandarizaci'on.
______________________________________________________________________________________________________1.2.  B*
 *reve historia de Linux            @


   >Cu'al es la verdadera raz'on de la popularidad de UNIX? Muchos hackers consideran que UNIX
es el aut'entico y 'unico sistema operativo. El desarrollo de Linux parte de un grupo en expansi'on de
hackers de UNIX que quisieron hacer su sistema con sus propias manos.

   Existen numerosas versiones de UNIX para muchos sistemas, desde ordenadores personales hasta
supercomputadores como el Cray Y-MP.  La mayor'ia de las versiones de UNIX para ordenadores
personales son muy caras. Cuando se escrib'ia este libro, una copia para una m'aquina 386 del UNIX
System V de AT&T costaba unos 1500 d'olares estadounidenses.

   Linux es una versi'on de UNIX de libre distribuci'on, inicialmente desarrollada por Linus Torvalds1
en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores
y expertos de Unix a lo largo y ancho del mundo, gracias a la presencia de Internet.  Cualquier
habitante del planeta puede acceder a Linux y desarrollar nuevos m'odulos o cambiarlo a su antojo.
El n'ucleo de Linux no utiliza ni una sola l'inea del c'odigo de AT&T o de cualquier otra fuente de
propiedad comercial, y buena parte del software para Linux se desarrolla bajo las reglas del proyecto
de GNU de la Free Software Foundation, Cambridge, Massachusetts.

   Inicialmente, s'olo fue un proyecto de afici'onado de Linus Torvalds.  Se inspiraba en Minix, un
peque"no UNIX desarrollado por Andy Tanenbaum, y  las primeras discusiones sobre Linux surgieron
en el grupo de News comp.os.minix. Estas discusiones giraban en torno al desarrollo de un pqeue"no
sistema UNIX de car'acter acad'emico dirigido a aquellos usuarios de Minix que quer'ian algo m'as.

   El desarrollo inicial de Linux ya aprovechaba las caracter'isticas de conmutaci'on de tareas en
modo protegido del 386, y se escribi'o todo en ensamblador. Linus dice,


         "Comenc'e a utilizar el C tras escribir algunos drivers, y ciertamente se aceler'o el
      desarrollo.  En este punto sent'i que mi idea de hacer un `un Minix mejor que Minix'se
      hac'ia m'as seria. Esperaba que alg'un d'ia pudiese recompilar el gcc bajo Linux. . .
         "Dos meses de trabajo, hasta que tuve un driver de discos (con numerosos bugs, pero
      que parec'ia funcionar en mi PC) y un peque"no sistema de ficheros.  Aqu'i ten'ia ya la
      versi'on 0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver de
      disquetes, y no hac'ia gran cosa. No pens'e que alguien compilar'ia esa versi'on."


   No se anunci'o nada sobre esa versi'on, puesto que las fuentes del 0.01 jam'as fueron ejecutables:
conten'ian solo rudimentos de lo que ser'ia el n'ucleo , y se asum'ia que se ten'ia acceso a un Minix para
poderlo compilar y jugar con 'el.

   El 5 de Octubre de 1991, Linus anunci'o la primera versi'on "oficial" de Linux, la 0.02. Ya pod'ia
ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hac'ia mucho m'as. La
intenci'on era ser un juguete para hackers.  No hab'ia nada sobre soporte a usuarios, distribuciones,
documentaci'on ni nada parecido.  Hoy, la comunidad de Linux aun trata estos asuntos de forma
secundaria. Lo primero sigue siendo el desarrollo del kernel.

   Linus escrib'ia en comp.os.minix,


         ">Suspir'ais al recordar aquellos d'ias de Minix-1.1, cuando los hombres eran hombres
      y escrib'ian sus propios drivers? >Os sent'is sin ning'un proyecto interesante y os gustar'ia
_________________________________________
   1torvalds@kruuna.helsinki.fi.
______________________________________________________________________________________________________4      *
 *                                           @


      tener un verdadero S.O. que pudi'erais modificar a placer? >Os resulta frustrante el tener
      solo a Minix? Entonces, este art'iculo es para vosotros.
          "Como dije hace un mes, estoy trabajando en una versi'on gratuita de algo parecido
      a Minix para ordenadores At-386. He alcanzado la etapa en la que puede ser utilizable y
      voy a poner las fuentes para su distribuci'on. Es solo la versi'on 0.02. .p.ero he conseguido
      ejecutar en 'el bash, gcc, gnu-make, gnu-sed, compress, etc.


    Tras la versi'on 0.03, Linus salt'o a la versi'on 0.10, al tiempo que m'as gente empezaba a participar
en su desarrollo.  Tras numerosas revisiones, se alcanz'o la versi'on 0.95, reflejando la esperanza
de tener lista muy pronto una versi'on "oficial".  (Generalmente, la versi'on 1.0 de los programas
se corresponden con la primera te'oricamente completa y sin errores).  Esto suced'ia en Marzo de
1992.  A"no y medio despu'es, en Diciembre del 93, el n'ucleo estaba en la revisi'on 0.99.pl14, en una
aproximaci'on asint'otica al 1.0. Actualmente, el n'ucleo se encuentra en la versi'on 1.1 parche 52, y se
acerca la 1.2.2

    Hoy Linux es ya un cl'onico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs,
UUCP y software de correo y News.  Mucho software de libre distribuci'on ha sido ya portado a
Linux, y est'an empezando a aparecer aplicaciones comerciales.  El hardware soportado es mucho
mayor que en las primeras versiones del n'ucleo. Mucha gente ha ejecutado tests de rendimiento en
sus sistemas Linux 486 y se han encontrado que son comparables a las estaciones de trabajo de gama
media de Sun Microsystems y Digital. >Qui'en iba a imaginar que este "peque"no" cl'onico de UNIX
iba a convertirse en un est'andar mundial para los ordenadores personales?
1.3      Caracter'isticas del sistema



Linux implementa la mayor parte de las caracter'isticas que se encuentran en otras implementaciones
de UNIX, m'as algunas otras que no son habituales.  En esta secci'on nos daremos una vuelta por
todo ello.

    Linux es un sistema operativo completo con multitarea y multiusuario (como cualquier otra
versi'on de UNIX). Esto significa que pueden trabajar varios usuarios simult'aneamente en 'el, y que
cada uno de ellos puede tener varios programas en ejecuci'on.

    El sistema Linux es compatible con ciertos est'andares de UNIX a nivel de c'odigo fuente, in-
cluyendo el IEEE POSIX.1, System V y BSD.  Fue desarrollado buscando la portabilidad de los
fuentes: encontrar'a que casi todo el software gratuito desarrollado para UNIX se compila en Linux
sin problemas. Y todo lo que se hace para Linux (c'odigo del n'ucleo, drivers, librer'ias y programas
de usuario) es de libre distribuci'on.

    En Linux tambi'en se implementa el control de trabajos POSIX (que se usa en los shells csh
y bash), las pseudoterminales (dispositivos pty), y teclados nacionales mediante manejadores de
teclado cargables din'amicamente.  Adem'as, soporta consolas virtuales, lo que permite tener m'as
de una sesi'on abierta en la consola de texto y conmutar entre ellas f'acilmente.  A los usuarios del
programa "screen" les resultar'a familiar esto.
_________________________________________2
    N. del T.: En el momento de traducir estas l'ineas la versi'on estable del n'ucleo es la 1.2.13, pero el *
 *desarrollo
contin'ua por la 1.3.47 en versi'on beta . . .
______________________________________________________________________________________________________1.3.  C*
 *aracter'isticas del sistema       @


   El n'ucleo es capaz de emular por su cuenta las instrucciones del coprocesador 387, con lo que en
cualquier 386 con coprocesador o sin 'el se podr'an ejecutar aplicaciones que lo requieran.

   Linux soporta diversos sistemas de ficheros para guardar los datos.  Algunos de ellos, como el
ext2fs, han sido desarrollados espec'ificamente para Linux.    Otros sistemas de ficheros, como el
Minix-1 o el de Xenix tambi'en est'an soportados.  Y con el de MS-DOS se podr'an acceder desde
Linux a los disquetes y particiones en discos duros formateados con MS-DOS. Adem'as, tambi'en
soporta el ISO-9660, que es el est'andar seguido en el formato de los CD-ROMs.  Hablaremos m'as
sobre los sistemas de ficheros en los cap'itulos 2 y 4.

   Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde manejadores para
las tarjetas de red m'as populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por
el puerto serie. Tambi'en se implementan PLIP (para comunicarse por el puerto de la impresora) y
NFS (para acceso remoto a ficheros). Y tambi'en se han portado los clientes de TCP/IP, como FTP,
telnet, NNTP y SMTP. Hablaremos m'as acerca de esto en el cap'itulo 5.

   El n'ucleo de Linux ha sido desarrollado para utilizar las caracter'isticas del modo protegido de
los microprocesadores 80386 y 80486. En concreto, hace uso de la gesti'on de memoria avanzada del
modo protegido y otras caracter'isticas avanzadas. Cualquiera que conozca la programaci'on del 386
en el modo protegido sabr'a que este modo fue dise"nado para su uso en UNIX (o tal vez Multics).
Linux hace uso de esta funcionalidad precisamente.

   El n'ucleo soporta ejecutables con paginaci'on por demanda. Esto significa que s'olo los segmentos
del programa que se necesitan se cargan en memoria desde el disco. Las p'aginas de los ejecutables
son compartidas mediante la t'ecnica copy-on-write, contribuyendo todo ello a reducir la cantidad de
memoria requerida para las aplicaciones.

   Con el fin de incrementar la memoria disponible, Linux implementa la paginaci'on con el disco:
puede tener hasta 256 megabytes de espacio de intercambio o "swap"3 en el disco duro.  Cuando
el sistema necesita m'as memoria, expulsar'a p'aginas inactivas al disco, permitiendo la ejecuci'on de
programas m'as grandes o aumentando el n'umero de usuarios que puede atender a la vez. Sin embargo,
el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho
m'as lento que 'esta.

   La memoria dedicada a los programas y a la cache de disco est'a unificada. Por ello, si en cierto
momento hay mucha memoria libre, el tama"no de la cache de disco aumentar'a acelerando as'i los
accesos.

   Los ejecutables hacen uso de las librer'ias de enlace din'amico.

   Esto significa que los ejecutables comparten el c'odigo com'un de las librer'ias en un 'unico fichero,
como sucede en SunOS. As'i, los ejecutables ser'an m'as cortos a la hora de guardarlos en el disco,
incluyendo aquellos que hagan uso de muchas funciones de librer'ia.  Tambi'en pueden enlazarse
est'aticamente cuando se deseen ejecutables que no requieran la presencia de las librer'ias din'amicas
en el sistema. El enlace din'amico se hace en tiempo de ejecuci'on, con lo que el programador puede
cambiar las librer'ias sin necesidad de recompilaci'on de los ejecutables.

   Para facilitar la depuraci'on de los programas, el n'ucleo de Linux puede generar volcados de
_________________________________________3
    El nombre swap es inadecuado: no se intercambian procesos completos, sino p'aginas individuales. Por supu*
 *esto,
en muchos casos se expulsan al disco procesos completos, pero no siempre ocurre
______________________________________________________________________________________________________6      *
 *                                           @


la imagen de memoria de los programas (ficheros core).  Entre esto y la posibilidad de compilar
ejecutables con soporte de depuraci'on, el programador podr'a averiguar la causa de los fallos de su
programa.

1.4      Software



En esta secci'on le haremos una breve introducci'on sobre las muchas aplicaciones software disponibles
para Linux y sobre tareas t'ipicas con ordenadores.  Despu'es de todo la parte m'as importante del
sistema radica en la cantidad de software disponible que existe. El hecho de que la mayor parte de
ese software sea gratis lo hace a'un m'as impresionante.
1.4.1     Comandos y utilidades b'asicas


Pr'acticamente cada utilidad que espere encontrar en un sistema UNIX estandard ha sido transladada
a Linux.  Esto incluye comandos b'asicos como ls, awk, tr, sed, bc, more, y muchos m'as.  Diga el
nombre de una.  Es seguro que Linux la tiene.  En Linux puede esperar encontrar un entorno de
trabajo que le sera familiar si procede de entornos UNIX. Todos los comandos estandard y utilidades
est'an ah'i.  (Los usuarios novatos de Linux deber'ian ver el Cap'itulo 3 para una introducci'on a los
comandos b'asicos del UNIX.)

    Hay disponibles numerosos editores de texto, incluyendo vi, ex, pico, jove, GNU Emacs y sus
variantes como Lucid Emacs (el cual incorpora extensiones para usarlo bajo X Window), y joe. Sea
cual sea el editor que est'e acostumbrado a usar, es pr'acticamente seguro que habr'a sido portado a
Linux.

    La elecci'on de un editor de texto es un asunto interesante.  Muchos usuarios de UNIX siguen
usando editores "simples", como vi (de hecho, el autor escribi'o este libro usando vi sobre Linux.
Pero vi tiene muchas limitaciones debido a su antigedad, por lo que est'an ganando popularidad
editores m'as modernos (y complejos) como Emacs.  Emacs proporciona un completo lenguaje de
macros basadas en LISP con su int'erprete, una poderosa sintaxis de 'ordenes y multitud de otras
opciones interesantes. Existe un conjunto de macros de Emacs para leer correo electr'onico y 'news',
moverse por el 'arbol de directorios, e incluso tener una sesi'on de psicoterapia con un psicoterapeuta
de inteligencia artificial (indispensable para Linuxeros estresados :-) )

    Un punto interesante es que la mayor'ia de las utilidades b'asicas para Linux son programas GNU.
Estas utilidades GNU proporcionan caracter'isticas avanzadas que no se encuentran en las versiones
estandard para BSD 'o AT&T. Por ejemplo, la versi'on de GNU del editor vi, elvis, incluye un
lenguaje de macros estructurado que difiere de la versi'on inicial de AT&T. De cualquier modo, las
utilidades GNU se esfuerzan por mantenerse compatibles con sus equivalentes BSD y System V.
Mucha gente considera las versiones GNU de estos programas superiores a las originales.

    La utilidad m'as importante para la mayor'ia de los usuarios es el int'erprete de comandos.
El int'erprete de comandos es un programa que lee y ejecuta 'ordenes del usuario.  Adem'as, muchas
proporcionan caracter'isticas como control de procesos (permitiendo al usuario manejar varios
procesos corriendo a la vez), redirecci'on de entrada/salida, y un lenguaje de 'ordenes para escribir
______________________________________________________________________________________________________1.4.  S*
 *oftware                           @


scripts. Una script es un fichero que contiene un programa en el lenguaje de ordenes del int'erprete
de comandos, similar a los ficheros "batch" de MS-DOS.

   Hay varios tipos de int'erpretes de comandos disponibles para Linux. La principal diferencia entre
ellos es el lenguaje de comandos. Por ejemplo, el C Shell (csh) usa un lenguaje de comandos muy
parecido al lenguaje de programaci'on C. El cl'asico Bourne Shell usa un lenguaje de comandos
diferente. Un argumento para la elecci'on de un determinado int'erprete de comandos es el lenguaje
de comandos que proporciona.  El int'erprete de comandos que use, definir'a su entorno de trabajo
bajo Linux.

   No importa el int'erprete de comandos que est'e acostumbrado a usar, alguna versi'on de este
habr'a sido probablemente llevada a Linux. La m'as popular es el GNU Bourne Again Shell (bash),,
que es una variante del Bourne cl'asico que incluye muchas caracter'isticas avanzadas como control de
procesos, historial de 'ordenes, terminaci'on de comandos y ficheros, edici'on de la l'inea de comandos
al estilo Emacs y poderosas extensiones al lenguaje de comandos del Bourne cl'asico. Otro int'erprete
de comandos muy popular es el tcsh, una versi'on del C Shell con funcionalidad avanzada similar
a la encontrada en bash. Otros int'erpretes de comandos son zsh, un peque"no int'erprete similar al
Bourne; el Korn (ksh); BSD's ash y rc, el int'erprete de comandos de Plan 9.

   Linux le da la oportunidad 'unica de configurar el sistema a su gusto seg'un sus necesidades. Por
ejemplo, si usted es la 'unica persona que usa el sistema, y prefiere el editor vi, y el int'erprete de
comandos bash, no es necesario que instale otros editores e int'erpretes de comandos.  La actitud
"h'agaselo usted mismo" es la que se impone entre los usuarios de Linux.
1.4.2    Formateado y proceso de textos


Casi la totalidad de los usuarios de ordenadores tiene la necesidad de usar un sistema de preparaci'on
de documentos de alg'un tipo.  (>Cuantos entusiastas de los ordenadores conoces que todav'ia usen
papel y lapiz?. No demasiados, apostamos por ello). En el mundo de los PC, procesado de textos es
la norma: esto implica edici'on y manipulaci'on de texto (a menudo en un entorno WYSIWYG 4 y la
producci'on de copias impresas del texto con dibujos, tablas y otros adornos.

   En el mundo UNIX, el formateado de textos es mucho m'as com'un. Es bastante diferente del cl'asico
concepto de proceso de textos. Con un sistema de formateado de textos, el texto es introducido por
el autor usando un "lenguaje de composici'on", que describe como debe ser formateado el texto.
En lugar de introducir el texto dentro de un entorno de proceso de textos especial, los fuentes
del texto pueden ser modificados con cualquier editor de textos como vi o Emacs.  Una vez el
texto fuente est'a completo (en el lenguaje de composici'on), el usuario formatea el texto con un
programa separado, que convierte el texto fuente a un formato adecuado para la impresi'on.  Esto
es en cierta forma an'alogo a programar en un lenguaje como C, y "compilar" el documento a una
forma imprimible.

   Hay muchos formateadores de textos disponibles para Linux. Uno es groff, la versi'on GNU del
cl'asico nroff originalmente desarrollado por Bell Labs y todav'ia usado en muchos sistemas UNIX
por todo el mundo. Otro sistema de formateado de textos moderno es TEX, desarrollado por Donald
_________________________________________
   4N. del T.: WYSIWYG: "What-You-See-Is-What-You-Get". "Lo-que-ves-es-lo-que-obtienes"
______________________________________________________________________________________________________8      *
 *                                           @


Knuth de gran popularidad. Dialectos de TEX, como LATEX, tambi'en est'an disponibles.

    Formateadores de texto como TEX y groff difieren entre si principalmente en la sintaxis del
lenguaje de composici'on.  La elecci'on de un sistema de formateo frente a otro estar'a basada en las
utilidades disponibles para satisfacer sus necesidades, as'i como en su gusto personal.

    Por ejemplo, algunas personas consideran que el lenguaje de composici'on de groff es un poco
oscuro por lo que usan TEX, que es m'as legible para humanos.  Pero, groff es capaz de producir
salida en ASCII llano, visualizable en un terminal, mientras que TEX est'a destinado principalmente
para salida a impresora.  Por lo tanto, existen varios programas para producir salida ASCII de
documentos formateados con TEX, o para convertir TEX a groff.

    Otro sistema de formateo de texto es texinfo, una extensi'on de TEX usada para la documentaci'on
de programas por la 'Free Software Foundation'. texinfo es capaz de producir documentos impresos
o un documento "Info" con hiperenlaces por los que nos podemos mover desde un 'unico fichero fuente.
Los ficheros Info son el formato principal de documentaci'on usado por paquetes de GNU como Emacs.



    Los formateadores de texto son usados ampliamente en la comunidad inform'atica para producir
informes, tesis, art'iculos de revistas y libros (de hecho, este libro ha sido producido con LATEX). La
capacidad de procesar el lenguaje fuente como un fichero de texto llano abre la puerta a muchas
extensiones al formateado de texto en s'i, puesto que los documentos no son guardados en un oscuro
formato, legible solo por un procesador de textos particular, los programadores tienen la posibilidad
de escribir analizadores y traductores para el lenguaje de composici'on y extender el sistema.

    >Que aspecto tiene el lenguaje de composici'on? En general, el texto fuente consiste principalmente
en el texto en si mismo, junto con "c'odigos de control" para producir efectos particulares, como
cambio de tipo de letra, seleccionar margenes, crear listas, ..etc.

    Como ejemplo, tomemos el siguiente texto:



      Sr. Torvalds:

      Estamos muy preocupados con sus planes actuales de a"nadir sugesti'on post-hipn'otica en
      el c'odigo del terminal de Linux. Nos sentimos as'i por tres razones:


        1. Mostrar mensajes subliminares en el terminal no es solo inmoral, sino una p'erdida
           de tiempo;

        2. Ha sido probado que las sugestiones post-hipn'oticas no son efectivas cuando se usan
           sobre `UNIX hackers'desprevenidos;

        3. Ya hemos a"nadido descargas el'ectricas de alto voltaje como medida de seguridad en
           el c'odigo de login.


      Esperamos que lo reconsidere.



    Este texto aparecer'ia en el lenguaje de formateo de LATEX como sigue:


      \begin{quote}
      Sr. Torvalds:
______________________________________________________________________________________________________1.4.  S*
 *oftware                           @




      Estamos muy preocupados con sus planes actuales de a\~nadir
      {\em sugesti\'on post-hipn\'otica\/} en el c\'odigo del
      terminal de {\bf Linux}. Nos sentimos as\'{\i} por tres razones:
      \begin{enumerate}
      \item Mostrar mensajes subliminares en el terminal no es solo
            inmoral, sino una p\'erdida de tiempo;
      \item Ha sido probado que las sugestiones post-hipn\'oticas
            no son efectivas cuando se usan sobre `UNIX hackers'
            desprevenidos;
      \item Ya hemos a\~nadido descargas el\'ectricas de alto voltaje
            como medida de seguridad en el c\'odigo de {\tt login}.
      \end{enumerate}
      Esperamos que lo reconsidere.
      \end{quote}


   El autor escribe el texto `fuente'anterior usando un editor de texto y genera la salida formateada
procesando el texto con LATEX. A primera vista, el lenguaje de composici'on puede parecer oscuro,
pero es realmente f'acil de aprender. Usar un sistema de formateo de textos hace cumplir las normas
tipogr'aficas en la escritura. Por ejemplo, todas las listas enumeradas dentro del documento tendr'an
el mismo aspecto, aunque el autor modifique la definici'on del `entorno'de la lista enumerada.  La
meta principal es permitir al autor concentrarse en la escritura del texto en lugar de preocuparse
por las convenciones tipogr'aficas.

   Los procesadores de texto WYSIWYG son atractivos por muchas razones; proporcionan un po-
deroso (y a veces complejo) interface visual para la edici'on del documento.  Pero este interface
est'a inherentemente limitado por aquellos aspectos de la estructura del texto que son accesibles al
usuario. Por ejemplo, muchos procesadores de texto proporcionan un `lenguaje de formateado'especial
para producir expresiones complicadas como pueden ser las f'ormulas matem'aticas. Esto es id'entico
al formateado de textos, aunque en una escala mucho menor.

   El sutil beneficio del formateado de textos es que el sistema te permite especificar exactamente
lo que quieres.  Tambi'en, los formateadores de texto permiten editar el texto fuente con cualquier
editor de texto y el fuente es f'acilmente convertible a otros formatos. Esta flexibilidad y potencia la
obtenemos a cambio de renunciar al interface WYSIWYG.

   Muchos usuarios de procesadores de texto estan acostumbrados a ver el texto formateado tal y
como lo editaron. Por otra parte, cuando se escribe con un formateador de texto, generalmente no
nos preocupamos sobre el aspecto que tendr'a una vez formateado. El escritor aprende a imaginarse
el aspecto que tendr'a el texto una vez formateado a partir de las 'ordenes de formateado usadas en el
fuente.

   Hay programas que permiten ver el documento formateado en una pantalla gr'afica antes de
imprimirlo. Por ejemplo, xdvi visualiza un fichero `independiente de dispositivo'generado por TEX
en X Windows.  Otras aplicaciones, como xfig proporcionan interfaces gr'aficos WYSIWYG para
dibujar, los cuales son posteriormente convertidos al lenguaje de formateo de textos para su inclusi'on
en el documento.

   Los formateadores de texto como nroff est'an disponibles desde mucho antes de que apareciesen
______________________________________________________________________________________________________10     *
 *                                           @


los procesadores de texto. Sin embargo, mucha gente todavia prefiere el uso de los formateadores de
texto porque son m'as vers'atiles e independientes del entorno gr'afico. En cualquier caso, el procesador
de textos idoc est'a tambi'en disponible en Linux y no pasar'a mucho tiempo hasta que tambi'en veamos
procesadores de texto comerciales disponibles. Si de ninguna forma quieres renunciar al proceso de
texto en favor del formateo de textos, siempre puedes ejecutar MS-DOS o alg'un otro sistema operativo
adem'as de Linux.

    Hay disponibles muchas otras utilidades relacionadas con el formateo de textos. El potente sistema
METAFONT, usado para dise"nar fuentes para TEX, est'a incluido el la distribuci'on de TEX para
Linux.  Otros programas incluyen ispell, un corrector ortogr'afico interactivo; makeindex, usado
para generar 'indices en documentos LATEX; as'i como muchos paquetes de macros para groff y TEX
para el formateo de diferentes tipos de documentos y textos matem'aticos. Hay disponibles programas
de conversi'on entre fuentes de TEX y groff a miles de otros formatos.
1.4.3     Lenguajes de programaci'on y utilidades


Linux proporciona un completo entorno de programaci'on UNIX, incluyendo todas las librer'ias es-
tandard, herramientas de programaci'on, compiladores, depuradores y todo aquello que esperar'ias
encontrar en otro sistema UNIX. En el mundo del desarrollo de programas UNIX, las aplicaciones
y sistemas suelen ser programados en C 'o C++. El compilador estandard de C y C++ para Linux
es el GNU gcc, el cual es un avanzado y moderno compilador que permite multitud de opciones. Es
tambi'en capaz de compilar C++ (incluyendo las caracter'isticas de AT&T 3.0) as'i como en Objetive-C
y otros dialectos de C orientados a objetos.

    Adem'as de C y C++ han sido llevados a Linux muchos otros lenguajes de programaci'on tanto
interpretados como compilados, como Smalltalk, FORTRAN, Pascal, LISP, Scheme, Ada (si es tan
masoquista como para programar en Ada, no le detendremos).  Adem'as hay disponibles varios
ensambladores para escribir c'odigo del 80386 en modo protegido. Los lenguajes favoritos de UNIX
como Perl (el lenguaje de guiones para terminar con todos los lenguajes de guiones) y Tcl/Tk
(un procesador de 'ordenes al estilo del int'erprete de comandos incluyendo soporte para desarrollar
aplicaciones simples para X Window).

    El depurador avanzado gdb tambi'en ha sido llevado a Linux. Permite  examinar los programas
para localizar errores, o examinar la causa de un "cuelgue" usando un volcado del sistema (core
dump). gprof utilidad de perfilado que permite obtener estad'isticas de prestaciones de sus progra-
mas, permitiendo saber en que parte de su programa se va la mayor parte del tiempo de ejecuci'on.
El editor Emacs proporciona un entorno interactivo de edici'on y compilaci'on para varios lenguajes
de programaci'on.  Otras herramientas incluyen GNU make e imake, usados para dirigir el proceso
de compilaci'on de aplicaciones grandes 'o RCS, sistema de control de revisiones.

    Linux dispone de librer'ias compartidas enlazadas din'amicamente, lo que permite a los ejecutables
ser mucho menores al enlazar el c'odigo de las librer'ias en tiempo de ejecuci'on. Estas librer'ias DLL
(Dinamically Linked Library) tambi'en permiten al programador de aplicaciones sustituir  funciones
ya definidas con su propio c'odigo. Por ejemplo, si un programador desea escribir su propia versi'on
de la funci'on de librer'ia malloc(), el editor de enlaces usar'ia la nueva rutina del programador en
lugar de la que se encuentra en las librer'ias.
______________________________________________________________________________________________________1.4.  S*
 *oftware                           @


   Linux es ideal para desarrollar aplicaciones UNIX, proporciona un moderno entorno de pro-
gramaci'on con todos los detalles y funcionalidad necesarios.  Se soportan varios estandards como
POSIX.1, permitiendo a los programas escritos para Linux ser f'acilmente llevados a otros sistemas.
Los programadores profesionales de UNIX y administradores de sistemas pueden usar Linux para
desarrollar programas en casa y luego transferir los programas a los sistemas UNIX del trabajo. Esto
no solo puede ahorrar una gran cantidad de tiempo y dinero, sino que tambi'en le permitir'a traba-
jar con la comodidad de su propia casa.5  Los estudiantes de inform'atica pueden usar Linux para
aprender la programaci'on en UNIX y explorar otros aspectos del sistema como la arquitectura del
n'ucleo.

   Con Linux, no solo tienes acceso a un conjunto completo de librer'ias y utilidades de programaci'on,
tambi'en tiene acceso al c'odigo fuente completo del n'ucleo y las librer'ias.
1.4.4    El sistema X Window


El sistema X Window es un interface gr'afico estandard para m'aquinas UNIX. Es un potente entorno
que soporta muchas aplicaciones.  Usando X Windows, el usuario puede tener m'ultiples terminales
a la vez en ventanas sobre la pantalla, cada una conteniendo una sesi'on diferente.  Un dispositivo
apuntador como el rat'on es usado a menudo en el interface X, pero no es indispensable.

   Han sido escritas muchas aplicaciones especificamente para X, como juegos, utilidades gr'aficas,
herramientas de programaci'on y documentaci'on, y muchas m'as. Con Linux y X, su sistema es una
aut'entica estaci'on de trabajo. Junto con una red TCP/IP puede incluso visualizar aplicaciones que
se est'an ejecutando en otras m'aquinas en su pantalla local, tal y como es posible con otros sistemas
corriendo X.

   El sistema X Window fu'e desarrollado originalmente en el MIT y es de libre distribuci'on. A pesar
de esto muchas empresas han distribuido sus mejoras particulares al dise"no original de X Window. La
versi'on de X Window disponible para Linux es conocida como XFree86, una adaptaci'on de X11R56 de
libre distribuci'on para sistemas UNIX basados en 80386, como es Linux. XFree86 soporta una gran
variedad de tarjetas de video, incluyendo VGA, Super VGA y gran cantidad de tarjetas aceleradoras
de video.  Esta es una distribuci'on completa de X Windows conteniendo el servidor de X, muchas
aplicaciones y utilidades, librer'ias de programaci'on y documentaci'on.

   Aplicaciones X estandard incluyen xterm (emulador de terminal usado por la mayor'ia de las
aplicaciones en modo texto dentro de X); xdm (el gestor de sesiones, maneja los 'login'); xclock (un
reloj simple); xman (un lector de p'aginas de manual para X) y muchos m'as. El n'umero de aplicaciones
disponibles para X Windows en Linux es demasiado numeroso como para mencionarlas aqu'i, pero la
distribuci'on b'asica de XFree86 incluye las aplicaciones `estandard'que se encontraban en la versi'on
original del MIT. Muchas otras est'an disponibles separadamente y te'oricamente cualquier aplicaci'on
escrita para X Windows deber'ia compilar limpiamente bajo Linux.

   El aspecto y comportamiento del interface de las X Windows est'a controlado por el controlador
de ventanas.  Este amigable programa es el encargado de la situaci'on de las ventanas, redimen-
_________________________________________5
    El autor usa su sistema Linux para desarrollar y probar aplicaciones X Window en casa, que pueden ser dir*
 *ecta-
mente compiladas en estaciones de trabajo en cualquier parte.
   6N. del T.: Linux dispone en la actualidad de la versi'on X11R6 de X Window
______________________________________________________________________________________________________12     *
 *                                           @


sionado, iconizaci'on, movimiento de las ventanas, aspecto de los marcos de las ventanas..etc.  La
distribuci'on estandard XFree86 incluye twm, el cl'asico controlador de ventanas del MIT, aunque hay
disponibles controladores mucho m'as avanzados como Open Look Virtual Window Manager (olvwm).
Un controlador de ventanas muy popular entre los usuarios de Linux es el fvwm.  Es un peque"no
controlador que requiere menos de la mitad de la memoria usada por twm. Proporciona aspecto de
3 D para las ventanas, as'i como un escritorio virtual _si el usuario desplaza el rat'on al borde de
la pantalla, la pantalla entera es desplazada como fuese mucho m'as grande de lo que realmente es.
fvwm es altamente configurable y permite acceso a todas las funciones tanto desde el teclado como
desde el rat'on. Muchas distribuciones de Linux usan fvwm como controlador de ventanas estandard.

    La distribuci'on XFree86 contiene librer'ias para programaci'on y ficheros de cabecera para aquellos
programadores ma"nosos que deseen desarrollar aplicaciones para X. Est'an soportados varios con-
juntos de controles como los de Athena, Open Look y Xaw3D. Todas las fuentes estandard, mapas
de bits, p'aginas de manual y documentaci'on est'a incluida.  PEX (interface de programaci'on para
gr'aficos 3 D) tambi'en est'a soportado.

    Muchos programadores de aplicaciones para X usan el conjunto comercial de controles Motif
para el desarrollo.  Algunos vendedores proporcionan licencias simples o multi-usuario de una ver-
si'on ejecutable de Motif para Linux, pero como Motif en si, es bastante caro, no lo poseen demasiados
usuarios de Linux.  A pesar de todo, ejecutables est'aticamente enlazados con las librer'ias de Motif
pueden ser libremente distribuidos. Por lo tanto, si escribes un programa usando Motif y deseas dis-
tribuirlo libremente, deber'as de proporcionar un ejecutable con las librer'ias enlazadas est'aticamente
para que los usuarios que no posean Motif puedan usar el programa.

    La 'unica advertencia con las X Windows son los requerimientos de m'aquina y memoria. Un 386
com 4 Mb de RAM es capaz de ejecutar las X, pero para usarlo adecuadamente ser'an necesarios 8 Mb
o m'as. Tambi'en es recomendable usar un procesador r'apido, pero tener mayor cantidad de memoria
f'isica es mucho m'as importante. Adem'as, para conseguir realmente buenas prestaciones de video, es
muy recomendable usar una tarjeta aceleradora (como las tarjetas local bus con aceleradores gr'aficos
S3).  Se han conseguido 'indices de prestaciones por encima de los 140.000 Xstones con XFree86 y
Linux. Con suficiente hardware, encontrar'a que ejecutar X en Linux es tan r'apido o m'as r'apido que
ejecutar X en otras estaciones de trabajo UNIX.

    En el Cap'itulo 5 se tratar'a sobre como instalar y usar las X en su propio sistema.
1.4.5     Redes


>Est'a interesado en comunicarse con el mundo?  >Si?  >No?  >Quiz'a?  Linux dispone de los dos
principales protocolos de red para sistemas UNIX: TCP/IP y UUCP. TCP/IP (para los aficionados
a los acr'onimos, Transmission Control Protocol/Internet Protocol) es un conjunto de protocolos de
red que permite a sistemas de todo el mundo comunicarse en una 'unica red conocida como Internet.
Con Linux, TCP/IP y una conexi'on a la red, puede comunicarse con usuarios y m'aquinas por toda
Internet mediante correo electr'onico, noticias (USENET news), transferencias de ficheros con FTP
y mucho m'as. Actualmente hay muchos sistemas Linux conectados a Internet.

    La mayor'ia de las redes TCP/IP usan Ethernet como tipo de red f'isica de transporte. Linux da
soporte a muchas tarjetas de red Ethernet e interfaces para ordenadores personales, incluyendo el
______________________________________________________________________________________________________1.4.  S*
 *oftware                           @


adaptador Ethernet D-Link de bolsillo para ordenadores port'atiles.

   Pero dado que no todo el mundo tiene una conexi'on Ethernet en casa, Linux tambi'en proporciona
SLIP 7 (Serial Line Internet Protocol), el cual permite  conectarse a Internet a trav'es de un modem.
Para poder usar SLIP, necesitar'a tener acceso a un servidor de SLIP, una m'aquina conectada a la
red que permite acceso de entrada por tel'efono. Muchas empresas y universidades tienen servidores
SLIP disponibles. De hecho, si su sistema Linux dispone de conexi'on Ethernet y de modem, puede
configurarlo como servidor de SLIP para otros usuarios.

   NFS (Network File System) permite f'acilmente compartir ficheros con otras m'aquinas de la red.
FTP (File Transfer Protocol) permite la transferencia de ficheros entre m'aquinas. Otras aplicaciones
incluyen sendmail, sistema para enviar y recibir correo electr'onico usando el protocolo SMTP;
Sistemas de noticias (news) basados en NNTP como C-News e INN; telnet, rlogin y rsh, que
permiten iniciar una sesi'on y ejecutar 'ordenes en otras m'aquinas de la red; y finger, que permite
obtener informaci'on de otros usuarios de Internet. Hay literalmente cientos de aplicaciones basadas
en TCP/IP y protocolos disponibles por la red.

   Todos los lectores de correo y noticias est'an disponibles para Linux, como elm, pine, rn, nn y
tin. Sea cual sea tus preferencias, puedes configurar tu sistema Linux para enviar y recibir correo
electr'onico y noticias por todo el mundo.

   Si tienes experiencia con aplicaciones TCP/IP en otros sistemas UNIX, Linux te ser'a muy famil-
iar. El sistema proporciona el interface estandar de programaci'on por 'sockets', lo que virtualmente
permite que cualquier programa que use TCP/IP pueda ser llevado a Linux. El servidor Linux de X
tambi'en soporta TCP/IP, permitiendo ver aplicaciones que est'an corriendo en otros sistemas sobre
tu pantalla.

   En el Cap'itulo 5 trataremos sobre la configuraci'on y puesta en marcha de TCP/IP, incluyendo
SLIP para Linux.

   UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo usado para transferir ficheros, correo elec-
tr'onico y noticias entre m'aquinas UNIX. Cl'asicamente las m'aquinas UUCP conectan entre ellas
mediante l'ineas telef'onicas y modem, pero UUCP es capaz de funcionar tambi'en sobre una red
TCP/IP. Si no tienes acceso a una red TCP/IP o a un servidor SLIP, puedes configurar tu sis-
tema para enviar y recibir ficheros y correo electr'onico usando UUCP. Ver el Cap'itulo 5 para m'as
informaci'on.
1.4.6    Programas de comunicaciones y BBS


Si tienes un modem ser'as capaz de comunicarte con otras m'aquinas usando alguno de los paquetes de
comunicaciones disponibles para Linux. Mucha gente usa programas de comunicaciones para acceder
a BBSs, as'i como a servicios comerciales en l'inea, como Prodigy, CompuServe y America On-Line.
Otras personas usan sus modems para conectar a un sistema UNIX en el trabajo o escuela. Puedes
usar incluso tu modem y sistema Linux para enviar y recibir FAX. Los programas de comunicaciones
para Linux son muy parecidos a los que se pueden encontrar para MS-DOS y otros sistemas operat-
ivos. Todo aquel que haya usado alguna vez un paquete de comunicaciones encontrar'a un equivalente
_________________________________________
   7N. del T.: Linux tambi'en dispone, entre otros, de soporte PPP: Point to Point Protocol.
______________________________________________________________________________________________________14     *
 *                                           @


familiar en Linux.

    Uno de los paquetes de comunicaciones m'as populares para Linux es Seyon, una aplicaci'on para X
que proporciona un interface configurable y ergon'omico con soporte incorporado de varios protocolos
de transferencia de ficheros como Kermit, ZModem y otros.  Otros programas de comunicaciones
incluyen C-Kermit, pcomm y minicom.  Estos 'ultimos son similares a programas de comunicaciones
que se pueden encontrar en otros sistemas operativos y son muy f'aciles de usar.

    Si no tienes acceso a un servidor de SLIP (ver la secci'on anterior), puedes usar term para
multiplexar la l'inea serie.  term te permitir'a abrir m'ultiples sesiones a trav'es de la conexi'on por
modem a una m'aquina remota. term tambi'en te permitir'a redireccionar las conexiones de un cliente
X a tu servidor local de X, a trav'es de la l'inea serie, permiti'endote visualizar aplicaciones X remotas
en tu terminal local. Otro paquete disponible, KA9Q, proporciona un interface similar al SLIP.

    Mantener un sistema de BBS es el hobby favorito de mucha gente. Linux proporciona una gran
variedad de programas de BBS, la mayoria de los cuales son m'as potentes que los disponibles para
otros sistemas operativos. Con una l'inea telef'onica, un modem y Linux, puedes convertir tu sistema
en una BBS, proporcionando acceso telef'onico a tu sistema a usuarios de todo el mundo.  Los
programas de BBS para Linux incluyen XBBS y UniBoard BBS.

    La mayor'ia de los programas de BBS mantienen al usuario en un sistema basado en men'us
donde solo hay disponibles ciertas funciones y programas.  Una alternativa a este acceso a la BBS
es el acceso UNIX completo, lo que significa que el usuario llama y entra en el sistema como un
usuario regular (a trav'es de un "login"). Aunque este procedimiento requiere mayor mantenimiento
y atenci'on por parte del administrador del sistema, puede hacerse, y proporcionar acceso p'ublico a
UNIX desde el sistema Linux no es dif'icil. Junto con una red TCP/IP, puedes proporcionar acceso
a correo electr'onico y noticias a los usuarios del sistema.

    Si no tienes acceso a una red TCP/IP o UUCP, Linux tambi'en te permitir'a comunicarte con la
gran cantidad de redes de BBS, como FidoNet, en la cual puedes intercambiar correo electr'onico y
noticias por la l'inea telef'onica. En el Cap'itulo 5 encontrar'as m'as informaci'on sobre programas para
comunicaciones y BBS bajo Linux.
1.4.7     Enlazando con MS-DOS


Existen varias utilidades para enlazar con el mundo de MS-DOS. El m'as conocido es el emulador
de MS-DOS para Linux, que permite ejecutar muchas aplicaciones de MS-DOS directamente desde
Linux. Aunque Linux y MS-DOS son dos sistemas operativos totalmente diferentes, el modo protegido
del 80386 permite que ciertas tareas se comporten como si estuviesen en un 8086 tal y como hacen
las aplicaciones de MS-DOS.

    El emulador de MS-DOS est'a todav'ia bajo desarrollo, aunque muchos de los programas m'as
populares corren sobre 'el.  Por lo tanto, es comprensible que programas MS-DOS que usan carac-
ter'isticas extra"nas o esot'ericas del sistema, puede que nunca est'en soportados, puesto que solo es un
emulador.  Por ejemplo, no espere que sea posible ejecutar programas que usan las caracter'isticas
del 80386 en modo protegido como Microsoft Windows (en modo mejorado de 386).8
_________________________________________8
    N. del T.:  Determinadas aplicaciones Windows 3.1 funcionan, aunque en fase experimental, bajo diversos
______________________________________________________________________________________________________1.4.  S*
 *oftware                           @


   Aplicaciones que corren sin problemas bajo el emulador de MS-DOS incluyen 4DOS (int'erprete de
comandos), Foxpro 2.0, Harvard Graphics, MathCad, Stacker 3.1, Turbo Assembler, Turbo C/C++,
Turbo Pascal, Microsoft Windows 3.0 (en modo real) y WordPerfect 5.1. Los comandos y utilidades
estandard de MS-DOS (como PKZIP,.. etc) funcionan tambi'en con el emulador.

   El emulador de MS-DOS es principalmente una soluci'on `ad-hoc'para aquellos usuarios que ne-
cesitan MS-DOS solo para unas pocas aplicaciones, pero usan Linux para todo lo dem'as.  Eso no
significa que no sea una implementaci'on completa de MS-DOS. Por supuesto, si el emulador no
satisface tus necesidades, siempre se puede usar MS-DOS junto con Linux en el mismo sistema.
Usando el gestor de arranque LILO puedes especificar en el arranque que sistema operativo se desea
arrancar. Linux puede coexistir con otros sistemas operativos, como OS/2.. etc.

   Linux proporciona un interface sin fisuras para transferir ficheros entre Linux y MS-DOS. Se
puede montar una partici'on MS-DOS o disco flexible bajo Linux y acceder directamente a los ficheros
MS-DOS como se har'ia con ficheros de Linux.

   Actualmente existe en desarrollo un proyecto conocido como WINE_ que es un emulador de Mi-
crosoft Windows para X Windows bajo Linux. Cuando WINE est'e completado, los usuarios podr'an
ejecutar aplicaciones MS-Windows directamente desde Linux, similar al emulador de Windows WABI
de Sun Microsystems.  Al tiempo de escribir este texto, WINE est'a todav'ia en las primeras etapas
del desarrollo, pero tiene muy buenas perspectivas.

   En el Cap'itulo 5 hablaremos de las herramientas MS-DOS disponibles para Linux.
1.4.8    Otras aplicaciones


Tal y como se podr'ia esperar de tal mezcolanza de sistema operativo, hay una gran cantidad de
miscel'anea disponible para Linux. La intenci'on primaria de Linux es, actualmente, el uso personal
de UNIX, pero esto est'a cambiando r'apidamente.  Programas de negocios y cient'ificos se est'an
expandiendo y los vendedores de programas comerciales est'an comenzando a contribuir al crecimiento
del n'umero de aplicaciones disponibles para Linux.

   Est'an disponibles para Linux varias bases de datos relacionales, incluyendo Postgres, Ingres
y Mbase.  Estas tienen todas las caracter'isticas de aplicaciones de bases de datos cliente/servidor
similares a las que se pueden encontrar en otras plataformas UNIX. /rdb, un sistema de base de
datos comercial9 est'a tambi'en disponible.

   Aplicaciones de c'alculo cient'ifico Incluyen FELT (herramienta de an'alisis de elementos finitos);
gnuplot (aplicaci'on de an'alisis y representaci'on gr'afica de datos); Octave (matem'atica simb'olica,
similar a MATLAB); xspread (hoja de c'alculo); fractint, versi'on para X del popular generador
de fractales Fractint; xlispstat (paquete estad'istico), y muchos m'as. Otras aplicaciones incluyen a
Spice (herramienta de dise"no y an'alisis de circuitos) y Khoros (proceso de se"nales im'agenes/digital
y sistema de visualizaci'on).

   Por supuesto, hay muchas m'as aplicaciones que han sido y pueden ser llevadas a Linux.  Sea
_________________________________________
emuladores
   9N. del T.: En el momento de realizar esta traducci'on ya exist'ian varios paquetes de Bases de Datos come*
 *rciales
portadas a Linux. Van desde compatibilidad con Clipper 5.x hasta soporte SQL entre otros
______________________________________________________________________________________________________16     *
 *                                           @


cual sea su campo de trabajo, transladar aplicaciones UNIX a Linux deber'ia ser bastante directo.
Linux proporciona un completo entorno de programaci'on UNIX, suficiente para servir de base a
aplicaciones cient'ificas.

    Como con cualquier sistema operativo, Linux tiene su porci'on de juegos.  Estos incluyen juegos
cl'asicos en modo texto como Nethack y Moria; MUDs (dragones y mazmorras multiusuario, que per-
miten que los usuarios interaccionen en una aventura en modo texto) como DikuMUD y TinyMUD;
as'i como juegos para X Windows como tetris, netrek, y Xboard (la versi'on para X11 de gnuchess).
El popular juego `arcade'de masacrar enemigos Doom tambi'en ha sido llevado a Linux.

    Para aud'iofilos, Linux tiene soporte para tarjetas de sonido y programas relacionados como CD-
player (programa que permite escuchar CD musicales en el lector de CD-ROM), secuenciadores MIDI
y editores (permiten componer musica para sintetizadores o cualquier instrumento con controlador
MIDI) y editores de sonidos digitalizados.

    >No puedes encontrar el programa que est'as buscando?. El `Linux Software Map' descrito en el
Ap'endice A contiene una lista con gran cantidad de programas que han sido escritos o llevados a
Linux. Ciertamente, la lista est'a lejos de ser completa, pero contiene una gran cantidad de programas.
Otra forma de encontrar aplicaciones para Linux, si tiene acceso a Internet, es buscar en los ficheros
INDEX que se encuentran en los `Linux FTP sites'. A poco que hurgue a su alrededor, encontrar'a gran
cantidad de programas esperando a ser usados.

    Si de ninguna forma puede encontrar lo que necesita, siempre puede tratar de hacer una ad-
aptaci'on de la aplicaci'on desde otra plataforma a Linux.  La mayor'ia de los programas de libre
distribuci'on para UNIX compilar'an en Linux sin ning'un problema. O si todo falla, puede escribirse
Vd.  mismo el programa.  Si lo que est'a buscando es un programa comercial, puede que exista un
`clon'de libre difusi'on disponible. O puede sugerir a la empresa que considere el lanzamiento de una
versi'on de su programa para Linux. Algunas personas han contactado con empresas de programaci'on
pidi'endoles que lleven sus aplicaciones a Linux, y han obtenido varios grados de 'exito.

1.5      Acerca del Copyright



Linux est'a regido por lo que se conoce como la Licencia P'ublica General de GNU, o GPL, General
Public License.  La GPL fue desarrollada para el proyecto GNU por la Free Software Foundation,
que podemos traducir como "Fundaci'on por el Software Gratuito".  La licencia hace una serie de
previsiones sobre la distribuci'on y modificaci'on del "software gratis".  "Gratis" en este sentido se
refiere a libertad, y no solo coste. La GPL puede ser interpretada de distintas formas, y esperamos
que este resumen le ayude a entenderla y c'omo afecta a Linux. Se incluye una copia completa de la
Licencia al final del libro, en el ap'endice F.

    Originalmente, Linus Torvalds lanz'o Linux bajo una licencia m'as restrictiva que la GPL, que
permit'ia que el software fuera libremente distribuido y modificado, pero prohib'ia su uso para ganar
dinero. Sin embargo, la GPL autoriza que la gente venda su software, aunque no le permite restringir
el derecho que su comprador tiene a copiarlo y venderlo a su vez.

    En primer lugar, hay que aclarar que el "software gratis" de la GPL no es software de dominio
p'ublico. El software de dominio p'ublico carece de copyright y pertenece literalmente al p'ublico. El
______________________________________________________________________________________________________1.6.  D*
 *ise"no y filosof'ia de Linux      @


software regido por la GPL s'i tiene el copyright de su autor o autores. Esto significa que est'a protegido
por las leyes internacionales del copyright y que el autor del software est'a declarado legalmente. No
solo porque un programa sea de libre distribuci'on puede consider'arsele del dominio p'ublico.

   El software regido por la GPL tampoco es "shareware".  Por lo general,  el "shareware" es
propiedad del autor, y exige a los usuarios que le paguen cierta cantidad por utilizarlo despu'es
de la distribuci'on.  Sin embargo, el software que se rige por la GPL puede ser distribuido y usado
sin pagar a nadie.

   La GPL permite a los usuarios modificar el software y redistribuirlo.  Sin embargo, cualquier
trabajo derivado de un programa GPL se regir'a tambi'en por la GPL. En otras palabras, una compa"n'ia
nunca puede tomar Linux, modificarlo y venderlo bajo una licencia restringida.  Si un software se
deriva de Linux, 'este deber'a regirse por la GPL tambi'en.

   La GPL permite distribuir y usar el software sin cargo alguno. Sin embargo, tambi'en permite que
una persona u organizaci'on gane dinero distribuyendo el software.  Sin embargo, cuando se venden
programas GPL, el distribuidor no puede poner ninguna restricci'on a la redistribuci'on. Esto es, si
usted compra un programa GPL, puede a su vez redistribuirlo gratis o cobrando una cantidad.

   Esto puede parecer contradictorio. >Por qu'e vender software cuando la GPL especifica que puede
obtenerse gratis?  Por ejemplo, supongamos que una empresa decide reunir una gran cantidad de
programas GPL en un CD-ROM y venderlo.  La empresa necesitar'a cobrar por el hecho de haber
producido el CD, y as'imismo querr'a ganar dinero. Esto est'a permitido por la GPL.

   Las organizaciones que vendan el software regido por la GPL deben tener en cuenta algunas
restricciones. En primer luger, no pueden restringir ning'un derecho al comprador del programa. Esto
significa que si usted compra un CD-ROM con programas GPL, podr'a copiar ese CD y revenderlo
sin ninguna restricci'on.  En segundo lugar, los distribuidores deben hacer saber que el software se
rige por la GPL. En tercer lugar, el vendedor debe proporcionar, sin coste adicional, el c'odigo fuente
del software a distribuir. Esto permite a cualquiera comprar el software y modificarlo a placer.

   Permitir a una empresa distribuir y vender programas que son gratis es bueno.  No todo el
mundo tiene acceso a Internet para llevarse los programas, como Linux, gratis.  La GPL permite a
las empresas vender y distribuir programas a esas personas que no pueden acceder al software con
un coste bajo.  Por ejemplo, muchas empresas venden Linux en disquetes o CD-ROM por correo,
y hacen negocio de esas ventas.  Los desarrolladores de Linux pueden no tener constancia de estos
negocios. Por ejemplo, Linus sabe que ciertas compa"n'ias venden Linux, y 'el no va a cobrar nada por
esas ventas.

   En el mundo de los programas gratis, lo importante no es el dinero.  El objetivo es permitir
desarrollar y distribuir software fant'astico asequible a cualquiera. En la siguiente secci'on, hablaremos
de c'omo esto se aplica al desarrollo de Linux.

1.6     Dise"no y filosof'ia de Linux



En ocasiones, los nuevos usuarios de Linux se crean falsas expectativas acerca de 'este. Linux es un
sistema operativo 'unico, y es importante entender su filosof'ia y dise"no para usarlo eficientemente.
______________________________________________________________________________________________________18     *
 *                                           @


Aunque usted sea un experimentado "gur'u" del UNIX, lo que viene a continuaci'on le interesar'a con
total seguridad.

    En versiones comerciales de UNIX, el sistema es desarrollado siguiendo una rigurosa pol'itica de
mantenimiento de la calidad, con sistemas de control de revisiones para las fuentes y documentaci'on,
etc.  Los desarrolladores no pueden a"nadir cosas nuevas por su cuenta:  cualquier cambio ser'a en
respuesta a un informe de bug detectado, y ser'a cuidadosamente registrado en el sistema de control
de versiones, de manera que podr'a volverse atr'as sin problemas. Cada desarrollador tiene asignada
una o m'as partes del c'odigo, y solo ese desarrollador puede alterar esas secciones del c'odigo.

    Internamente, el departamento de calidad realiza conjuntos de tests para cada versi'on del sistema
operativo, e informa de los errores.  Es responsabilidad de los desarrolladores corregir esos errores.
Se utiliza un complicado sistema de an'alisis estad'istico para asegurarse de que cierto porcentaje de
los errores son corregidos antes de la pr'oxima versi'on.

    Como vemos, el proceso seguido por los desarrolladores de UNIX comercial para mantenerlo y
darle soporte es muy complicado, pero razonable. La compa"n'ia debe tener cierta seguridad de que la
pr'oxima revisi'on del sistema ya est'a lista para ser comercializada, a trav'es de las pruebas que hemos
comentado.  Esto supone un gran trabajo que involucra a cientos (si no miles) de programadores,
betatesters, redactores de documentaci'on y personal administrativo.  Por supuesto, no todos los
fabricantes de UNIX trabajan as'i, pero esto da una idea de la panor'amica habitual.

    Con Linux, hay que olvidarse del concepto de desarrollo organizado, sistemas de control de
versiones, informaci'on de errores estructurada o an'alisis estad'isticos. Linux es un sistema operativo
hecho por "hackers"10

    Linux ha sido desarrollado principalmente por un grupo de programadores de todo el mundo
unidos por Internet. A trav'es de Internet, cualquiera tiene la oportunidad de unirse al grupo y ay-
udar al desarrollo y depuraci'on del n'ucleo, portar nuevo software, escribir documentaci'on o ayudar a
los nuevos usuarios. La comunidad de Linux se comunica principalmente mediante diversas listas de
correo y grupos de USENET. Existen algunos acuerdos en el desarrollo, como que cualquiera que de-
see que su c'odigo sea incluido en la versi'on "oficial" del n'ucleo deber'a ponerse en contacto con Linux
Torvalds, quien comprobar'a el c'odigo y lo incluir'a en el n'ucleo. Por lo general, estar'a encantado en
hacerlo, siempre que no estropee otras cosas.

    El sistema se ha dise"nado siguiendo una filosof'ia abierta y de crecimiento.  Por regla general
hay una nueva versi'on del n'ucleo cada dos meses (a veces cada menos tiempo)11 Esto depende del
n'umero de errores a corregir, la cantidad de informaci'on recibida de los usuarios, y lo que haya
dormido Linus esta semana.

    Por lo tanto, es dif'icil decir que todos los errores hayan sido corregidos en cierta fecha.  Pero
conforme el sistema va apareciendo libre de errores cr'iticos o manifiestos, se considera "estable"
y se lanzan nuevas revisiones.  Hay que recordar que no se pretende realizar un sistema perfecto,
sin errores.  Simplemente, se pretende desarrollar una implementaci'on gratuita de UNIX. Linux
est'a hecho para desarrolladores, m'as que para otro tipo de personas.
_________________________________________10
    Por "hacker" queremos referirnos a programadores fervientemente dedicados, por hobby, a explotar sus orde*
 *nadores
al m'aximo, con resultados 'utiles para otras personas. Este concepto es contrario al habitualmente aceptado,*
 * que dice
que un "hacker" es un pirata inform'atico.
  11N. del T.: Actualmente nos consta la aparici'on semanal de al menos una revisi'on de las versiones experi*
 *mentales.
______________________________________________________________________________________________________1.6.  D*
 *ise"no y filosof'ia de Linux      @


   Si alguien desarrolla una aplicaci'on o nueva caracter'istica para el n'ucleo, se a"nade inicialmente
en una etapa "alfa",  es decir, pensada ser probada por usuarios atrevidos que aceptan los fallos
que tenga.  Dado que la comunidad de Linux se basa sobre todo en Internet, el software "alfa" es
enviado, normalmente, a servidores FTP dedicados a Linux (vea el ap'endice C) y anunciado mediante
un mensaje puesto en un grupo USENET dedicado a Linux. Los usuarios que se llevan el software
lo prueban e informan sobre errores o sugerencias al autor por correo electr'onico.

   Una vez que se corrigen los problemas iniciales, el c'odigo pasa a una etapa "beta",  en la que
se considera estable pero incompleto (o sea, funciona, pero no incluye todas las funcionalidades
previstas). Tambi'en se puede pasar a una etapa "final" en la que el software se considera terminado.
Para el c'odigo del n'ucleo, una vez que se ha terminado, el desarrollador puede pedir a Linus que lo
incluya en el n'ucleo est'andar, o bien que lo ponga como c'odigo optativo.

   Recordar que lo anterior son solo convenciones, y no leyes. Algunos programas pueden no neces-
itar fases "alpha". Es el desarrollador quien tomar'a las decisiones al respecto.

   Estar'a sorprendido de que un grupo de programadores y aficionados voluntarios, relativamente
desorganizados, hayan podido hacer algo.  Sin embargo, este grupo constituye uno de los m'as efi-
cientes y motivados. Todo el n'ucleo de Linux ha sido escrito de la nada, sin emplear ning'un c'odigo de
fuentes propietarias. Todo el software, librer'ias, sistemas de ficheros y drivers han sido desarrollados
o portados desde otros sistemas; y se han programado drivers para los dispositivos m'as populares.

   Normalmente, Linux es distribuido junto con otro software en lo que se conoce como distribuci'on,
que es un paquete de software que permite poner a punto un sistema completo. Dado que es dif'icil
para los usuarios noveles el crear un sistema UNIX partiendo del n'ucleo y programas de diversas
fuentes, se crearon las distribuciones con el fin de facilitar esta tarea: con la distribuci'on, usted solo
tiene que coger el CD-ROM o los disquetes e instalar para tener un sistema completo con programas
de aplicaci'on incluidos. Como es de esperar, no hay ninguna distribuci'on "est'andar". Hay muchas,
cada una con sus ventajas y desventajas. Hablaremos m'as sobre distribuciones en la secci'on 2.1.

   A pesar de lo anterior, necesitar'a cierto conocimiento de UNIX para poder instalar y usar un
sistema completo.  No hay distribuci'on que no tenga fallos, por lo que requerir'a de su habilidad al
teclado para corregir los peque"nos problemas que se presenten.  Ejecutar un sistema UNIX no es
f'acil, ni siquiera en las versiones comerciales.  Hay que andarse con cuidado en cualquier UNIX, y
Linux no es una excepci'on.
1.6.1    Consejos para novatos en UNIX


Instalar y utilizar su propio sistema Linux no requiere grandes conocimientos de UNIX. De hecho,
muchos novatos de UNIX instalan con 'exito sus sistemas. Es una experiencia de la que se aprende,
pero de la que se pueden generar fustraciones.  Si tiene suerte, podr'a instalar y usar Linux sin
conocimiento alguno de UNIX. Sin embargo, cuando quiera introducirse en tareas m'as complejas
(instalar nuevo software, recompilar el n'ucleo, etc.) el conocimiento de UNIX empieza a ser necesario.

   Por suerte, ejecutando su propio sistema Linux podr'a aprender las cosas esenciales de UNIX para
llevar a cabo esas tareas. Este libro contiene informaci'on que intentar'a ayudarle (vea el cap'itulo 3,
que es un tutorial sobre UNIX; y el cap'itulo 4, que le ense"nar'a cosas sobre la administraci'on de
______________________________________________________________________________________________________20     *
 *                                           @


Linux).  Quiz'as le parezca interesante leer esos cap'itulos antes de instalar Linux.  En este caso, se
ahorrar'a algunos problemas.

    Nadie puede esperar hacerse experto administrador de la noche a la ma"nana.  No hay imple-
mentaci'on alguna que est'e libre de mantenimiento. Por lo tanto, prep'arese si es novato, pero no se
desespere ante los problemas. El que escribe esto12 tampoco ten'ia mucha idea antes de empezar.
1.6.2     Consejos para los gur'us


La gente con a"nos de experiencia programando y administrando sistemas UNIX tambi'en puede
necesitar ayuda al querer instalar Linux. Existen aspectos con los que los magos del UNIX tendr'an
que familiarizarse antes de entrar en materia. Por un lado, Linux no es un sistema UNIX comercial.
No intenta seguir exactamente el mismo est'andar de otros sistemas.  En otras palabras, este factor
no es el 'unico factor que interesa en el desarrollo de Linux.

    Es m'as importante, sin embargo, su funcionalidad. En muchos casos, el nuevo c'odigo introducido
en el n'ucleo aun tendr'a errores o estar'a incompleto. Se acepta que es m'as importante lanzar el c'odigo
cuanto antes para que los usuarios lo puedan probar.  Por ejemplo, el emulador WINE (emulador
de Microsoft Windows para Linux) tiene una versi'on alfa "oficial" mientras la prueban los usuarios.
En este sentido, la comunidad de Linux tiene derecho a trabajar con este c'odigo, probarlo y ayudar
a su desarrollo. Los UNIX comerciales, raramente siguen esta pol'itica.

    Si ha sido administrador de UNIX durante m'as de diez a"nos, y ha usado diferentes sistemas
comerciales, ver'a que este sistema es muy moderno y din'amico. Se crea un nuevo n'ucleo cada dos
meses aproximadamente.  Se lanza nuevo software permanentemente.  Un d'ia puede creer que su
sistema est'a a la 'ultima, y al d'ia siguiente creer que est'a en la Edad de Piedra.

    Con toda esta actividad din'amica, >c'omo puede mantenerse al d'ia? La mayor parte de las veces,
es mejor actualizarse el software de manera incremental; o sea, actualizar aquellas partes del sistema
que necesita actualizar. Por ejemplo, si nunca va a usar Emacs, no hay motivo para que se actualice
continuamente ese programa.  Incluso siendo usuario de Emacs, no hay necesidad de actualizarlo
cada vez, a menos que haya alguna caracter'istica nueva que le interese.  No hay raz'on para estar
siempre cambi'andose las versiones del software.

    Esperamos que Linux satisfaga sus expectativas de un sistema UNIX. El coraz'on de Linux alberga
el esp'iritu del software gratuito y el desarrollo constante.  La comunidad de Linux favorece su
expansi'on, y es dif'icil creer en su fiabilidad, especialmente cuando se procede del UNIX comercial.
Tampoco puede esperarse que Linux sea perfecto, ya que no lo es ning'un otro software. Sin embargo,
creemos que Linux es tan 'util y completo como cualquier otra implementaci'on de UNIX.

1.7      Diferencias Entre Linux y Otros Sistemas Operativos



Es importante entender las diferencias entre Linux y otros sistemas operativos, tales como MS-DOS,
OS/2, y otras implementaciones de UNIX para ordenador personal. Antes de nada, conviene aclarar
_________________________________________
  12N. del T.: al igual que el que lo traduce
______________________________________________________________________________________________________1.7.  D*
 *iferencias Entre Linux y Otros Sis@


que Linux puede convivir felizmente con otros sistemas operativos en la misma m'aquina: es decir,
Ud.  puede correr MS-DOS y OS/2 en compa"n'ia de Linux sobre el mismo sistema sin problemas.
Hay incluso formas de interactuar entre los diversos sistemas operativos como veremos.
1.7.1    >Por qu'e usar Linux?


>Por qu'e usar Linux en lugar de un sistema operativo comercial conocido, bien probado, y bien docu-
mentado? Podr'iamos darle miles de razones. Una de las m'as importantes es, sin embargo, que Linux
es una excelente elecci'on para trabajar con UNIX a nivel personal.  Si Ud.  es un desarrollador de
software UNIX, >por qu'e usar MS-DOS en casa? Linux le permitir'a desarrollar y probar el software
UNIX en su PC, incluyendo aplicaciones de bases de datos y X Window.  Si es Ud.  estudiante, la
oportunidad est'a en que los sistemas de su universidad correr'an UNIX. Con Linux, podr'a correr su
propio sistema UNIX y adaptarlo a sus necesidades. La instalaci'on y uso de Linux es tambi'en una
excelente manera de aprender UNIX si no tiene acceso a otras m'aquinas UNIX.

   Pero no perdamos la vista. Linux no es solo para los usuarios personales de UNIX. Es robusto y
suficientemente completo para manejar grandes tareas, asi como necesidades de c'omputo distribui-
das. Muchos negocios_especialmente los peque"nos_se est'an cambiando a Linux en lugar de otros
entornos de estaci'on de trabajo basados en UNIX. Las universidades encuentran a Linux perfecto
para dar cursos de dise"no de sistemas operativos. Grandes vendedores de software comercial se est'an
dando cuenta de las oportunidades que puede brindar un sistema operativo gratuito.

   Las siguientes secciones deber'ian destacar las diferencias m'as importantes entre Linux y otros
sistemas operativos. Esperamos que encuentre que Linux puede cubrir sus necesidades, o (al menos)
mejorar su entorno actual de trabajo.  Tenga en mente que la mejor manera de saborear Linux es
simplemente probandolo_ni siquiera necesita instalar un sistema completo para tener una muestra
de 'el. En el Cap'itulo 2, le mostramos como.
1.7.2    Linux vs.  MS-DOS


No es raro tener ambos, Linux y MS-DOS, en el mismo sistema. Muchos usuarios de Linux confian en
MS-DOS para aplicaciones tales como procesadores de texto. Aunque Linux proporciona sus propios
an'alogos para estas aplicaciones (por ejemplo, TEX), existen varias razones por las que un usuario
concreto desear'ia correr tanto MS-DOS como Linux. Si toda su tesis est'a escrita en WordPerfect13
para MS-DOS, puede no ser capaz de convertirla f'acilmente a TEX o alg'un otro formato. Hay muchas
aplicaciones comerciales para MS-DOS que no est'an disponibles para Linux, y no hay ninguna raz'on
por la que no pueda usar ambos.

   Como puede saber, MS-DOS no utiliza completamente la funcionalidad de los procesadores 80386
y 80486. Por otro lado, Linux corre completamente en el modo protegido del procesador y explota
todas las caracter'isticas del 'este. Puede acceder directamente a toda su memoria disponible (e incluso
m'as all'a de la disponible, usando RAM virtual).  Linux proporciona un interface UNIX completo
no disponible bajo MS-DOS_el desarrollo y adaptaci'on de aplicaciones UNIX bajo Linux es cosa
_________________________________________
  13N. del T.: El ejemplo del autor se ha quedado obsoleto: Ya existe un WordPerfect 6.1 nativo para Linux
______________________________________________________________________________________________________22     *
 *                                           @


f'acil, mientras que, bajo MS-DOS, Ud. est'a limitado a un peque"no subgrupo de la funcionalidad de
programaci'on UNIX. Al ser Linux un verdadero sistema UNIX, Ud. no tendr'a estas limitaciones.

    Podr'iamos debatir los pros y contras de MS-DOS y Linux durante p'aginas y p'aginas. Sin embargo,
baste decir que Linux y MS-DOS son entidades completamente diferentes.  MS-DOS no es caro
(comparado con otros sistemas operativos comerciales), y tiene un fuerte asentamiento en el mundo
de los PC's. Ning'un otro sistema operativo para PC ha conseguido el nivel de popularidad de MS-
DOS_b'asicamente porque el coste de esos otros sistemas operativos es inaccesible para la mayor'ia
de los usuarios de PC's. Muy pocos usuarios de PC pueden imaginar gastarse 100000 ptas. o m'as
solamente en el sistema operativo.  Linux, sin embargo, es gratis, y por fin tiene la oportunidad de
decidirse.

    Le permitiremos emitir sus propios juicios de Linux y MS-DOS basados en sus expectativas y
necesidades. Linux no est'a destinado a todo el mundo. Si siempre ha querido tener un sistema UNIX
completo en casa, si es alto el coste de otras implementaciones UNIX para PC, Linux puede ser lo
que estaba buscando.

    Se dispone de herramientas que permiten interactuar entre Linux y MS-DOS. Por ejemplo, es
f'acil acceder a los ficheros MS-DOS desde Linux. Tambi'en hay disponible un emulador de MS-DOS,
que permite ejecutar muchas aplicaciones populares de MS-DOS. Actualmente se est'a desarrollando
un emulador de Microsoft Windows.
1.7.3     Linux vs.  Otros Sistemas Operativos


Est'an surgiendo un gran n'umero de sistemas operativos avanzados en el mundo del PC. Concreta-
mente, OS/2 de IBM y Windows NT de Microsoft comienzan a tener popularidad a medida que los
usuarios de MS-DOS migran a ellos.

    Ambos, OS/2 y Windows NT son sistemas operativos completamente multitarea, muy parecidos
a Linux. T'ecnicamente, OS/2, Windows NT y Linux son bastante similares: Soportan aproximada-
mente las mismas caracter'isticas en t'erminos de interfaz de usuario, redes, seguridad, y dem'as. Sin
embargo, la diferencia real entre Linux y los otros es el hecho de que Linux es una versi'on de UNIX,
y por ello se beneficia de las contribuciones de la comunidad UNIX en pleno.

    >Qu'e hace a UNIX tan importante? No solo es el sistema operativo m'as popular para m'aquinas
multiusuario, tambi'en es la base de la mayor'ia del mundo del software de libre distribuci'on. Si tiene
acceso a Internet, casi todo el software de libre distribuci'on disponible est'a espec'ificamente escrito
para sistemas UNIX. (Internet en si est'a profundamente basada en UNIX.)

    Hay muchas implementaciones de UNIX, de muchos vendedores, y ni una sola organizaci'on es
responsable de su distribuci'on. Hay un gran pulso en la comunidad UNIX por la estandarizaci'on en
forma de sistemas abiertos, pero ninguna corporaci'on controla este dise"no. Por eso, ning'un vendedor
(o, como parece, ning'un hacker) puede adoptarar estos estandars en una implementaci'on de UNIX.

    Por otro lado, OS/2 y Windows NT son sistemas propietarios.  El interface y dise"no est'an
controlados por una sola corporaci'on, y solo esa coproraci'on puede implementar ese dise"no.  (No
espere encontrar una versi'on gratis de OS/2 en un futuro cercano.)  De alguna forma, este tipo de
organizaci'on es beneficiosa:  establece un est'andar estricto para la programaci'on y el interfaz de
______________________________________________________________________________________________________1.7.  D*
 *iferencias Entre Linux y Otros Sis@


usuario distinto al encontrado incluso en la comunidad de sistemas abiertos.  OS/2 es OS/2 vaya
donde vaya_lo mismo ocurre con Windows NT.

   Sin embargo, el interface UNIX est'a constantemente desarrollandose y cambiando.  Varias or-
ganizaciones est'an intentando estandarizar el modelo de programaci'on, pero la tarea es muy dif'icil.
Linux, en particular, es en su mayor'ia compatible con el estandar POSIX.1 para el interface de pro-
gramaci'on UNIX. A medida que pase el tiempo, se espera que el sistema se adhiera a otros estandars,
pero la estandarizaci'on no es la etapa primaria en la comunidad de desarrollo de Linux.
1.7.4    Otras implementaciones de UNIX


Hay otras implementaciones de UNIX para el 80386 y 80486.  La arquitectura 80386 se presta al
dise"no de UNIX y buen un n'umero de vendedores han sacado ventaja de este factor.

   Hablando de caracter'isticas, otras implementaciones de UNIX para PC son bastante similares
a Linux.  Podr'a ver que casi todas las versiones comerciales de UNIX soportan basicamente el
mismo software, entorno de programaci'on, y caracter'isticas de red. Sin embargo, hay algunas fuertes
diferencias entre Linux y las versiones comerciales de UNIX.

   En primer lugar, Linux soporta un rango de hardware diferente de las implementaciones comer-
ciales.  En general, Linux soporta la mayor'ia de dispositivos hardware conocidos, pero el soporte
est'a aun limitado a ese hardware al que los desarrolladores tengan acceso actualmente. Sin embargo,
los vendedores de UNIX comercial por lo general tienen una base de soporte m'as amplia, y tienden
a soportar m'as hardware, aunque Linux no esta tan lejos de ellos.  Cubriremos los requerimientos
hardware de Linux en la Secci'on 1.8.

   En segundo, las implementaciones comerciales de UNIX suelen venir acompa"nadas de un conjunto
completo de documentaci'on, as'i como soporte de usuario por parte del vendedor.  Por contra, la
mayor'ia de documentaci'on para Linux se limita a documentos disponibles en Internet_y libros
como este. En la Secci'on 1.9 se listan fuentes de documentaci'on de Linux y otra informaci'on.

   En lo que concierne a estabilidad y robustez, muchos usuarios han comentado que Linux es al
menos tan estable como los sistemas UNIX comerciales.  Linux est'a aun en desarrollo, y algunas
caracter'isticas (como redes TCP/IP) son menos estables, pero mejora a medida que pasa el tiempo.

   El factor m'as importante a considerar por muchos usuarios es el precio. El software de Linux es
gratis, si tiene accesso a Internet (o a otra red de ordenadores) y puede traerselo. Si no tiene acceso a
tales redes, tiene la opci'on de comprarlo pidi'endolo por correo en disquetes, cinta o CD-ROM (vea el
Ap'endice B).  Por supuesto, Ud. puede copiarse Linux de un amigo que puede tener ya el software,
o compartir el coste de comprarlo con alguien m'as. Si planea instalar Linux en un gran n'umero de
m'aquinas, solo necesita comprar una copia del software_Linux no se distribuye con licencia para
"una sola m'aquina".

   El valor de las implementaciones comerciales de UNIX no deber'ia ser rebajado: conjuntamente
con el precio del software en si, uno paga generalmente por la documentaci'on, el soporte, y un label
de calidad.  Estos factores son muy importantes para grandes instituciones, pero los usuarios de
ordenadores personales pueden no necesitar esos beneficios.  En cualquier caso, muchos negocios y
universidades encuentran que correr Linux en un laboratorio con ordenadores baratos es preferible
______________________________________________________________________________________________________24     *
 *                                           @


a correr una versi'on comercial de UNIX en un laboratorio de estaciones de trabajo. Linux es capaz
de proporcionar la funcionalidad de una estaci'on de trabajo sobre hardware de PC a una fracci'on de
su coste.

    Como un ejemplo del "mundo real" sobre el uso de Linux dentro de la comunidad inform'atica,
los sistemas Linux han viajado hasta los grandes mares del Pac'ifico Norte, encargandose de las
telecomunicaciones y analisis de datos para en un buque de investigaci'on oceanogr'afica. Los sistemas
Linux se est'an usando en estaciones de investigaci'on en la Ant'artida. Como ejemplo m'as mundano,
quiz'a, varios hospitales est'an usando Linux para mantener registros de pacientes. Est'a probando ser
tan fiable y 'util como otras implementaciones de UNIX.

    Hay otras implementaciones gratuitas o baratas de UNIX para el 386 y 486.  Una de las m'as
conocidas es 386BSD, una implementaci'on y adaptaci'on del UNIX BSD para el 386.  386BSD es
comparable a Linux en muchos aspectos, pero cual de ellos es "mejor" depende de las necesidades
y espectativas personales. La 'unica distinci'on fuerte que se puede hacer es que Linux se desarrolla
abiertamente (donde cualquier voluntario puede colaborar en el proceso de desarrollo), mientras
386BSD se desarrolla dentro de un equipo cerrado de programadores que mantienen el sistema.
Debido a esto, existen diferencias filos'oficas y de dise"no serias entre los dos proyectos. Los objetivos
de los dos proyectos son completamente distintos: el objetivo de Linux es desarrollar un sistema UNIX
completo desde el desconocimiento (y divertirse mucho en el proceso), y el objetivo de 386BSD es
en parte modificar el c'odigo de BSD existente para usarlo en el 386.

    NetBSD es otra adaptaci'on de la distribuci'on NET/2 de BSD a un n'umero de m'aquinas, incluy-
endo el 386. NetBSD tiene una estructura de desarrollo ligeramente m'as abierta, y es comparable al
386BSD en muchos aspectos.

    Otro proyecto conocido es HURD, un esfuerzo de la Free Software Foundation (Fundaci'on de
Software gratuito) para desarrollar y distribuir una versi'on gratis de UNIX para muchas plataformas.
Contacte con la Free Software Foundation (la direcci'on se da en el Ap'endice F) para obtener m'as
informaci'on sobre este proyecto.  Al tiempo de escribir este documento, HURD aun est'a en los
primeros pasos de su desarrollo.

    Tambi'en existen otras versiones baratas de UNIX, tales como Coherent (disponible por cerca de
$99) y Minix (un cl'onico de UNIX acad'emico, pero 'util, en el que se basaron los primeros pasos del
desarrollo de Linux). Algunas de estas implementaciones son de inter'es en mayor parte acad'emico,
mientras otras son sistemas ya maduros para productividad real. No hace falta decir, sin embargo,
que muchos usuarios de UNIX de PC se est'an pasando a Linux.

1.8      Requerimientos de Hardware



Ahora debe estar convencido de lo maravilloso que es Linux y de las estupendas cosas que puede
hacer por usted. Sin embargo, antes de que se precipite e instale el software, tiene que asegurarse de
los requerimientos y limitaciones de hardware de Linux.

    Tenga en cuenta que Linux fue desarrollado por sus usuarios. Esto siginifica, en la mayor'ia de las
ocasiones, que el hardware soportado por Linux es 'unicamente aqu'el al que usuarios y desarrolladores
tienen realmente acceso. Seg'un van apareciendo, se van soportando la mayor parte del hardware y
______________________________________________________________________________________________________1.8.  R*
 *equerimientos de Hardware         @


los perif'ericos populares para sistemas 80386/80486 (de hecho, Linux soporta m'as hardware que
algunas implementaciones comerciales de UNIX). Sin embargo, a'un no son reconocidos algunos de
los perif'ericos m'as oscuros y esot'ericos.  Seg'un pasa el tiempo aumenta el hardware soportado por
Linux, de manera que si sus perif'ericos favoritos no est'an aqu'i listados, hay gran probabilidad de
que sean soportados pr'oximamente.

   Otro inconveniente en el soporte de hardware bajo Linux es que muchas compa"n'ias han decidido
conservar las especificaciones del interfaz de su hardware como propietario. Como consecuencia de
'esto, los desarrolladores voluntarios de Linux simplemente no pueden escribir controladores (drivers)
para esos perif'ericos (y si pudieran, tales controladores ser'ian propiedad de la compa"n'ia due"na del
interfaz, lo cual violar'ia el GPL). Las compa"n'ias que mantienen interfaces propietarios, escriben
sus propios controladores para sistemas operativos como MS-DOS y Microsoft Windows; el usuario
final (es decir, usted) no necesita saber nada del interfaz.  Desafortunadamente, esto impide a los
desarrolladores de Linux escribir controladores para esos perif'ericos.

   Hay muy poco que hacer en esta tesitura.  En algunos casos, los programadores han intentado
escribir controladores "cloneados" bas'andose en asumciones acerca del interfaz. En otras ocasiones,
los desarrolladores trabajar'an con la compa"n'ia en cuesti'on e intentar'an obtener informaci'on del
interfaz del perif'erico con un nivel de 'exito que puede variar.

   En las siguientes secciones, trataremos de resumir los requerimientos hardware para Linux.  El
documento Hardware HOWTO  (ver Secci'on 1.9) contiene un listado m'as completo del hardware
soportado por Linux.

   Aclaraci'on: un buen tratado acerca del hardware soportado por Linux, est'a actualmente en fase
de desarrollo. Algunas distribuciones puede que soporten, o no, estas caracter'isticas experimentales.
Esta secci'on lista en primer lugar el hardware que ya lleva cierto tiempo soportado y del que se
sabe de su estabilidad. En caso de duda, consulte la documentaci'on de la distribuci'on de Linux que
est'a usando (ver Secci'on 2.1 para m'as informaci'on acerca de las distribuciones de Linux).
1.8.1    Requisitos de Placa Base y de CPU


Actualmente Linux soporta sistemas con una CPU Intel14 80386, 80486, o Pentium.  Esto incluye
todas las variantes del tipo de CPU, como el 386SX, 486SX, 486DX, y 486DX2. Los "cl'onicos" no
Intel, como AMD y Cyrix tambi'en funcionan con Linux.

   Si tiene un 80386 o 80486SX, puede que tambi'en quiera aprovechar el coprocesador matem'atico,
si bien no es imprescindible (el n'ucleo de Linux puede emular el coprocesador si no cuenta con uno).
Est'an soportados todos los copros est'andar, tales como los IIT, Cyrix FasMath, e Intel.

   La placa base debe ser de arquitectura ISA o EISA en cuanto a bus se refiere.  Estos t'erminos
definen c'omo interact'ua el sistema con los perif'ericos y otros componentes por medio del bus princip-
al. La mayor'ia de los sistemas vendidos hoy son de bus ISA o EISA. El bus MicroChannel (MCA),
que se encuentra en m'aquinas como los IBM/PS2 no est'a soportado actualmente.

   Los sistemas que usan arquitectura de bus local (para accesos m'as r'apidos en v'ideo y disco)
tambi'en est'an soportados. Es recomendable que tenga una arquitectura de bus local est'andar como
_________________________________________
  14N. del T.: Linux ya soporta, en la actualidad a otras arquitecturas tales como ALPHA, Amiga, PowerPc, etc.
______________________________________________________________________________________________________26     *
 *                                           @


pueda ser el Bus Local VESA15("VLB").
1.8.2     Requisitos de memoria


Linux, comparado con otros sistemas operativos avanzados, necesita muy poca memoria para funcion-
ar . Deber'ia contar con un m'inimo de 2 megabytes de RAM; sin embargo, es altamente recomendable
tener 4 megabytes. Cuanta m'as memoria tenga m'as r'apido ir'a su sistema.

    Linux soporta el rango completo de direcciones de 32-bits de los 386/486; es decir, utilizar'a toda la
memoria RAM de forma autom'atica, y se apa"nar'a sin problemas con tan s'olo 4 megabytes de RAM,
incluyendo aplicaciones "pedig"ue"nas" como X-Window, Emacs, y dem'as. Sin embargo, disponer de
m'as memoria es casi tan importante como tener un procesador m'as r'apido. 8 megabytes es m'as que
suficiente para uso personal; 16 megabytes o m'as pueden ser necesarios si espera una fuerte carga
de usuarios en el sistema.

    La mayor'ia de los usuarios de Linux, reservan una parte del disco duro para espacio de intercambio
("swapping") que se usa como RAM virtual. Incluso si dispone de bastante memoria RAM f'isica en
su m'aquina, puede que quiera utilizar un 'area de "swap" . El 'area de "swap" no puede reemplazar
a una memoria f'isica RAM real, pero puede permitir a su sistema ejecutar aplicaciones m'as grandes
guardando en disco duro aquellas partes de c'odigo que est'an inactivas.  La cantidad de espacio de
intercambio a reservar depende de diversos factores; volveremos a esta cuesti'on en la Secci'on 2.2.3.
1.8.3     Requisitos de la controladora de disco duro


No necesita un disco duro para ejecutar Linux; puede ejecutar un sistema m'inimo completamente
desde disquete. Sin embargo, resulta lento y muy limitado, y de todas formas, muchos usuarios tienen
acceso a almacenamiento en disco duro. Debe tener una controladora AT-est'andar (16-bit). El n'ucleo
soporta controladoras XT-est'andar (8 bit); aunque la mayor'ia de las controladoras usadas hoy son
AT-est'andar. Linux deber'ia soportar todas las controladoras MFM, RLL, e IDE. La mayor'ia, pero
no todas, las controladoras ESDI est'an soportadas_s'olo aquellas que hacen emulaci'on hardware de
la ST506.

    La regla general para controladoras que no sean SCSI, es que si puede acceder a las unidades
(disco y/o disquete) desde MS-DOS u otro sistema operativo, deber'ia poder hacerlo desde Linux.

    Linux tambi'en soporta un n'umero de controladoras de disco SCSI, si bien el soporte para SC-
SI es m'as limitado a causa de la gran cantidad de estandars que existen para el interfaz de las
controladoras. Las controladoras SCSI soportadas16 incluyen las Adaptec AHA1542B, AHA1542C,
AHA1742A (versi'on de BIOS 1.34), AHA1522, AHA1740, AHA1740 (controladora SCSI-2, BIOS
1.34 en modo mejorado); Future Domain 1680, TMC-850, TMC-950; Seagate ST-02; UltraStor SC-
SI; Western Digital WD7000FASST. Las controladoras cl'onicas basadas en estas tarjetas tambi'en
deber'ian funcionar.
_________________________________________
  15N. del T.: PCI tambi'en est'a soportado
  16N. del T.: Ver la secci'on 1.9 sobre como conseguir el fichero Hardware HOWTO que contendr'a una lista m'*
 *as
actualizada y completa
______________________________________________________________________________________________________1.8.  R*
 *equerimientos de Hardware         @


1.8.4    Requisitos de espacio en disco



Efectivamente, para instalar Linux, necesitar'a tener algo de espacio libre en su disco duro.  Linux
soporta m'ultiples discos duros en la misma m'aquina;  puede disponer de espacio para Linux en
m'ultiples unidades si es necesario.

   La cantidad de espacio en disco duro que necesitar'a depende en gran medida de sus necesidades
y de la cantidad de software que va a instalar.  Linux es relativamente peque"no en relaci'on a las
implementaciones de UNIX; usted podr'ia correr un sistema completo con 10-20 megabytes de espacio
en disco. Sin embargo, si quiere disponer de espacio para expansiones, y para paquetes m'as grandes
como X Window, necesitar'a m'as espacio. Si planea permitir a m'ultiples usuarios utilizar la m'aquina,
tendr'a que dejar espacio para sus ficheros.

   Tambi'en, a menos que tenga un mont'on de memoria RAM f'isica (16 megabytes o m'as), necesit-
ar'a crear espacio de intercambio ("swap"), para ser usado como RAM virtual. Comentaremos todos
estos detalles acerca de la instalaci'on y uso del espacio de intercambio en la Secci'on 2.2.3.

   Cada distribuci'on de Linux normalmente viene con alg'un que otro texto que deber'ia ayudarle a
estimar la cantidad precisa de espacio a reservar en funci'on del software que planee instalar. Puede
ejecutar un sistema m'inimo con menos de 20 megabytes; un sistema completo con toda la parafernalia
en 80 megabytes o menos; y un sistema grande con sitio para muchos usuarios y espacio para futuras
expansiones en un rango de 100-150 megabytes. De nuevo, estas cifras son meramente orientativas;
usted tendr'a que decidir, seg'un sus necesidades y objetivos, los requerimientos espec'ificos de alma-
cenamiento para su sistema.

1.8.5    Requisitos de monitor y adaptador de v'ideo



Linux soporta todas las tarjetas de v'ideo est'andar Hercules, CGA, EGA, VGA, IBM monocromo,
y Super VGA as'i como monitores para el interfaz por defecto basado en texto.  En general, si la
combinaci'on que tiene de monitor y tarjeta de v'ideo funcionan bajo otro sistema operativo como
MS-DOS, deber'ia funcionar perfectamente con Linux.  La genu'inas tarjetas CGA de IBM sufren el
(d)efecto nieve ("snow") bajo Linux, por lo que no es muy recomendable su uso.

   Los entornos gr'aficos como el Sistema X Window tienen requerimientos propios de hardware para
la tarjeta de v'ideo.  En vez de listar estos requerimientos aqu'i, los trataremos en la Secci'on 5.1.1.
De forma breve, para ejecutar el Sistema X Window en su m'aquina Linux, necesitar'a alguna de las
tarjetas de v'ideo listadas en esa secci'on.

1.8.6    Hardware diverso



Las secciones de arriba describ'ian qu'e hardware es necesario para correr un sistema Linux.  Sin
embargo, la mayor'ia de los usuarios tienen cierto n'umero de dispositivos "opcionales" como alma-
cenamiento en cintas y CD-ROM, tarjetas de sonido y dem'as, y est'an interesados en saber si este
hardware est'a, o no es, soportado por Linux. Siga leyendo.
______________________________________________________________________________________________________28     *
 *                                           @


1.8.6.1    Ratones y otros dispositivos apuntadores


Normalmente usted s'olo usar'a un rat'on bajo un entorno gr'afico como el Sistema X Window.  Sin
embargo, algunas aplicaciones Linux no asociadas con un entorno gr'afico, hacen uso del rat'on.

    Linux soporta todos los ratones serie est'andar, incluyendo Logitech, MM series, Mouseman, Mi-
crosoft (2-button) y Mouse Systems (3-botones). Linux tambi'en soporta los ratones de bus Microsoft,
Logitech, y ATIXL. El interfaz de rat'on de PS/2 tambi'en es soportado.

    Todos los dem'as dispositivos apuntadores, como los "trackball" que emulen a los dispositivos de
arriba, tambi'en deber'ian funcionar.



1.8.6.2    Almacenamiento en CD-ROM


Casi todas las unidades de CD-ROM usan el interfaz SCSI17. Siempre y cuando tenga un adaptador
SCSI soportado por Linux, su unidad de CD-ROM deber'ia funcionar. Hay un n'umero de unidades de
CD-ROM que se ha comprobado funcionan bajo Linux, incluyendo el NEC CDR-74, Sony CDU-541,
y Texel DM-3024. Las unidades internas Sony CDU-31a y Mistsumi tambi'en est'an soportadas por
Linux.

    Linux soporta el sistema de ficheros est'andar para CD-ROMs ISO-9660.



1.8.6.3    Unidades de cinta


Hay varios tipos de unidades de cinta disponibles en el mercado. La mayor'ia usan el interfaz SCSI,
por lo que estar'ian soportadas por Linux.  Entre las unidades de cinta SCSI verificadas est'an la
Sankyo CP150SE; Tandberg 3600; Wangtek 5525ES, 5150ES, y 5099EN con el adaptador PC36.
Otras unidades QIC-02 deber'ian estar soportadas tambi'en.

    Existen controladores en fase de desarrollo para varios otros dispositivos de cinta como las unid-
ades Colorado que se conectan a la controladora de disquetes.



1.8.6.4    Impresoras


Linux soporta todas las impresoras paralelo. Si puede acceder a su impresora por el puerto paralelo
desde MS-DOS, u otro sistema operativo, deber'ia poder acceder a 'el desde Linux tambi'en. El software
de impresi'on de Linux consiste en el software est'andar de UNIX lp y lpr. Este software tambi'en le
permite imprimir remotamente a trav'es de la red, si es que tiene una disponible.



1.8.6.5    Modems


Igual que para las impresoras, Linux soporta toda la gama de modems serie, tanto internos como
externos. Hay una gran cantidad de software de telecomunicaciones disponible para Linux, incluyendo
_________________________________________17
    N. del T.: El parque de CD ROMs ha cambiado de forma asombrosa en los 'ultimos meses. Sirva decir que Lin*
 *ux
soporta, adem'as de las citadas en el p'arrafo, los nuevos est'andares ATAPI para CD ROMs conectables a contr*
 *oladoras
IDE
______________________________________________________________________________________________________1.9.  F*
 *uentes de informaci'on sobre Linux@


Kermit, pcomm, minicom, Seyon. Si su modem es accesible desde otro sistema operativo en la misma
m'aquina, deber'ia poder acceder a 'el sin dificultad desde Linux.
1.8.7    Tarjetas Ethernet


Linux soporta un buen n'umero de tarjetas Ethernet y adaptadores para LAN18. Esto incluye los
siguientes:


   o  3com 3c503, 3c503/16


   o  Novell NE1000, NE2000


   o  Western Digital WD8003, WD8013


   o  Hewlett Packard HP27245, HP27247, HP27250


   o  D-Link DE-600


Los siguientes cl'onicos se ha informado que funcionan:


   o  LANNET LEC-45


   o  Alta Combo


   o  Artisoft LANtastic AE-2


   o  Asante Etherpak 2001/2003,


   o  D-Link Ethernet II


   o  LTC E-NET/16 P/N 8300-200-002


   o  Network Solutions HE-203,


   o  SVEC 4 Dimension Ethernet


   o  4-Dimension FD0490 EtherBoard 16


Aquellas tarjetas cl'onicas compatibles con cualquiera de las tarjetas anteriores tambi'en deber'ia fun-
cionar.

1.9     Fuentes de informaci'on sobre Linux



Como podr'a imaginar, adem'as de este libro, hay muchas otras fuentes de informaci'on sobre Linux.
Concretamente, hay numerosos libros sobre UNIX en general, que recomendamos a aquellos lectores
que no tengan experiencia previa con UNIX. Si somos nuevos en UNIX, lo m'as indicado es leer uno
_________________________________________
  18N. del T.: Algunas tarjetas token-ring ya est'an soportadas
______________________________________________________________________________________________________30     *
 *                                           @


de estos libros antes de meternos en la "peligrosa selva" de Linux. Un buen comienzo puede ser el
libro Learning the UNIX Operating System, de Grace Todino y John Strang.

    Casi todas las fuentes de informaci'on sobre Linux est'an disponibles principalmente de forma
electr'onica.  Esto es, deber'a tener acceso a una red, como Internet, USENET o Fidonet, con el fin
de obtener la documentaci'on.  Si no tiene acceso a ninguna red, siempre puede encontrar la forma
de obtener copias impresas en disquetes o CDROM de los libros.

1.9.1     Documentaci'on On-Line



Si tiene acceso a Internet, encontrar'a variada documentaci'on en muchos servidores de FTP del
mundo. Si no tiene acceso directo a Internet, aun puede obtener los documentos: muchos distribuid-
ores de Linux en CDROM incluyen toda o casi toda la documentaci'on existente en la red. Adem'as,
se suelen distribuir por redes diferentes como Fidonet o Compuserve. Y si tiene acceso 'unicamente
al correo en Internet, puede obtener ficheros de servidores FTP sin m'as que usar un servidor de
ftpmail. Vea el ap'endice C para m'as informaci'on.

    Hay gran cantidad de servidores FTP que distribuyen software y documentaci'on de Linux.  En
el ap'endice C encontrar'a una lista con servidores conocidos. Con el fin de reducir el tr'afico de red,
deber'ia utilizar el servidor que le quede m'as cercano19 geogr'aficamente.

    El ap'endice A incluye una lista de algunos de los documentos sobre Linux que se encuentran
disponibles por FTP an'onimo. Los nombres de los ficheros pueden no ser los mismos en todos los
servidores, pero suelen estar en el directorio docs dentro del directorio que dediquen a Linux. Por
ejemplo, en sunsite.unc.edu los ficheros de Linux est'an en /pub/Linux y la documentaci'on en
/pub/Linux/docs.

    Algunos documentos que puede encontrar son las Linux FAQ, una colecci'on de FAQ sobre Linux;
los documentos HOWTO, dedicados a aspectos espec'ificos, como la instalaci'on inicial (Installation
HOWTO) o la configuraci'on de impresoras y spoolers (Printing HOWTO).

    Algunos documentos se env'ian regularmente a uno o m'as grupos USENET sobre Linux. No deje
de leer la secci'on 1.9.4 sobre el tema de las News.

1.9.2     Linux en el WWW



La p'agina inicial de la documentaci'on de Linux en el Web se encuentra en la direcci'on URL



      http://sunsite.unc.edu/mdw/linux.html



Desde esta p'agina puede accederse a los HOWTOs y otros documentos en formato HTML. Tambi'en
se encuentran enlaces a otros servidores de inter'es.
_________________________________________
  19N. del T.: Vea el ap'endice  E.1 para localizar una lista de ftps espa"noles
______________________________________________________________________________________________________1.9.  F*
 *uentes de informaci'on sobre Linux@


1.9.3    Libros y otras publicaciones


En este momento,  hay algunos trabajos publicados sobre Linux.  Principalmente,  los libros del
Proyecto de Documentaci'on de Linux (LDP), que se lleva a cabo mediante Internet para escribir y
distribuir una colecci'on de manuales para Linux. Estos manuales son an'alogos a los que se publican
junto con versiones comerciales de UNIX: tratan la instalaci'on y puesta en marcha, programaci'on,
trabajo en red, asuntos del n'ucleo y muchas cosas m'as.

   Los manuales del LDP se encuentran disponibles mediante FTP an'onimo en el Internet, as'i como
por correo a trav'es de algunos comercios. En el ap'endice A se enumeran los manuales disponibles y
c'omo conseguirlos.

   No hay muchos m'as libros que traten el tema particular de Linux.  Sin embargo, s'i que hay
numerosos libros sobre UNIX en general que normalmente son aplicables a Linux, como aquellos
sobre c'omo utilizar o programar sobre el sistema UNIX, ya que Linux no difiere mucho en su interfaz
con el usuario o programador.  En resumen, lo que quiera saber sobre el uso y programaci'on de
Linux lo encontrar'a en los libros sobre UNIX. Encontrar'a los nombres de algunos de estos libros en
el ap'endice A.

   Con los libros escritos para Linux y los que hay sobre UNIX se debe estar ya suficientemente
documentado como para hacer cualquier cosa sobre su sistema Linux.

   Tambi'en existe un magazine mensual sobre Linux, el Linux Journal.  Se distribuye por todo el
mundo y es una excelente manera de mantenerse al d'ia en este tema, sobre todo si no se tiene acceso
a USENET. En el ap'endice A encontrar'a informaci'on sobre c'omo suscribirse a esta publicaci'on.
1.9.4    Grupos de NEWS USENET


"USENET" es un foro mundial de art'iculos electr'onicos organizado en "grupos", o sea, 'areas de
discusiones relacionadas con cada tema concreto.  Buena parte del desarrollo de Linux ha sido a
trav'es de Internet y USENET, con lo que no es extra"no que existan bastantes grupos que traten el
tema.

   Inicialmente, el grupo sobre Linux era alt.os.linux, y se cre'o para tratar aqu'i las cuestiones
que sobre Linux abundaban ya en comp.os.minix y varias listas de correo.  El tr'afico en el grupo
de Linux fue creciendo lo suficiente como para permitirse el paso a la jerarqu'ia comp, en Febrero de
1992.

   comp.os.linux se ha convertido en un grupo de News muy conocido, m'as que cualquiera otro de
comp.os. En Diciembre del 92 se vot'o la creaci'on del grupo comp.os.linux.announce para reducir
el tr'afico de comp.os.linux. En Julio de 1993 se parti'o este grupo de forma definitiva en la jerarqu'ia
que hoy existe.

   Si no tiene acceso a USENET, pero s'i puede usar el correo electr'onico, existen pasarelas de correo
a News disponibles para cada uno de los grupos siguientes.



comp.os.linux.announce
                 comp.os.linux.announce es un grupo moderado, pensado para anuncios import-
______________________________________________________________________________________________________32     *
 *                                           @


                 antes respecto a Linux (como informes sobre errores detectados, lanzamiento de
                 parches, etc).  Si quiere leer grupos de Linux, empiece por 'este.  Los art'iculos que
                 aqu'i se publican no son reenviados a ning'un otro grupo normalmente.  En 'el se
                 pueden encontrar adem'as muchos art'iculos que se env'ian peri'odicamente, incluy-
                 endo documentos ya mencionados como los HOWTOs.

                 Los env'ios al grupo deben ser aceptados por los moderadores, Matt Welsh y Lars
                 Wirzenius. Si quiere enviar algo, normalmente basta con que lo ordene a su software
                 de News. Este software se ocupar'a de enviar el art'iculo a los moderadores para que
                 lo acepten.  Sin embargo, si su sistema no est'a correctamente configurado, puede
                 enviarlo directamente a la direcci'on de correo linux-announce@tc.cornell.edu.

                 Los restantes grupos sobre Linux no est'an moderados.


comp.os.linux.help
                 Es el grupo m'as popular.  Contiene preguntas y respuestas sobre la instalaci'on o
                 ejecuci'on de los sistemas Linux. Si tiene problemas con Linux, puede usar este grupo
                 y recibir'a respuesta de quien pueda ayudarle. Sin embargo, se recomienda que lea
                 antes la documentaci'on por si ah'i encuentra la ayuda necesaria.


comp.os.linux.admin
                 En este grupo se discuten temas relacionados con la administraci'on del sistema Linux
                 como entorno multiusuario. Aqu'i son bienvenidos los comentarios y preguntas sobre
                 software de empaquetado, de backups, o sobre la gesti'on de cuentas de usuarios.


comp.os.linux.development
                 En este grupo se discuten asuntos relacionados con el desarrollo en el n'ucleo de
                 Linux.  Por ejemplo, si est'a escribiendo un driver nuevo y necesita consejo sobre
                 alg'un aspecto, es aqu'i donde deber'a preguntar. Adem'as, es aqu'i donde se discuten
                 los objetivos en el desarrollo de Linux, tal y como se dice en la secci'on 1.6.

                 Debe observarse que este grupo no est'a pensado para tratar el desarrollo de software
                 para Linux, sino el desarrollo del propio Linux. Estos temas deben tratarse en otro
                 grupo.


comp.os.linux.misc
                 Aqu'i se mantienen debates que no encajen en los grupos anteriores. Concretamente,
                 las t'ipicas guerras "Linux vs.  Windows 95" o cualquier art'iculo de car'acter no
                 t'ecnico.



    El grupo comp.os.linux sigue existiendo, pero se recomienda usar los nuevos grupos. Si no tiene
acceso a ellos, hable con su administrador de las News.
1.9.5     Listas de correo en Internet


Si tiene acceso al correo electr'onico de Internet, puede aun participar en las listas de correo aunque
no tenga acceso a USENET. A estas listas de correo puede apuntarse incluso sin tener acceso alguno
______________________________________________________________________________________________________1.10.  *
 *C'omo obtener ayuda               @


a Internet, gracias a las pasarelas que ofrecen otros servicios, como UUCP, FidoNET o CompuServe.

   La lista de correo de "Activistas del Linux" 20est'a pensada principalmente para desarrolladores y
gente interesada en participar en el desarrollo. Es una lista "multicanal", en la que puede apuntarse
a uno o m'as "canales" seg'un los temas que le interesen. Entre estos canales se encuentran el NORMAL,
el KERNEL, el GCC (sobre el compilador de GNU), el NET o el DOC (sobre el tema de la documentaci'on
de Linux).

   Para m'as informaci'on sobre esta lista de correo, env'ie un mensaje a


      linux-activists@niksula.hut.fi


Recibir'a una lista de canales disponibles e informaci'on de c'omo apuntarse o borrarse de 'estos.

   Existen otras listas de correo de prop'osito especial. El mejor camino para encontrarlas es leer los
anuncios aparecidos en USENET, y la lista de "mailing-list" disponible peri'odicamente en el grupo
news.answers.

1.10      C'omo obtener ayuda



Indudablemente, necesitar'a cierta ayuda durante sus primeras aventuras en el mundo de Linux.
Aqu'i veremos algunas indicaciones sobre c'omo obtener esa ayuda.

   La forma m'as inmediata de buscar ayuda es mediante las listas de correo y grupos de USENET
que se mantienen en Internet, tal como explicamos en la secci'on 1.9. Si no tiene acceso a Internet,
puede encontrar ayuda en otros servicios on-line como los BBS's o Compuserve.

   Tambi'en hay ciertas empresas que han empezado a dar soporte comercial de Linux.  Esto le
permitir'a pedir ayuda a los t'ecnicos a cambio del pago de una cuota.  El ap'endice B contiene una
lista de comerciantes de Linux, alguno de los cuales ofrece soporte t'ecnico.  Sin embargo, si tiene
acceso a USENET y al correo de Internet, ver'a que puede obtener soporte t'ecnico de calidad y
gratuito.

   Lo que sigue son sugerencias que le hacemos para mejorar su experiencia con Linux y garantizarle
mayor probabilidad de 'exito para encontrar soluciones a los problemas que se le presenten.

   Consultar primero toda la documentaci'on disponible

   Lo primero que debe hacer cuando encuentre un problema es leerse la documentaci'on que se lista
en la secci'on 1.9 y el ap'endice A. Estos documentos fueron laboriosamente escritos para gente como
usted_gente que necesitaba ayuda sobre Linux. Los libros sobre Unix tambi'en se pueden usar para
resolver dudas de Linux.

   Frecuentemente, y por dif'icil que parezca, se encuentran respuestas a muchos problemas.

   Si se tiene acceso a las news de USENET o a listas de correo relacionadas con Linux, se debe
leer su contenido antes de poner una pregunta sobre sus problemas.  Muchas veces hay problemas
comunes que no se encuentran f'acilmente en los libros pero que tienen frecuente respuesta en los
_________________________________________
  20N. del T.: Linux Activists
______________________________________________________________________________________________________34     *
 *                                           @


grupos de USENET o similar. Enviar la pregunta a los grupos sin leerlos antes puede ser una p'erdida
de tiempo.

    Aprenda a apreciar las cosas hechas por uno mismo.

    En la mayor'ia de los casos se recomienda investigar por cuenta de uno mismo antes de pedir
ayuda al exterior. Recuerde que Linux no es un sistema comercial y puede hacer con 'el lo que quiera
(modificarlo, etc). Si aprende a hacerse las cosas por s'i mismo, su experiencia le permitir'a llegar a
ser, tal vez, uno de los famosos "gur'us" de Linux.

    Mantenga la calma.

    Hay que evitar la desesperaci'on a pesar de todos los problemas.  No se ha o'ido aun ninguna
historia de alguien que, en un ataque de ira, borrase todos sus discos de Linux con un fuerte im'an.
Los mismos autores se han desahogado a pu"netazos con almohadas o similares en arrebatos de este
tipo. Hay que esperar un poco a que las distribuciones de Linux se hagan m'as f'aciles aun de instalar,
aunque ya lo son m'as que casi cualquier otro Unix comercial.

    Evite poner preguntas en USENET demasiado pronto.

    Mucha gente comete el error de pedir ayuda en USENET demasiado pronto. Cuando encuentre
alg'un problema, no se vaya de inmediato al terminal m'as cercano (insistimos, no lo haga) para
escribir su duda en un grupo de News de Linux. Es mejor que intente antes resolverlo pues muchas
veces es debido al nerviosismo inicial y se puede caer en el error de preguntar cosas demasiado
triviales. Vamos, que si su PC no se enciende, mire antes a ver si est'a enchufado.

    Si escribe su pregunta en USENET, haga que merezca la pena.

    Finalmente, puede que se vea obligado a pedir ayuda a los foros dedicados a Linux, bien mediante
listas de correo o con USENET. Cuando redacte su pregunta, recuerde que la gente que va a leerla no
est'a ah'i para ayudarle. La Red no es un servicio post-venta. As'i pues, hay que redactar el art'iculo
de la forma m'as completa posible.

    >C'omo puede conseguir esto?  En primer lugar, debe incluir toda la informaci'on acerca de su
sistema y el problema que crea relevante.  Una escueta pregunta como "no puedo conseguir que el
correo electr'onico funcione" dif'icilmente ser'a contestada, a menos que incluya informaci'on acerca de
su sistema, qu'e software utiliza, qu'e ha intentado hacer para resolverlo y qu'e resultados ha obtenido.
Adem'as, suele ser interesante a"nadir informaci'on m'as general, como qu'e versi'on del sistema utiliza
(del n'ucleo y distribuci'on), as'i como un peque"no resumen de su hardware.  Pero tampoco exagere
incluyendo su tipo de monitor, por ejemplo, cuando su problema sea con el software de red.

    En segundo lugar, recuerde que necesita intentar resolver por su cuenta el problema antes de
recurrir a la Red.  Si, por ejemplo, nunca ha intentado instalarse el correo electr'onico, y pretende
que directamente le cuenten en la Red c'omo se hace, estar'a cometiendo un gran error. Hay muchos
documentos disponibles (vea la secci'on 1.9) acerca de c'omo iniciar la instalaci'on de paquetes de
aplicaci'on t'ipicos bajo Linux. La idea es hacer todo lo que pueda por s'i mismo y solo entonces pedir
ayuda si finalmente la necesita.

    Recuerde tambi'en que la gente que vea su mensaje, generalmente dispuesta a ayudarle, puede
hartarse de ver la misma pregunta una y otra vez.  Observe las preguntas y respuestas que existen
en el grupo de News actualmente, pues muchas veces la soluci'on a su problema ya est'a en la Red
______________________________________________________________________________________________________1.10.  *
 *C'omo obtener ayuda               @


antes de que lo pregunte.

   Por 'ultimo sea conciso, en la medida de lo posible, a la hora de redactar un art'iculo. Es mucho
m'as efectivo ser breve, directo e informativo al pedir ayuda. No olvide la educaci'on. Son frecuentes
las disputas en la Red sin venir demasiado a cuento.  La Red21 es un excelente medio para buscar
ayuda y para resolver sus problemas de Linux pero hay que saber utilizarla.



_________________________________________
  21N. del T.: La Red se refiere a Internet, como la red que engloba a todas las redes p'ublicas de datos
______________________________________________________________________________________________________36     *
 *                                           @




Cap'itulo  2



Obtenci'on  e  Instalaci'on  de  Linux



En este cap'itulo describiremos c'omo obtener el software de Linux, en forma de una de las distribu-
ciones ya preparadas, y c'omo instalar la distribuci'on que elija.

   Como hemos citado, no hay una 'unica distribuci'on "oficial" del software de Linux; hay, de hecho,
muchas distribuciones, cada una de las cuales sirve a un prop'osito particular y una serie de objetivos.
Estas distribuciones est'an disponibles por FTP an'onimo en Internet, en BBS de todo el mundo, y
por correo en disquete, cinta, y CD-ROM.

   Aqu'i presentamos una visi'on general del proceso de instalaci'on.  Cada distribuci'on tiene sus
propias instrucciones de instalaci'on espec'ificas, pero armado con los conceptos presentados aqu'i de-
ber'ia ser capaz de sentirse c'omodo frente a cualquier instalaci'on. El Ap'endice A lista las fuentes de
informaci'on de instrucciones de instalaci'on y otra ayuda, por si Ud. est'a completamente perdido.

   Este libro contiene secciones adicionales detallando la distribuci'on Slackware de Linux.

2.1     Distribuciones de Linux



Al ser Linux un software de libre distribuci'on, no hay ninguna organizaci'on o entidad responsable
de mantenerlo y distribuirlo.  Por tanto, cualquiera es libre de agrupar y distribuir el software, en
tanto en cuanto respete las restricciones de la GPL. El resultado final de 'esto es que existen muchas
distribuciones de Linux, disponibles a trav'es de FTP an'onimo o pidi'endolo por correo.

   Ud.  se encuentra ahora con la tarea de decidirse por una distribuci'on en particular de Linux
que se ajuste a sus necesidades.  No todas las distribuciones son iguales.  Muchas de ellas incluyen
pr'acticamente todo el software que Ud. necesitar'ia para poner en marcha un sistema completo_ y
algunas otras distribuciones son "peque"nas" distribuciones orientadas a usuarios sin copiosas can-
tidades de espacio en disco.  Muchas distribuciones solamente contienen lo esencial del software de
Linux, y se espera que Ud. instale por su propia cuenta paquetes de software m'as grandes, como el
Sistema X-Window.

   (En el Cap'itulo 4 le mostraremos c'omo.)


                                                 37
______________________________________________________________________________________________________38     *
 *                                        Cap@


    El Linux Distribution HOWTO (vea el Ap'endice A) contiene una lista de las distribuciones de
Linux disponibles a trav'es de Internet, as'i como por correo.  El Ap'endice B contiene una lista de
direcciones de contacto de un n'umero de vendedores de Linux por correo.  Si Ud.  compr'o este
libro impreso, el editor deber'ia poder proporcionarle una distribuci'on de Linux o decirle c'omo puede
conseguirla.

    >C'omo puede Ud.  decidirse entre todas estas distribuciones?  Si tiene acceso a las news de
USENET, u otro sistema de conferencias por ordenador, podr'ia preguntar all'i las opiniones personales
de la gente que haya instalado Linux. Incluso mejor, si conoce a alguien que haya instalado el Linux,
p'idale consejo y ayuda.  Hay muchos factores a considerar cuando se elije una distribuci'on, sin
embargo, las necesidades y opiniones de cada uno son diferentes.  En la actualidad, la mayor'ia de
las distribuciones populares de Linux contienen aproximadamente el mismo conjunto de software, de
forma que la elecci'on de una distribuci'on es m'as o menos arbitraria.

    Este libro contiene informaci'on sobre la instalaci'on de las distribuciones populares Slackware y
Slackware Pro de Linux.
2.1.1     Conseguir Linux desde Internet


Si Ud.  tiene acceso a Internet, el modo m'as f'acil de obtener Linux es a trav'es de FTP an'onimo.1
El ap'endice C contiene una lista con servidores de archivos por FTP que poseen software de Linux.
Uno de 'estos es sunsite.unc.edu, y puede encontrar varias distribuciones de Linux en el directorio:


      /pub/Linux/distributions


    Muchas distribuciones se crean en servidores de FTP an'onimo como un conjunto de im'agenes de
disco. Es decir, la distribuci'on consiste en un conjunto de ficheros, y cada fichero contiene la im'agen
binaria de un disquete. Para poder copiar el contenido de un fichero imagen en el disquete, se puede
usar el programa RAWRITE.EXE bajo MS-DOS. Este programa copia, bloque a bloque, el contenido
de un fichero a un disquete, sin preocuparse del formato del disco.2

    RAWRITE.EXE puede encontrarlo en varios servidores de FTP de Linux, como por ejemplo en uno
de los sistemas que mayor soporte brindan a Linux: sunsite.unc.edu en el directorio


      /pub/Linux/system/Install/rawwrite


    Por lo tanto, en muchos casos, simplemente puede transferirse el conjunto de im'agenes de disquete,
y usar RAWRITE.EXE con cada imagen de modo que cree un conjunto de disquettes. Arranque desde el
llamado "boot diskette" y ya estar'a dispuesto a comenzar. El software se suele instalar directamente
desde los disquetes, aunque algunas distribuciones le permiten instalarlo desde una partici'on MS-
DOS de su disco duro.  Algunas distribuciones le permiten instalar desde una red TCP/IP. La
_________________________________________1
    Si no tiene acceso directo a Internet, puede obtener Linux a trav'es del servicio ftpmail, siempre y cuan*
 *do tenga
capacidad de intercambiar correo con Internet. Lea el Ap'endice C para m'as detalle.
   2Si tiene acceso a una estaci'on de trabajo UNIX con una disquetera, tambi'en puede usar el comando dd par*
 *a copiar
el fichero imagen directamente al disquete. Un comando como "dd of=/dev/rfd0 if=foo bs=18k" har'a un "raw wri*
 *te"
de los contenidos del fichero foo a la disquetera en una estaci'on de trabajo SUN. Consulte con sus administr*
 *adores
de UNIX para mayor informaci'on sobre las disqueteras de su sistema y el uso del comando dd.
______________________________________________________________________________________________________2.1.  D*
 *istribuciones de Linux            @


documentaci'on de cada distribuci'on deber'ia describir estos m'etodos de instalaci'on si los tienen
disponibles.


   Otras distribuciones de Linux se instalan desde un conjunto de disquetes con formato MS-DOS.
Por ejemplo, la distribuci'on Slackware de Linux s'olo necesita que se creen los disquetes boot y root
usando RAWRITE.EXE. El resto de disquetes se copian a disquetes con formato MS-DOS usando el
comando MS-DOS COPY. El sistema instala el software directamente desde los disquetes MS-DOS.
Esto le ahorra el problema de tener que usar RAWRITE.EXE con muchos ficheros imagen, aunque, por
otro lado, requiere que Ud. tenga acceso a un sistema MS-DOS para instalar el sistema.


   Cada distribuci'on de Linux disponible en FTP an'onimo deber'ia incluir un fichero README de-
scribiendo c'omo transferir y preparar los disquetes para instalaci'on.  Aseg'urese de leer toda la
documentaci'on disponible para la versi'on que est'e usando.


   Cuando transfiera el software de Linux, aseg'urese de usar el modo binary para todas sus trans-
ferencias de ficheros ( con la mayor'ia de clientes FTP, el comando "binary" activa este modo).


   Lea la Secci'on 2.1.4, abajo, si necesita informaci'on sobre c'omo obtener la distribuci'on Slackware
desde Internet.

2.1.2    Conseguir Linux desde otras fuentes online



Si tiene acceso a otra red de ordenadores como Compuserve o Prodigy, puede haber medios de
transferir el software de Linux desde esas fuentes.  Adem'as, muchos sistemas BBS (Bulletin Board
System) tambi'en proporcionan el software de Linux.  Podr'a ver una lista de BBS de Linux en el
Ap'endice D. No todas las distribuciones de Linux est'an disponibles desde estas redes de ordenadores,
sin embargo_ muchas de ellas, en especial las diversas distribuciones en CD-ROM, s'olo pueden
obtenerse a trav'es de pedido por correo.

2.1.3    Conseguir Linux por correo



Si no tiene acceso a Internet o a una BBS, muchas distribuciones pueden conseguirse por correo
en disquete, cinta, o CD-ROM. El Ap'endice B lista un n'umero de estos distribuidores. Muchos de
ellos aceptan tarjetas de cr'edito, as'i como pedidos internacionales, de modo que, si no est'a Ud. en
Estados Unidos o Canad'a, aun deber'ia poder conseguir Linux de este modo.


   Linux es un software de libre distribuci'on, aunque a los distribuidores se les permite por la GPL
cargar una cantidad por ello. Por ello, pedir Linux por correo podr'ia costarle entre 30 y 150 d'olares
USA, dependiendo de la distribuci'on. Sin embargo, si Ud. conoce a alguien que ya haya comprado o
se haya transferido una versi'on de Linux, Ud. es libre de ped'irsela o copi'arsela para su propio uso.
A los distribuidores de Linux no se les permite restringir la licencia o redistribuci'on del software
en ninguna medida.  Si est'a pensando en instalar un laboratorio completo de m'aquinas Linux, por
ejemplo, solo necesitar'a comprar una 'unica copia de una de las distribuciones, la cual puede usar
para instalar todas las m'aquinas.
______________________________________________________________________________________________________40     *
 *                                        Cap@


2.1.4     Conseguir la Slackware


Slackware es una popular distribuci'on de Linux mantenida por Patrick Volkerding.3  Es f'acil de
instalar y est'a bastante completa, y se puede obtener a trav'es de Internet o tambi'en en CD-ROM a
trav'es de varios vendedores (ver Ap'endice B).

    La distribuci'on Slackware consta de varios "disk sets" (agrupaciones de disquetes) , cada uno de
los cuales contiene un tipo particular de software (por ejemplo, el "disk set" d contiene herramientas
de desarrollo como el compilador gcc, y el "disk set" x contiene el software del sistema X-Window).
Puede elegir instalar cualquiera de los "disk sets" que prefiera e instalar otros nuevos m'as tarde.

    La versi'on de Slackware descrita aqu'i es la 2.0.0 del 25 de Junio de 1994.  La instalaci'on de
versiones posteriores de la Slackware deber'ia ser muy similar a la que se detalla aqu'i.



2.1.4.1    Sets de discos de Slackware


Desafortunadamente, Slackware no mantiene una lista completa de los requerimientos de espacio en
disco por cada uno de los conjuntos de discos.  Necesitar'a al menos 7 megabytes para instalar s'olo
las series de discos "A"; una estimaci'on aproximada del espacio en disco requerido ser'ia de unos 2
'o 2.5 megabytes por disco.

    Est'an disponibles los siguientes disk sets:


A                El sistema base.  Suficiente para instalar y echar a andar Linux teniendo el elvis y
                 programas de comunicaciones disponibles. Basado en el Kernel 1.0.9, y en el nuevo
                 est'andar de sistema de ficheros (FSSTND).

                 Estos discos est'an preparados para caber en discos de 1.2M, aunque el resto de la
                 Slackware no.  Si s'olo tiene una disquetera de 1.2M, a'un puede instalar el sistema
                 base baj'andose los otros discos que desee e instal'andolos desde su disco duro.


AP               Contienen varias aplicaciones y anexos, como las p'aginas del manual, groff, ispell
                 (en sus versiones internacional y GNU), term, joe, jove, ghostscript, sc, bc, y
                 los " quota patches ".


D                Desarrollo de programas. GCC/G++/Objective C 2.5.8, make (GNU y BSD), byacc
                 y GNU bison, flex, las librer'ias 4.5.26 de C, gdb, fuentes del kernel 1.0.9, SVGAlib,
                 ncurses, clisp, f2c, p2c, m4, perl, y rcs.


E                GNU Emacs 19.25.


F                Una colecci'on de FAQs y otros documentos.


I                P'aginas de informaci'on sobre software GNU. Documentaci'on para varios programas
                 que pueden ser le'idas con info o Emacs.


N                Redes.  TCP/IP, UUCP, mailx, dip, deliver, elm, pine, smail, cnews, nn, tin,
                 trn.
_________________________________________
   3Se puede contactar con Patrick Volkerding por Internet en volkerdi@mhd1.moorhead.msus.edu.
______________________________________________________________________________________________________2.1.  D*
 *istribuciones de Linux            @


OOP              Programaci'on orientada a objetos. GNU Smalltalk 1.1.1, y el interface para Small-
                 talk en X (STIX).


Q                Fuentes de kernels Alpha e im'agenes (en la actualidad contiene Linux 1.1.18).4


TCL              Tcl, Tk, TclX, blt, itcl.


Y                Juegos. La colecci'on de juegos BSD, y tetris para terminales.


X                El sistema base XFree86 2.1.1, y adem'as con libXpm, fvwm 1.20, y xlock.


XAP              Aplicaciones X: X11 ghostscript, libgr13, seyon, workman, xfilemanager, xv
                 3.01, GNU chess y xboard, xfm 1.2, ghostview, y varios juegos.


XD               Desarrollo de programas X11. Librer'ias X11, servidor linkkit y soporte para PEX.


XV               Xview 3.2 release 5.  Librer'ias XView, y los gestores de ventanas virtuales y no
                 virtuales Open Look.


IV               Librer'ias Interviews, includes, y las aplicaciones doc e idraw.


OI               El Object Builder 2.0 y el Object Interface Library 4.0 de ParcPlace, generosamente
                 puestos a disposici'on de desarrolladores en Linux de acuerdo con los t'erminos ex-
                 presados en la nota sobre copias que se encuentra en esas librer'ias. Hay que tener
                 en cuenta que esto s'olo se aplica con libc-4.4.4, aunque puede aparecer una nueva
                 versi'on una vez que la versi'on 2.5.9 est'e disponible.


T                Los sistemas para el formateo de textos TEX y LATEX


   Deber'a conseguir el disk set "A"; el resto son opcionales.  Nosotros sugerimos la instalaci'on de
los disk sets A, AP ,y D, as'i como el set X si tiene intenci'on de utilizar el sistema X-Window.



2.1.4.2   Conseguir la Slackware por Internet


La distribuci'on Slackware de Linux se puede encontrar en muchos FTP sites a lo largo del mundo.
El Ap'endice C lista algunos de los FTP sites que hay de Linux; le sugerimos que intente encontrar el
software en el FTP site que est'e m'as cercano a su zona para reducir el tr'afico de la red. No obstante,
dos de los mayores FTP sites sobre Linux son sunsite.unc.edu y tsx-11.mit.edu.

   La distribuci'on Slackware puede encontrarse como m'inimo en los siguientes sites:


   o  sunsite.unc.edu:/pub/Linux/distributions/slackware


   o  tsx-11.mit.edu:/pub/linux/packages/slackware


   o  ftp.cdrom.com:/pub/linux/slackware


   ftp.cdrom.com es el home site de Slackware.
_________________________________________
   4Quiz'a cuando lea esto ya contenga una versi'on mucho m'as moderna.
______________________________________________________________________________________________________42     *
 *                                        Cap@


2.1.4.2.1   Obtener los ficheros   Deber'ia bajarse los siguientes ficheros usando FTP. Aseg'urese
de poner el modo binario antes de comenzar la transferencia.  El App'endice C contiene un tutorial
completo sobre el uso de FTP.



    o Los diversos ficheros README,y los SLACKWARE_FAQ. Aseg'urese de leer esos ficheros antes de
      intentar instalar el software, para ver cualquier actualizaci'on o cambio en 'estos ficheros.


    o Una imagen de bootdisk. Este es un fichero que escribir'a en un disquette para crear el bootdisk
      Slackware. Si tiene una disquetera de arranque de 1.44 megabytes (3.5"), mire en el directorio
      bootdsks.144.  Si tiene una disquetera de arranque de 1.2 megabytes (5.25"), mire en el
      directorio bootdsks.12.

      Necesita uno de los siguientes ficheros:


         - bare.gz. Este es un bootdisk que s'olo tiene drivers para discos duros del tipo IDE. (Sin
           soporte para SCSI, CD-ROM o de red.) Utilice 'este si s'olo tiene una controladora IDE y
           no va a instalar Linux a trav'es de la red o desde CD-ROM.

         - cdu31a.gz. Contiene drivers IDE, SCSI y del CD-ROM Sony CDU31A/33A.

         - mitsumi.gz. Contiene drivers IDE, SCSI y de los CD-ROM de Mitsumi.

         - modern.gz. Un bootdisk experimental con un kernel m'as moderno y con todos los drivers
           excepto los de tarjetas de red y el del CD-ROM Sony 535.

         - net.gz. Contiene drivers IDE y de red.

         - sbpcd.gz.     Contiene  drivers  IDE,  SCSI  y  los  del  CD-ROM  de  SoundBlaster
           Pro/Panasonic.

         - scsi.gz. Contiene drivers IDE, SCSI y de CD-ROM SCSI.

         - scsinet.gz. Contiene drivers IDE, SCSI, CD-ROM SCSI y de red.

         - sony535.gz. Contiene drivers IDE, SCSI y del CD-ROM Sony 535/531.

         - xt.gz. Contiene drivers de discos duros IDE y XT.


      S'olo necesita una de las anteriores im'agenes de bootdisk, dependiendo del hardware que tenga
      en su sistema.

      La cuesti'on aqu'i es que algunos drivers hardware entran en conflicto unos con otros de formas
      extra"nas, de modo que a veces, en vez de intentar arreglar problemas hardware, en su sistema
      es m'as f'acil usar una imagen de bootdisk con s'olo ciertos drivers habilitados. La mayor parte
      de las ocasiones los usuarios deber'ian probar con el scsi.gz o el bare.gz.


    o Una imagen de rootdisk.  Este es un fichero que escribir'a en un disquette para crear el disco
      de instalaci'on de la Slackware. Como con la imagen de bootdisk, mire en rootdsks.144 o en
      rootdsks.12 dependiendo del tipo de disco de arranque que tenga.

      Necesita uno de los siguientes ficheros:


         - color144.gz. El disco de instalaci'on basado en men'us en color para disqueteras de 1.44
           megabytes. La mayor'ia de los usuarios deber'ian usar este rootdisk.
______________________________________________________________________________________________________2.1.  D*
 *istribuciones de Linux            @


        -  umsds144.gz. Una versi'on del disco color144 para instalar el sistema de ficheros UMS-
           DOS, que permite instalar Linux en un sistema de ficheros MS-DOS. Este m'etodo de
           instalaci'on no se trata aqu'i en detalle, pero le evitar'a el tener que reparticionar su disco
           duro. Se ampliar'a esto m'as adelante.

        -  tty144.gz. El disco de instalaci'on para disqueteras de 1.44 megabytes en modo terminal
           (sin men'u en colores). Si el color144.gz no funciona en su ordenador pruebe con 'este en
           su lugar.

        -  colrlite.gz. El disco de instalaci'on basado en men'us para discos de 1.2 megabytes.

        -  umsds12.gz. Una versi'on del disco colrlite para instalar Linux con el sistema de ficheros
           UMSDOS. Ver la descripci'on sobre el umsds144.gz un poco m'as arriba.

        -  tty12.gz. El disco de instalaci'on en modo terminal (sin men'u de colores) para discos de
           1.2 megabytes. Use este rootdisk si tiene una disquetera de arranque de 1.2 megabytes y
           si el colrlite.gz no funciona en su ordenador.


      Al igual que antes, s'olo necesita una de las im'agenes detalladas en el punto anterior, de-
      pendiendo del tipo de disquetera de arranque de que disponga.


   o  GZIP.EXE. Este es un ejecutable para MS-DOS del compresor gzip usado para comprimir los
      ficheros de im'agenes de bootdisk y de rootdisk (la extensi'on .gz de sus nombres indica eso).
      Se encuentra en el directorio install.


   o  RAWRITE.EXE. Este es un programa MS-DOS que escribir'a el contenido de un fichero (como los
      de las im'agenes de boot y de rootdisk) directamente a un disquette sin importar el formato. Lo
      deber'a utilizar para crear los discos de boot y de root. Tambi'en se encuentra en el directorio
      install.

      Solamente necesitar'a RAWRITE.EXE y GZIP.EXE si quiere crear los discos de boot y root desde
      un sistema MS-DOS. Si tiene acceso a una estaci'on UNIX con disquetera, puede crear los discos
      desde ah'i usando el comando dd. Consulte la p'agina man sobre dd y pregunte al administrador
      UNIX de su sistema para que le ayude.


   o  Los ficheros en los directorios slakware/a1, slakware/a2, y slakware/a3. Estos ficheros con-
      forman el disk set "A" de la distribuci'on Slackware. Se requerir'an m'as adelante. Deber'a copiar
      'estos ficheros a discos MS-DOS para instalarlos (o tambi'en puede instalarlos desde su disco
      duro).  Por lo tanto, cuando se baje 'estos ficheros, mantengalos en directorios separados; no
      mezcle los ficheros del a1 con los del a2, etc.

      Aseg'urese tambi'en de que obtiene los ficheros sin los puntos del nombre. Esto es, desde FTP,
      use el comando "mget *" en vez del "mget *.*".


   o  Los ficheros en los directorios ap1, ap2, etc., dependiendo de qu'e sets de discos est'e instalando.
      Por ejemplo, si va a instalar la serie de discos "X", consiga los ficheros en los directorios x1 a
      x5. Y, al igual que con el set de discos "A" m'as arriba, aseg'urese de mantener los ficheros en
      directorios separados cuando se los baje.
______________________________________________________________________________________________________44     *
 *                                        Cap@


2.1.4.3    Conseguir la Slackware en CD-ROM


Slackware tambi'en se puede obtener en CD-ROM. La mayor'ia de los CD-ROMs Slackware simple-
mente contienen una copia de los ficheros que aparecen en los archivos de los FTP sites, tal y como
se han descrito antes.  Por lo tanto, si tiene un CD-ROM Slackware, tiene todos los ficheros que
necesita.

    Deber'a  crear  un  disco  boot  y  otro  root  de  los  ficheros  que  hay  en  el  CD-ROM.  Ver  la
Secci'on 2.1.4.2.1, m'as arriba, para la descripci'on de las imagenes boot y root existentes.

    Primero, decida qu'e imagenes boot y root va a usar. Deber'ian estar todas en el CD-ROM. M'as
abajo describiremos c'omo crear 'estos discos.



2.1.4.4    M'etodos de instalaci'on


Slackware proporciona varias maneras distintas para instalar el software. La m'as popular es instalar
desde una partici'on MS-DOS en su disco duro; otra es instalar desde disquettes MS-DOS creados a
partir de los disk set que se haya bajado.

    Si tiene la Slackware en un CD-ROM, puede instalar los ficheros directamente desde 'el.  La
distribuci'on Slackware Pro, de Morse Telecommunications, le permite instalar la slackware de forma
que muchos ficheros se acceden directamente del CD-ROM. Esto puede ahorrar una gran cantidad
de espacio de su disco duro, aunque con la desventaja de que la ejecuci'on de ciertas aplicaciones
ser'am'as lenta.



2.1.4.4.1   Creando los disquettes de boot y de root   Debe crear disquettes a partir de las
im'agenes del bootdisk y del rootdisk que haya obtenido (o que tenga en CD-ROM), sin importar el
tipo de instalaci'on que vaya a hacer.

    En un sistema MS-DOS, debe descomprimir las imagenes del bootdisk y del rootdisk usando
GZIP.EXE. Por ejemplo, si est'a usando la imagen de bootdisk bare.gz, ejecute el comando MS-DOS:


      C:\> GZIP -D BARE.GZ


con lo que se descomprimir'a bare.gz y tendr'a el fichero bare. Si est'a instalando desde CD-ROM,
puede copiar la imagen de un bootdisk (como el bare.gz) a su disco duro, y ejecutar el GZIP.EXE
del CD-ROM para descomprimirlo.

    De forma similar debe descomprimir la imagen del rootdisk.  Por ejemplo, si est'a usando el
rootdisk color144.gz, ejecute el comando:


      C:\> GZIP -D COLOR144.GZ


que descomprimir'a el fichero y obtendr'a el color144.

    Despu'es, deber'a tener dos discos de alta densidad formateados en MS-DOS (deben ser del mismo
tipo; esto es, si su disco de arranque es de 3.5", ambos disquettes deber'an ser de 3.5"y de alta
densidad.) y deber'a usar RAWRITE.EXE para escribir las im'agenes de boot y de rootdisk a los discos.
______________________________________________________________________________________________________2.1.  D*
 *istribuciones de Linux            @


   Ejecute el comando:



      C:\> RAWRITE



   Conteste a las preguntas con el nombre del fichero a escribir (por ejemplo bare, o color144) y
con el disco destino al que escribir (por ejemplo A:).  RAWRITE copiar'a el fichero, bloque a bloque,
dir'ectamente al disco.  De la misma forma use RAWRITE con la imagen del rootdisk.  Cuando haya
acabado tendr'a dos discos: uno ser'a el bootdisk y el otro el rootdisk. Tenga en cuenta que estos dos
discos ya no son legibles por MS-DOS (son discos con "formato Linux").

   Aseg'urese de que est'e usando discos nuevos y libres de errores.  No deben tener ning'un bloque
defectuoso.

   Tenga en cuenta de que no necesita estar en MS-DOS para instalar la Slackware. Sin embargo,
estar en MS-DOS facilita la creaci'on de los discos de boot y de root, y hace m'as f'acil la instalaci'on
del software (como el poder instalar directamente desde una partici'on MS-DOS de su sistema).  Si
no est'a utilizando MS-DOS en su sistema, puede usar el sistema MS-DOS de otra persona, s'olo para
crear los discos, e instalar desde ellos.

   No es necesario, tampoco, utilizar GZIP.EXE y RAWRITE.EXE bajo MS-DOS para crear los discos
boot y root. Puede usar los comandos gzip y dd en un sistema UNIX para llevar a cabo la misma
tarea (para esto, necesitar'a una estaci'on UNIX con disquetera, por supuesto.) Por ejemplo, en una
estaci'on SUN con la disquetera en el dispositivo /dev/rfd0, puede usar los comandos:



      $ gunzip bare.gz
      $ dd if=bare of=/dev/rfd0 obs=18k



   Debe proporcionar el argumento con el adecuado tama"no de bloque (el argumento obs) en algunas
estaciones (por ejemplo, en las Suns) o, si no, no lo har'a bien.  Si tiene problemas, la p'agina man
sobre dd puede ser de ayuda.
2.1.4.4.2   Prepar'andose para la instalaci'on desde disco duro   Si lo que quiere es instalar
la Slackware directamente desde el disco duro (lo que muchas veces es m'as r'apido y m'as fiable que
una instalaci'on desde disquette), necesitar'a una partici'on MS-DOS en el sistema en el que vaya a
instalar la Slackware.

   Nota: Si va a instalar la Slackware desde una partici'on MS-DOS, esta partici'on NO debe estar
comprimida con DoubleSpace, Stacker, o cualquier otro tipo de utilidad de compresi'on de disco.
Por el momento Linux no puede leer particiones MS-DOS comprimidas con DoubleSpace o Stacker
dir'ectamente.  (Aunque se puede acceder a 'estas por medio del Emulador de MS-DOS, 'esta no es
una opci'on cuando se instala el software Linux.)

   Para preparar la instalaci'on desde disco duro, simplemente cree un directorio en 'el para almacenar
los ficheros de la Slackware. Por ejemplo,



      C:\> MKDIR SLACKWAR
______________________________________________________________________________________________________46     *
 *                                        Cap@


    crear'a el directorio C:\SLACKWAR que contendr'a los ficheros de la Slackware. Bajo este directorio,
deber'a crear subdirectorios A1, A2, etc, para cada set de discos que se haya bajado, usando el
comando MKDIR. Todos los ficheros del disco A1 se almacenar'an en el directorio SLACKWAR\A1, y lo
mismo con los dem'as discos.



2.1.4.4.3   Prepar'andose para la instalaci'on desde disquette   Si desea instalar la Slackware
desde disquettes en lugar de desde disco duro, necesitar'a tener un disquette virgen, formateado en
MS-DOS, por cada uno de los discos que se haya bajado. Estos discos deben estar formateados en
alta densidad.

    El set de discos A (discos A1 a A3) pueden ser, discos de 3.5", o bien de 5.25". Sin embargo, el
resto de los disk set deben ser discos de 3.5".  Por lo tanto, si s'olo tiene una disquetera de 5.25",
necesitar'a conseguir una de 3.5"de alguien, de forma que pueda instalar los otros disk set aparte del
A. (O, si no, puede instalar desde el disco duro, como se ha explicado en la secci'on previa.)

    Para crear los discos, simplemente copie los ficheros de cada directorio de la Slackware en un
disquette formateado bajo MS-DOS, usando el comando MS-DOS COPY. De este modo,


      C:\> COPY A1\*.* A:


copiar'a los contenidos del disco A1 a la disquetera A:.  Deber'a repetir esto con cada disco que se
haya bajado.

    No necesita modificar o descomprimir los discos de ninguna forma; s'olamente necesita copiarlos
en disquettes MS-DOS. Ser'a el procedimiento de instalaci'on de la Slackware el que se encargue de
ello por Ud.



2.1.4.4.4   Prepar'andose para la instalaci'on desde CD-ROM   Si tiene la Slackware en un
CD-ROM, ya est'a preparado para instalar el software una vez que haya creado los disquettes de
boot y de root. El software se instalar'a directamente desde el CD-ROM.
2.2      Preparaci'on para instalar Linux



Una vez que usted ha obtenido una distribuci'on de Linux, estar'a preparado para instalar el sistema.
Esto supone cierto grado de planificaci'on, sobre todo si en su ordenador se usan actualmente otros
sistemas operativos. En las secciones siguientes describiremos c'omo preparar la instalaci'on de Linux.
2.2.1     Visi'on general de la instalaci'on


A pesar de ser diferente cada distribuci'on de Linux, el m'etodo utilizado para instalar el software es,
en general, como sigue:


   1. Reparticione su(s) disco(s) duro(s).  Si usted tiene instalados otros sistemas operativos,
      necesitar'a reparticionar los discos con el fin de reservar espacio para Linux. Esto se tratar'a m'as
      adelante en la Secci'on 2.2.4.
______________________________________________________________________________________________________2.2.  P*
 *reparaci'on para instalar Linux   @


   2. Arranque la instalaci'on de Linux.  Cada distribuci'on de Linux incluye algo para arran-
      car inicialmente e instalar el software, usualmente un diskette de arranque.  Arrancando de
      esta forma, usted entrar'a en un programa de instalaci'on para el resto del software, o bien le
      permitir'a seguir instal'andolo a mano.


   3. Cree las particiones para Linux. Despu'es de reparticionar su disco para reservar espacio
      para Linux, debe crear particiones de Linux en dicho espacio. Esto se realiza con el programa
      fdisk, comentado en la Secci'on 2.3.3.


   4. Cree los sistemas de ficheros y el espacio de intercambio. En este momento, debe crear
      uno o m'as sistemas de ficheros, utilizados para guardar sus ficheros, en las particiones reci'en
      creadas. Adem'as, si piensa usar espacio de intercambio ("swap"), debe crear dicho espacio en
      una de las particiones para Linux. Esto se trata en las Secciones 2.3.4 y  2.3.5.


   5. Instale los programas en los sistemas de ficheros. Finalmente, debe instalar el software
      en sus nuevos sistemas de ficheros.  Despu'es de esto, lo que queda es f'acil_si todo va bien.
      Esto se trata el la Secci'on 2.3.6.  M'as adelante, en la Secci'on 2.5, describiremos qu'e hacer si
      algo no va bien.



   La mayor'ia de las distribuciones de Linux proporcionan un programa de instalaci'on que le
guiar'a en cada paso de la instalaci'on, y automatiza algunos de esos pasos.  Tenga en cuenta que
cualquiera de los siguientes pasos pueden estar automatizados o no, dependiendo de la distribuci'on.

   La distribuci'on Slackware de Linux, explicada en este libro, solo requiere que reparticione su
disco, utilizando fdisk, y use el programa setup para completar los restantes pasos.

   Un consejo importante: Mientras instala Linux, lo mejor que le podemos aconsejar es que tome
notas durante todo el procedimiento de instalaci'on.  Escriba todo lo que haga, todo lo que escriba
y todo lo que vea y pueda no parecerle normal.  La idea aqu'i es simple:  si usted tiene (<o cuando
tenga!) problemas, usted querr'a poder retroceder sus pasos y encontrar qu'e hizo mal. Instalar Linux
no es dif'icil, pero hay que recordar continuamente muchos detalles. Usted querr'a llevar un registro
de todos esos detalles para poder probar de otra forma si algo le va mal.  Adem'as, guardando sus
notas sobre su experiencia instalando Linux le ser'a 'util cuando quiera pedir ayuda a otras personas,
por ejemplo cuando env'ie un mensaje a un grupo de news USENET sobre Linux. Sus notas sobre la
instalaci'on son tambi'en algo que querr'a mostrar a sus nietos alg'un d'ia.
2.2.2    Conceptos sobre particiones


En general, los discos duros se encuentran divididos en particiones, donde cada partici'on corresponde
a un sistema operativo.  Por ejemplo, en un disco duro se pueden tener varias particiones_una
dedicada a, digamos, MS-DOS, otra a OS/2 y otra a Linux.

   Si usted tiene ya otro software instalado en su sistema, puede necesitar cambiar el tama"no de
sus particiones con el fin de reservar espacio para Linux. En el espacio reservado se crear'an una o
m'as particiones para almacenar el software de Linux y el espacio de intercambio. A este proceso lo
llamamos reparticionar.
______________________________________________________________________________________________________48     *
 *                                        Cap@


    La mayor'ia de los sistemas MS-DOS utilizan una 'unica partici'on que ocupa todo el disco. Para
MS-DOS, esta partici'on es accedida como C:.  Si usted tiene m'as de una partici'on, MS-DOS las
llamar'a D:, E:, y as'i sucesivamente, de modo que cada partici'on act'ua como si fuera un disco duro
independiente.

    En el primer sector del disco est'a el registro  de  arranque  maestro junto a la tabla  de
particiones. El registro de arranque (como su nombre indica) se usa para arrancar el sistema. La
tabla de particiones contiene informaci'on acerca del lugar y el tama"no de cada partici'on.

    Hay tres clases de particiones:  primarias, extendidas, y l'ogicas.  De 'estas, las m'as usadas
son las primarias. Sin embargo, debido al l'imite del tama"no de la tabla de particiones, s'olo pueden
tenerse hasta cuatro particiones primarias en un disco.

    La forma de superar este l'imite de cuatro particiones es usar particiones extendidas. Una partici'on
extendida no tiene datos ella misma; en su lugar, act'ua como "soporte" de particiones l'ogicas. Por
lo tanto, se puede crear una partici'on extendida que ocupe todo el disco, y dentro crear cualquier
n'umero de particiones l'ogicas. Sin embargo, s'olo puede tenerse una partici'on extendida por disco.
2.2.3     Necesidades de reparticionado en Linux


Antes de que expliquemos c'omo reparticionar sus discos, necesita tener una idea acerca del espacio
que necesita para Linux. Trataremos m'as adelante el tema de crear las particiones, en la Secci'on 2.3.3.

    En los sistemas UNIX, los ficheros se almacenan en un sistema de ficheros, que es esencialmente
una zona del disco duro (u otro dispositivo, como un CD-ROM o un diskette) formateado para
almacenar ficheros.  Cada sistema de ficheros se encuentra asociado con una parte espec'ifica del
'arbol de directorios; por ejemplo, en la mayor'ia de los sistemas, existe un sistema de ficheros para
todos los ficheros del directorio /usr, otro para /tmp, etc.  El sistema  de  ficheros  ra'iz es el
principal, que corresponde con el directorio ra'iz, /.

    Bajo Linux, cada sistema de ficheros ocupa una partici'on del disco duro. Por ejemplo, si tenemos
un sistema de ficheros para / y otro para /usr, necesitaremos dos particiones para almacenar ambos
sistemas.

    Antes de instalar Linux, usted necesitar'a preparar sistemas de ficheros para almacenar el software
de Linux.  Por lo menos tiene que tener un sistema de ficheros (el sistema de ficheros ra'iz), y una
partici'on reservada a Linux.  La mayor'ia de los usuarios de Linux optan por almacenar todos sus
ficheros en el sistema de ficheros ra'iz, pues en la mayor parte de los casos es m'as f'acil de gestionar
que tener diferentes sistemas de ficheros y particiones.

    Sin embargo, usted puede crear varios sistemas de ficheros para Linux si lo desea_por ejemplo,
puede que quiera usar sistemas separados para /usr y /home. Aquellos lectores con experiencia en
administraci'on de sistemas UNIX sabr'an como usar diferentes sistemas de ficheros adecuadamente.
En el cap'itulo 4 discutiremos la utilizaci'on de varias particiones y sistemas de ficheros.

    >Por qu'e usar m'as de un sistema de ficheros? Lo m'as habitual es por seguridad; si, por alguna
raz'on, uno de sus sistemas de ficheros resulta da"nado, los otros normalmente no resultar'an afectados.
Por otro lado, si usted almacena todos sus ficheros en el sistema de ficheros ra'iz, y por alguna raz'on
______________________________________________________________________________________________________2.2.  P*
 *reparaci'on para instalar Linux   @


resulta da"nado, puede perder todos los ficheros de una vez. Sin embargo, esto no es lo habitual; si
usted hace copias de seguridad (backups) regularmente, no hay de qu'e preocuparse.5

   Otra raz'on para utilizar varios sistemas de ficheros es repartir el almacenamiento entre varios
discos duros. Si usted tiene, digamos, 40 megabytes libres en un disco duro y 50 en otro, usted puede
querer crear un sistema de ficheros ra'iz de 40 megabytes en el primer disco y un sistema /usr de 50
megabytes en el otro. Actualmente no es posible que un sistema de ficheros abarque varios discos; si
su espacio libre de disco est'a repartido entre los discos, necesitar'a utilizar varios sistemas de ficheros
para aprovecharlos.

   En resumen, Linux requiere por lo menos una partici'on, para el sistema de ficheros ra'iz.  Si se
desea crear varios sistemas de ficheros, se necesitar'a una partici'on por cada sistema de ficheros.
Algunas distribuciones de Linux crean particiones y sistemas de ficheros de forma autom'atica, de
modo que usted no necesita preocuparse demasiado de estos asuntos.

   Otra cuesti'on a considerar cuando se deciden las particiones es el espacio de intercambio (swap).
Si se desea usar espacio de intercambio en Linux, se tienen dos opciones.  La primera es usar un
fichero de intercambio que existe dentro de uno de los sistemas de ficheros de Linux. Se crea el fichero
de intercambio para usarlo como RAM virtual una vez instalado el software. La segunda opci'on es
crear una partici'on de intercambio, una partici'on reservada exclusivamente como espacio de swap.
La mayor'ia de la gente usa una partici'on para el intercambio en lugar de un fichero.

   Cada fichero o partici'on de intercambio puede ser de hasta 16 megabytes. Si se desea tener m'as
de 16 megabytes de swap, se pueden crear varios ficheros o particiones de intercambio_hasta ocho
a la vez. Por ejemplo, si se necesitan 32 megabytes de swap, se pueden crear dos particiones de 16
megabytes.

   La Secci'on 2.3.4 se ocupa de c'omo poner a punto una partici'on para el intercambio, mientras que
lo referente a ficheros de swap se trata en el Cap'itulo 4.

   Por lo general, se crear'an dos particiones para Linux: una para ser usada como sistema de ficheros
ra'iz, y la otra como espacio de intercambio. Por supuesto, hay otras opciones pero esta es la opci'on
m'inima. El espacio de swap no es obligatorio en Linux, pero est'a muy recomendado si posee menos
de 16 megabytes de memoria f'isica.

   Tambi'en necesita conocer el espacio requerido para cada partici'on.  El tama"no de los sistemas
de ficheros de su sistema Linux depende en gran parte de qu'e software quiera instalar en 'el y de la
distribuci'on de Linux que est'e utilizando. Afortunadamente, la documentaci'on de la distribuci'on le
dar'a una idea del espacio requerido. Un sistema peque"no puede utilizar s'olo 20 megabytes o menos;
un sistema grande siempre necesitar'a 80 a 100 megabytes, o m'as.  Tenga en cuenta que hay que
a"nadir a esto el espacio extra para los directorios de usuario, expansiones futuras, etc.

   El tama"no de sus particiones de swap (debe elegirse una para esto) depende de la RAM virtual
que necesite. Lo t'ipico es crear una partici'on de intercambio del doble de espacio de su RAM f'isica;
por ejemplo, si tiene 4 megabytes de RAM, una partici'on de 8 megabytes suele bastar. Por supuesto,
esto es solo una idea_la cantidad de espacio de swap que requiere depender'a del software que quiera
ejecutar. Si usted tiene una gran cantidad de memoria f'isica (digamos, 16 megabytes o m'as) puede
_________________________________________5
    El autor utiliza un 'unico sistema de ficheros de 200 megabytes para todos sus ficheros de Linux, y no ha*
 * tenido
ning'un problema (hasta ahora).
______________________________________________________________________________________________________50     *
 *                                        Cap@


que al final no necesite espacio de intercambio.

    Nota importante: Debido a las limitaciones de la BIOS, habitualmente no es posible arrancar
desde particiones que empiecen m'as all'a del cilindro 1023.  As'i pues, cuando se decida el espacio
para Linux, recuerde que no debe usar una partici'on que sobrepase ese cilindro para el sistema de
ficheros ra'iz. Linux puede usar perfectamente particiones con cilindros m'as all'a del 1023, pero dichas
particiones no servir'an para arrancar . Decir esto aqu'i puede parecer prematuro, pero es importante
a la hora de planificar el uso del disco en Linux.

    Si se usara una partici'on para el sistema de ficheros ra'iz m'as all'a del cilindro 1023, siempre
podr'a arrancar Linux con un disco boot. Esto no es un inconveniente_solo tarda unos segundos m'as
que si se arrancara desde el disco duro.
2.2.4     Reparticionado de los discos


En esta secci'on vamos a describir c'omo cambiar el tama"no de sus particiones actuales (si las hay)
para reservar espacio para Linux. Si usted est'a instalando Linux en un disco duro "limpio", puede
pasar directamente a la Secci'on 2.3 de m'as adelante.

    La manera habitual de cambiar el tama"no de una partici'on es borrarla (lo que implica borrar
toda la informaci'on que contenga) y rehacerla.  Antes de reparticionar sus discos, haga un backup.
Despu'es de cambiar las particiones, puede proceder a reinstalar el software desde el backup.  Sin
embargo, podemos encontrar programas para MS-DOS que consiguen cambiar el tama"no de las
particiones de forma no destructiva.  Uno de 'estos se conoce como "FIPS", y puede encontrarse en
muchos servidores de FTP de Linux.

    Recuerde tambi'en que debido a que se empeque"necen las particiones originales, no se va a poder
reinstalar todo el software que se ten'ia antes. En este caso, hay que borrar el software innecesario
para permitir que el resto quepa en las particiones m'as peque"nas.

    El programa utilizado para hacer particiones es fdisk.  Cada sistema operativo tiene su propia
versi'on de este programa; por ejemplo, bajo MS-DOS, se activa con el comando FDISK. Debe consul-
tarse la documentaci'on de los sistemas operativos en uso para obtener informaci'on sobre este asunto.
Aqu'i nos referiremos unicamente a MS-DOS con FDISK, pero lo que digamos puede ser f'acilmente
extrapolado a otros sistemas operativos.

    Consulte, por favor , la documentaci'on de sus sistemas operativos actuales antes de proceder a
reparticionar sus discos. Esta secci'on pretende ser s'olo una visi'on general del proceso; y hay muchos
detalles que no vamos a mencionar.  Tenga en cuenta que se puede perder todo el software de su
sistema si no se hace correctamente el reparticionado.

    Un aviso:  No modifique o cree particiones para otros sistemas operativos (incluyendo Linux)
utilizando FDISK bajo MS-DOS. Solo pueden modificarse particiones de cada sistema operativo con
la versi'on de fdisk correspondiente a ese sistema; por ejemplo, se crear'an las particiones para Linux
utilizando el programa fdisk que viene con Linux. M'as adelante, en la Secci'on 2.3.3, describiremos
c'omo crear particiones de Linux, pero por ahora nos ocuparemos solo de cambiar el tama"no de las
actuales.

    Supongamos que usted tiene un solo disco duro en su sistema, dedicado, por ahora, enteramente
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


a MS-DOS. Esto es, su disco duro contiene una partici'on MS-DOS, conocida habitualmente como
"C:".  Puesto que este m'etodo de reparticionado destruir'a todos los datos de la partici'on, necesita
crear un disco de sistema MS-DOS "arrancable" que contenga lo necesario para ejecutar FDISK y
restaurar el software desde el backup cuando se complete el proceso de reparticionado.

   En muchos casos, se pueden usar para esto los discos de instalaci'on de MS-DOS. Sin embargo,
si necesita el disco de sistema, format'eelo mediante el comando


      FORMAT /s A:


Copie en ese disco todas las utilidades de MS-DOS necesarias (normalmente, casi todo lo que hay
en el directorio \DOS de su disco), as'i como los programas FORMAT.COM y FDISK.EXE. Ahora se debe
poder arrancar desde este disquete, y ejecutar el comando


      FDISK C:


para arrancar FDISK.

   La utilizaci'on de FDISK deber'ia ser autoexplicativa, pero puede consultarse la documentaci'on de
MS-DOS para obtener detalles.  Cuando comience el programa FDISK, utilice el men'u de opciones
para mostrar la tabla de particiones, y anote la informaci'on que se le muestre. Es importante guardar
copia de su configuraci'on original en caso de que quiera detener la instalaci'on de Linux.

   Para borrar una partici'on, seleccione la opci'on del men'u "Delete an MS-DOS Partition or
Logical DOS Drive" (Eliminar partici'on o unidad l'ogica DOS). Especifique el tipo de partici'on
que desea borrar (primaria, extendida o l'ogica) y el n'umero de la partici'on.  Verifique todos los
avisos que se le presenten.

   Para crear una nueva partici'on para MS-DOS (m'as peque"na), seleccione la opci'on de FDISK
"1.   Crear partici'on DOS o unidad l'ogica DOS". Especifique el tipo de partici'on (primaria,
extendida o l'ogica) y el tama"no (en megabytes). FDISK deber'a crear la partici'on.

   Despu'es de hacer esto mediante FDISK, debe abandonar el programa y reformatear las nuevas
particiones. Por ejemplo, si se cambi'o el tama"no de la partici'on C: se teclear'a el comando


      FORMAT /s C:


Ahora puede reinstalar el software desde el backup.

2.3     Instalaci'on del software de Linux



Despu'es de modificar sus particiones para reservar espacio a Linux, usted est'a preparado para
instalar el software. A continuaci'on se muestra un resumen del procedimento a seguir:


   o  Arrancar con el dispositivo de arranque de Linux (disquete);


   o  Ejecutar fdisk bajo Linux para crear las particiones de Linux;
______________________________________________________________________________________________________52     *
 *                                        Cap@


    o Ejecutar mke2fs y mkswap para crear los sistemas de ficheros y el espacio de intercambio;


    o Instalar el software de Linux;


    o Finalmente, instalar el cargador LILO en el disco duro, o crear un disco de arranque con el fin
      de arrancar su nuevo sistema Linux.


    Como hemos dicho, uno (o m'as) pasos de los anteriores pueden estar automatizados por los pro-
gramas de instalaci'on, seg'un la distribuci'on que est'e utilizando. Por favor, consulte la documentaci'on
de su distribuci'on para ver las instrucciones espec'ificas.
2.3.1     Arranque de Linux


El primer paso es iniciar el computador con el dispositivo de arranque de Linux, que suele ser un
disco "boot" que contiene un peque"no sistema Linux. Tras arrancar con el floppy, se le presentar'a un
men'u de instalaci'on de alg'un tipo que le guiar'a en el proceso de instalaci'on. En otras distribuciones,
se le mostrara un prompt de login cuando arranque. Aqu'i se suele entrar como root o install para
comenzar el proceso de instalaci'on.

    La documentaci'on que viene con su particular distribuci'on le explicar'a qu'e necesita para arrancar
Linux.

    Si usted est'a instalando la distribuci'on de Linux Slackware, lo 'unico requerido es arrancar con
el disco "boot" que cre'o en la secci'on anterior.

    La mayor'ia de las distribuciones de Linux utilizan un disquete de arranque que le permite intro-
ducir par'ametros de su hardware en tiempo de arranque, para forzar la detecci'on de sus dispositivos.
Por ejemplo, si su controladora SCSI no se detecta durante el arranque, necesitar'a rearrancar y
especificar los par'ametros del hardware (como direcciones E/S e IRQ) en el prompt de arranque.

    As'imismo, las m'aquinas PS/1, ThinkPad y ValuePoint de IBM no almacenan la informaci'on de
geometr'ia de los discos en la CMOS, con lo que debe especificarla durante el arranque.

    El prompt de arranque se muestra siempre que se arranca con el disquete._Este_es_el_caso_de_la
distribuci'on Slackware. En otras es necesario mantener pulsadas las teclas |_shift_|o |_ctrl_|mientras
se arranca. Si va bien, deber'ia verse el prompt


      boot:


y tal vez otros mensajes.

    Para arrancar sin m'as par'ametros especiales, pulse enter en el prompt del arranque.

    Observe los mensajes del arranque. Si tiene una controladora SCSI, deber'ia ver una lista de hosts
SCSI detectados. Si observa el mensaje


      SCSI: 0 hosts


es porque no se detect'o su controladora SCSI, y tendr'a que seguir el siguiente procedimiento.
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


   Adem'as, el sistema le informar'a de las particiones y dispositivos detectados. Si cualquier parte
de esta informaci'on es incorrecta (o falta alguno), tendr'a que forzar la detecci'on del hardware.

   Por otro lado, si todo va bien y todo su hardware es correctamente detectado, puede pasar a la
siguiente secci'on, la Secci'on 2.3.2.

   Para forzar la detecci'on del hardware, debe entrar los par'ametros adecuados en el prompt de
arranque, utilizando la siguiente sintaxis:



      ramdisk <parameters. .>.



   Hay cierto n'umero de par'ametros disponibles; aqu'i mostraremos los m'as comunes.


hd=<cylinders>,<heads>,<sectors>
                 Especifica la geometr'a del disco.  Requerido para sistemas como el IBM PS/1,
                 ValuePoint y ThinkPad.  Por ejemplo, si su disco tiene 683 cilindros, 16 cabezas y
                 32 sectores por pista, introduzca


                      ramdisk hd=683,16,32


tmc8xx=<memaddr>,<irq>
                 Especifica las direcciones e IRQ para el controlador SCSI Future Domain TMC-8xx.
                 Por ejemplo,


                      ramdisk tmc8xx=0xca000,5


                 Observe que el prefijo 0x debe utilizarse para todos los valores que se dan en hexa-
                 decimal. Esto se cumple con todas las opciones siguientes.


st0x=<memaddr>,<irq>
                 Especifica las direcciones e IRQ para el controlador Seagate ST02.


t128=<memaddr>,<irq>
                 Especifica las direcciones e IRQ para el controlador Trantor T128B.


ncr5380=<port>,<irq>,<dma>
                 Especifica el puerto, IRQ y canal DMA para el controlador gen'erico NCR5380.


aha152x=<port>,<irq>,<scsi_id>,1
                 Especifica puerto, IRQ e identificador SCSI para controladores AIC-6260.  Esto
                 incluye a los controladores Adaptec 1510, 152x y Soundblaster-SCSI.


   Para cada uno de 'estos, debe entrar ramdisk seguido del par'ametro que desee utilizar.

   Si tiene dudas acerca de estas opciones de arranque, por favor lea el documento Linux SCSI
HOWTO, que debe estar disponible en cualquier FTP-site de Linux (o donde haya obtenido este
libro), as'i como el documento Linux CD-ROM HOWTO. Estos documentos describen cuestiones de
compatibilidad de hardware con mucho m'as detalle.
______________________________________________________________________________________________________54     *
 *                                        Cap@


2.3.2     Dispositivos y particiones en Linux


Muchas distribuciones necesitan que se creen a mano las particiones de Linux utilizando el programa
fdisk. Otras pueden crearlas autom'aticamente. En cualquier caso, usted debe conocer lo siguiente
acerca de los nombres para los dispositivos y las particiones en Linux.

    Bajo Linux, los dispositivos y las particiones tienen nombres muy distintos a los utilizados en
otros sistemas operativos. Bajo MS-DOS, las disqueteras se identifican como A: y B:, mientras que
las particiones del disco duro se identifican como C:, D, etc.  Bajo Linux, la denominaci'on es algo
diferente.

    Los manejadores  de  dispositivos, que se encuentran en el directorio /dev, se usan para
comunicar con los dispositivos de su sistema (como discos duros o ratones).  Por ejemplo, si usted
tiene un rat'on en su sistema, lo puede acceder a trav'es del manejador /dev/mouse. Las disqueteras,
discos duros y particiones tienen cada uno un manejador propio. No se preocupe acerca de la interfaz
del manejador por ahora; solo es importante entender c'omo son nombrados los dispositivos con el
fin de poderlos usar.

    La tabla 2.1 lista los nombres de diversos manejadores.


                     ____________________________________________________________
                     __Dispositivo____________________________________Nombre_____
                       Primera disquetera (A:)                        /dev/fd0
                       Segunda disquetera (B:)                        /dev/fd1
                       Primer disco duro (todo el disco)              /dev/hda
                       Primer disco duro, partici'on primaria 1       /dev/hda1
                       Primer disco duro, partici'on primaria 2       /dev/hda2
                       Primer disco duro, partici'on primaria 3       /dev/hda3
                       Primer disco duro, partici'on primaria 4       /dev/hda4
                       Primer disco duro, partici'on l'ogica 1        /dev/hda5
                       Primer disco duro, partici'on l'ogica 2        /dev/hda6
                       ..
                       .
                       Segundo disco duro (todo el disco)             /dev/hdb
                       Segundo disco duro, partici'on primaria 1      /dev/hdb1
                       ..
                       .
                       Primer disco duro SCSI (todo el disco)         /dev/sda
                       Primer disco duro SCSI, partici'on primaria 1  /dev/sda1
                       ..
                       .
                       Segundo disco duro SCSI (todo el disco)        /dev/sdb
                       Segundo disco duro SCSI, partici'on primaria 1 /dev/sdb1
                       ..
                       .


                        Tabla 2.1: Nombres de discos y particiones en Linux

    Algunas notas acerca de esta tabla. Observe que /dev/fd0 corresponde a la primera disquetera
(A: bajo MS-DOS) y que /dev/fd1 corresponde a la segunda (B:).
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


   Adem'as, los discos duros SCSI se nombran de manera diferente a otros discos. Los IDE, MFM y
RLL se acceden a trav'es de los dispositivos /dev/hda, /dev/hdb, etc. Las particiones de /dev/hda
son /dev/hda1, /dev/hda2, etc.  Sin embargo, los dispositivos SCSI se nombran con /dev/sda,
/dev/sdb, etc., y las particiones con /dev/sda1, /dev/sda2, etc.

   Aqu'i tenemos un ejemplo.  Supongamos que usted tiene un disco duro IDE con 3 particiones
primarias. Las dos primeras son para MS-DOS, y la tercera es extendida y contiene dos particiones
l'ogicas, ambas para ser usadas con Linux. Los dispositivos quedar'ian representados con:

     Primera partici'on MS-DOS (C:)    /dev/hda1
     Segunda partici'on MS-DOS (D:)    /dev/hda2
     Partici'on extendida              /dev/hda3
     Primera partici'on l'ogica de Linux/dev/hda5
     Segunda partici'on l'ogica de Linux/dev/hda6


   Observe que nos hemos saltado /dev/hda4, ya que corresponde a la cuarta partici'on primaria,
que no existe en el ejemplo. Las particiones l'ogicas se nombran de forma consecutiva partiendo de
/dev/hda5.
2.3.3    Creaci'on de las particiones en Linux


Ahora ya est'a preparado para crear las particiones de Linux con el comando fdisk.  Como se
explic'o en la Secci'on 2.2.3, va a tener que crear, en general, una partici'on para el software de Linux
propiamente dicho y otra para el 'area de intercambio.

   Despu'es de arrancar el disquete, ejecute el comando fdisk tecleando


      fdisk <drive>


donde <drive> es el nombre de dispositivo con el que Linux identifica el disco duro donde quiere
realizar las particiones (v'ease la Tabla 2.1).  Por ejemplo, si desea ejecutar fdisk sobre el primer
disco SCSI de su sistema, utilice el comando fdisk /dev/sda.  Por defecto, fdisk act'ua sobre
/dev/hda (el primer disco IDE).

   Para crear particiones de Linux en m'as de un disco, ejecute fdisk una vez por disco.


      # fdisk /dev/hda

      Command (m for help):



En este punto, fdisk est'a esperando un comando; puede teclear m para obtener una lista de opciones.


      Command (m for help):  m
      Command action
      a toggle a bootable flag
      d delete a partition
      l list known partition types
      m print this menu
      n add a new partition
______________________________________________________________________________________________________56     *
 *                                        Cap@


      p print the partition table
      q quit without saving changes
      t change a partition's system id
      u change display/entry units
      v verify the partition table
      w write table to disk and exit
      x extra functionality (experts only)

      Command (m for help):


El comando n se usa para crear una nueva partici'on.  Casi todas las dem'as opciones no nos van a
preocupar ahora mismo.  Para salir de fdisk sin salvar cambios, utilice el comando q.  Para salir
escribiendo los cambios en la tabla de particiones, utilice el comando w.

    Lo primero que debe hacer es mostrar su tabla de particiones actual y anotar sus datos, para
referencias posteriores. Use el comando p para esto.


      Command (m for help):  p
      Disk /dev/hda:  16 heads, 38 sectors, 683 cylinders
      Units = cylinders of 608 * 512 bytes


         Device Boot  Begin    Start      End  Blocks    Id  System
      /dev/hda1    *        1        1      203    61693     6  DOS 16-bit >=32M
      Command (m for help):


En este ejemplo, tenemos una partici'on 'unica en /dev/hda1, con 61693 bloques (unos 60 megabytes).6
Esta partici'on comienza en el cilindro 1 y finaliza en el 203. En total el disco tiene 683 cilindros de
los cuales 480 est'an libres para crear particiones de Linux.

    Para crear una nueva partici'on, utilice el comando n. En este ejemplo crearemos dos particiones
primarias (/dev/hda2 y /dev/hda3) para Linux.



      Command (m for help):  n
      Command action
      e extended
      p primary partition (1-4)
      p



Aqu'i, fdisk pide el tipo de partici'on a crear: extendida o primaria. En nuestro ejemplo elegimos p
pues solo vamos a crear particiones primarias.


      Partition number (1-4):


fdisk preguntar'a entonces por el n'umero de la partici'on a crear; puesto que la 1 est'a en uso, nuestra
primera partici'on para Linux debe ser la 2.
_________________________________________
   6En Linux, un bloque son 1024 bytes.
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


      Partition number (1-4):  2
      First cylinder (204-683):


Ahora debe entrar el cilindro de comienzo de la partici'on. Dado que actualmente no est'an en uso los
cilindros 204 a 683, escogeremos el primero disponible (204), ya que no hay raz'on para dejar huecos
entre particiones.


      First cylinder (204-683):  204
      Last cylinder or +size or +sizeM or +sizeK (204-683):


Ahora fdisk nos est'a preguntando acerca del tama"no de la partici'on a crear. Podemos hacerlo espe-
cificando el cilindro de terminaci'on de la partici'on o metiendo directamente el tama"no requerido, en
bytes, kilobytes, o megabytes. Como queremos que la partici'on ocupe 80 megabytes, especificaremos
+80M. Cuando se indica el tama"no de esta forma, fdisk lo redondea a un n'umero de cilindros.


      Last cylinder or +size or +sizeM or +sizeK (204-683):  +80M

      Warning:  Linux cannot currently use 33090 sectors of this partition


Si usted ve un mensaje como el anterior, puede ignorarlo. fdisk imprime este aviso debido a que es
un programa antiguo que data de cuando las particiones de Linux no pod'ian superar los 64 megabytes.

   Ahora podemos pasar a crear la segunda partici'on. Como ejemplo, vamos a crearla de 10 mega-
bytes.


      Command (m for help):  n
      Command action
      e extended
      p primary partition (1-4)
      p
      Partition number (1-4):  3
      First cylinder (474-683):  474
      Last cylinder or +size or +sizeM or +sizeK (474-683):  +10M


   Finalmente, vamos a ver la tabla de particiones.  Una vez m'as, anote la informaci'on que se le
presente_sobre todo los tama"nos en bloques de las nuevas particiones. Necesitar'a conocerlos cuando
tenga que crear, m'as tarde, los sistemas de ficheros.  Adem'as, debe verificar que las particiones no
se solapen.


      Command (m for help):  p

      Disk /dev/hda:  16 heads, 38 sectors, 683 cylinders
      Units = cylinders of 608 * 512 bytes


         Device Boot  Begin    Start      End  Blocks    Id  System
      /dev/hda1    *        1        1      203    61693     6  DOS 16-bit >=32M
      /dev/hda2          204      204      473    82080    81  Linux/MINIX
      /dev/hda3          474      474      507    10336    81  Linux/MINIX
______________________________________________________________________________________________________58     *
 *                                        Cap@


Como puede ver, ahora en /dev/hda2 tenemos una partici'on de 82080 bloques (aproximadamente
80 megabytes) y en /dev/hda3 tenemos 10336 bloques (unos 10 megabytes).

    Observe que muchas distribuciones (como la Slackware) requieren que se utilice el comando t en
fdisk para cambiar el tipo de la partici'on elegida para el intercambio a "Linux swap", normalmente
con el n'umero 82. Se puede usar el comando L para ver una lista de tipos de particiones conocidas,
y luego t para establecer el tipo de la partici'on de intercambio a "Linux swap".

    De esta forma, el software de instalaci'on podr'a encontrar autom'aticamente sus particiones de swap
en funci'on del tipo. Si el software de instalaci'on no pudiera reconocer su partici'on de intercambio,
deber'a repetir la ejecuci'on de fdisk y utilizar el comando t sobre la partici'on en cuesti'on.

    En el ejemplo anterior, los cilindros sobrantes (508 a 683) se quedan sin usar. Puede que se desee
hacerlo as'i, para m'as adelante crear m'as particiones.

    Finalmente, utilizaremos el comando w para escribir los cambios en el disco y salir.


      Command (m for help):  w

      #


    Recuerde que ning'un cambio hecho durante la ejecuci'on de fdisk tendr'a efecto hasta que se
teclee el comando w, por lo que se puede jugar con diferentes configuraciones y salvarla solo cuando
se est'e decidido.  Adem'as, se puede usar el comando q para abandonar fdisk sin hacer ning'un
cambio. Recuerde tambi'en que las particiones de otros sistemas operativos no deben tocarse desde
el programa fdisk de Linux.

    As'imismo, recuerde que no se puede arrancar Linux desde una partici'on que comience m'as all'a del
cilindro 1023. Por lo tanto, se puede crear la partici'on de ra'iz en el rango inferior a este cilindro o,
si esto es imposible, arrancar siempre desde un disquete.

    Algunas distribuciones de Linux necesitan rearrancar el sistema tras ejecutar fdisk. Esto permite
que los cambios en la tabla de particiones tengan efecto.  Las nuevas versiones de fdisk cambian
de forma autom'atica esta informaci'on en el n'ucleo, con lo que no es necesario rearrancar.  Lo m'as
seguro es volver a arrancar tras crear las particiones.
2.3.4     Creaci'on del espacio de intercambio (swap)


Si usted est'a pensando en usar una partici'on de intercambio para obtener RAM virtual, es ahora el
momento de hacerlo.7  En el Cap'itulo 4 discutiremos la preparaci'on de un fichero de swap para el
caso de que no desee usar una partici'on para esto.

    Muchas distribuciones necesitan que se cree y active la partici'on de intercambio antes de instalar
el software. Si usted tiene poca RAM f'isica, la instalaci'on puede no ir bien, a menos que se active
una cierta cantidad de swap.

    La distribuci'on Slackware necesita que se cree el 'area de swap antes de la instalaci'on, si se tienen
4 megabytes o menos.  Si este no es el caso, el procedimiento de instalaci'on de Slackware puede
_________________________________________7
    De nuevo, algunas distribuciones de Linux preparan el 'area de intercambio autom'aticamente, o bien media*
 *nte un
men'u de instalaci'on.
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


usarse para preparar la partici'on de intercambio autom'aticamente.  Si no es'a seguro, siga con el
procedimiento descrito aqu'i.

   El comando utilizado para preparar una partici'on de intercambio es mkswap, tecle'andose


      mkswap -c <partition> <size>


donde <partition> es el nombre de la partici'on de swap y <size> es el tama"no de la partici'on, en
bloques.8 Por ejemplo, si su partici'on de intercambio es la /dev/hda3 y tiene 10336 bloques, teclee
el comando


      # mkswap -c /dev/hda3 10336


La opci'on -c indica a mkswap que compruebe si hay bloques err'oneos en la partici'on mientras la
crea.

   Si se usan varias particiones de intercambio, se necesitar'a ejecutar el comando mkswap apropiado
para cada partici'on.

   Despu'es de preparar el 'area de swap, hay que decirle al sistema que la use.  Normalmente, el
sistema comienza a usarla autom'aticamente durante el arranque.  Sin embargo, como aun no tiene
instalado el software de Linux, tiene que activarla a mano.

   El comando para hacerlo es swapon, y tiene el formato


      swapon <partition>


En el ejemplo anterior, para activar el espacio de intercambio en /dev/hda3, usaremos el comando


      # swapon /dev/hda3

2.3.5    Creaci'on de los sistemas de ficheros


Antes de que se puedan usar las particiones de Linux para almacenar ficheros, hay que crear los
sistemas de ficheros en ellas.  La creaci'on de un sistema de ficheros es an'aloga a formatear una
partici'on de MS-DOS u otros sistemas operativos.  Ya discutimos los sistemas de ficheros en la
Secci'on 2.2.3.

   Hay varios tipos de sistemas de ficheros disponibles en Linux. Cada tipo de sistema de ficheros
tiene su propio formato y caracter'isticas (como longitud del nombre de los ficheros, tama"no m'aximo,
etc). Adem'as, Linux soporta sistemas de ficheros "de terceros" como el de MS-DOS.

   El tipo de sistema de ficheros m'as usado es el Sistema de Ficheros Extendido 2, o ext2fs. El
ext2fs es uno de los m'as eficientes y flexibles sistemas; permite hasta 256 caracteres en los nombres
de los ficheros y tama"nos de 'estos de hasta 4 Terabytes. En el Cap'itulo 4 veremos los diferentes tipos
disponibles en Linux. De momento nos conformaremos con sugerirle el sistema ext2fs.
_________________________________________
   8Este tama"no es dado por fdisk, utilizando la opci'on p. Un bloque en Linux son 1024 bytes.
______________________________________________________________________________________________________60     *
 *                                        Cap@


    Si usted est'a instalando la distribuci'on Slackware, el propio procedimiento de instalaci'on descrito
en la pr'oxima secci'on crea los sistemas de ficheros de forma autom'atica. Si desea crear sus propios
sistemas a mano, siga el m'etodo que a continuaci'on describimos.

    Para crear un sistema tipo ext2fs utilice el comando



      mke2fs -c <partition> <size>



donde <partition> es el nombre de la partici'on, y <size> es el tama"no de la partici'on en bloques. Por
ejemplo, para crear un sistema de 82080 bloques en /dev/hda2, use el comando



      # mke2fs -c /dev/hda2 82080



    Si quiere usar varios sistemas de ficheros en Linux, necesitar'a repetir el comando mke2fs por
cada sistema de ficheros.

    Si se ha encontrado con alg'un problema en este punto, lea la Secci'on 2.5 al final de este cap'itulo.
2.3.6     Instalaci'on del software


Finalmente, ya est'a preparado para instalar el software en su sistema. Cada distribuci'on tiene una
forma distinta de hacerlo. Muchas tienen un programa que le gu'ia paso a paso en este proceso. En
otras, usted tendr'a que montar sus sistemas de ficheros en un directorio (como /tmp) y copiar el
software a 'este a mano.  En las distribuciones en CD-ROM puede seguir la opci'on de instalar una
parte de lo que contiene en su disco duro y dejar el resto (la mayor parte) en el CD-ROM.

    Algunas distribuciones ofrecen diversos mecanismos para instalar el software. Por ejemplo, puede
instalarlo directamente desde una partici'on MS-DOS de su disco duro, en lugar de hacerlo desde los
disquetes. O incluso puede hacerlo a trav'es de una red TCP/IP mediante FTP o NFS. Consulte la
documentaci'on de la distribuci'on para ver detalles.

    Por ejemplo, la distribuci'on Slackware s'olo necesita de usted que cree las particiones con fdisk,
y el espacio de intercambio con mkswap y swapon (si tiene 4 megabytes o menos de RAM), y a
continuaci'on ejecute el programa setup, que le gu'ia mediante un men'u bastante autoexplicativo en
la instalaci'on del software. La utilizaci'on de setup se describe en detalle luego.

    El m'etodo exacto para instalar el software de Linux difiere en gran parte seg'un la distribuci'on.
Confiamos en que instalar el software de Linux es autoexplicativo, como sucede con la mayor'ia de
las distribuciones.
2.3.6.1    Instalando la Slackware con setup


Si est'a instalando la Slackware, despu'es de crear las particiones (y probablemente de crear espacio
para swap), utilice el comando



      # setup
      ______________________________________________________________________________________________________2*
 *.3.  Instalaci'on del software de Linux @


      Esto le llevar'a a un men'u que le dirigir'a a trav'es del resto de los pasos de la instalaci'on.


         El procedimiento descrito aqu'i corresponde con el que se encuentra en los rootdisks color144 y
      colrlite; los otros rootdisks pueden seguir procesos ligeramente diferentes.


         El men'u del setup consta de los_siguientes_elementos._Utilice los cursores para moverse por las
      diferentes opciones, y presione |_enter_|'o |_spacebar_p|ara seleccionar uno.



      Help             Para ver el fichero de ayuda del setup.


      Keymap           Esta opci'on le permite especificar el mapa de teclado para su sistema si no tiene un
                       teclado USA. Se le presentar'a una lista de mapas de teclado; seleccione el elemento
                       m'as apropiado de la lista.


      Quick            Esta le permite seleccionar entre los modos "quick" y "verbose". El modo "Verbose"
                       es el modo por defecto, y est'a recomendado para la mayor'ia de las instalaciones
                       (salvo que haya instalado la Slackware una docena de veces, en cuyo caso ya se lo
                       sabr'a de memoria).


      Make tags        Esto permite a los expertos en instalaciones de la Slackware crear "tag files" ("fich-
                       eros etiqueta") personalizados, para preseleccionar paquetes. Esto s'olo es necesario
                       para personalizar el procedimiento de instalaci'on; y no deber'ia preocuparse de ello.


      Addswap          Este ser'a el primer punto que la mayor parte de los usuarios seleccionar'a para
                       instalar la Slackware. Se presentar'a una lista con las particiones de swap disponibles
                       (las particiones con tipo "Linux swap" fijadas desde el fdisk), y podr'a especificar
                       qu'e particiones desea utilizar para espacio de swap.  Despu'es se le preguntar'a si
                       desea ejecutar mkswap en esas particiones.

                       Si ya ha ejecutado mkswap y swapon (como se describi'o en la Secci'on 2.3.4) en sus
                       particiones swap, entonces no deber'ia permitir al setup ejecutar mkswap en esas
                       particiones.

                       De todos modos, incluso aunque ya haya ejecutado mkswap y swapon, es necesario el
                       uso del elemento Addswap del menu: esto asegura que las particiones swap estar'an
                       disponibles una vez que tenga el sistema instalado.

3                      <Cuidado! Crear espacio de swap en una partici'on destruir'a todos los datos de esa
                       partici'on. Aseg'urese de que no est'a borrando informaci'on que quiera conservar.

                       Si selecciona 'este elemento del men'u, se le preguntar'a autom'aticamente si desea
                       seguir con los siguientes pasos.  En general, siempre deber'a contestar afirmativa-
                       mente.


      Target           Este elemento permite especificar las particiones en las que se va a instalar Linux.
                       Se presentar'a una lista con las particiones disponibles (aquellas que se especificaron
                       como de tipo "Linux native" en el fdisk), y se pedir'a que introduzca el nombre
                       de la partici'on raiz de Linux, como por ejemplo /dev/hda2.  Despu'es se pregun-
                       tar'a por el tipo de sistema de ficheros que desea crear; nosotros sugerimos utilizar
                       el tipo de sistema de ficheros ext2fs como se describi'o en la Secci'on 2.3.5.  Esto
     ______________________________________________________________________________________________________62*
 *                                             Cap@


                      crear'a un sistema de ficheros en la partici'on nombrada_algo parecido a formatear
                      una partici'on bajo MS-DOS.

                      Tambi'en se preguntar'a por cualquier otra partici'on que quiera utilizar con Linux.
                      Por  ejemplo,  si  crea  una  partici'on  separada  para  /usr  (mirar  Secci'on  2.2.3*
 *),
                      podr'a especificar el nombre de la partici'on y la localizaci'on donde se vaya a montar
                      (como por ejemplo, en /usr o /usr/bin).

3                     <Precauci'on! Crear un sistema de ficheros en una partici'on destruir'a todos los datos
                      de esa partici'on. Asegurese de que no borra datos que quiera conservar.

                      Incluso  aunque  ya  haya  creado  sistemas  de  ficheros  usando  mke2fs  (ver
                      Secci'on 2.3.5), deber'a usar el elemento del men'u Target para especificar las parti-
                      ciones donde ser'a instalado el Linux.


     Source           Con 'esto se podr'a especificar el lugar desde donde se instalar'a la Slackware, sea
                      disquette, disco duro, o CD-ROM.

                      Si est'a instalando desde disco duro, se le preguntar'a en qu'e partici'on se encuentran
                      los archivos de la Slackware, y el tipo de partici'on de que se trata. Por ejemplo, si
                      tiene los ficheros de la Slackware en una partici'on MS-DOS, introduzca el nombre de
                      la partici'on (como por ejemplo /dev/hda1) y seleccione MS-DOS FAT como el tipo.
                      Despu'es se le preguntar'a en qu'e directorio dentro de esa partici'on se encuentran
                      los ficheros.  Por ejemplo, si tiene los ficheros de la Slackware almacenados en el
                      directorio C:\SLACK en su partici'on MS-DOS, introduzca


                           /slack


                      como el lugar de almacenamiento. Dese cuenta de que debe usar barras `/'y no `', en
                      el nombre del directorio.

                      Si est'a instalando desde CD-ROM, se le preguntar'a por el tipo de CD-ROM que
                      est'e usando y por el directorio dentro del CD-ROM en el que se encuentren los
                      ficheros.  Muchos CD-ROMs tienen los ficheros en el directorio /slakware, pero
                      'esto ya depende de la edici'on que tenga.

                      Si est'a instalando Slackware Professional,9 se utilizan dos directorios del CD-ROM.
                      slakware se usa para el sistema est'andar, que instalar'a los ficheros dir'ectamente
                      en el disco duro.  Y slackpro se usa para el sistema basado en CD-ROM, en el
                      que muchos de los ficheros se acceden dir'ectamente desde el CD-ROM. Esto puede
                      ahorrar espacio de disco, pero el acceso a muchos ficheros es notablemente m'as lento.
                      Otros distribuidores de la Slackware tambi'en permiten la posibilidad de ejecutar el
                      software desde el CD-ROM. De todos modos, si tiene espacio en disco disponible,
                      es recomendable no ejecutar la Slackware desde el propio CD-ROM. Generalmente
                      el rendimiento es m'as bajo.

                      Si intenta una instalaci'on desde disco duro o desde CD-ROM, la Slackware puede
                      advertirle de que hay un error de mount en 'este punto.  Esto generalmente es una
                      indicaci'on de que ha habido un problema accediendo al disco duro o al CD-ROM.
     _________________________________________
        9Slackware Professional es una versi'on de la Slackware distribuida por Morse Telecommunications.
______________________________________________________________________________________________________2.3.  I*
 *nstalaci'on del software de Linux @


                 Consulte la Secci'on 2.5.3 para m'as informaci'on si se encuentra con un mensaje de
                 este tipo.


Disk sets        Esta opci'on del men'u permite seleccionar los sets de discos que desee instalar. Como
                 m'inimo debe instalar el disk set A. Simplemente debe usar los cursores y la barra
                 espaciadora para seleccionar los sets de discos que quiera instalar.

                 Observe que seleccionar un set de discos no significa que vayan a ser instalados todos
                 los paquetes de ese set de discos; se le preguntar'a antes de instalar los paquetes
                 marcados como "optional" o "recommended" en el set de discos.


Install          Por fin, esta opci'on del men'u instalar'a el software en su sistema. Se le preguntar'a por
                 el modo de preguntas que se le har'an.  La mayor parte de los usuarios deber'an
                 seleccionar "normal". Para cada set de discos que haya seleccionado, los paquetes
                 marcados como "required" ser'an instalados, y se le preguntar'a cuando se vayan
                 a instalar los paquetes marcados "optional" y "recommended".  Si est'a instalando
                 desde disquette se le ir'a preguntando por los disquettes en sucesi'on para que los
                 vaya insertando.

                 Mientras  se  est'e  instalando  cada  paquete  aparecer'a  en  pantalla  una  breve
                 descripci'on de su contenido.  Salvo que tenga alg'un conocimiento de UNIX o de
                 Linux, muchas de estas descripciones no tendr'an mucho significado para Ud. Tome
                 nota de que paquetes est'an siendo instalados, de forma que sepa lo que contienen,
                 pero no se preocupe de intentar entender todo lo que aparezca en la pantalla.

                 El error m'as com'un con el que se puede encontrar es que no se localice un fichero
                 en un disquette, o un error de E/S al intentar leer del disquette.  Esto ser'a una
                 indicaci'on de que los ficheros del disquette pueden estar corrompidos o incompletos;
                 o que el disquette en s'i est'a mal.  Cualquier disquette que d'e ese error deber'a ser
                 reemplazado, y deber'a reinstalar el set de discos que contenga esos ficheros. Consulte
                 la Secci'on 2.5.3 para m'as ayuda.

                 Tambi'en es posible que obtenga errores al intentar acceder al CD-ROM; aseg'urese
                 de que el CD-ROM est'a limpio, sin marcas de dedos, etc.


Configure        Esta  opci'on  realiza  algunas  configuraciones  post-instalaci'on  en  el  sistema.   Se
                 tratar'an en la siguiente secci'on.

2.3.7    Creaci'on del disco de arranque o instalaci'on del LILO


Cada distribuci'on proporciona mecanismos para arrancar Linux cuando ya est'e instalado en su sis-
tema. En la mayor'ia de los casos se crear'a un disquete "boot" que contiene el n'ucleo de Linux con-
figurado para usar con su reci'en creado sistema de ficheros ra'iz. Para arrancar Linux, deber'a hacerlo
desde ese disquete y tras el arranque se pasar'a el control a su disco duro. En otras distribuciones,
el disco de arranque es el propio disquete de instalaci'on.

   La mayor'ia de las distribuciones le van a dar la opci'on de instalar LILO en su disco duro. LILO
es un programa que se instala en el registro maestro de arranque del disco, y est'a preparado para
______________________________________________________________________________________________________64     *
 *                                        Cap@


arrancar varios sistemas operativos, entre los que se incluyen MS-DOS y Linux, permiti'endole elegir
qu'e sistema quiere arrancar en cada momento.

    En el caso de la distribuci'on Slackware, la opci'on Configure del men'u setup le permitir'a tanto
crear un disquete de arranque como instalar LILO. Esas opciones deber'ian ser suficientemente auto-
explicativas. El men'u Configure tambi'en sirve para especificar el m'odem y el rat'on de que dispone,
as'i como su zona horaria.

    Con el fin de instalar LILO correctamente, necesita conocer bastante informaci'on acerca de la
configuraci'on de su disco_por ejemplo, qu'e particiones contiene cierto sistema operativo, c'omo
arrancar cada sistema operativo, etc. La mayor'ia de las distribuciones, cuando se instala LILO, tratan
de elegir la mejor configuraci'on para 'este. Aunque no es lo habitual, la instalaci'on automatizada de
LILO puede fallar, dejando el registro de arranque maestro de su disco inservible (aunque es dif'icil
que 'esto llegue a hacerle perder datos de su disco). En concreto, si utiliza el Boot Manager de OS/2,
usted no deber'a instalar LILO mediante el procedimiento autom'atico_para ello, habr'a que seguir
instrucciones especiales que le daremos m'as tarde.

    En muchos casos, lo mejor es usar un disquete de arranque, hasta que usted est'e en condiciones
de configurar LILO a mano.  Si usted es excepcionalmente confiado, puede seguir adelante con el
procedimiento autom'atico para instalar LILO si 'este forma parte de la distribuci'on.

    En el Cap'itulo 4 comentaremos en detalle c'omo configurar e instalar LILO para su configuraci'on
particular.

    Si todo fue bien, <Enhorabuena!  Acaba usted de instalar Linux en su sistema.  T'omese una
Coca-Cola Light o algo as'i_realmente se lo merece.

    En caso de que tuviese alg'un problema, la siguiente secci'on le describir'a los puntos "oscuros"
m'as habituales en las instalaciones de Linux, y c'omo resolverlos.
2.3.8     Otros procedimientos de instalaci'on


Algunas distribuciones proporcionan procedimientos de instalaci'on adicionales, permiti'endole con-
figurar diversos m'odulos como el de red TCP/IP, el sistema X Window, y otros. Si en su instalaci'on
se encontr'o con opciones de este tipo, puede que desee leer cap'itulos posteriores de este libro para
obtener m'as informaci'on acerca de c'omo configurar ese software. Si no, puede guardar esas opciones
de instalaci'on hasta que entienda perfectamente c'omo configurar el software.

    Hasta aqu'i, si algo falla, retroceda y mire a ver qu'e puede estar pasando. Es dif'icil que algo que
haya hecho mal ahora no pueda ser deshecho despu'es (toque madera, por si acaso).

2.4      Procedimientos post-instalaci'on



Despu'es de haber completado la instalaci'on de Linux, deber'ia de haber poco m'as que hacer antes de
que Ud. pueda comenzar a usar el sistema. En la mayor'ia de los casos, Ud. deber'ia poder arrancar
el sistema, entrar como root, y comenzar a explorar el sistema. (Cada distribuci'on tiene un m'etodo
ligeramente distinto de hacer esto.)
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


   Llegado este punto es una buena idea explicar c'omo rearrancar y apagar el sistema cuando lo
est'e usando. No deber'ia nunca rearrancar o apagar su sistema Linux_presionando_el_interruptor de
reset o con el viejo "Vulcan Never Pinch"_o sea, pulsando a la vez |_ctrl-alt-del_.|10Por supuesto,
tampoco deber'ia desconectar la corriente.  Como en la mayor'ia de sistemas UNIX, Linux lleva una
cache de disco en memoria, lo que aplaza la escritura de los datos. Es por ello que si Ud. rearranca
el sistema sin apagarlo "limpiamente", puede corromper datos en sus unidades, causando un da"no
impredecible.

   La forma m'as f'acil de apagar el sistema es usar el comando shutdown.  Como ejemplo, para
apagar y rearrancar el sistema de forma inmediata, use el siguiente comando como root:



      # shutdown -r now



Esto apagar'a limpiamente su sistema. La p'agina de manual de shutdown describe el resto de argu-
mentos disponibles en la l'inea de comandos.11

   Observe, sin embargo, que muchas distribuciones no proporcionan el comando shutdown en el
software de instalaci'on.  Esto significa que la primera vez que Ud.  rearranque_su_sistema_despu'es
de la instalaci'on, tendr'a que hacer uso de la combinaci'on de teclas |_ctrl-alt-del_.|Despu'es de esto,
deber'a usar siempre el comando shutdown.

   Despu'es de que haya tenido la oportunidad de explorar y usar el sistema, hay varias opciones
de configuraci'on que deber'ia revisar.  La primera es crear una cuenta de usuario para Ud.  mismo
(y, opcionalmente, para el resto de usuarios que podr'ian tener acceso al sistema).  La creaci'on de
cuentas de usuario se describe en la Secci'on 4.4. Generalmente, todo lo que Ud. tiene que hacer es
entrar como root, y ejecutar el programa adduser (algunas veces useradd).  'Este le ayudar'a por
medio de varias preguntas a crear una nueva cuenta de usuario.

   Si Ud. creo m'as de un sistema de archivos para Linux, o si est'a usando una partici'on de swap,
puede tener que editar el fichero /etc/fstab de forma que esos sistemas de archivo puedan estar
disponibles despu'es de rearrancar.  (Por ejemplo, si est'a utilizando un sistema de archivos aparte
para /usr, y ninguno de los ficheros que deber'ian estar en /usr parecen estar presentes, simplemente
necesita montar ese sistema de archivos). En la Secci'on 4.8 se describe este procedimiento. Observe
que la distribuci'on Slackware de Linux configura autom'aticamente sus sistemas de archivo y espacio
de swap en tiempo de instalaci'on, por lo que esto no suele ser necesario.

2.5     Resolviendo problemas



Casi todo el mundo se encuentra con alg'un tipo de pega o cuelgue cuando intenta instalar Linux
por primera vez. La mayor'ia de veces el problema se debe a una simple confusi'on. Otras veces, sin
embargo, puede ser algo m'as serio, como una equivocaci'on de uno de los desarrolladores, o un error
del programa.
_________________________________________          _______________
  10En la mayor'ia de sistemas Linux, sin embargo, |_ctrl-alt-del_ |provocar'a que el sistema se apague de fo*
 *rma

adecuada, como si Ud. hubiera usado el comando shutdown.
  11Use el comando man shutdown para ver la p'agina de manual de shutdown.
______________________________________________________________________________________________________66     *
 *                                        Cap@


    Esta secci'on describir'a algunos de los m'as comunes problemas de instalaci'on, y c'omo resolverlos.
Si su instalaci'on parece haber tenido 'exito, pero recibi'o mensajes de error inesperados durante la
misma, tambi'en puede encontrarlos descritos aqu'i.
2.5.1     Problemas con el arranque


Cuando se intenta arrancar con el floppy de arranque la primera vez, se pueden encontrar algunos
problemas. Dichos problemas se listan a continuaci'on. Observe que los siguientes no est'an relacion-
ados con el arranque del Linux una vez instalado.  Vea la secci'on 2.5.4 para obtener informaci'on
acerca de estos problemas.



    o Se produce un error en el floppy u otro dispositivo durante el arranque.

      El motivo m'as frecuente de esta clase de problemas es que el disquete est'e corrompido. Puede
      ser que el disquete est'e f'isicamente da"nado, en cuyo caso tendr'a que volverlo a preparar sobre
      un nuevo disquete, o bien que los datos fueran mal copiados al mismo, en cuyo caso debe
      verificarse si se consigui'o la imagen del disquete de arranque correctamente. En muchos casos,
      basta con volver a grabar la imagen sobre el floppy: repita todos los pasos e intente de nuevo.

      Si el disquete de arranque lo recibi'o de un distribuidor por correo, por ejemplo; y no puede
      volver a crear el disquete, contacte con el distribuidor para pedirle uno nuevo, pero solo despu'es
      de comprobar que 'este es el problema.


    o El sistema se "cuelga" durante el arranque o despu'es.

      Despu'es de que el disquete arranque, debe ver una serie de mensajes del n'ucleo, indic'andole
      qu'e dispositivos est'a detectando y configurando. Despu'es de esto, normalmente ver'a un prompt
      de login, que le permite iniciar la instalaci'on (en otras distribuciones se entra directamente en
      un programa de instalaci'on).  El sistema puede parecer "colgado" durante cualquiera de esos
      pasos. Sea paciente, la carga del disquete es lenta. Muchas veces el sistema no se ha bloqueado,
      simplemente necesita tiempo.  Verifique que no se usa ning'un dispositivo del sistema durante
      algunos minutos antes de estar seguros de que se ha bloqueado la m'aquina.


        1. Despu'es del prompt de LILO, el sistema debe cargar el n'ucleo desde el floppy.  Esto
           puede llevar varios segundos; y puede verse que est'a sucediendo pues la luz del floppy
           permanecer'a encendida.

        2. Mientras el n'ucleo arranca, se probar'an los dispositivos SCSI. Si su sistema tiene SCSI,
           el sistema se bloquear'a durante unos 15 segundos mientras se prueban esos dispositivos;
           y sucede normalmente despu'es de verse la l'inea

                lp_init:  lp1 exists (0), using polling driver

           en su pantalla.

        3. Una vez que el n'ucleo ha terminado de arrancar, se transfiere el control a los ficheros de
           arranque que hay en el disquete. Finalmente, se ver'a un prompt de entrada en el sistema,
           o bien se entrar'a en un programa de instalaci'on. Si se ve un prompt como

                Linux login:
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


           deber'a entonces entrar (normalmente como root o install_seg'un la distribuci'on que
           utilice).  Tras esto, el sistema puede tardar aun 20 o m'as segundos mientras el pro-
           grama de instalaci'on o el shell se carga desde el disquete. De nuevo, la luz del floppy se
           mantendr'a encendida. No crea que el sistema se ha bloqueado.


      Cualquier cosa de las comentadas m'as arriba puede ser la causa de su problema. Sin embargo,
      es posible que si sistema se "cuelgue" realmente durante el arranque, y eso puede deberse a
      varias cosas. En primer lugar, puede suceder que no tenga suficiente RAM para arrancar (vea
      el siguiente punto al respecto o desactive el disco RAM para liberar memoria).

      La causa de la mayor'ia de los "cuelgues" son las incompatibilidades del hardware.  En la
      secci'on 1.8 del cap'itulo anterior se present'o una visi'on general del hardware que soporta Linux.
      Aunque sus dispositivos est'en soportados, puede tener problemas con configuraciones de 'estos
      incompatibles que lleven su sistema al bloqueo.  Vea la secci'on 2.5.2, m'as adelante, para ver
      una discusi'on acerca de estas incompatibilidades.

   o  El sistema informa de errores por falta de memoria durante el arranque.

      Esto tiene que ver con la RAM que tiene. En sistemas con 4 megaoctetos o menos, puede tener
      problemas al intentar arrancar el disquete, o con los programas de instalaci'on. Esto se debe a
      que muchas distribuciones utilizan un disco RAM, que es un sistema de ficheros cargado en la
      memoria, para operaciones durante la instalaci'on. Por ejemplo, toda la imagen del disquete de
      arranque podr'ia ser cargada en el disco RAM, lo que supone ocupar m'as de un megaocteto de
      memoria.

      La soluci'on a este problema es desactivar la opci'on de disco RAM durante el arranque. Cada
      versi'on sigue un procedimiento diferente para hacer esto; en SLS, por ejemplo, se debe te-
      clear "floppy" en el prompt de LILO cuando se arranca el disco a1.  Vea los detalles de su
      distribuci'on en la documentaci'on incluida.

      Puede suceder que en lugar de un mensaje de error por falta de memoria, su sistema se bloquee
      durante el arranque.  Si esto sucede, y no le sirve ninguna recomendaci'on de las vistas en la
      secci'on anterior, pruebe a desactivar el disco RAM.

      Tenga en cuenta que Linux requiere por s'i mismo un m'inimo de 2 megabytes de RAM; y
      algunas distribuciones necesitan 4 o m'as.

   o  El sistema muestra un error como "permission denied" o "file not found" durante
      el arranque.

      Esto es se"nal de que su disquete de instalaci'on est'a mal. Si intenta arrancar con el disquete, y
      'este es correcto, no deber'ian salir errores de este tipo. Contacte con su distribuidor de Linux
      y trate de solucionar el problema, si es necesario obteniendo una nueva copia del disquete de
      instalaci'on.  Si usted cre'o por su cuenta el disco de arranque, pruebe a rehacerlo para ver si
      esto soluciona el problema.

   o  El sistema informa del error "VFS: Unable to mount root" cuando se est'a arran-
      cando.

      Este error indica que el sistema de ficheros ra'iz (que se debe encontrar en el disquete de
      arranque), no est'a. Puede ser que su disquete est'e mal o que no est'e arrancando el sistema de
      forma correcta.
______________________________________________________________________________________________________68     *
 *                                        Cap@


      Por ejemplo, en muchas distribuciones en CD-ROM, se necesita que tenga el CD en la unidad
      durante el arranque; adem'as la unidad debe estar encendida y preparada. Es posible tambi'en
      que el sistema no detecte su CD-ROM durante el arranque;  para m'as informaci'on, vea la
      secci'on 2.5.2.

      Si est'a seguro que ha seguido correctamente el procedimiento de arranque, puede ser que su
      disquete est'e corrupto. Es poco corriente, por lo que deben buscarse otras soluciones antes que
      intentar usar otro disquete o cinta.

2.5.2     Problemas con el hardware


El problema m'as habitual que surge cuando se arranca Linux es la incompatibilidad con el hardware.
Aunque todo su hardware est'e soportado en Linux, alg'un conflicto de las configuraciones puede
causar extra"nos resultados_sus dispositivos pueden no detectarse durante el arranque, o el sistema
puede bloquearse.

    Es importante aislar esos problemas si sospecha que puede ser el origen del mal funcionamiento.
En las siguientes secciones describiremos algunos problemas habituales, y c'omo resolverlos.



2.5.2.1    Aislando los problemas de hardware


Si se encuentra con un problema que cree que est'a relaccionado con el hardware, la primera cosa que
debe hacer es intentar aislar el problema. Esto significa eliminar todas las variables posibles y (por
lo general) ir desmontando, pieza-por-pieza, hasta que la pieza del hardware causante del problema
haya sido aislada.

    Esto no es tan aterrador como parece.  Basicamente, Ud.  deber'ia quitar todo el hardware que
no sea esencial de su sistema, y entonces determinar que dispositivo esta causando el problema_si
es posible reinsertando un dispositivo cada vez.  Esto quiere decir que Ud.  deber'ia quitar todo el
hardware excepto la controladora de discos y la tarjeta de video, y por supuesto el teclado. Incluso
aquellos dispositivos que parecen inofensivos, tales como controladores de rat'on pueden producirle
quebraderos de cabeza a menos que los considere no esenciales.

    Por ejemplo, digamos que el sistema se cuelga durante la secuencia de detecci'on de la tarjeta
Ethernet al arrancar. Ud. podr'ia suponer que hay un conflicto o problema con la tarjeta Ethernet
de su m'aquina. El modo r'apido y sencillo de averiguarlo es quitar la tarjeta Ethernet y arrancar de
nuevo.  Si todo va bien, entonces ya sabe que (a) Linux no soporta esa tarjeta Ethernet (vea en la
Secci'on 1.8 una lista de tarjetas compatibles), o bien (b) hay un conflicto de direcci'on o de IRQ con
la tarjeta.

    ">Conflicto de direcci'on o de IRQ?" >Que diablos significa eso?  Todos los dispositivos de su
m'aquina usan una IRQ, o Interrupt Request Line (L'inea de petici'on de interrupci'on), para decir
al sistema que necesitan que el sistema haga algo por ellos.  Puede interpretar una IRQ como una
cuerda de la que el dispositivo tira cuando necesita que el sistema se haga cargo de alguna petici'on
pendiente. Si hay m'as de un dispositivo tirando de la misma cuerda, el n'ucleo no podr'a determinar
a que dispositivo debe atender.
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


   Por eso, asegurese de que todos los dispositivos que tenga instalados est'en usando l'ineas IRQ
'unicas.  Por lo general la IRQ de un dispositivo puede establecerse por puentes en la tarjeta; lease
la documentaci'on del dispositivo en particular para m'as detalles. Algunos dispositivos no necesitan
del uso de una IRQ en absoluto, pero se sugiere que los configure para usar una si es posible (las
controladoras SCSI Seagate ST01 y ST02 son buenos ejemplos).


   En algunos casos, el n'ucleo que le proporciona la instalaci'on est'a preconfigurado para usar una
determinada IRQ para un dispositivo concreto. Por ejemplo, en algunas distribuciones de Linux, el
n'ucleo est'a preconfigurado para usar la IRQ 5 para la controladora SCSI TMC-950, la controladora de
CD-ROM Mitsumi, y el driver de rat'on tipo bus. Si Ud. quiere usar dos o m'as de estos dispositivos,
necesitar'a instalar primero Linux con uno solo de estos dispositivos habilitado, y entonces recompilar
el n'ucleo para cambiar la IRQ por defecto para uno de ellos. (L'ease el Cap'itulo 4 para informarse
sobre como recompilar el n'ucleo.)


   Otro 'area donde pueden surgir conflictos hardware es con los canales DMA (Direct Memory
Access - Acceso Directo a Memoria), direcciones E/S, y direcciones de memoria compartida. Todos
estos t'erminos describen mecanismos a trav'es de los cuales el sistema interact'ua con los dispositivos
hardware. Algunas tarjetas Ethernet, por ejemplo, utilizan una direcci'on de memoria compartida a
la vez que una IRQ para interactuar con el sistema.  Si alguna de 'estas est'a en conflicto con otros
dispositivos, entonces el sistema se puede comportar de modo inesperado.  Ud.  deber'ia ser cap'az
de cambiar el canal de DMA, direcci'on de E/S o memoria compartida en sus diversos dispositivos
con configuraciones de puentes (desafortunadamente, algunos dispositivos no permiten cambiar estas
configuraciones).


   La documentaci'on de sus diversos dispositivos hardware deber'ia especificar la IRQ, canal DMA,
direcci'on E/S, o direcci'on de memoria compartida que usan los dispositivos, y c'omo configurar-
los. De nuevo, la manera sencilla de acercarse a estos problemas es deshabilitar temporalmente los
dispositivos en conflicto hasta que Ud. tenga tiempo de determinar la causa del problema.


   La Tabla 2.2 es una lista de IRQs y canales DMA usados por varios dispositivos "standard" que se
encuentran en la mayoria de sistemas. Casi todos los sistemas tendr'an alguno de estos dispositivos,
asi que Ud. debe evitar poner la IRQ o DMA de otros dispositivos en conflicto con estos valores.



                     ____________________________________________________________
                     __Dispositivo_________________Direcci'on_E/S__IRQ____DMA____
                       ttyS0 (COM1)                3f8             4      n/a
                       ttyS1 (COM2)                2f8             3      n/a
                       ttyS2 (COM3)                3e8             4      n/a
                       ttyS3 (COM4)                2e8             3      n/a
                       lp0 (LPT1)                  378 - 37f       7      n/a
                       lp1 (LPT2)                  278 - 27f       5      n/a
                       fd0, fd1 (floppies 1 and 2) 3f0 - 3f7       6      2
                       fd2, fd3 (floppies 3 and 4) 370 - 377       10     3


                         Tabla 2.2: Configuraciones comunes de dispositivo
______________________________________________________________________________________________________70     *
 *                                        Cap@


2.5.2.2    Problemas reconociendo discos duros o controladoras


Cuando arranca Linux, Ud. deber'ia de ver una serie de mensajes en su pantalla, tales como:


      Console:  colour EGA+ 80x25, 8 virtual consoles
      Serial driver version 3.96 with no serial options enabled
      tty00 at 0x03f8 (irq = 4) is a 16450
      tty03 at 0x02e8 (irq = 3) is a 16550A
      lp_init:  lp1 exists (0), using polling driver
      . . .


En ellos el kernel est'a detectando los diversos dispositivos hardware presentes en su sistema.  En
algun momento, deber'ia aparecer la l'inea


      Partition check:


seguida de una lista de particiones reconocidas, por ejemplo:


      Partition check:
      hda:  hda1 hda2
      hdb:  hdb1 hdb2 hdb3


Si, por cualquier raz'on, sus unidades o particiones no son reconocidas, entonces no podr'a acceder a
ellas de ning'un modo.

    Hay varias cosas que pueden provocar que esto ocurra:


    o Disco duro o controladora no soportados. Si Ud. est'a usando una controladora de disco
      (IDE, SCSI, o cualquier otra) que no est'e soportada por Linux, el kernel no reconocer'a sus
      particiones a la hora de arrancar.


    o Unidad o controladora mal configurada. A pesar de que su controladora est'e soportada
      por Linux, puede no estar configurada correctamente. (Esto es especialmente problem'atico con
      controladoras SCSI; la mayoria de controladoras que no son SCSI deberian funcionar bien sin
      configuraci'on adicional).

      Consulte la documentaci'on de su disco duro y/o controladora para informacion sobre como
      resolver este tipo de problemas.  Precisamente, muchos discos duros necesitan tener una de-
      terminada combinaci'on de puentes si van a ser usados como discos "esclavo" (por ejemplo,
      como un segundo disco duro). La manera m'as sencilla de probar esto es arrancando con MS-
      DOS, o cualquier otro sistema operativo, que se sepa que funciona con su disco y controladora.
      Si es posible acceder a la unidad y a la controladora desde otro sistema operativo, entonces no
      se trata de un problema de configuraci'on del hardware.

      Vaya a la Secci'on 2.5.2.1, anterior, para obtener informaci'on sobre c'omo resolver posibles con-
      flictos de dispositivos, y la Secci'on 2.5.2.3, posterior, para informaci'on sobre c'omo configurar
      dispositivos SCSI.
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


   o  Controladora bien configurada,  pero no detectada.  Algunas controladoras SCSI sin
      BIOS necesitan que el usuario especifique la informaci'on sobre la controladora a la hora de
      arrancar.  La Secci'on 2.5.2.3, posterior, describe como forzar la detecci'on de hardware para
      estas controladoras.


   o  Geometr'ia del disco duro no reconocida. Algunos sistemas, como el IBM PS/ValuePoint,
      no almacenan la informaci'on de geometr'ia del disco duro en la memoria CMOS, donde Linux
      espera encontrarla.  Tambi'en, ciertas controladoras SCSI necesitan que se les diga d'onde en-
      contrar la geometr'ia de la unidad de modo que Linux reconozca el dise"no de su disco.

      La mayoria de distribuciones proporcionan una opci'on de arranque para especificar la geometria
      del disco.  En general, cuando se arranca el software de instalaci'on, se puede especificar la
      geometr'ia del disco en el prompt de arranque de LILO con un comando como:


           boot:  linux hd=<cylinders>,<heads>,<sectors>


      donde <cylinders>, <heads>, y <sectors> corresponden a el n'umero de cilindros, cabezas y sectores
      por pista para su disco duro.

      Despu'es de instalar el software de Linux, Ud.  podr'a instalar LILO, permitiendole arrancar
      desde el disco duro. En ese momento, puede especificar la geometr'ia del disco al procedimiento
      de instalaci'on de LILO, haciendo innecesario que tenga que introducirlo cada vez que arranque.
      Lease el Cap'itulo 4 para mayor informaci'on sobre LILO.
2.5.2.3   Problemas con controladoras y unidades SCSI


Aquii tiene algunos de los problemas m'as comunes con controladoras y unidades SCSI, tales como
CD-ROMs,  discos duros,  y unidades de cinta.  Si est'a teniendo problemas haciendo que Linux
reconozca su unidad o controladora, siga leyendo.

   El HOWTO SCSI de Linux (ver Ap'endice A) contiene mucha informaci'on 'util sobre unidades
SCSI adem'as de la aqu'i listada. A veces SCSI puede ser particularmente exigente de configurar.



   o  Una unidad SCSI se detecta en todos los ID's posibles. La causa de esto es que la unidad
      esta ligada a la misma direcci'on que la controladora. Es necesario cambiar la configuraci'on de
      los jumpers de modo que la unidad use una direcci'on distinta de la de la propia controladora.


   o  Linux reporta errores de detecci'on, incluso sabiendo que las unidades est'an libres
      de errores. Esto puede estar provocado por cables en mal estado, o malos terminadores. Si
      su bus SCSI no esta terminado en ambos extremos, Ud. puede tener errores accediendo a las
      unidades SCSI. Cuando tenga dudas, compruebe sus cables.


   o  Las unidades SCSI dan errores de timeout. Eso se produce generalmente por un conflicto
      con las IRQ, DMA o direcciones de unidad. Compruebe tambi'en que las interrupciones est'en
      correctamente activadas en su controladora.


   o  Las controladoras SCSI que utilizan BIOS no son detectadas. La detecci'on de contro-
      ladoras que usan BIOS fallar'a si la BIOS est'a desactivada, o si la "firma"de su controladora
______________________________________________________________________________________________________72     *
 *                                        Cap@


      no es reconocida por el kernel.  Lease el Linux SCSI HOWTO para mayor informaci'on sobre
      esto.


    o Las controladoras que utilizan E/S mapeada en memoria no funcionan. Esto sucede
      cuando los puertos de E/S mapeados en memoria est'an incorrectamente cacheados.  Puede
      marcar el espacio de direccionamiento de la tarjeta como no cacheable en las opciones de
      XCMOS, o bien deshabilite la cache totalmente.


    o Cuando particiona, se obtiene un aviso de "cylinders > 1024", o le es imposible
      arrancar desde una partici'on que utilice cilindros numerados por encima de 1023.
      La BIOS limita el n'umero de cilindros a 1024, y cualquier partici'on que use cilindros numerados
      por encima de 'estos no ser'a accesible desde la BIOS. Por lo que respecta al Linux, esto solo
      afecta al arranque; una vez que el sistema ha arrancado, deber'ia poder acceder a la partici'on.
      Sus opciones son arrancar, bien desde un disquete de arranque, o bien desde una partici'on que
      utilice los cilindros por debajo del 1024.  Lea la Secci'on 2.3.7 para obtener informaci'on sobre
      c'omo crear un disquete de arranque o instalar LILO.


    o La unidad CD-ROM u otras unidades de informaci'on removible no se reconocen
      a la hora de arrancar. Pruebe a arrancar con un CD-ROM (o disco) en la unidad. Esto es
      necesario en algunos dispositivos.



    Si no se reconoce su controladora SCSI, puede que tenga que forzar la detecci'on del hardware
en el momento del arranque. Esto es especialmente importante para controladoras SCSI sin BIOS.
La mayor'ia de las distribuciones le permiten especificar la IRQ de la controladora y la direcci'on de
memoria compartida cuando arranca con los discos de instalaci'on. Por ejemplo, si Ud. est'a usando
una controladora TMC-8xx, deber'a poder introducir


      boot:  linux tmx8xx=<interrupci'on>,<direcci'on-de-memoria>


en el prompt de arranque de LILO, donde <interrupci'on> es la IRQ de la controladora, y <direcci'on-
de-memoria> es la direcci'on de memoria compartida. El que Ud. pueda o no hacer esto depende de
la distribuci'on de Linux que est'e usando; consulte su documentaci'on para m'as detalle.
2.5.3     Problemas con la instalaci'on del software


Con un poco de suerte, se puede instalar el software de Linux sin problemas. Los 'unicos que suelen
aparecer se relacionan con los errores en los disquetes de instalaci'on o con el espacio disponible en
los sistemas de ficheros. A continuaci'on se relaciona una lista de estos problemas.



    o El sistema muestra errores como "Read error", "file not found" durante la in-
      stalaci'on del software.  Esto es indicativo de problemas en los disquetes o cintas de in-
      stalaci'on. Si se instala desde disquetes, tenga en cuenta que los errores en 'estos son posibles.
      Aseg'urese de que est'a utilizando disquetes nuevos o reci'en formateados.  Muchas distribu-
      ciones permiten instalar el software desde una partici'on DOS del disco duro.  Esto puede ser
      m'as seguro y m'as r'apido que usar directamente los disquetes.
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


      Si utiliza un CD-ROM, aseg'urese de que el disco no tiene rayaduras o suciedad que pudieran
      ser causa de errores de lectura.

      La causa del problema puede estar tambi'en en un formato incorrecto de los disquetes.  Nor-
      malmente se exige que los disquetes est'en en formato MS-DOS de alta densidad (a excepci'on
      del disquete de arranque, que suele tener su propio formato casi siempre).  Si todo esto falla,
      intente obtener nuevos disquetes, bien sea pidi'endolos a su distribuidor o construy'endolos usted
      mismo.


   o  El sistema da errores tipo "tar:   read error" o "gzip:   not in gzip format".

      Este problema suele deberse a errores en los ficheros o en los propios discos o cintas. En otras
      palabras, sus disquetes pueden no tener errores, pero s'i los datos contenidos en ellos.  Por
      ejemplo, un error com'un es obtener los ficheros por las redes con modo de transferencia ASCII
      en lugar de binario, lo que hace inservibles los ficheros obtenidos.


   o  El sistema da errores como "device full" durante la instalaci'on.

      Esto es un signo claro de que se est'a intentando instalar Linux sin espacio de disco suficiente.
      En la mayor'ia de las distribuciones, no puede esperarse que el sistema funcione abortando el
      proceso de instalaci'on.

      La soluci'on habitual es rehacer los sistemas de ficheros (mediante el comando mke2fs) lo que
      borrar'a el software parcialmente instalado. Ahora puede reintentar la instalaci'on, seleccionando
      menos componentes para instalar.  En otros casos, puede necesitarse comenzar desde cero,
      rehaciendo particiones y sistemas de ficheros.


   o  El sistema informa de errores como "read_intr:   0x10" durante los accesos al disco
      duro.

      Esto suele deberse a la presencia de bloques con errores en el disco. Sin embargo, si se reciben
      estos errores al utilizar mkswap o mke2fs, el sistema puede estar teniendo problemas para
      acceder a su controlador.  Puede ser tanto un problema del hardware (vea la secci'on 2.5.2) o
      una incorrecta especificaci'on de la geometr'ia del disco. Si utiliz'o la opci'on


           hd=<cylinders>,<heads>,<sectors>


      en el momento de arrancar para especificar la geometr'ia de su disco, y lo hizo incorrectamente,
      puede encontrarse con estos problemas. Tambi'en puede suceder si la informaci'on de la CMOS
      acerca de la geometr'ia del disco no es correcta.


   o  El sistema da errores como "file not found" o "permission denied".

      Este problema puede suceder si no est'an disponibles todos los ficheros necesarios en los dis-
      quetes de instalaci'on (vea el p'arrafo siguiente) o si hay problemas con los permisos sobre dichos
      ficheros.  Por ejemplo, en algunas distribuciones de Linux existen bugs r'apidamente solucion-
      ados en posteriores versiones, relacionados con los permisos.  Son errores poco frecuentes.  Si
      sospecha que su distribuci'on tiene bugs, y est'a seguro de no haber hecho nada mal, contacte
      con el fabricante de la distribuci'on para informarle del bug.
______________________________________________________________________________________________________74     *
 *                                        Cap@


    Si usted tiene otros extra"nos problemas durante la instalaci'on de Linux (especialmente si el
software lo ha obtenido v'ia red o m'odem), aseg'urese de haber obtenido todos los ficheros necesarios.
Por ejemplo, hay gente que utiliza el comando de FTP



      mget *.*



cuando obtiene el software v'ia FTP. En realidad, este comando solo obtiene todos los ficheros que
contengan un "." en el nombre, y no todos lo tienen. El comando correcto a utilizar ser'a



      mget *



    La mejor opci'on es retroceder sobre sus pasos cuando algo vaya mal.  Puede creer haber hecho
todo correctamente, cuando en realidad olvid'o alg'un paso de apariencia simple pero importante. En
muchos casos, bastar'a con volver a instalar (u obtener) el software para resolver el problema.

    Tambi'en, si Linux bloquea su ordenador durante la instalaci'on de forma inesperada, puede haber
alg'un problema con el hardware. Vea la secci'on 2.5.2 para m'as detalle.

2.5.4     Problemas despu'es de instalar Linux


Usted se ha pasado una tarde instalando Linux.  Con el fin de dejar espacio para 'este, redujo las
particiones de MS-DOS u OS/2 y borr'o con lagrimas en los ojos sus copias de SimCity y Wing
Commander. Despu'es arranc'o el sistema, y no pas'o nada. O, por el contrario, s'i pas'o algo, pero no
lo que deber'ia pasar. >Qu'e hace usted ahora?

    En la secci'on 2.5.1 hemos cubierto los problemas que pueden surgir cuando se arranca Linux desde
los disquetes de la distribuci'on_aqu'i suelen concentrarse la mayor'ia de los problemas.  Adem'as,
usted puede ser v'ictima de alguno de los siguientes problemas.
2.5.4.1    Problemas al arrancar Linux desde el floppy


Si utiliza un disquete para arrancar Linux, puede ser que necesite indicar cu'al es su partici'on ra'iz de
Linux en el momento de arrancar.  Esto es especialmente cierto si utiliza el disquete de instalaci'on
original, y no un disquete personalizado durante la instalaci'on.
                                                                            ________    _______
    Mientras  arranca  con  el  disquete,  mantenga  pulsadas_ las  teclas  |_shift_|o  |_ctrl_|.   Esto  de-
ber'a presentarle un men'u de arranque; pulse la tecla |_tab_|para ver una lista de opciones disponibles.
Por ejemplo, en muchas distribuciones se le permitir'a teclear



      boot:  linux root=<partition>



en el men'u de arranque, donde <partition> es el nombre de la partici'on ra'iz de Linux, como /dev/hda2.
Consulte la documentaci'on de su distribuci'on para m'as detalles.
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


2.5.4.2   Problemas al arrancar Linux desde el disco duro


Si opt'o por instalar LILO, en lugar de crear un disquete de arranque, debe poderse arrancar Linux
desde el disco duro. Sin embargo, el procedimiento autom'atico de instalaci'on de LILO que muchas
distribuciones tienen no siempre es perfecto.  Puede tener informaci'on incorrecta acerca de su es-
quema de particiones, en cuyo caso puede que tenga que reinstalar LILO para dejarlo todo correcto.
La instalaci'on de LILO se trata en el cap'itulo 4.



   o  El sistema da el mensaje "Drive not bootable---Please insert system disk."  Se
      obtiene este error cuando el registro maestro de arranque del disco duro (MBR) est'a mal por
      alguna causa. Normalmente, el resto de la informaci'on del disco estar'a intacta. Puede entonces
      suceder:



        1. Mientras se hacen las particiones mediante fdisk, puede haberse borrado la partici'on
           marcada como "activa". MS-DOS y otros sistemas operativos intentan arrancar desde la
           partici'on "activa" (esto a Linux le da igual).  Puede entonces arrancar MS-DOS desde
           un disquete y ejecutar el programa FDISK para poner el flag de activo a su partici'on de
           MS-DOS.

           Otro comando que se puede intentar (con versiones de MS-DOS iguales o superiores a la
           5.0) es

               FDISK /MBR

           Este comando intentar'a reconstruir el registro maestro de arranque del disco (MBR)
           para arrancar MS-DOS, borrando a LILO. Si no va a tener MS-DOS en su disco duro,
           necesitar'a arrancar despu'es Linux desde un disquete e intentar instalar LILO de nuevo.

        2. Si cre'o particiones para MS-DOS utilizando la versi'on de fdisk para Linux, puede ob-
           tenerse este error. Las particiones de MS-DOS solo deben crearse utilizando el comando
           FDISK de MS-DOS. (Esto afecta tambi'en a otros sistemas operativos.) La mejor soluci'on
           es empezar desde el principio y reparticionar los discos correctamente, o simplemente
           borrar y rehacer particiones utilizando la versi'on apropiada de fdisk.

        3. El procedimiento de instalaci'on de LILO puede no haber ido bien.  En este caso, debe
           arrancarse Linux desde un disquete (si lo tiene) o desde el medio de arranque original.
           En cualquiera de los dos casos deber'ian proporcionarse opciones_para_especificar_la_par-
           tici'on ra'iz de Linux_para arrancar. Mantenga pulsada la tecla |_shift_|o |_ctrl_|durante el
           arranque y pulse |_tab_|en el men'u de arranque para ver las opciones.



   o  Cuando se arranca desde el disco duro,  MS-DOS (u otro) arranca en lugar de
      hacerlo Linux. En primer lugar, aseg'urese de que instal'o LILO mientras instalaba el software
      de Linux. Si no, el sistema arrancar'a MS-DOS (u otro) cuando intente arrancar desde el disco
      duro. Para arrancar Linux desde el disco duro, tiene que instalar LILO (vea el cap'itulo 4).

      Por otro lado, si usted instal'o LILO, pero el sistema operativo que arranca autom'aticamente
      es otro que no sea Linux, es porque lo ha configurado para arrancar_otro_sistema_operativo por__
      defecto. Mientras arranca el sistema, puede pulsar las teclas |_shift_|o |_ctrl_|, y luego |_tab_|en
______________________________________________________________________________________________________76     *
 *                                        Cap@


      el prompt de arranque para ver una lista de posibles sistemas operativos para arrancar; selec-
      cione la opci'on apropiada (normalmente etiquetada con "Linux") para arrancar este sistema
      operativo.

      Si desea que Linux sea el sistema que entra por defecto, necesitar'a reinstalar LILO. Vea el
      cap'itulo 4.

      Tambi'en es posible que intentara instalar LILO, pero fallara la instalaci'on por alg'un motivo.
      Repase lo visto anteriormente.



2.5.4.3    Problemas al entrar en Linux


Despu'es de arrancar Linux, debe verse un prompt de login, como:



      linux login:



En este punto, la documentaci'on de su distribuci'on le dir'a lo que hay que hacer. En muchos casos,
hay que entrar como root sin password.  Otros posibles nombres de usuario iniciales son guest o
test.

    Casi siempre no se requieren passwords en los logins iniciales. Sin embargo, si se le pide password,
puede ser un problema. Primero, pruebe a introducir como password el mismo nombre del usuario
(root, guest...).

    Si simplemente no puede entrar, consulte la documentaci'on de su distribuci'on.  El nombre de
usuario y password a utilizar puede estar escondido ah'i. Tambi'en puede hab'ersele dado durante la
instalaci'on o puede estar delante justo del prompt de login.

    Una causa de esto es una incorrecta instalaci'on de los ficheros de inicializaci'on del sistema.  Si
este es el caso, habr'a que reinstalar (al menos parte de) el software de Linux, o arrancar desde un
disquete de instalaci'on y resolver el problema a mano_vea el cap'itulo 4 para m'as detalles.



2.5.4.4    Problemas utilizando el sistema


Si consigue entrar en el sistema, deber'a ver un prompt de shell (como "#" o "$") y podr'a navegar
felizmente por su sistema. Sin embargo, existen todav'ia algunos posibles problemas.

    El m'as habitual sucede con los permisos sobre ficheros o directorios, que puede originar un
mensaje de error como



      Shell-init:  permission denied



tras entrar en el sistema (tambi'en, durante su sesi'on en el mismo puede ver el mensaje "permission
denied". En cualquier caso indica que hay problemas con los permisos en ficheros o directorios).

    En muchos casos, basta con utilizar el comando chmod para corregir los permisos de los ficheros
y directorios.  Por ejemplo, en algunas distribuciones de Linux se pone (incorrectamente) el modo
0644 al directorio ra'iz (/). La correcci'on ser'ia teclear el comando
______________________________________________________________________________________________________2.5.  R*
 *esolviendo problemas              @


      # chmod 755 /


desde root. Sin embargo, para poder ejecutar este comando, puede necesitar arrancar desde el floppy
y montar el sistema de ficheros ra'iz a mano, lo que puede ser una dif'icil tarea para los reci'en llegados.

   Conforme utilice el sistema, se encontrar'a lugares donde los permisos puestos a ficheros y dir-
ectorios son incorrectos, o el software no trabaja como se esperaba. <Bienvenido entonces al mundo
de Linux! Mientras que la mayor parte de las distribuciones casi no dan problemas, lo cierto es que
muy pocas son perfectas.  No queremos cubrir todos esos problemas aqu'i.  En su lugar, a lo largo
del libro le ayudaremos a resolver muchos de estos problemas ense"n'andole c'omo encontrar y corregir
por s'i mismo los errores. En el cap'itulo 1 ya comentamos en parte esta filosof'ia. En el cap'itulo 4, le
daremos consejos para corregir muchos de esos problemas con la configuraci'on.
______________________________________________________________________________________________________78     *
 *                                        Cap@





Cap'itulo  3
Tutorial  de  Linux

3.1     Introducci'on

Los nuevos usuarios de UNIX y Linux pueden estar un poco intimidados por el tama"no y aparente
complejidad del sistema que tienen ante si.  Hay muchos buenos libros sobre el uso de UNIX para
todos los niveles, desde novatos a expertos. Pero ninguno de estos libros cubre especificamente una
introducci'on al uso de Linux. Mientras el 95% del uso de Linux es exactamente como cualquier otro
UNIX, la forma m'as clara de comenzar con su nuevo sistema es un tutorial a medida para Linux.
He aqu'i ese tutorial.



   Este cap'itulo no presentar'a gran cantidad de detalles o cubrir'a temas muy avanzados. Sino que
est'a pensado para permitir al nuevo usuario de Linux comenzar a usar el sistema y situarlo en una
posici'on en la que 'el o ella puedan leer libros m'as generales sobre UNIX y entender las diferencias
b'asicas entre otros sistemas UNIX y Linux.



   Se va a presuponer muy poco, excepto quiz'a alguna familiaridad con los ordenadores personales
y MS-DOS. Pero incluso si no es un usuario de MS-DOS, deber'ia ser capaz de entender cualquier
cosa de las que hablemos.  A primera vista, UNIX parece como MS-DOS (despu'es de todo, partes
de MS-DOS fueron tomadas de CP/M, el cual fu'e a su vez inspirado en UNIX). Pero, solo las
caracter'isticas superficiales de UNIX se parecen a MS-DOS. Incluso si es completamente nuevo en
el mundo de los PC, este tutorial deber'ia serle de ayuda.



   Y, antes de comenzar:  No tenga miedo de experimentar.  El sistema no le morder'a.  No puede
destruir nada trabajando con el sistema. UNIX tiene ciertos sistemas de seguridad para evitar que
usuarios 'normales' (del tipo que suponemos que es usted) da"nen ficheros esenciales para el sistema.
Incluso si ocurre el peor de los casos que es que borre todos sus ficheros, tendr'a que volver atr'as y
reinstalar el sistema, pero incluso en ese caso, no hay nada que perder.


                                                 79
______________________________________________________________________________________________________80     *
 *                                           @


3.2      Conceptos b'asicos de UNIX



UNIX es un sistema operativo multitarea y multiusuario. Esto significa que puede haber m'as de una
persona usando un ordenador a la vez, cada uno de ellos ejecutando a su vez diferentes aplicaciones.
(Esto difiere de MS-DOS, donde solo una persona puede usar el sistema en un momento dado).
Bajo UNIX, para que los usuarios puedan identificarse en el sistema, deben presentarse  (log
in), proceso que consta de dos pasos:  Introducir el nombre de usuario (login) (el nombre con
que ser'a identificado por el sistema), y una palabra  de  paso  (password), la cual es su llave
personal secreta para entrar en la cuenta.  Como solo usted conoce su palabra de paso, nadie m'as
podr'a presentarse en el sistema con su nombre de usuario.

    En los sistemas UNIX tradicionales, el administrador del sistema asignar'a el nombre de usuario
y una palabra de paso inicial en el momento de crear la cuenta de usuario. Como usted es el admin-
istrador del sistema, debe configurar su propia cuenta antes de poder presentarse_ver Secci'on 3.2.1
m'as adelante. Para el resto de las discusiones, usaremos el nombre de usuario "larry".

    Adem'as, cada sistema UNIX tiene un nombre del sistema (hostname) asignado. Este "host-
name" le da nombre a la m'aquina, adem'as de car'acter y encanto.  El nombre del sistema es usado
para identificar m'aquinas en una red, pero incluso aunque la m'aquina no est'e en red, deber'ia tener
su nombre.  En la Secci'on 4.10.2 veremos como inicializar el nombre de la m'aquina.  En nuestros
ejemplos, el nombre del sistema ser'a "mousehouse"
3.2.1     Creaci'on de una cuenta


Antes de poder usar el sistema, deber'a configurarse una cuenta de usuario.  Esto es necesario,
porque no es buena idea usar la cuenta de root para los usos normales. La cuenta de root deber'ia
reservarse para el uso de comandos privilegiados y para el mantenimiento del sistema, como se
ver'a en la Secci'on 4.1.

    Para crear su propia cuenta, necesita entrar en la cuenta de root y usar las 'ordenes useradd o
adduser. Ver la Secci'on 4.4 para informaci'on sobre este procedimiento.
3.2.2     Presentaci'on en el sistema (loggin in)


En el momento de presentarse en el sistema, ver'a la siguiente l'inea de comandos en la pantalla:



      mousehouse login:


                                                   _________
    Ahora, introduzca su nombre de usuario y pulse |_Return_|.  Nuestro heroe larry, teclear'ia lo
siguiente:



      mousehouse login:  larry
      Password:
______________________________________________________________________________________________________3.2.  C*
 *onceptos b'asicos de UNIX         @


   Ahora introduzca la palabra de paso.  Esta no ser'a mostrada en la pantalla conforme se va
tecleeando, por lo que debe teclear cuidadosamente. Si introduce una palabra de paso incorrecta, se
mostrar'a el siguiente mensaje


      Login incorrect


y deber'a intentarlo de nuevo.

   Una vez que ha introducido correctamente el nombre de usuario y la palabra de paso, est'a ofi-
cialmente "presentado" en el sistema y libre para comenzar a trabajar.
3.2.3    Consolas virtuales


La consola del sistema es el monitor y teclado conectado directamente al sistema.  (Como UNIX
es un sistema operativo multiusuario, puede tener otros terminales conectados a puertos serie del
sistema, pero estos no ser'an la consola). Linux, como otras versiones de UNIX, porporciona acceso
a consolas virtuales (o VC's), las cuales le permitir'an tener m'as de una sesi'on de trabajo activa
desde la consola a la vez.
                                                                                  _________
   Para demostrar esto, entre en su sistema (como hemos visto antes). Ahora pulse |_alt-F2_|. Deber'ia
ver la pregunta login: de nuevo. Est'a viendo la segunda_consola_virtual_ha entrado en el sistema
por la primera. Para volver a la primera VC, pulse |_alt-F1_|. Voila!  ha vuelto a la primera sesi'on.

   Un sistema_Linux_recien_instalado_probablemente le permita acceder a las primeras cuatro VC's,
usando |_alt-F1_|a |_alt-F4_|. Pero es posible habilitar hasta 12 VC's_ una por cada tecla de funci'on
del teclado. Como puede ver, el uso de VC's es muy potente_ puede estar trabajando en diferentes
VC's a la vez.

   Mientras que el uso de VC's es algo limitado (despu'es de todo, solo puede mirar un VC cada vez),
esto deber'ia darle una idea de las capacidades multiusuario del sistema.  Mientras est'a trabajando
en el VC #1, puede conmutar al VC #2 y comenzar a trabajar en otra cosa.
3.2.4    Int'erpretes de comandos y comandos


En la mayor'ia de las exploraciones en el mundo de UNIX, estar'a hablando con el sistema a trav'es del
uso de un int'erprete de comandos. Un int'erprete de comandos es simplemente un programa que
toma la entrada del usuario (p.ej. las 'ordenes que teclea) y las traduce a instrucciones. Esto puede
ser comparado con el COMMAND.COM de MS-DOS, el cual efectua esencialmente las misma tarea. El
int'erprete de comandos es solo uno de los interfaces con UNIX. Hay muchos interfaces posibles_
como el sistema X Windows, el cual le permite ejecutar comandos usando el rat'on y el teclado.

   Tan pronto como entra en el sistema, el sistema arranca un int'erprete de comandos y Ud.  ya
puede teclear 'ordenes al sistema. Veamos un ejemplo r'apido. Aqu'i, Larry entra en el sistema y es
situado en el int'erprete de comandos


      mousehouse login:  larry
      Password:  larry's password
______________________________________________________________________________________________________82     *
 *                                           @


      Welcome to Mousehouse!


      /home/larry#



"/home/larry#" es el "prompt" del int'erprete de comandos, indicando que est'a listo para recibir
'ordenes. Tratemos de decirle al sistema que haga algo interesante:



      /home/larry# make love
      make:  *** No way to make target `love'.  Stop.
      /home/larry#



    Bien, como resulta que make es el nombre de un programa ya existente en el sistema, el int'erprete
de comandos lo ejecuta. (Desafortunadamente, el sistema no est'a siendo muy amigable).

    Esto nos lleva a una cuesti'on importante:  >Que son 'ordenes?  >Que ocurre cuando tecleamos
"make love"?.  La primera palabra de la orden, "make", es el nombre de la orden a ejecutar.  El
resto de la orden es tomado como argumentos de la orden. Ejemplos:



      /home/larry# cp foo bar



    Aqu'i, el nombre de la orden es "cp", y los argumentos son "foo" y "bar".

    Cuando teclea una orden, el int'erprete de comandos hace varias cosas.  Primero de todo, busca
el nombre de la orden y comprueba si es una orden interna.  (Es decir, una orden que el propio
int'erprete de comandos sabe ejecutar por si mismo. Hay bastantes 'ordenes de ese tipo que veremos
m'as adelante).  El int'erprete de comandos tambi'en comprueba si la orden es un "alias" o nombre
sustitutorio de otra orden. Si no se cumple ninguno de estos casos, el int'erprete de comandos busca
el programa y lo ejecuta pas'andole los argumentos especificados en la l'inea de comandos.

    En nuestro ejemplo, el int'erprete de comandos busca el programa llamado make y lo ejecuta con
el argumento love. make es un programa usado a menudo para compilar programas grandes, y toma
como argumentos el nombre de un "objetivo" a compilar. En el caso de "make love", ordenamos a
make que compile el objetivo love. Como make no puede encontrar un objetivo de ese nombre, falla
enviando un mensaje de error y volviendo al int'erprete de comandos.

    >Qu'e ocurre si tecleamos una orden y el int'erprete de comandos no puede encontrar el programa
de ese nombre?. Bien, prob'emoslo:



      /home/larry# eat dirt
      eat:  command not found
      /home/larry#



Bastante simple, si no se puede encontrar el programa con el nombre dado en la orden (aqu'i "eat"),
se muestra un mensaje de error que deber'ia de ser autoexplicativo. A menudo ver'a este mensaje de
error si se equivoca al teclear una orden (por ejemplo, si huviese tecleado "mkae love" en lugar de
"make love".
______________________________________________________________________________________________________3.2.  C*
 *onceptos b'asicos de UNIX         @


3.2.5    Salida del sistema


Antes de ahondar m'as, deber'iamos ver como salir del sistema. Desde la l'inea de 'odenes usaremos la
orden


      /home/larry# exit


   para salir. Hay otras formas, pero esta es la m'as f'acil.
3.2.6    Cambiando la palabra de paso


Tambi'en debe asegurarse de la forma de cambiar su palabra de paso. La orden passwd le pedir'a su
palabra de paso vieja y la nueva.  Volver'a a pedir una segunda vez la nueva para validarla.  Tenga
cuidado de no olvidar su palabra de paso_ si eso ocurre, deber'a pedirle al administrador del sistema
que la modifique por usted. (Si es el administrador del sistema, vea la Secci'on 4.4.)
3.2.7    Ficheros y directorios


Bajo la mayor'ia de los sistemas operativos (UNIX incluido), existe el concepto de fichero, el cual
es un conjunto de informaci'on al que se le ha asignado un nombre (llamado nombre del fichero).
Ejemplos de fichero son un mensaje de correo, o un programa que puede ser ejecutado. Esencialmente,
cualquier cosa salvada en el disco es guardada en un fichero individual.

   Los ficheros son identificados por sus nombres. Por ejemplo, el fichero que contiene su historial
podr'ia ser salvado con el nombre history-paper. Estos nombres usualmente identifican el fichero y
su contenido de alguna forma significativa para usted. No hay un formato est'andad para los nombres
de los ficheros como lo hay en MS-DOS y en otros sistemas operativos; en general estos pueden
contener cualquier car'acter (excepto / _ ver la discusi'on sobre "pathnames" (rutas de ficheros) m'as
adelante), y est'an limitados a 256 car'acteres de longitud.

   Con el concepto de fichero aparece el concepto de directorio.  Un directorio es simplemente
una colecci'on de ficheros. Puede ser considerado como una "carpeta" que contiene muchos ficheros
diferentes.  Los directorios tambi'en tienen nombre con el que los podemos identificar.  Adem'as, los
directorios mantienen una estructura de 'arbol; es decir, directorios pueden contener otros directorios.

   Un fichero puede ser referenciado por su nombre con camino, el cual est'a constituido por su
nombre, antecedido por el nombre del directorio que lo contiene. Por ejemplo, supongamos que Larry
tiene un directorio de nombre papers que contiene tres ficheros:  history-final, english-lit y
masters-thesis. (Cada uno de los tres ficheros contiene informaci'on sobre tres de los proyectos en
los que Larry est'a trabajando).  Para referirse al fichero english-lit, Larry puede especificar su
camino:


      papers/english-lit


   Como puede ver, el directorio y el nombre del fichero van separados por un car'acter /. Por esta
raz'on, los nombres de fichero no pueden contener este car'acter. Los usuarios de MS-DOS encontrar'an
esta convenci'on familiar, aunque en el mundo MS-DOS se usa el car'acter \).
______________________________________________________________________________________________________84     *
 *                                           @


    Como hemos mencionado, los directorios pueden anidarse uno dentro de otro.  Por ejemplo,
supongamos que Larry tiene otro directorio dentro de papers llamado cheat-sheet. El camino de
este fichero ser'ia


      papers/notes/cheat-sheet


    Por lo tanto, el camino realmente es la "ruta" que se debe tomar para localizar a un fichero. El
directorio sobre un subdirectorio dado es conocido como el directorio padre.  Aqu'i, el directorio
papers es el padre del directorio notes.
3.2.8     Ela'rbol de directorios


La mayor'ia de los sistemas UNIX tienen una distribuci'on de ficheros est'andard, de forma que recursos
y ficheros puedan ser f'acilmente localizados. Esta distribuci'on forma el 'arbol de directorios, el cual
comienza en el directorio "/", tambi'en conocido como "directorio raiz".  Directamente por debajo
de / hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. Estos a su vez
contienen otros directorios con ficheros de configuraci'on del sistema, programas, etc.

    En particular, cada usuario tiene un directorio "home". Este es el directorio en el que el usuario
guardar'a sus ficheros.  En los ejemplos anteriores, todos los ficheros de Larry (como cheat-sheer
y history-final) estaban contenidos en el directorio home de Larry.  Usualmente, los directorios
home de los usuarios cuelgan de /home y son nombrados con el nombre del usuario al que pertenecen.
Por lo tanto, el directorio "home" de Larry es /home/larry.

    En la Figura 3.2.8 se muestra un 'arbol de directorio de ejemplo. Este deber'ia darle una idea de
como est'a organizado en su sistema el 'arbol de directorios.
3.2.9     Directorio de trabajo actual


En cualquier momento, las 'ordenes que teclee al int'erprete de comandos son dadas en t'erminos
de su directorio de trabajo actual.  Puede pensar en su directorio actual de trabajo como en
el directorio en el que actualmente est'a "situado".  Cuando entra en el sistema, su directorio de
trabajo se inicializa a su directorio home_/home/larry en nuestro caso.  En cualquier momento
que referencie a un fichero, puede hacerlo en relaci'on a su directorio de trabajo actual, en lugar de
especificar el camino completo del fichero.

    Vemos un ejemplo. Larry tiene el directorio papers, y papers contiene el fichero history-final.
Si Larry quiere echar un vistazo a ese fichero, puede usar la orden


      /home/larry# more /home/larry/papers/history-final


La orden more simplemente muestra el fichero, pantalla a pantalla.  Pero, como el directorio de
trabajo actual de Larry es /home/larry, podr'ia haberse referido al fichero de forma relativa a su
directorio de trabajo actual. La orden ser'ia


      /home/larry# more papers/history-final
______________________________________________________________________________________________________3.2.  C*
 *onceptos b'asicos de UNIX         @


 /_______||bin
      |__dev
      |
      |__etc
      |
      |__home  _______larry
      |            |
      |            |__sam
      |__
      |  lib
      |__proc
      |
      |__tmp
      |          |
      |__usr _______||X386
                 |
                 |__bin
                 |
                 |__emacs
                 |
                 |__
                 |  etc
                 |
                 |__g++-include
                 |
                 |__include
                 |
                 |__lib
                 |
                 |__     _______
                 |  local    |  bin
                 |           |
                 |           |__emacs
                 |           |
                 |           |__etc
                 |           |
                 |           |__lib
                 |
                 |__
                 |  man
                 |
                 |__spool
                 |
                 |__src_______linux
                 |
                 |__tmp



                      Figura 3.1: T'ipico 'arbol de directorios Unix (resumido).


   Por lo tanto, si comienza el nombre de un fichero (como papers/final) con un car'acter distinto
a "/", el sistema supone que se est'a refiriendo al fichero con su posici'on relativa a su directorio de
trabajo. Esto es conocido como camino relativo.



   Por otra parte, si comienza el nombre del fichero con "/", el sistema interpreta esto como un
camino completo_es decir, el camino al fichero completo desde el directorio raiz, /. Esto es conocido
como camino absoluto.
______________________________________________________________________________________________________86     *
 *                                           @


3.2.10     Refiriendose al directorio home


Bajo tcsh y bash,1 el directorio "home" puede ser referenciado usando el car'acter de la tilde ( ~ ).
Por ejemplo, la orden



      /home/larry# more "/papers/history-final



es equivalente a



      /home/larry# more /home/larry/papers/history-final



    El car'acter "~" es simplemente sustituido por el int'erprete de comandos, con el nombre del
directorio home.

    Adem'as, tambi'en puede especificar otros directorios home de usuarios con la tilde.  El camino
"~karl/letters" es traducido por el int'erprete de 'odenes a "/home/karl/letters" (si /home/karl
es el directorio home de karl). El uso de la tilde es simplemente un atajo; no existe ning'un directorio
llamado "~"_es simplemente una ayuda sint'actica proporcionada por el int'erprete de comandos.

3.3      Primeros pasos en UNIX



Antes de comenzar es importante destacar que todos los nombres de ficheros y comandos son "case-
sensitive" (que hacen diferencia entre may'usculas y min'usculas, a diferencia de sistemas operativos
como MS-DOS). Por ejemplo, el comando make es diferente a Make o MAKE. Lo mismo ocurre en el
caso de nombres de ficheros o directorios.
3.3.1     Moviendonos por el entorno


Ahora que ya podemos presentarnos como usuarios, y sabemos como indicar ficheros con su camino
completo, >como podemos cambiar nuestro directorio de trabajo?

    La orden para movernos por la estructura de directorios es cd, abreviaci'on de "cambio de dir-
ectorio". Hay que destacar, que la mayor'ia de las 'ordenes Unix m'as usadas son de dos o tres letras.
La forma de uso de la orden cd es:



      cd <directorio>



donde <directorio> es el nombre del directorio al que queremos ir.

    Como dijimos, al entrar al sistema comenzamos en el directorio "home".  Si Larry quiere ir al
subdirectorio papers, deber'ia usar la orden
_________________________________________1
    tcsh y bash son dos int'erpretes de comandos que corren bajo Linux. Un int'erprete de comandos es el prog*
 *rama
que lee las 'ordenes del usuario y las ejecuta; la mayor'ia de los sistemas Linux habilitan tcsh o bash para *
 *las nuevas
cuentas de usuario.
______________________________________________________________________________________________________3.3.  P*
 *rimeros pasos en UNIX             @


      /home/larry# cd papers
      /home/larry/papers#


   Como se puede ver, la l'inea de comandos de Larry cambia para mostrar su directorio actual de
trabajo. Ahora que ya est'a en el directorio papers puede echarle un vistazo a su fichero history-final
con el comando


      /home/larry/papers# more history-final


   Ahora Larry est'a en el subdirectorio papers, para volver al directorio padre de este, usar'a la
orden


      /home/larry/papers# cd ..
      /home/larry#


   (Dese cuenta del espacio entre "cd" y ".."). Cada directorio tiene una entrada de nombre ".."
la cual se refiere al directorio padre. De igual forma, existe en cada directorio la entrada "." la cual
se refiere a si mismo. As'i que el comando


      /home/larry/papers# cd .
      /home/larry#


nos deja donde estamos.

   Tambi'en pueden usarse nombres con el camino absoluto en la orden cd. Para ir al directorio de
Karl con cd, introduciremos la siguiente orden.


      /home/larry/papers# cd /home/karl
      /home/karl#


   Tambi'en, usando cd sin argumentos nos llevar'a a nuestro directorio de origen.


      /home/karl# cd
      /home/larry#
3.3.2    Mirando el contenido de los directorios


Ahora que ya sabe como moverse por los directorios probablemente pensar'a:  >Y bien?.  El simple
movimiento por el 'arbol de directorios es poco 'util, necesitamos un nuevo comando, ls. ls muestra
por el terminal la lista de ficheros y directorios, por defecto, los del directorio activo. Por ejemplo;


      /home/larry# ls
      Mail
      letters
      papers
      /home/larry#
______________________________________________________________________________________________________88     *
 *                                           @


    Aqu'i podemos ver que Larry tiene tres entradas en su directorio actual: Mail, letters y papers.
Esto no nos dice demasiado_>son ficheros o directorios?. Podemos usar la opci'on -F de la orden ls
para obtener m'as informaci'on.



      /home/larry# ls -F
      Mail/
      letters/
      papers/
      /home/larry#



    Por el car'acter / a"nadido a cada nombre sabemos que las tres entradas son subdirectorios.

    La orden ls -F puede tambi'en a"nadir al final "*", esto indica que es un fichero ejecutable. Si
ls -F no a"nade nada, entonces es un fichero normal, es decir no es ni un directorio ni un ejecutable.

    Por lo general cada orden UNIX puede tomar una serie de opciones definidas en forma de argu-
mentos.  Estos usualmente comienzan con el car'acter "-", como vimos antes con ls -F. La opci'on
-F le dice a ls que de m'as informaci'on sobre el tipo de ficheros_en este caso a"nadiendo un / detr'as
de cada nombre de un directorio.

    Si a ls le pasamos un nombre de directorio, mostrar'a el contenido de ese directorio.



      /home/larry# ls -F papers
      english-lit
      history-final
      masters-thesis
      notes/
      /home/larry#



    Para ver un listado m'as interesante, veamos el contenido de directorio del sistema /etc.



      /home/larry# ls /etc


      Images           ftpusers         lpc               rc.new           shells
      adm               getty            magic            rc0.d            startcons
      bcheckrc         gettydefs        motd              rc1.d            swapoff
      brc               group            mount            rc2.d            swapon
      brc~              inet              mtab              rc3.d            syslog.conf
      csh.cshrc        init              mtools           rc4.d            syslog.pid
      csh.login        init.d           pac               rc5.d            syslogd.reload
      default          initrunlvl       passwd           rmt               termcap
      disktab          inittab          printcap         rpc               umount
      fdprm            inittab.old      profile          rpcinfo          update
      fstab            issue            psdatabase       securetty        utmp
      ftpaccess        lilo              rc                services         wtmp
      /home/larry#
______________________________________________________________________________________________________3.3.  P*
 *rimeros pasos en UNIX             @


   (Para los usuarios de MS-DOS, n'otese que los nombres de los ficheros pueden ser mayores de 8
caracteres y pueden contener puntos en cualquier posici'on. Incluso es posible que un fichero contenga
m'as de un punto en su nombre.)

   Vayamos al directorio raiz con "cd .." y desde all'i vayamos al directorio /usr/bin.



      /home/larry# cd ..
      /home# cd ..
      /# cd usr
      /usr# cd bin
      /usr/bin#



   Tambi'en podemos movernos dentro de directorios en m'ultiples pasos, como en cd /usr/bin.

   Trate de moverse por varios directorios usando ls y cd. En algunos casos podr'a encontrarse el
desagradable mensaje de error "Permission denied". Esto simplemente es debido a cuestiones de
seguridad del UNIX. Para poder moverse o listar un directorio debe de tener permisos para poder
hacerlo. Hablaremos m'as sobre ello en la Secci'on 3.9.
3.3.3    Creando directorios nuevos


Es el momento de aprender a crear directorios. Para ello se usa la orden mkdir. Pruebe lo siguiente:



      /home/larry# mkdir foo
      /home/larry# ls -F
      Mail/
      foo/
      letters/
      papers/
      /home/larry# cd foo
      /home/larry/foo# ls
      /home/larry/foo#



   <Enhorabuena! Acaba de crear un directorio nuevo y moverse a 'el. Como no hay ning'un fichero
en el directorio nuevo, veamos como copiar ficheros desde un lugar a otro.
3.3.4    Copia de ficheros


La copia de ficheros es efectuada por la orden cp:



      /home/larry/foo# cp /etc/termcap  .
      /home/larry/foo# cp /etc/shells  .
      /home/larry/foo# ls -F
      shells      termcap
     ______________________________________________________________________________________________________90*
 *                                                @


           /home/larry/foo# cp shells bells
           /home/larry/foo# ls -F
           bells      shells      termcap
           /home/larry/foo#


         La orden cp copia los ficheros listados en la l'inea de comandos al fichero o directorio pasado como
     'ultimo argumento. N'otese como se usa el directorio "." para referirnos al directorio actual.
     3.3.5     Moviendo ficheros


     La orden mv mueve ficheros en lugar de copiarlos. La sintaxis es muy sencilla.


           /home/larry/foo# mv termcap sells
           /home/larry/foo# ls -F
           bells      sells      shells
           /home/larry/foo#


         N'otese como termcap ya no existe, en su lugar est'a el fichero sells.  Esta orden puede usarse
     para renombrar ficheros, como acabamos de hacer, pero tambi'en para mover ficheros a directorios
     diferentes.

3        Nota: mv y cp sobreescribir'an los ficheros destino (si ya existen) sin consultar.  Sea cuidadoso
     cuando mueva un fichero a otro directorio:  puede haber ya un fichero con el mismo nombre que
     ser'a sobreescrito.
     3.3.6     Borrando ficheros y directorios


     Para borrar un fichero, use la orden rm. ("rm" viene de "remove").


           /home/larry/foo# rm bells sells
           /home/larry/foo# ls -F
           shells
           /home/larry/foo#


         Nos hemos quedado solo con el fichero "shells", pero no nos quejaremos.  N'otese que rm por
     defecto no preguntar'a antes de borrar un fichero_luego, sea cuidadoso.

         Una orden relacionada con rm es rmdir. Esta orden borra un directorio, pero solo si est'a vacio.
     Si el directorio contiene ficheros o subdirectorios, rmdir se quejar'a.
     3.3.7     Mirando los ficheros


     Las 'ordenes more y cat son usadas para ver el contenido de ficheros. more muestra el fichero pantalla
     a pantalla mientras que cat lo muestra entero de una vez.

         Para ver el contenido del fichero shells podemos usar la orden
______________________________________________________________________________________________________3.4.  S*
 *umario de Ordenes B'asicas        @


      /home/larry/foo# more shells


   Por si est'a interesado en el contenido de shells, es una lista de int'erpretes de comandos v'alidos
disponibles en el sistema.  En la mayor'ia de los sistemas incluye /bin/sh, /bin/bash y /bin/csh.
Hablaremos sobre los diferentes int'erpretes de comandos m'as adelante.
                                       ________                                       ___
   Durante la ejecuci'on de more pulse |_Space_|para avanzar a la p'agina siguiente y |_b_|para volver_
a la p'agina anterior.  Hay otros comandos disponibles, los citados son solo los m'as b'asicos.  |_q_|
finalizar'a la ejecuci'on de more.

   Salga de more y pruebe cat /etc/termcap.  El texto probablemente pasar'a demasiado r'apido
como para poder leerlo. El nombre "cat" viene de "concatenate", que es para lo que realmente sirve
el programa. La orden cat puede ser usada para concatenar el contenido de varios ficheros y guardar
el resultado en otro fichero. Esto se discutir'a m'as adelante.
3.3.8    Obteniendo ayuda en l'inea


Pr'acticamente cada sistema UNIX, incluido Linux, proporciona una utilidad conocida como "p'aginas
de manual".  Estas p'aginas contienen documentaci'on en l'inea para todas las 'ordenes del sistema,
recursos, ficheros de configuraci'on, etc.

   La orden usada para acceder a las p'aginas de manual es man. Por ejemplo, si est'a interesado en
conocer otras opciones de la orden ls, puede escribir


      /home/larry# man ls


y le ser'a mostrada la p'agina de manual para ls.

   Desafortunadamente la mayor'ia de las p'aginas de manual han sido escritas por gente que ya
conoc'ia lo que la orden o recurso hac'ia, por esto, las p'aginas de manual usualmente solo contienen
detalles t'ecnicos de la orden sin ning'un tipo de tutorial de uso.  Pese a esto, estas p'aginas son
una gran fuente de informaci'on que permiten refrescar la memoria si olvidamos la sintaxis de un
comando.  Igualmente, estas p'aginas le dar'an mucha informaci'on sobre 'ordenes que no trataremos
en este libro.

   Le sugiero que pruebe man con los comandos que ya hemos tratado y con los que vayamos
introduciendo.  Notar'a que alguno de los comandos no tiene p'agina de manual.  Esto puede ser
debido a diferentes motivos. En primer lugar, las p'aginas no han sido escritas a'un (el Proyecto de
Documentaci'on de Linux es tambi'en el responsable de las p'aginas de manual). En segundo lugar, la
'orden puede ser interna del int'erprete de comandos, o un alias (como los tratados en la Secci'on 3.2.4),
en cuyo caso no tendr'an una p'agina propia. Un ejemplo es la orden cd la cual es interna del int'erprete
de comandos. El propio int'erprete de comandos es quien procesa cd_no hay un programa separado.
3.4     Sumario de Ordenes B'asicas



Esta secci'on introduce algunos de las 'ordenes b'asicas m'as 'utiles de un sistema UNIX, incluidas las
ya cubiertas en las secciones anteriores.
______________________________________________________________________________________________________92     *
 *                                           @


    N'otese que las opciones usualmente comienzan con "-" y en la mayor'ia de los casos se pueden
a"nadir m'ultiples opciones de una letra con un 'unico "-". Por ejemplo, en lugar de usar ls -l -F es
posible usar ls -lF.

    En lugar de listar todas las opciones disponibles para cada uno de los comandos solo hablaremos
de aquellas m'as 'utiles o importantes.  De hecho, la mayor'ia de las 'ordenes tienen un gran n'umero
de opciones (muchas de las cuales nunca usar'a). Puede usar man para ver las p'aginas de manual de
cada orden, la cual mostrar'a la lista completa de opciones disponibles.

    N'otese tambi'en, que la mayor'ia de las 'ordenes toman una lista de ficheros o directorios como
argumentos, denotados como "<fichero1> . .<.ficheroN>". Por ejemplo, la orden cp toma como argu-
mentos la lista de ficheros a copiar, seguidos del fichero o directorio destino.  Cuando se copia m'as
de un fichero, el destino debe de ser un directorio.



cd               Cambia el directorio de trabajo actual.
                 Sintaxis: cd <directorio>
                 <directorio> es el directorio al que cambiamos.  ("."  se refiere al directorio actual,
                 ".." al directorio padre.)
                 Ejemplo: cd ../foo pone ../foo como directorio actual.


ls               Muestra informaci'on sobre los ficheros o directorios indicados.
                 Sintaxis: ls <fichero1> <fichero2> . . .<ficheroN>
                 Donde <fichero1> a <ficheroN> son los ficheros o directorios a listar.
                 Opciones:   Hay  m'as  opciones  de  las  que  podr'ia  suponer.    Las  m'as  usadas
                 com'unmente son:  -F (usada para mostrar informaci'on sobre el tipo de fichero),
                 y -l (da un listado "largo" incluyendo tama"no, propietario, permisos..etc. Tratare-
                 mos esto en detalle m'as adelante.)
                 Ejemplo: ls -lF /home/larry mostrar'a el contenido del directorio /home/larry.


cp               Copia fichero(s) en otro fichero o directorio.
                 Sintaxis: cp <fichero1> <fichero2> . . .<ficheroN> <destino>
                 Donde <fichero1> a <ficheroN> son los ficheros a copiar, y <destino> es el fichero o
                 directorio destino.
                 Ejemplo: cp ../frog joe copia el fichero ../frog al fichero o directorio joe.


mv               Mueve fichero(s) a otro fichero o directorio. Es equivalente a una copia seguida del
                 borrado del original.  Puede ser usado para renombrar ficheros, como el comando
                 MS-DOS RENAME.
                 Sintaxis: mv <fichero1> <fichero2> . . .<ficheroN> <destino>
                 Donde <fichero1> a <ficheroN> son los ficheros a "mover" y <destination> es el fichero
                 o directorio destino.
                 Ejemplo: mv ../frog joe mueve el fichero ../frog al fichero o directorio joe.


rm               Borra ficheros.  N'otese que cuando los ficheros son borrados en UNIX, son irrecu-
                 perables (a diferencia de MS-DOS, donde usualmente se puede recuperar un fichero
                 borrado).
                 Sintaxis: rm <fichero1> <fichero2> . . .<ficheroN>
______________________________________________________________________________________________________3.4.  S*
 *umario de Ordenes B'asicas        @


                 Donde <fichero1> a <ficheroN> son los nombres de los ficheros a borrar.
                 Opciones:   -i  pedir'a  confirmaci'on  antes  de  borrar  un  fichero.    Ejemplo:
                 rm -i /home/larry/joe /home/larry/frog  borra  los  ficheros  joe  y  frog  en
                 /home/larry.


mkdir            Crea directorios nuevos.
                 Sintaxis: mkdir <dir1> <dir2> . . .<dirN>
                 Donde <dir1> a <dirN> son los directorios a crear.
                 Ejemplo:    mkdir /home/larry/test  crea  el  directorio  test  colgando  de
                 /home/larry.


rmdir            Esta orden borra directorios vacios. Al susar rmdir, el directorio de trabajo actual
                 no debe de estar dentro del directorio a borrar.
                 Sintaxis: rmdir <dir1> <dir2> . . .<dirN>
                 Donde <dir1> a <dirN> son los directorios a borrar.
                 Ejemplo: rmdir /home/larry/papers borra el directorio /home/larry/papers si
                 est'a vacio.


man              Muestra la p'agina de manual del comando o recurso (cualquier utilidad del sistema
                 que no es un comando, como funciones de librer'ia) dado. Sintaxis: man <command>
                 Donde <command> es el nombre del comando o recurso sobre el que queremos obtener
                 la ayuda.
                 Ejemplo: man ls muestra ayuda sobre la orden ls.


more             Muesta el contenido de los ficheros indicados, una pantalla cada vez.
                 Sintaxis: more <fichero1> <fichero2> . . .<ficheroN>
                 Donde <fichero1> a <ficheroN> son los ficheros a mostrar.
                 Ejemplo:  more papers/history-final muestra por el terminal el contenido del
                 fichero papers/history-final.


cat              Oficialmente usado para concatenar ficheros, cat tambi'en es usado para mostrar el
                 contenido completo de un fichero de una vez.
                 Sintaxis: cat <fichero1> <fichero2> . . .<ficheroN>
                 Donde <fichero1> a <ficheroN> son los ficheros a mostrar.
                 Ejemplo: cat letters/from-mdw muestra por el terminal el contenido del fichero
                 letters/from-mdw.


echo             Simplemente env'ia al terminal los argumentos pasados.
                 Sintaxis: echo <arg1> <arg2> . . .<argN>
                 Donde <arg1> a <argN> son los argumentos a mostrar.
                 Ejemplo: echo ``Hola mundo'' muestra la cadena "Hola mundo".


grep             Muestra todas las l'ineas de un fichero dado que coinciden con un cierto patr'on.
                 Sintaxis: grep <patr'on> <fichero1> <fichero2> . . .<ficheroN>
                 Donde <patr'on> es una expresi'on regular y <fichero1> a <ficheroN> son los ficheros
                 donde buscar. Ejemplo: grep loomer /etc/hosts mostrar'a todas las l'ineas en el
                 fichero /etc/hosts que contienen la cadena "loomer".
______________________________________________________________________________________________________94     *
 *                                           @


3.5      Explorando el Sistema de Ficheros



El sistema de ficheros es la colecci'on de ficheros y la jerarqu'ia de directorios de su sistema.  Le
prometimos acompa"narle por el sistema de ficheros, y ha llegado el momento.

    Tiene el nivel y conocimientos para entender de lo que estamos hablando, adem'as de una gu'ia de
carreteras. (Figura 3.2.8 en la p'agina 85).

    Primero cambie al directorio raiz (cd /) y ejecute ls -F. Probablemente ver'a estos directorios2:
bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, y var.

    Echemos un vistazo a cada uno de estos directorios.



/bin             /bin es la abreviaci'on de "binaries", o ejecutables.  Es donde residen la mayoria
                 de los programas esenciales del sistema. Use la orden "ls -F /bin" para listar los
                 ficheros. Podr'a ver algunas 'ordenes que reconocer'a, como cp, ls y mv. Estos son los
                 programas para estas 'ordenes. Cuando usa la orden cp est'a ejecutando el programa
                 /bin/cp.

                 Usando ls -F ver'a que la mayor'ia (si no todos) los ficheros de /bin tienen un
                 asterisco ("*") a"nadido al final de sus nombres. Esto indica que son ficheros ejecut-
                 ables, como describe la Secci'on 3.3.2.


/dev             El sigiente es /dev. Ech'emosle un vistazo de nuevo con ls -F.

                 Los "ficheros" en /dev son conocidos como controladores de dispositivo (device
                 drivers)_son usados para acceder a los dispositivos del sistema y recursos, como
                 discos duros, modems, memoria, etc.  Por ejemplo, de la misma forma que puede
                 leer datos de un fichero, puede leerla desde la entrada del rat'on leyendo /dev/modem.

                 Los ficheros que comienzan su nombre con fd son controladores de disqueteras. fd0
                 es la primera disquetera, fd1 la segunda.  Ahora, alguien astuto se dar'a cuenta
                 de que hay m'as controladores de dispositivo para disqueteras de los que hemos
                 mencionado. Estos representan tipos espec'ificos de discos. Por ejemplo, fd1H1440
                 acceder'a a discos de 3.5"de alta densidad en la disquetera 1.

                 Aqu'i tenemos una lista de algunos de los controladores de dispositivo m'as usados.
                 N'otese que incluso aunque puede que no tenga alguno de los dispositivos listados,
                 tendr'a entradas en dev de cualquier forma.


                   o  /dev/console hace referencia a la consola del sistema_ es decir, al monitor
                      conectado directamente a su sistema.

                   o  Los dispositivos /dev/ttyS y /dev/cua son usados para acceder a los puertos
                      serie.  Por ejemplo, /dev/ttyS0 hace referencia a "COM1" bajo MS-DOS. Los
                      dispositivos /dev/cua son "callout", los cuales son usados en conjunci'on con
                      un modem.

                   o  Los nombres de dispositivo que comienzan por hd acceden a discos duros.
_________________________________________
   2Puede ver otros o incluso no ver todos. No se preocupe. Cada versi'on de Linux difiere en algunos aspecto*
 *s.
______________________________________________________________________________________________________3.5.  E*
 *xplorando el Sistema de Ficheros  @


                      /dev/hda hace referencia a la totalidad del primer disco duro, mientras que
                      /dev/hda1 hace referencia a la primera partici'on en /dev/hda.

                   o  Los nombres de dispositivo que comienzan con sd son dispositivos SCSI. Si
                      tiene un disco duro SCSI, en lugar de acceder a 'el mediante /dev/hda, de-
                      ber'a acceder a /dev/sda. Las cintas SCSI son accedidas v'ia dispositivos st y
                      los CD-ROM SCSI v'ia sr.

                   o  Los nombres que comienzan por lp acceden a los puertos paralelo. /dev/lp0
                      hace referencia a "LPT1" en el mundo MS-DOS.

                   o  /dev/null es usado como "agujero negro"_ cualquier dato enviado a este dis-
                      positivo desaparece. >Para qu'e puede ser 'util esto?. Bien, si desea suprimir la
                      salida por pantalla de una orden, podr'ia enviar la salida a /dev/null.  Hab-
                      laremos m'as sobre esto despu'es.

                   o  Los nombres que comienzan por /dev/tty hacen referencia_a_"consolas_vir-___
                      tuales" de su sistema (accesibles mediante las teclas |_alt-F1_|, |_alt-F2_|, etc).
                      /dev/tty1 hace referencia a la primera VC, /dev/tty2 a la segunda, etc.

                   o  Los  nombres  de  dispositivo  que  comienzan  con  /dev/pty  son  "pseudo-
                      terminales".  Estos son usados para proporcionar un "terminal" a sesiones
                      remotas.  Por ejemplo, si su m'aquina est'a en una red, telnet de entrada
                      usar'a uno de los dispositivos /dev/pty.



/etc             /etc contiene una serie de ficheros de configuraci'on del sistema.  Estos incluyen
                 /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicializaci'on del
                 sistema), etc.


/sbin            sbin se usa para almacenar programas esenciales del sistema, que usar'a el admin-
                 istrador del sistema.


/home            /home contiene los directorios "home" de los usuarios. Por ejemplo, /home/larry es
                 el directorio del usuario "larry". En un sistema recien instalado, no habr'a ning'un
                 usuario en este directorio.


/lib             /lib contiene las im'agenes de las librer'ias compartidas.  Estos ficheros con-
                 tienen c'odigo que compartir'an muchos programas. En lugar de que cada programa
                 contenga una copia propia de las rutinas compartidas, estas son guardadas en un
                 lugar com'un, en /lib.  Esto hace que los programas ejecutables sean menores y
                 reduce el espacio usado en disco.


/proc            /proc es un "sistema de ficheros virtual". Los ficheros que contiene realmente resid-
                 en en memoria, no en un disco. Hacen referencia a varios procesos que corren en el
                 sistema, y le permiten obtener informaci'on acerca de que programas y procesos est'an
                 corriendo en un momento dado. Entraremos en m'as detalles en la Secci'on 3.11.1.


/tmp             Muchos programas tienen la necesidad de generar cierta informaci'on temporal y
                 guardarla en un fichero temporal. El lugar habitual para esos ficheros es en /tmp.
______________________________________________________________________________________________________96     *
 *                                           @


/usr             /usr es un directorio muy importante.  Contienen una serie de subdirectorios que
                 contienen a su vez algunos de los m'as importantes y 'utiles programas y ficheros de
                 configuraci'on usados en el sistema.

                 Los directorios descritos arriba son esenciales para que el sistema est'e operativo,
                 pero la mayor'ia de las cosas que se encuentran en /usr son opcionales para el
                 sistema. De cualquier forma, son estas cosas opcionales las que hacen que el sistema
                 sea 'util e interesante.  Sin /usr, tendr'ia un sistema aburrido, solo con programas
                 como cp y ls. usr contiene la mayor'ia de los paquetes grandes de programas y sus
                 ficheros de configuraci'on.


/usr/X386        /usr/X386 contiene el sistema X Window si usted lo instala. El sistema X Window es
                 un entorno gr'afico grande y potente el cual proporciona un gran n'umero de utilidades
                 y programas gr'aficos, mostrados en "ventanas" en su pantalla. Si est'a familiarizado
                 con los entornos Microsoft Windows o Macintosh, X Window le ser'a muy familiar.
                 El directorio /usr/X386 contiene todos los ejecutables de X Window, ficheros de
                 configuraci'on y de soporte. Esto ser'a cubierto con m'as detalle en la Secci'on 5.1.


/usr/bin         /usr/bin es el almac'en real de programas del sistema UNIX. Contiene la mayor'ia
                 de los programas que no se encuentran en otras partes como /bin.


/usr/etc         Como /etc contiene diferentes ficheros de configuraci'on y programas del sistema,
                 /usr/etc contiene incluso m'as que el anterior.  En general, los ficheros que se
                 encuentran en /usr/etc/ no son esenciales para el sistema, a diferencia de los que
                 se encuentran en /etc, que si lo son.


/usr/include     /usr/include contiene los ficheros de cabacera para el compilador de C. Estos
                 ficheros (la mayor'ia de los cuales terminan en .h, de "header") declaran estructuras
                 de datos, sunrutinas y constantes usados en la escritura de programas en C. Los
                 ficheros que se encuentran en /usr/include/sys son generalmente usados en la
                 programaci'on de en UNIX a nivel de sistema. Si est'a familiarizado con el lenguaje
                 de programaci'on C, aqu'i encontrar'a los ficheros de cabecera como stdio.h, el cual
                 declara funciones como printf().


/usr/g++-include
                 /usr/g++-include contiene ficheros de cabecera para el compilador de C++ (muy
                 parecido a /usr/include).


/usr/lib         /usr/lib contiene las librer'ias equivalentes "stub" y "static" a los ficheros encon-
                 trados en /lib. Al compilar un programa, este es "enlazado" con las librer'ias que
                 se encuentran en /usr/lib, las cuales dirigen al programa a buscar en /lib cuando
                 necesita el c'odigo de la librer'ia.  Adem'as, varios programas guardan ficheros de
                 configuraci'on en /usr/lib.


/usr/local       /usr/local es muy parecido a /usr_contiene programas y ficheros no esenciales
                 para el sistema, pero que hacen el sistema m'as divertido y excitante.  En general,
                 los programas que se encuentran en /usr/local son espec'ificos de su sistema_esto
______________________________________________________________________________________________________3.6.  T*
 *ipos de int'erpretes de comandos  @


                 es, el directorio /usr/local difiere bastante entre sistemas UNIX.

                 Aqu'i encontrar'a programas grandes como TEX (sistema de formateo de documentos)
                 y Emacs (gran y potente editor), si los instala.


/usr/man         Este directorio contiene las p'aginas de manual.  Hay dos subdirectorios para cada
                 p'agina "secci'on" de las p'aginas (use la orden man man para m'as detalles). Por ejem-
                 plo, /usr/man/man1 contiene los fuentes (es decir, los originales por formatear) de
                 las p'aginas de manual de la secci'on 1, y /usr/man/cat1 las p'aginas ya formateadas
                 de la secci'on 1.


/usr/src         /usr/src contiene el c'odigo fuente (programas por compilar) de varios programas
                 de su sistema.  El m'as importante es /usr/src/linux, el cual contiene el c'odigo
                 fuente del N'ucleo de Linux.


/var             /var contiene directorios que a menudo cambian su tama"no o tienden a crecer.
                 Muchos de estos directorios solian residir en /usr, pero desde que estamos tratando
                 de dejarlo relativamente inalterable, los directorios que cambian a menudo han sido
                 llevados a /var. Algunos de estos directorios son:


/var/adm         /var/adm contiene varios ficheros de inter'es para el administrador del sistema, es-
                 pecificamente hist'oricos del sistema, los cuales recogen errores o problemas con el
                 sistema. Otros ficheros guardan las sesiones de presentaci'on en el sistema, as'i como
                 los intentos fallidos. Esto ser'a cubierto en el Cap'itulo 4.


/var/spool       /var/spool contiene ficheros van a ser pasados a otro programa.  Por ejemplo,
                 si su m'aquina est'a conectada a una red, el correo de llegada ser'a almacenado en
                 /var/spool/mail hasta que lo lea o lo borre. Art'iculos nuevos de las "news" tanto
                 salientes como entrantes pueden encontrarse en /var/spool/news, etc.


3.6     Tipos de int'erpretes de comandos



Como hemos mencionado anteriormente en numerosas ocasiones, UNIX es un sistema operativo mul-
titarea y multiusuario. La multitarea es muy 'util, y una vez la haya probado, la usar'a continuamente.
En poco tiempo podr'a ejecutar programas "de fondo", conmutar entre m'ultiples tareas y "entubar"
programas unos entre otros para conseguir resultados complejos con un 'unico comando.

   Muchas de las caracter'isticas que trataremos en esta secci'on son proporcionadas por el int'erprete
de comandos. Hay que tener cuidado en no confundir UNIX (el sistema operativo) con el int'erprete
de comandos- este 'ultimo, es un interface con el sistema que hay debajo. El int'erprete de comandos
proporciona la funcionalidad sobre el UNIX.

   El int'erprete de comandos no es solo un int'erprete interactivo de los comandos que tecleamos,
es tambi'en un potente lenguaje de programaci'on, el cual permite escribir guiones, que permiten
juntar varias 'ordenes en un fichero.  Los usuarios de MS-DOS reconoceran esto como los ficheros
"batch".  El uso de los guiones del int'erprete de comandos es una herramienta muy potente que le
______________________________________________________________________________________________________98     *
 *                                           @


permitir'a automatizar e incrementar el uso de UNIX. Ver la secci'on 3.13.1 para m'as informaci'on.

    Hay varios tipos de int'erpretes de comandos en el mundo UNIX. Los dos m'as importantes son
el "Bourne shell" y el "C shell".  El int'erprete de comandos Bourne, usa una sintaxis de comandos
como la usada en los primeros sistemas UNIX, como el System III. El nombre del int'erprete Bourne
en la mayor'ia de los UNIX es /bin/sh (donde sh viene de "shell", int'erprete de comandos en ingl'es).
El int'erprete C usa una sintaxis diferente, a veces parecida a la del lenguaje de programaci'on C, y
en la mayor'ia de los sistemas UNIX se encuentra como /bin/csh.

    Bajo Linux hay algunas diferencias en los int'erpretes de comandos disponibles.  Dos de los
m'as usados son el "Bourne Again Shell" o "Bash" (/bin/bash) y Tcsh (/bin/tcsh).  Bash es
un equivalente al Bourne con muchas caracter'isticas avanzadas de la C shell.  Como Bash es un
superconjunto de la sintaxis del Bourne, cualquier gui'on escrito para el int'erprete de comandos
Bourne standard funcionar'a en Bash.  Para los que prefieren el uso del int'erprete de comandos C,
Linux tiene el Tcsh, que es una versi'on extendida del C original.

    El tipo de int'erprete de comandos que decida usar es puramente una cuesti'on de gustos. Algunas
personas prefieren la sintaxis del Bourne con las caracter'isticas avanzadas que proporciona Bash, y
otros prefieren el m'as estructurado int'erprete de comandos C. En lo que respecta a los comandos
usuales como cp, ls..etc, es indiferente el tipo de int'erprete de comandos usado, la sintaxis es la
misma.  Solo, cuando se escriben guiones para el int'erprete de comandos, o se usan caracter'isticas
avanzadas aparecen las diferencias entre los diferentes int'erpretes de comandos.

    Como estamos discutiendo sobre las diferencias entre los int'erpretes de comandos Bourne y C,
abajo veremos esas diferencias. Para los prop'ositos de este manual, la mayor'ia de las diferencias son
m'inimas. (Si eres realmente curioso a este respecto, lee las p'aginas de manual para bash y tcsh).

3.7      Car'acteres comod'in



Una caracter'istica importante de la mayor'ia de los int'erpretes de comandos en Unix es la capacidad
para referirse a m'as de un fichero usando car'acteres especiales.  Estos llamados comodines le
permiten referirse a, por ejemplo, todos los ficheros que contienen el car'acter "n".

    El comod'in "*" hace referencia cualquier car'acter o cadena de car'acteres en el fichero.  Por
ejemplo, cuando usa el car'acter "*" en el nombre de un fichero, el int'erprete de comandos lo sustituye
por todas las combinaciones posibles provenientes de los ficheros en el directorio al cual nos estamos
refiriendo.

    Veamos un ejemplo r'apido.  Supongamos que Larry tiene los ficheros frog, joe y stuff en el
directorio actual.



      /home/larry# ls
      frog      joe      stuff
      /home/larry#



    Para aceder a todos los ficheros con la letra "o" en su nombre, hemos de usar la 'orden
______________________________________________________________________________________________________3.7.  C*
 *ar'acteres comod'in               @


      /home/larry# ls *o*
      frog      joe
      /home/larry#



Como puede ver, el comod'in "*" ha sido sustituido con todas las combinaciones posibles que coin-
cidian de entre los ficheros del directorio actual.

   El uso de "*" solo, simplemente se refiere a todos los ficheros, puesto que todos los car'acteres
coinciden con el comod'in.



      /home/larry# ls *
      frog      joe      stuff
      /home/larry#



   Veamos unos pocos ejemplos m'as.



      /home/larry# ls f*
      frog
      /home/larry# ls *ff
      stuff
      /home/larry# ls *f*
      frog      stuff
      /home/larry# ls s*f
      stuff
      /home/larry#



   El proceso de la sustituci'on de "*" en nombres de ficheros es llamado expansi'on de comodines
y es efectuado por el int'erprete de comandos.  Esto es importante:  las 'ordenes individuales, como
ls, nunca ven el "*" en su lista de par'ametros. Es el int'erprete quien expande los comodines para
incluir todos los nombres de ficheros que se adaptan. Luego la orden



      /home/larry# ls *o*



es expandida para obtener



      /home/larry# ls frog joe



   Una nota importante acerca del car'acter comod'in "*". El uso de este comod'in NO cuadrar'a con
nombres de ficheros que comiencen con un punto ("."). Estos ficheros son tratados como "ocultos"_
aunque no est'an realmente ocultos, simplemente no son mostrados en un listado normal de ls y no
son afectados por el uso del comod'in "*".

   He aqu'i un ejemplo.  Ya hemos mencionado que cada directorio tiene dos entradas especiales:
"." que hace referencia al directorio actual y ".." que se refiere al directorio padre. De cualquier
forma, cuando use ls esas dos entradas no se mostrar'an.
______________________________________________________________________________________________________100    *
 *                                           @


      /home/larry# ls
      frog      joe      stuff
      /home/larry#


Si usa el par'ametro -a con ls podr'a ver nombres de ficheros que comienzan por ".". Observe:


      /home/larry# ls -a
      .      ..      .bash_profile      .bashrc      frog       joe      stuff
      /home/larry#


Ahora podemos ver las dos entradas especiales, "." y "..", as'i como otros dos ficheros "ocultos"_
.bash_profile y .bashrc. Estos dos ficheros son usados en el arranque por bash cuando larry se
presenta al sistema. M'as informaci'on sobre esto en la Secci'on 3.13.3.

    Note que cuando usamos el comod'in "*", no se muestra ninguno de los nombres de fichero que
comienzan por ".".


      /home/larry# ls *
      frog      joe      stuff
      /home/larry#


Esto es una caracter'istica de seguridad:  si "*" coincidiera con ficheros que comienzan por "."
actuar'ia sobre "." y "..". Esto puede ser peligroso con ciertas 'ordenes.

    Otro car'acter comod'in es "?".  Este car'acter comod'in solo expande un 'unico car'acter.  Luego
"ls ?"   mostrar'a todos los nombres de ficheros con un car'acter de longitud,  y "ls termca?"
mostrar'a "termcap" pero no "termcap.backup". Aqu'i tenemos otro ejemplo:


      /home/larry# ls j?e
      joe
      /home/larry# ls f??g
      frog
      /home/larry# ls ????f
      stuff
      /home/larry#


    Como puede ver, los car'acteres comod'in le permiten referirse a m'as de un fichero a la vez. En el
resumen de 'ordenes en la Secci'on 3.4 dijimos que cp y mv pueden copiar o mover m'ultiples ficheros
de una vez. Por ejemplo,


      /home/larry# cp /etc/s* /home/larry


copiar'a todos los ficheros de /etc que comiencen por "s" al directorio /home/larry. Por lo tanto,
el formato de la orden cp es realmente


      cp <fichero1> <fichero2> <fichero3> . .<.ficheroN> <destino>
______________________________________________________________________________________________________3.8.  F*
 *ontaner'ia UNIX                   @


donde <fichero1> a <ficheroN> es la lista de los ficheros a copiar, y <destino> es el fichero o directorio
destino donde copiarlos. mv tiene id'entica sintaxis.

   Notese que si est'a copiando o moviendo m'as de un fichero, <destino> debe ser un directorio. Solo
puede copiar o mover un 'unico fichero a otro fichero.
3.8     Fontaner'ia UNIX



3.8.1    Entrada y salida estandard


Muchos comandos UNIX toman su entrada de algo conocido como entrada estandard y envian
su salida a la salida estandard (a menudo abreviado como "stdin" y "stdout").  El int'erprete de
comandos configura el sistema de forma que la entrada estandard es el teclado y la salida la pantalla.

   Veamos un ejemplo con el comando cat. Normalmente cat lee datos de los ficheros cuyos nombres
se pasan como argumentos en la l'inea de comandos y env'ia estos datos directamente a la salida
estandard. Luego, usando el comando


      /home/larry/papers# cat history-final masters-thesis


mostrar'a por pantalla el contenido del fichero history-final seguido por masters-thesis.

   Si no se le pasan nombres de ficheros a cat como par'ametros, leer'a datos de stdin y los enviar'a a
stdout. Veamos un ejemplo.


      /home/larry/papers# cat
      Hello there.
      Hello there.
      Bye.
      Bye._____

      |_ctrl-D_|
      /home/larry/papers#


   Como se puede ver, cada l'inea que el usuario teclea (impresa en it'alica) es inmediatamente
reenviada al monitor por cat.  Cuando se est'a leyendo de la entrada estandard,  los comandos
reconocen el fin de la entrada de datos cuando_reciben_el car'acter EOT (end-of-text, fin de texto).
Normalmente es generado con la combinaci'on |_ctrl-D_|.

   Veamos otro ejemplo. El comando sort toma como entrada l'ineas de texto (de nuevo leer'a desde
stdin si no se le proporcionan nombres de ficheros en la l'inea de comandos), y devuelve la salida
ordenada a stdout. Pruebe lo siguiente:


      /home/larry/papers# sort
      bananas
      carrots
      apples
______________________________________________________________________________________________________102    *
 *                                           @

      _________

      |_ctrl-D_|
      apples
      bananas
      carrots
      /home/larry/papers#


    Podemos ordenar alfab'eticamente la lista de la compra... >no es 'util UNIX?
3.8.2     Redireccionando la entrada y salida


Ahora, supongamos que queremos que la salida de sort vaya a un fichero para poder salvar la lista
ordenada de salida. El int'erprete de comandos nos permite redireccionar la salida est'andard a un
fichero usando el s'imbolo ">". Veamos como funciona.


      /home/larry/papers# sort > shopping-list
      bananas
      carrots
      apples___

      |_ctrl-D_|
      /home/larry/papers#


    Como puede ver, el resultado de sort no se muestra por pantalla, en su lugar es salvado en el
fichero shopping-list. Echemos un vistazo al fichero.


      /home/larry/papers# cat shopping-list
      apples
      bananas
      carrots
      /home/larry/papers#


Ya podemos ordenar la lista de la compra y adem'as guardarla.

    Supongamos ahora que ten'iamos guardada nuestra lista de compra desordenada original en el
fichero items. Una forma de ordenar la informaci'on y salvarla en un fichero podr'ia ser darle a sort
el nombre del fichero a leer en lugar de la entrada estandard y redireccionar la salida estandard como
hicimos arriba.


      /home/larry/papers# sort items > shopping-list
      /home/larry/papers# cat shopping-list
      apples
      bananas
      carrots
      /home/larry/papers#


Hay otra forma de hacer esto. No solo puede ser redireccionada la salida estandard, tambi'en puede
ser redireccionada la entrada estandard usando el s'imbolo "<".
______________________________________________________________________________________________________3.8.  F*
 *ontaner'ia UNIX                   @


      /home/larry/papers# sort < items
      apples
      bananas
      carrots
      /home/larry/papers#



T'ecnicamente, sort < items es equivalente a sort items, pero nos permite demostrar que sort
< items se comporta como si los datos del fichero fueran tecleados por la entrada estandard.  El
int'erprete de comandos es quien maneja las redirecciones.  sort no recibe el nombre del fichero
(items) a leer, desde el punto de vista de sort, est'a leyendo datos de la entrada estandard como si
fueran tecleados desde el teclado.


   Esto introduce el concepto de filtro.  Un filtro es un programa que lee datos de la entrada
estandard, los procesa de alguna forma, y devuelve los datos procesados por la salida estandard.
Usando la redirecci'on la entrada estandard y/o salida estandard pueden ser referenciadas desde
ficheros.  sort es un filtro simple:  ordena los datos de entrada y env'ia el resultado a la salida
estandard. cat es incluso m'as simple, no hace nada con los datos de entrada, simplemente env'ia a
la salida cualquier cosa que le llega.

3.8.3    Uso de tuber'ias (pipes)



Ya hemos visto como usar sort como un filtro. Pero estos ejemplos suponen que tenemos los datos
en un fichero en alguna parte o vamos a introducir los datos manualmente por la entrada estandard.
>Qu'e pasa si los datos que queremos ordenar provienen de la salida de otro comando, como ls?. Por
ejemplo, usando la opci'on -r con sort ordenaremos los datos en orden inverso. Si queremos listar
los ficheros en el directorio actual en orden inverso, una forma podr'ia ser.
      /home/larry/papers# ls
      english-list
      history-final
      masters-thesis
      notes
      /home/larry/papers# ls > file-list
      /home/larry/papers# sort -r file-list
      notes
      masters-thesis
      history-final
      english-list
      /home/larry/papers#
Aqu'i, salvamos la salida de ls en un fichero, y entonces ejecutamos sort -r sobre ese fichero. Pero
esta forma necesita crear un fichero temporal en el que salvar los datos generados por ls.
______________________________________________________________________________________________________104    *
 *                                           @


    La soluci'on es usar las pipes3. El uso de pipes es otra caracter'istica del int'erprete de comandos,
que nos permite conectar una cadena de comandos en un "pipe", donde la stdout del primero es
enviada directamente a la stdin del segundo y as'i sucesivamente. Queremos conectar la salida de ls
con la entrada de sort. Para crear un pipe se usa el s'imbolo "|":


      /home/larry/papers# ls | sort -r
      notes
      masters-thesis
      history-final
      english-list
      /home/larry/papers#


Esta forma es m'as corta y obviamente m'as f'acil de escribir.

    Otro ejemplo 'util_ usando el comando


      /home/larry/papers# ls /usr/bin


mostrar'a una lista larga de los ficheros, la mayor'ia de los cuales pasar'a r'apidamente ante nuestros
ojos sin que podamos leerla.  En lugar de esto, usemos more para mostrar la lista de ficheros en
/usr/bin.


      /home/larry/papers# ls /usr/bin | more


Ahora podemos ir avanzando p'agina a p'agina comodamente.

    <Pero la diversi'on no termina aqu'i!.  Podemos "entubar" m'as de dos comandos a la vez.  El
comando head es un filtro que muestra la primeras l'ineas del canal de entrada (aqu'i la entrada desde
una pipe). Si queremos ver el 'ultimo fichero del directorio actual en orden alfab'etico, usaremos:


      /home/larry/papers# ls | sort -r | head -1
      notes
      /home/larry/papers#


Donde head -1 simplemente muestra la primera l'inea de la entrada que recibe en este caso, el flujo
de datos ordenados inversamente provenientes de ls).
3.8.4     Redirecci'on no destructiva


El uso de ">" para redireccionar la salida a un fichero es destructivo: en otras palabras, el comando


      /home/larry/papers# ls > file-list


sobreescribe el contenido del fichero file-list.  Si en su lugar, usamos el s'imbolo ">>", la salida
ser'a a"nadida al final del fichero nombrado, en lugar de ser sobreescrito.
_________________________________________
   3N. del T.: tuber'ias
______________________________________________________________________________________________________3.9.  P*
 *ermisos de Ficheros               @


      /home/larry/papers# ls >> file-list



a"nadir'a la salida de ls al final de file-list.


   Es conveniente tener en cuenta que la redirecci'on y el uso de pipes son caracter'isticas proporcion-
adas por el int'erprete de comandos_ este, proporciona estos servicios mediante el uso de la sintaxis
">", ">>" y "|".


3.9     Permisos de Ficheros
3.9.1    Conceptos de permisos de ficheros



Al ser UNIX un sistema multiusuario, para proteger ficheros de usuarios particulares de la manipu-
laci'on por parte de otros, UNIX proporciona un mecanismo conocido como permisos de ficheros.
Este mecanismo permite que ficheros y directorios "pertenezcan" a un usuario en particular.  Por
ejemplo, como Larry cre'o ficheros en su directorio "home", Larry es el propietario de esos ficheros y
tiene acceso a ellos.


   UNIX tambi'en permite que los ficheros sean compartidos entre usuarios y grupos de usuarios.
Si Larry lo desea, podr'ia restringir el acceso a sus ficheros de forma que ning'un otro usuario tenga
acceso. De cualquier modo, en la mayor'ia de los sistemas por defecto se permite que otros usuarios
puedan leer tus ficheros pero no modificarlos o borrarlos.


   Como hemos explicado arriba, cada fichero pertenece a un usuario en particular. Por otra parte,
los ficheros tambi'en pertenecen a un grupo en particular, que es un conjunto de usuarios definido
por el sistema. Cada usuario pertenece al menos a un grupo cuando es creado. El administrador del
sistema puede hacer que un usuario tenga acceso a m'as de un grupo.


   Los grupos usualmente son definidos por el tipo de ususarios que acceden a la m'aquina.  Por
ejemplo, en un sistema UNIX de una universidad, los usuarios pueden ser divididos en los grupos
estudiantes, direcci'on, profesores e invitados. Hay tambi'en unos pocos grupos definidos por
el sistema (como bin y admin) los cuales son usados por el propio sistema para controlar el acceso
a los recursos_ muy raramente los usuarios nomales pertenecen a estos grupos.


   Los permisos est'an divididos en tres tipos: lectura, escritura y ejecuci'on. Estos permisos pueden
ser fijados para tres clases de usuarios: el propietario del fichero, el grupo al que pertenece el fichero
y para todos los usuarios independientemente del grupo.


   El permiso de lectura permite a un usuario leer el contenido del fichero o en el caso de un
directorio, listar el contenido del mismo (usando ls). El permiso de escritura permite a un usuario
escribir y modificar el fichero. Para directorios, el permiso de escritura permite crear nuevos ficheros
o borrar ficheros ya existentes en dicho directorio. Por 'ultimo, el permiso de ejecuci'on permite a un
usuario ejecutar el fichero si es un programa o gui'on del int'erprete de comandos. Para directorios,
el permiso de ejecuci'on permite al usuario cambiar al directorio en cuesti'on con cd.
______________________________________________________________________________________________________106    *
 *                                           @


3.9.2     Interpretando los permisos de ficheros


Veamos un ejemplo del uso de premisos de ficheros.  Usando el comando ls con la opci'onn -l se
mostrar'a un listado "largo" de los ficheros, el cual incluye los permisos de ficheros.



      /home/larry/foo# ls -l stuff



      -rw-r--r--    1 larry     users          505 Mar 13 19:05 stuff



      /home/larry/foo#



    El primer campo impreso en el listado representa los permisos de ficheros.  El tercer campo
es el propietario del fichero (larry), y el cuarto es el grupo al cual pertenece el fichero (users).
Obviamente, el 'ultimo campo es el nombre del fichero (stuff), y los dem'as campos los trataremos
m'as adelante.

    Este fichero pertenece a larry y al grupo users. Echemos un vistazo a los permisos. La cadena
-rw-r--r-- nos informa, por orden, de los permisos para el propietario, el grupo del fichero y
cualquier otro usuario.

    El primer car'acter de la cadena de permisos ("-") representa el tipo de fichero. El "-" significa que
es un fichero regular. Las siguientes tres letras ("rw-") representan los permisos para el propietario
del fichero, larry. El "r" para "lectura" y "w" para escritura. Luego Larry tiene permisos de lectura
y escritura para el fichero stuff.

    Como  ya  mencionamos,  aparte  de  los  permisos  de  lectura  y  escritura  est'a  el  permiso  de
"ejecuci'on", representado por una "x".  Como hay un "-" en lugar del "x", significa que Larry
no tiene permiso para ejecutar ese fichero. Esto es correcto, puesto que stuff no es un programa de
ning'un tipo. Por supuesto, como el fichero es de Larry, puede darse a si mismo permiso de ejecuci'on
si lo desea. Esto ser'a cubierto en breve.

    Los siguientes tres car'acteres, r-- representan los permisos para los miembros del grupo.  El
grupo al que pertenece el fichero es users.   Como solo aparece un "r" cualquier usuario que
pertenezca al grupo users puede leer este fichero.

    Las 'ultimos tres car'acteres, tambi'en r--, representan los permisos para cualquier otro usuario
del sistema (diferentes del propietario o de los pertenecientes al grupo users). De nuevo, como solo
est'a presente el "r", los dem'as usuarios pueden leer el fichero, pero no escribir en 'el o ejecutarlo.

    Aqu'i tenemos otros ejemplos de permisos de grupo.


-rwxr-xr-x       El propietario del fichero puede leer, escribir y ejecutar el fichero.  Los usuarios
                 pertenecientes al grupo del fichero, y todos los dem'as usuarios pueden leer y ejecutar
                 el fichero.


-rw-------       El propietario del fichero puede leer y escribir. Nadie mas puede acceder al fichero.


-rwxrwxrwx       Todos los usuarios pueden leer, escribir y ejecutar el fichero.
______________________________________________________________________________________________________3.9.  P*
 *ermisos de Ficheros               @


3.9.3    Dependencias


Es importante darse cuenta de que los permisos de un fichero tambi'en dependen de los permisos del
directorio en el que residen.  Por ejemplo, aunque un fichero tenga los permisos -rwxrwxrwx, otros
usuarios no podr'an acceder a 'el a menos que tambi'en tengan permiso de lectura y ejecuci'on para el
directorio en el cual se encuentra el fichero. Si Larry quiere restringir el acceso a todos sus ficheros,
podr'ia simplemente poner los permisos de su directorio "home" /home/larry a -rwx------. De esta
forma ning'un usuario podr'a acceder a su directorio ni a ninguno de sus ficheros o subdirectorios.
Larry no necesita preocuparse de los permisos individuales de cada uno de sus ficheros.

   En otras palabras, para acceder a un fichero, debes de tener permiso de ejecuci'on de todos los
directorios a lo largo del camino de acceso al fichero, adem'as de permiso de lectura (o ejecuci'on) del
fichero en particular.

   Habitualmente, los usuarios de un sistema UNIX son muy abiertos con sus ficheros. Los permisos
que se dan a los ficheros usualmente son -rw-r--r--, lo que permite a todos los dem'as usuarios leer
los ficheros, pero no modificarlos de ninguna forma. Los directorios, usualmente tienen los permisos
-rwxr-xr-x, lo que permite que los dem'as usuarios puedan moverse y ver los directorios, pero sin
poder crear o borrar nuevos ficheros en ellos.

   Muchos usuarios pueden querer limitar el acceso de otros usuarios a sus ficheros.  Poniendo
los permisos de un fichero a -rw------- no se permitir'a a ning'un otro usuario acceder al fichero.
Igualmente, poniendo los permisos del directorio a -rwx------ no se permitir'a a los dem'as usuarios
acceder al directorio en cuesti'on.
3.9.4    Cambiando permisos


El comando chmod se usa para establecer los permisos de un fichero.  Solo el propietario puede
cambiar los permisos del fichero. La sintaxis de chmod es:



      chmod {a,u,g,o}{+,-}{r,w,x} <filenames>



   Brevemente, indicamos a que usuarios afecta all, user, group o other. Entonces se especifica si se
est'an a"nadiendo permisos (+) o quit'andolos (-). Finalmente se especifica que tipo de permiso read,
write o execute. Algunos ejemplos:



chmod a+r stuff
                 Da a todos los usuarios acceso al fichero.


chmod +r stuff
                 Como arriba_ si no se indica a, u, g o o por defecto se toma a.


chmod og-x stuff
                 Quita permisos de ejecuci'on a todos los usuarios excepto al propietario.


chmod u+rwx stuff
                 Permite al propietario leer, escribir y ejecutar el fichero.
______________________________________________________________________________________________________108    *
 *                                           @


chmod o-rwx stuff
                 Quita permisos de lectura, escritura y ejecuci'on a todos los usuarios menos al propi-
                 etario y a los usuarios del grupo del fichero.


3.10       Manejando enlaces de ficheros



Los enlaces le permiten dar a un 'unico fichero m'ultiples nombres. Los ficheros son identificados por
el sistema por su n'umero de inodo, el cual es el 'unico identificador del fichero para el sistema
de ficheros 4. Un directorio es una lista de n'umeros de inodo con sus correspondientes nombres de
fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular.
3.10.1     Enlaces duros (Hard links)


La orden ln es usada para crear m'ultiples enlaces para un fichero.  Por ejemplo, supongamos que
tiene un fichero foo en un directorio. Usando ls -i, veremos el n'umero de inodo para el fichero.


      # ls -i foo
      22192 foo
      #


Aqui, el fichero foo tiene el n'umero de inodo 22192 en el sistema de ficheros.  Podemos crear otro
enlace a foo, llamado bar:


      # ln foo bar


Con ls -i veremos que los dos ficheros tienen el mismo inodo.


      # ls -i foo bar
      22192 bar    22192 foo
      #


Ahora, accediendo a foo o a bar accederemos al mismo fichero.  Si hace cambios en foo, estos
cambios tambi'en ser'an efectuados en bar. Para todos los efectos, foo y bar son el mismo fichero.

    Estos enlaces son conocidos como enlaces duros (hard links) porque directamente crean el enlace
al inodo. Notese que solo podemos crear enlaces duros entre ficheros del mismo sistema de ficheros;
enlaces simb'olicos (ver m'as adelante) no tienen esta restricci'on.

    Cuando borra un fichero con rm, est'a solamente borrando un enlace a un fichero.  Si usa el
comando


      # rm foo
_________________________________________
   4La orden ls -i mostrar'a los n'umeros de inodo.
______________________________________________________________________________________________________3.10.  *
 *Manejando enlaces de ficheros     @


solo el enlace de nombre foo es borrado; bar todav'ia existir'a.  Un fichero es solo definitivamente
borrado del sistema cuando no quedan enlaces a 'el. Usualmente, los ficheros tienen un 'unico enlace,
por lo que el uso de rm los borra. Pero si el fichero tiene m'ultiples enlaces, el uso de rm solo borrar'a un
'unico enlace; para borrar el fichero, deber'a borrar todos los enlaces del fichero.

   La orden ls -l muestra el n'umero de enlaces a un fichero (entre otra informaci'on).


      # ls -l foo bar
      -rw-r--r--    2 root      root           12 Aug  5 16:51 bar
      -rw-r--r--    2 root      root           12 Aug  5 16:50 foo
      #


La segunda columna en el listado, "2", especifica el n'umero de enlaces al fichero.

   As'i resulta que un directorio no es m'as que un fichero que contiene informaci'on sobre la translaci'on
enlace a inodo.  Tambi'en, cada directorio tiene al menos dos enlaces duros en 'el:  "."  (un enlace
apuntando a si mismo) y ".." (un enlace apuntando al directorio padre). En el directorio raiz (/),
el enlace ".." simplemente apunta a /.
3.10.2     Enlaces simb'olicos


Los enlaces simb'olicos son otro tipo de enlace, que es diferente al enlace duro. Un enlace simb'olico
permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo.

   La orden ln -s crea un enlace simb'olico a un fichero. Por ejemplo, si usamos la orden


      # ln -s foo bar


   crearemos un enlace simb'olico bar apuntando al fichero foo. Si usamos ls -i, veremos que los
dos ficheros tienen inodos diferentes, en efecto.


      # ls -i foo bar
      22195 bar    22192 foo
      #


   De cualquier modo, usando ls -l vemos que el fichero bar es un enlace simb'olico apuntando a
foo.


      # ls -l foo bar
      lrwxrwxrwx    1 root      root            3 Aug  5 16:51 bar -> foo
      -rw-r--r--    1 root      root           12 Aug  5 16:50 foo
      #


   Los bits de permisos en un enlace simb'olico no se usan (siempre aparecen como rwxrwxrwx). En
su lugar, los permisos del enlace simb'olico son determinados por los permisos del fichero "apuntado"
por el enlace (en nuestro ejemplo, el fichero foo).
______________________________________________________________________________________________________110    *
 *                                           @


    Funcionalmente, los enlaces duros y simb'olicos son similares, pero hay algunas diferencias. Por
una parte, puede crear un enlace simb'olico a un fichero que no existe; lo mismo no es cierto para
enlaces duros.  Los enlaces simb'olicos son procesados por el n'ucleo de forma diferente a los duros,
lo cual es solo una diferencia t'ecnica, pero a veces importante. Los enlaces simb'olicos son de ayuda
puesto que identifican al fichero al que apuntan; con enlaces duros no hay forma f'acil de saber que
fichero est'a enlazado al mismo inodo.

    Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simb'olicos son especialmente
importantes para las im'agenes de las librer'ias compartidas en /lib. Ver la Secci'on 4.7.2 para m'as
informaci'on.

3.11       Control de Tareas



3.11.1     Tareas y procesos


Control de Tareas es una utilidad incluida en muchos shells (incluidas Bash y Tcsh), que permite
el control de multitud de comandos o tareas al momento.  Antes de seguir, deberemos hablar un
poco sobre los procesos.

    Cada vez que usted ejecuta un programa, usted lanza lo que se conoce como proceso, que es
simplemente el nombre que se le da a un programa cuando se esta ejecutando.  El comando ps
visualiza la lista de procesos que se est'an ejecutando actualmente, por ejemplo:



      /home/larry# ps


        PID TT STAT  TIME COMMAND
         24  3 S      0:03 (bash)
        161  3 R      0:00 ps


      /home/larry#



La columna PID representa el identificador de proceso. La 'ultima columna COMMAND, es el nombre
del proceso que se est'a ejecutando.  Ahora solo estamos viendo los procesos que est'a ejecutando
Larry5. Vemos que hay dos procesos, bash (Que es el shell o int'erprete de comandos que usa Larry),
y el propio comando ps. Como puede observar, la bash se ejecuta concurrentemente con el comando
ps. La bash ejecut'o ps cuando Larry tecle'o el comando. Cuando ps termina de ejecutarse (despu'es
de mostrar la tabla de procesos), el control retorna al proceso bash, que muestra el prompt, indicando
que est'a listo para recibir otro comando.

    Un proceso que esta corriendo se denomina tarea para el shell.  Los t'erminos proceso y tarea,
son intercambiables.  Sin embargo, se suele denominar "tarea" a un proceso, cuando es usado en
conjunci'on con control de tareas, que es un rasgo del shell que permite cambiar entre distintas
tareas.
_________________________________________5
    Hay muchos m'as procesos aparte de estos corriendo en el sistema, para verlos todos, teclearemos el coman*
 *do "ps
-aux".
______________________________________________________________________________________________________3.11.  *
 *Control de Tareas                 @


   En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el 'ultimo comando que
ellos teclearon desde el shell. Sin embargo, usando el control de tareas, usted podr'a ejecutar diferentes
tareas al mismo tiempo, cambiando entre cada uno de ellos conforme lo necesite. >Cu'an beneficioso
puede llegar a ser esto?.  Supongamos que est'a usted con su procesador de textos, y de repente
necesita parar y realizar otra tarea, con el control de tareas, usted podr'a suspender temporalmente
el editor, y volver al shell para realizar cualquier otra tarea, y luego regresar al editor como si no lo
hubiese dejado nunca.  Lo siguiente solo es un ejemplo, hay montones de usos pr'acticos del control
de tareas.
3.11.2     Primer plano y Segundo plano


Un proceso puede estar en Primer plano o en Segundo plano.  Solo puede haber un proceso
en primer plano al mismo tiempo, el proceso que est'a en primer plano, es el que interactua con
usted_recibe entradas de teclado, y env'ia las salidas al monitor.  (Salvo, por supuesto, que haya
redirigido la entrada o la salida, como se describe en la Secci'on 3.8). El proceso en segundo plano,
no recibe ninguna se"nal desde el teclado_por lo general, se ejecutan en silencio sin necesidad de
interacci'on.

   Algunos programas necesitan mucho tiempo para terminar, y no hacen nada interesante mientras
tanto. Compilar programas es una de estas tareas, as'i como comprimir un fichero grande. No tiene
sentido que se siente y se aburra mientras estos procesos terminan. En estos casos es mejor lanzarlos
en segundo plano, para dejar el ordenador en condiciones de ejecutar otro programa.

   Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se est'a ejecutando
actualmente, sino que est'a temporalmente parado. Despu'es de suspender una tarea, puede indicar a
la misma que contin'ue, en primer plano o en segundo, seg'un necesite. Retomar una tarea suspendida
no cambia en nada el estado de la misma_la tarea continuar'a ejecutandose justo donde se dej'o.

   Tenga en cuenta que suspender un trabajo no es lo mismo_que_interrumpirlo._ Cuando usted
interrumpe un proceso (generalmente con la pulsaci'on de |_ctrl-C_|6), el proceso muere, y deja de
estar en memoria y utilizar recursos del ordenador. Una vez eliminado, el proceso no puede continuar
ejecutandose, y deber'a ser lanzado otra vez para volver a realizar sus tareas. Tambi'en_se_puede dar
el caso de que algunos programas capturan la interrupci'on, de modo que pulsando |_ctrl-C_|no se
para inmediatamente.  Esto se hace para permitir al programa realizar operaciones necesarias de
limpieza antes de terminar7.  De hecho, algunos programas simplemente no se dejan matar por
ninguna interrupci'on.
3.11.3     Env'io a segundo plano y eliminaci'on procesos


Empecemos con un ejemplo sencillo. El comando yes es un comando aparentemente in'util que env'ia
una serie interminable de y-es a la salida est'andard. (Realmente es muy 'util. Si se utiliza una tuber'ia
_________________________________________6
____La_tecla_de interrupci'on puede definirse usando el comando stty.  Por defecto, en la mayor'ia de sistema*
 *s es

|_ctrl-C_|,7pero no se puede garantizar que sea la misma en su sistema.
    Tiempo necesario para guardar algunos registros, etc.
______________________________________________________________________________________________________112    *
 *                                           @


(o "pipe") para unir la salida de yes con otro comando que haga preguntas del tipo si/no, la serie
de y-es confirmar'a todas las preguntas.)

    Pruebe con esto.



      /home/larry# yes
      y
      y
      y
      y
      y



    La serie de y-es continuar'a_hasta_el infinito, a no ser que usted la elimine, pulsando la tecla de
interrupci'on, generalmente |_ctrl-C_|. Tambi'en puede deshacerse de esta serie de y-es redigiriendo la
salida est'andard de yes hacia /dev/null, que como recordar'a es una especie de "agujero negro" o
papelera para los datos. Todo lo que usted env'ie all'i, desaparecer'a.



      /home/larry# yes > /dev/null



Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna.  Esto es
porque yes sigue ejecutandose y enviando esos in'utiles y-es a /dev/null.  Para recuperarlo, pulse
la tecla de interrupci'on.

    Supongamos ahora que queremos dejar que el comando yes siga ejecutandose, y volver al mismo
tiempo a la shell para trabajar en otras cosas. Para ello nos enviaremos a yes a segundo plano, lo
que nos permitir'a ejecutarlo, pero sin necesidad de interacci'on.

    Una forma de mandar procesos a segundo plano es a"nadiendo un car'acter "&" al final de cada
comando.



      /home/larry# yes > /dev/null &
      [1] 164
      /home/larry#



Como podr'a ver, ha regresado a la shell.  >Pero que es eso de "[1] 164"?, >se est'a ejecutando
realmente el comando yes?

    "[1]" representa el n'umero de tarea del proceso yes. La shell asigna un n'umero a cada tarea
que se est'e ejecutando. Como yes es el 'unico comando que se est'a ejecutando, se le asigna el n'umero
de tarea 1.  El n'umero "164" es el n'umero de identificaci'on del proceso, o PID, que es el n'umero
que el sistema le asigna al proceso.  Ambos n'umeros pueden usarse para referirse a la tarea como
veremos despu'es.

    Ahora usted tiene el proceso yes corriendo en segundo plano, y enviando constantemente la se"nal
y hacia el dispositivo /dev/null.Para chequear el estado del proceso, utilice el comando interno de
la shell jobs:
______________________________________________________________________________________________________3.11.  *
 *Control de Tareas                 @


      /home/larry# jobs
      [1]+  Running                   yes >/dev/null  &
      /home/larry#



   <Ah'i est'a!. Tambi'en puede usar el comando ps, como mostramos antes, para comprobar el estado
de la tarea.

   Para eliminar una tarea, utilice el comando kill. Este comando toma como argumento un n'umero
de tarea o un n'umero de ID de un proceso. Esta era la tarea 1, as'i que usando el comando



      /home/larry# kill %1



matar'a la tarea.  Cuando se identifica la tarea con el n'umero de tarea, se debe preceder el n'umero
con el car'acter de porcentaje (`%").

   Ahora que ya hemos matado la tarea, podemos usar el comando jobs de nuevo para comprobarlo:



      /home/larry# jobs


      [1]+  Terminated                yes >/dev/null



      /home/larry#



   La tarea est'a, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrar'a nada.

   Tambi'en podr'a matar la tarea usando el n'umero de ID de proceso (PID), el cual se muestra
conjuntamente con el ID de tarea cuando arranca la misma. En nuestro ejemplo el ID de proceso es
164, as'i que el comando



      /home/larry# kill 164



es equivalente a



      /home/larry# kill %1



   No es necesario usar el "%" cuando nos referimos a una tarea a trav'es de su ID de proceso.
3.11.4     Parada y relanzamiento de tareas


Hay otra manera de poner una tarea en segundo plano.  Usted puede lanzarlo como un proceso
normal (en primer plano), pararlo, y despu'es relanzarlo en segundo plano.

   Primero, lance el proceso yes en primer plano como lo har'ia normalmente:



      /home/larry# yes > /dev/null
______________________________________________________________________________________________________114    *
 *                                           @


    De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell.
                                              _________
    Ahora, en vez de interrumpir la tarea con |_ctrl-C_|, suspenderemos la tarea.  El suspender una
tarea no la mata:  solamente la detiene temporalmente hasta_que_Ud.  la retoma.  Para hacer esto
usted debe pulsar la tecla de suspender, que suele ser |_ctrl-Z_|.



      /home/larry#_yes > /dev/null

      |_ctrl-Z_|
      [1]+  Stopped                   yes >/dev/null
      /home/larry#



    Mientras el proceso est'a suspendido, simplemente no se esta ejecutando.  No gasta tiempo de
CPU en la tarea.  Sin embargo, usted puede retomar el proceso de nuevo como si nada hubiera
pasado. Continuar'a ejecutandose donde se dej'o.

    Para relanzar la tarea en primer plano, use el comando fg (del ingl'es "foreground").



      /home/larry# fg
      yes >/dev/null



    La shell muestra el nombre del comando de nuevo, de forma que_tenga_conocimiento_de que tarea
es la que ha puesto en primer plano. Pare la tarea de nuevo, con |_ctrl-Z_|. Esta vez utilice el comando
bg para poner la tarea en segundo plano. Esto har'a que el comando siga ejecutandose igual que si
lo hubiese hecho desde el principio con "&" como en la secci'on anterior.



      /home/larry# bg
      [1]+ yes >/dev/null &
      /home/larry#



    Y tenemos de nuevo el prompt. El comando jobs deber'ia decirnos que yes se est'a ejecutando, y
podemos matar la tarea con kill tal y como lo hicimos antes.
                                                      _________
    >C'omo podemos parar la tarea de nuevo?  Si pulsa |_ctrl-Z_|no funcionar'a, ya que el proceso
est'a en segundo plano. La respuesta es poner el proceso en primer plano de nuevo, con el comando
fg, y entonces pararlo.  Como puede observar podr'a usar fg tanto con tareas detenidas, como con
las que est'en segundo plano.

    Hay una gran diferencia entre una tarea que se encuentra en segundo plano, y una que se encuentra
detenida. Una tarea detenida es una tarea que no se est'a ejecutando, es decir, que no usa tiempo de
CPU, y que no est'a haciendo ning'un trabajo (la tarea aun ocupa un lugar en memoria, aunque puede
ser volcada a disco).  Una tarea en segundo plano, se est'a ejecutando, y usando memoria, a la vez
que completando alguna acci'on mientras usted hace otro trabajo. Sin embargo, una terea en segundo
plano puede intentar mostrar texto en su terminal, lo que puede resultar molesto si est'a intentando
hacer otra cosa. Por ejemplo, si usted us'o el comando



      /home/larry# yes &
______________________________________________________________________________________________________3.12.  *
 *Usando el editor vi               @


sin redirigir stdout a /dev/null, una cadena_de_y-es_se mostrar'an en su monitor, sin modo alguno
de interrumpirlo (no puede hacer uso de |_ctrl-C_|para interrumpir tareas en segundo plano). Para
poder parar esas interminables_y-es,_tendr'ia que usar el comando fg para pasar la tarea a primer
plano, y entonces usar |_ctrl-C_|para matarla.

   Otra observaci'on. Normalmente, los comandos "fg" y "bg" actuan sobre el 'ultimo proceso parado
(indicado por un "+" junto al n'umero de tarea cuando usa el comando jobs). Si usted tiene varios
procesos corriendo a la vez, podr'a mandar a primer o segundo plano una tarea especifica indicando
el ID de tarea como argumento de fg o bg, como en


      /home/larry# fg %2


(para la tarea de primer plano n'umero 2), o


      /home/larry# bg %3


(para la tarea de segundo plano n'umero 3). No se pueden usar los ID de proceso con fg o bg.

   Adem'as de esto,si usa el n'umero de tarea por si solo, como


      /home/larry# %2


es equivalente a


      /home/larry# fg %2


   Solo recordarle que el uso de control de tareas es una utilidad de la shell. Los comandos fg, bg y
jobs son internos de la shell. Si por alg'un motivo usted utiliza una shell que no soporta control de
tareas, no espere disponer de estos comandos.

   Y adem'as, hay algunos aspectos del control de tareas que difieren entre Bash y Tcsh. De hecho,
algunas shells no proporcionan ning'un control de tareas_sin embargo,  la mayor'ia de las shells
disponibles para Linux soportan control de tareas.

3.12      Usando el editor vi



Un editor de texto es simplemente un programa usado para la edici'on de ficheros que contienen
texto, como una carta, un programa en C, o un fichero de configuraci'on del sistema. Mientras que
hay muchos editores de texto disponibles en Linux, el 'unico editor que est'a garantizado encontrar
en cualquier sistema UNIX es vi_el "visual editor". vi no es el editor m'as f'acil de usar, ni es muy
autoexplicativo. De cualquier forma, como es tan com'un en el mundo UNIX y es posible que alguna
vez necesite usarlo, aqu'i encontrar'a algo de documentaci'on.

   La elecci'on de un editor es principalmente una cuesti'on de gusto personal y estilo.  Muchos
usuarios prefieren el barroco, autoexplicativo y potente Emacs_un editor con m'as caracter'isticas
que cualquier otro programa 'unico en el mundo UNIX. Por ejemplo, Emacs tiene integrado su propio
______________________________________________________________________________________________________116    *
 *                                           @


dialecto del lenguaje de programaci'on LISP y tiene muchas extensiones (una de ellas es el programa
"Eliza"- como programa de IA). Pero como Emacs y todos sus ficheros de soporte es relativamente
grande, puede que no tenga acceso a 'el en muchos sistemas. vi, por otra parte, es peque"no y potente,
pero m'as dif'icil de usar. De cualquier modo, una vez conozca la forma de funcionamiento de vi, es
muy f'acil usarlo. Simplemente la curva de aprendizaje es bastante pronunciada al comienzo.

    Esta secci'on es una introducci'on coherente a vi_no discutiremos todas sus caracter'isticas, solo
aquellas necesarias para que sepa como comenzar.  Puede dirigirse a la p'agina de manual de vi si
est'a interesado en aprender m'as acerca de las caracter'isticas de este editor, o puede leer el libro
Learning the vi Editor de O'Reilly and Associates. Vea el Ap'endice A para informaci'on.
3.12.1     Conceptos


Mientras se usa vi, en cualquier momento estar'a en uno de tres posibles modos de operaci'on. Estos
modos son conocidos como modo 'ordenes, modo inserci'on y modo 'ultima l'inea.

    Cuando inicia vi, est'a en el modo 'ordenes. Este modo le permite usar ciertas 'ordenes para editar
ficheros o cambiar a otros modos.  Por ejemplo, tecleando "x" mientras est'a en el modo 'ordenes,
borra el car'acter que hay debajo del cursor.  Las teclas del cursor mueven este por el fichero que
estamos editando. Generalmente, las 'ordenes usadas en este modo son solo de uno o dos car'acteres
de longitud.

    Habitualmente insertar'a o editar'a texto desde el modo inserci'on.  Usando vi, probablemente
dedicar'a la mayor parte del tiempo en este modo.  Inicia el modo de inserci'on al usar una orden
como "i" (para "insertar") desde el modo de 'ordenes. Una vez en el modo de inserci'on, ir'a insertando
texto en el documento desde_la posici'on actual del cursor. Para salir del modo de inserci'on y volver
al de 'ordenes, pulse |_esc_|.

    Modo 'ultima l'inea es un modo especial usado para proporcionar ciertas 'ordenes extendidas a vi.
Al usar esos comandos, aparecen en la 'ultima l'inea de la pantalla (de ah'i el nombre). Por ejemplo,
cuando teclea ":" desde el modo de 'odenes, entrar'a en el modo 'ultima l'inea, y podr'a usar 'ordenes
como "wq" (para escribir el fichero a disco y salir de vi), o "q!"  (para salir de vi sin guardar los
cambios). El modo de 'ultima l'inea es habitualmente usado por 'ordenes vi mayores_de_un car'acter.
En el modo de 'ultima l'inea, introduce una orden de una sola l'inea y pulsa |_enter_|para ejecutarla.
3.12.2     Comenzando con vi


La mejor forma de entender estos conceptos es arrancar vi y editar un fichero.  En el ejemplo
"screens" que veremos, vamos a mostrar solo unas pocas l'ineas de texto, como si la pantalla tuviese
solo seis l'ineas de altura (en lugar de veinticuatro).

    La sintaxis de vi es


      vi <filename>


donde <filename> es el nombre del fichero que desea editar.

    Arranque vi tecleando
______________________________________________________________________________________________________3.12.  *
 *Usando el editor vi               @


      /home/larry# vi test


lo que editar'a el fichero test. Deber'ia ver algo como

      ___________________________________________________________________________________||
      | ~_                                                                                |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_"test"[New_file]_________________________________________________________________ |


   La columna de car'acteres "~" indica que est'a al final del fichero.
3.12.3     Insertando texto

                                                                             ___
Est'a ahora en modo 'ordenes; para poder insertar texto en el fichero, pulse |_i_|(lo que le har'a entrar
en modo inserci'on), y comience a escribir.

      ___________________________________________________________________________________||

      | Now is the time for all good men to come to the aid of the party._                |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |

                                                                              _________
   Mientras inserta texto, puede escribir tantas l'ineas como desee (pulsando |_return_|despu'es de
cada una, por supuesto), y puede corregir los errores con la tecla de borrado de car'acter.
                                                                         _____
   Para salir del modo de inserci'on y volver al modo de 'ordenes, pulse |_esc_|.

   Mientras est'e en modo 'ordenes, puede usar las teclas del cursor para moverse por el fichero. En
nuestro ejemplo, como solo tenemos una l'inea, el tratar de usar las teclas de l'inea arriba o abajo,
probablemente har'a que vi emita un pitido.

   Hay muchas formas de insertar texto a parte de la orden i. Por ejemplo, la orden a inserta texto
comenzando detr'as de la posici'on actual del cursor, en lugar de la posici'on actual del cursor.  Por
ejemplo, use la tecla de cursor a la izquierda para desplazar el cursor entre las palabras "good" y
"men".

      ___________________________________________________________________________________||

      | Now is the time for all good__men to come to the aid of the party.                |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |

         ___                                                       _____
   Pulse |_a_|para iniciar el modo inserci'on, teclee "wo" y pulse |_esc_|para volver al modo de 'odenes.
______________________________________________________________________________________________________118    *
 *                                           @

      ___________________________________________________________________________________
      | Now is the time for all good women to come to the aid of the party.               |
      |                                __                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


    Para_comenzar a insertar texto en la l'inea de debajo de la actual, use la orden "o". Por ejemplo,
pulse |_o_|y teclee otra l'inea o dos:


      ___________________________________________________________________________________||

      | Now is the time for all good women to come to the aid of the party.               |
      | Afterwards, we'll go out for pizza and beer._                                     |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


    Solo recuerde que en cualquier momento est'a en modo de 'ordenes (donde 'ordenes_como i, a o o
son v'alidas, o en modo de inserci'on (cuando est'e insertando texto, pulse |_esc_|para volver al modo
de 'ordenes), o en modo de 'ultima l'inea (donde puede introducir comandos extendidos, como veremos
m'as adelante).
3.12.4     Borrando texto

                                                                                     ___
Desde el modo de 'ordenes, la orden x borra el car'acter debajo del cursor. Si pulsa |_x_|cinco veces,
terminar'a con:

      ___________________________________________________________________________________||

      | Now is the time for all good women to come to the aid of the party.               |
      | Afterwards, we'll go out for pizza and__                                          |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |

                ___                                    _____
    Ahora pulse |_a_|, inserte algun texto, seguido de |_esc_|:


      ___________________________________________________________________________________||

      | Now is the time for all good women to come to the aid of the party.               |
      | Afterwards, we'll go out for pizza and Diet Coke._                                |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |

                                                                     ___
    Puede borrar l'ineas enteras usando la orden dd (es decir, pulse |_d_|dos veces en una fila).  Si el
cursor est'a en la segunda l'inea y teclea dd,
______________________________________________________________________________________________________3.12.  *
 *Usando el editor vi               @

      ___________________________________________________________________________________
      | Now is the time for all good women to come to the aid of the party.               |
      | __                                                                                |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


   Para borrar la palabra sobre la que se encuentra el cursor, use la orden dw. Situe el cursor sobre
la palabra "good" y pulse dw.


      ___________________________________________________________________________________||

      | Now is the time for all w_omen to come to the aid of the party.                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


3.12.5     Modificando texto



Puede sustituir_secciones de texto usando la orden R. Situe el cursor en la primera letra de "party"
y pulse |_R_|, y escriba la palabra "hungry".


      ___________________________________________________________________________________||

      | Now is the time for all women to come to the aid of the hungry._                  |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


   El uso de R para editar texto es bastante parecido al uso de las 'ordenes i y a, pero R sobreescribe
texto en lugar de insertarlo.

   La orden r sustituye un 'unico car'acter situado debajo del cursor. Por ejemplo, situe el cursor al
comienzo de la palabra "Now" y escriba r seguido de C. Obtendr'a:


      ___________________________________________________________________________________||

      | C_ow is the time for all women to come to the aid of the hungry.                  |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


   La orden "~" cambia de may'usculas a min'usculas o viceversa la letra sobre la que se_encuentra_
el cursor. Por ejemplo, si situa el cursor sobre la "o" de "Cow", y repetidamente pulsa |_~_|, obtendr'a:
______________________________________________________________________________________________________120    *
 *                                           @

      ___________________________________________________________________________________
      | COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY.                   |
      |                                                               __                  |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |
3.12.6     Ordenes de movimiento


Ya conoce como usar las teclas del cursor para moverse por el documento. Adem'as, puede usar las
'ordenes h, j, k y l para mover el cursor a la izquierda, abajo, arriba y derecha respectivamente.
Esto es muy c'omodo cuando (por alguna raz'on) sus teclas de cursor no funcionen correctamente.

    La orden w mueve el cursor al comienzo de la siguente palabra; b lo lleva al comienzo de la palabra
anterior.

    La orden 0 (cero) mueve el cursor al comienzo de la l'inea actual, y la orden $ lo lleva al final de
la l'inea.

    Al editar ficheros grandes, querr'a_moverse_hacia adelante y atr'as a lo largo del fichero_mostrando_
una pantalla cada vez. Pulsando |_ctrl-F_|avanza el cursor una pantalla hacia adelante y |_ctrl-B_|lo
lleva una pantalla atr'as.

    Para llevar el cursor al final del fichero, pulse G. Puede tambi'en desplazarse a una l'inea arbitraria;
por ejemplo, pulsando la orden 10G llevar'a el cursor a la l'inea 10 del fichero.  Para desplazarse al
comienzo, use 1G.

    Puede asociar 'ordenes de desplazamiento con otras 'ordenes como es el borrado.  Por ejemplo,
la orden d$ borrar'a todo desde la posici'on del cursor al final de la l'inea; dG borrar'a todo desde la
posici'on del cursor al final del fichero.
3.12.7     Guardando ficheros y saliendo de vi


Para salir de vi sin modificar el fichero use la orden :q!. Al pulsar ":", el cursor se desplazar'a a la
'ultima l'inea de la pantalla; est'a en modo 'ultima l'inea.

      ___________________________________________________________________________________||
      | COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY.                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | :                                                                                 |
      |__________________________________________________________________________________ |

    En el modo de 'ultima l'inea hay disponibles una serie de 'ordenes extendidas. Una de ellas es q!,
la cual permite salir de vi sin guardar los cambios.  La orden :wq salva el fichero y sale de_vi.__La_
orden ZZ (desde el modo de 'ordenes, sin ":") es equivalente a :wq. Recuerde que debe pulsar |_enter_|
despu'es de introducir la orden para que esta se ejecute en el modo 'ultima l'inea.
______________________________________________________________________________________________________3.12.  *
 *Usando el editor vi               @


   Para salvar el fichero sin salir de vi, simplemente use :w.
3.12.8     Editando otro fichero


Para editar otro fichero use la orden :e.  Por ejemplo, para dejar de editar el fichero test y en su
lugar editar el fichero foo, use la orden
      ___________________________________________________________________________________||
      | COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY.                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | :e foo                                                                            |
      |__________________________________________________________________________________ |

   Si usa :e sin salvar primero el fichero, obtendr'a el mensaje de error

      ___________________________________________________________________________________||

      |_No_write_since_last_change_(":edit!"_overrides)__________________________________ |

lo cual significa que vi no quiere editar otro fichero hasta que salve el primero. En este punto, puede
usar :w para guardar el fichero original, y entonces usar :e, o puede usar la orden
      ___________________________________________________________________________________||
      | COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY.                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      |                                                                                   |
      | ~                                                                                 |
      | :e!  foo                                                                          |
      |__________________________________________________________________________________ |

   El signo "!"  le dice a vi lo que realmente desea usted_editar el nuevo fichero sin salvar los
cambios del primero.
3.12.9     Incluyendo otros ficheros


Si usas la orden :r Puede incluir el contenido de otro fichero en el fichero que est'a editando.  Por
ejemplo


      :r foo.txt


insertar'ia el contenido del fichero foo.txt en el texto en la posici'on actual de cursor.
3.12.10      Ejecutando comandos del int'erprete


Puede tambi'en ejecutar comandos del int'erprete desde el interior de vi. La orden :r! funciona como
:r, pero en lugar de leer un fichero, inserta la salida de un comando dado en el fichero en la posici'on
actual del cursor. Por ejemplo, si usa la orden
______________________________________________________________________________________________________122    *
 *                                           @


      :r!  ls -F



obtendr'a

      ___________________________________________________________________________________||

      | COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY.                   |
      | letters/                                                                          |
      |                                                                                   |
      | misc/                                                                             |
      | papers/                                                                           |
      |       __                                                                          |
      | ~                                                                                 |
      |                                                                                   |
      |_~________________________________________________________________________________ |


    Tambi'en puede salir a un int'erprete de comandos desde vi, es decir, ejecutar una orden desde
dentro de vi y volver al editor una vez esta finalize. Por ejemplo, si usa la orden



      :!  ls -F



la orden ls -F ser'a ejecutada, y los resultados mostrados en la pantalla, pero no insertados en el
fichero en edici'on. Si usa la orden



      :shell



vi  iniciar'a  una  instancia  del  int'erprete  de  comandos,  permitiendole  temporalmente  dejar  a  vi
"parado" mientras ejecuta otras 'ordenes.  Simplemente salga del int'erprete de comandos (usando
la orden exit) para regresar a vi
3.12.11      Obteniendo ayuda


vi no proporciona demasiada ayuda de forma interactiva (la mayor'ia de los programas UNIX no lo
hacen), pero siempre puede leer la p'agina de manual para vi.  vi es un "front-end" visual para el
editor ex:  es decir, es ex quien maneja la mayor'ia de las 'ordenes en el modo 'ultima l'inea.  Luego
adem'as de leer la p'agina de vi, consulte la de ex tambi'en.

3.13       Personalizando su entorno



El int'erprete de comandos proporciona muchos mecanismos para personalizar su entorno de trabajo.
Como hemos mencionado antes, el int'erprete de comandos es m'as que un mero int'erprete_es tambi'en
un poderoso lenguaje de programaci'on. Aunque escribir guiones del int'erprete de comandos es una
tarea extensa, nos gustar'ia introducirle algunas formas en las que puede simplificar su trabajo en un
sistema UNIX mediante el uso de caracter'isticas avanzadas del int'erprete.

    Como mencionamos antes, diferentes int'erpretes usan diferentes sintaxis para la ejecuci'on de
guiones.  Por ejemplo, Tcsh usa una notaci'on al estilo C, mientras que Bourne usa otro tipo de
sintaxis.  En esta secci'on no nos fijaremos en las diferencias entre los dos y supondremos que los
guiones son escritos con la sintaxis del int'erprete de comandos Bourne.
______________________________________________________________________________________________________3.13.  *
 *Personalizando su entorno         @


3.13.1     Guiones del int'erprete de comandos


Supongamos que usa una serie de comandos a menudo, y le gustar'ia acortar el tiempo requerido
para teclear agrup'andolos en una 'unica "orden". Por ejemplo, las 'ordenes



      /home/larry# cat chapter1 chapter2 chapter3 > book
      /home/larry# wc -l book
      /home/larry# lp book



concatenar'an los ficheros chapter1, chapter2 y chapter3 y guardar'a el resultado en el fichero book.
Entonces, se mostrar'a el recuento del n'umero de l'ineas del fichero book y finalmente se imprimir'a con
el comando lp.

   En lugar de teclear todos esos comandos, podr'ia agruparlos en un gui'on del int'erprete de
comandos. Describimos los guiones brevemente en la Secci'on 3.13.1. El gui'on usado para ejecutar
todas las 'ordenes ser'ia


      #!/bin/sh
      # A shell script to create and print the book


      cat chapter1 chapter2 chapter3 > book
      wc -l book
      lp book



   Si el gui'on se salva en el fichero makebook, podr'ia simplemente usar la orden



      /home/larry# makebook



para ejecutar todas las 'ordenes del gui'on. Los guiones son simples ficheros de texto; puede crearlos
con un editor como emacs o vi 8.

   Veamos este gui'on. La primera l'inea "#!/bin/sh", identifica el fichero como un gui'on y le dice al
int'erprete de comandos como ejecutarlo. Instruye al int'erprete a pasarle el gui'on a /bin/sh para la
ejecuci'on, donde /bin/sh es el programa del int'erprete. >Por que es esto importante? En la mayor'ia
de los sistemas UNIX /bin/sh es un int'erprete de comandos Bourne, como Bash. Forzando al gui'on
a ejecutarse usando /bin/sh nos estamos asegurando de que ser'a interpretado seg'un la sintaxis de
Bourne. Esto har'a que el gui'on se ejecute usando la sintaxis Bourne aunque est'e usando Tcsh como
int'erprete de comandos.

   La segunda l'inea es un comentario.  Estos comienzan con el car'acter "#" y continuan hasta el
final de la l'inea. Los comentarios son ignorados por el int'erprete de comandos_son habitualmente
usados para identificar el gui'on con el programador.

   El resto de las l'ineas del gui'on son simplemente 'ordenes como las que podr'ia teclear directamente.
En efecto, el int'erprete de comandos lee cada l'inea del gui'on y ejecuta la l'inea como si hubiese sido
tecleada en la l'inea de comandos.
_________________________________________
   8vi se describe en la Secci'on 3.12.
     ______________________________________________________________________________________________________12*
 *4                                               @


         Los permisos son importantes para los guiones.  Si crea un gui'on, debe asegurarse de que tiene
     permisos de ejecuci'on para poder ejecutarlo9. La orden


           /home/larry# chmod u+x makebook


     puede ser usada para dar permisos de ejecuci'on al gui'on makebook.
     3.13.2     Variables del int'erprete de comandos y el entorno


     El int'erprete de comandos le permite definir variables como la mayor'ia de los lenguajes de pro-
     gramaci'on. Una variable es simplemente un trozo de datos al que se le da un nombre.

3        Notese que Tcsh, as'i como otros int'erpretes del estilo C, usan un mecanismo diferente para
     inicializar variables del descrito aqu'i. Esta discusi'on supondr'a el uso del int'erprete Bourne, como *
 *es
     Bash (el cual probablemente est'a usando). Vea la p'agina de manual de Tcsh para m'as detalles.

         Cuando asigna un valor a una variable (usando el operador "="), puede acceder a la variable
     a"nadiendo a su nombre "$", como se ve a continuaci'on.


           /home/larry# foo="hello there"


     A la variable foo se le da el valor "hello there".  Podemos ahora hacer referencia a ese valor a
     trav'es del nombre de la variable con el prefijo "$". La orden


           /home/larry# echo $foo
           hello there
           /home/larry#


     produce el mismo resultado que


           /home/larry# echo "hello there"
           hello there
           /home/larry#


         Estas variables son internas al int'erprete. Esto significa que solo 'este podr'a acceder a las vari*
 *ables.
     Esto puede ser 'util en los guiones; si necesita mantener, por ejemplo, el nombre de un fichero, puede
     almacenarlo en una variable. Usando la orden set mostrar'a una lista de todas las variables definidas
     en el int'erprete de comandos.

         De cualquier modo, el int'erprete de comandos permite exportar variables al entorno. El entorno
     es el conjunto de variables a las cuales tienen acceso todas las 'ordenes que ejecute. Una vez que se
     define una variable en el int'erprete, exportarla hace que se convierta tambi'en en parte del entorno.
     La orden export es usada para exportar variables al entorno.

3        De nuevo, hemos de diferenciar entre Bash y Tcsh. Si est'a usando Tcsh, deber'a usar una sintaxis
     diferente para las variables de entorno (se usa la orden setenv). Dir'ijase a la p'agina de manual de
     Tcsh para m'as informaci'on.
     _________________________________________
        9Cuando crea ficheros de texto, los permisos por defecto usualmente no incluyen los de ejecuci'on.
______________________________________________________________________________________________________3.13.  *
 *Personalizando su entorno         @


   El entorno es muy importante en un sistema UNIX. Le permite configurar ciertas 'ordenes sim-
plemente inicializando variables con las 'ordenes ya conocidas.

   Veamos un ejemplo r'apido. La variable de entorno PAGER es usada por la orden man. Especifica
la orden que se usar'a para mostrar las p'aginas del manual una a una.  Si inicializa PAGER con el
nombre del programa, se usar'a este para mostrar las p'aginas de manual en lugar de more (el cual es
usado por defecto).

   Inicialice PAGER a "cat". Esto har'a que la salida de man sea mostrada de una, sin pausas entre
p'aginas.



      /home/larry# PAGER="cat"



   Ahora exportamos PAGER al entorno.



      /home/larry# export PAGER



   Puebe la orden man ls. La p'agina deber'ia volar por su pantalla sin detenerse entre p'aginas.

   Ahora, si inicializa PAGER a "more", se usar'a la orden more para mostrar las p'aginas del manual.



      /home/larry# PAGER="more"



   N'otese que no hemos de usar la orden export despu'es del cambio de la variable PAGER. Solo hemos
de exportar las variables una vez; cuaquier cambio efectuado con posterioridad ser'a autom'aticamente
propagado al entorno.

   Las p'aginas de manual para una orden en particular, le informar'an acerca del uso de alguna
variable de entorno por parte de esa orden; por ejemplo, la p'agina de manual de man explica que
PAGER es usado para especificar la orden de paginado.

   Algunas 'ordenes comparten variables de entorno; por ejemplo, muchas 'ordenes usan la variable
EDITOR para especificar el editor por defecto para usar si es necesario.

   El entorno es tambi'en usado para guardar informaci'on importante acerca de la sesi'on en curso.
Un ejemplo es la variable de entorno HOME, que contiene el nombre del directorio de origen del usuario.



      /home/larry/papers# echo $HOME
      /home/larry



   Otra variable de entorno interesante es PS1, la cual define el "prompt" principal que usar'a el
int'erprete. Por ejemplo,



      /home/larry# PS1="Your command, please: "
      Your command, please:



   Para volver a inicializar el "prompt" a su valor habitual (el cual contiene el directorio actual
seguido por el s'imbolo "#"),
______________________________________________________________________________________________________126    *
 *                                           @


      Your command, please:  PS1="\w# "
      /home/larry#



La p'agina de manual de bash describe la sintaxis usada para inicializar el "prompt".
3.13.2.1    La variable de entorno PATH


Cuando usa la orden ls >como encuentra el int'erprete el programa ejecutable ls?. De hecho, ls se
encuentra en /bin/ls en la mayor'ia de los sistemas. El int'erprete usa la variable de entorno PATH
para localizar los ficheros ejecutables u 'ordenes que tecleamos.

    Por ejemplo, su variable PATH puede inicializarse a:



      /bin:/usr/bin:/usr/local/bin:.



    Esto es una lista de directorios en los que el int'erprere debe buscar. Cada directorio est'a separado
por un ":".  Cuando usa la orden ls, el int'erprete primero busca /bin/ls, luego /usr/bin/ls y
as'i hasta que lo localice o acabe la lista.

    N'otese que PATH no interviene en la localizaci'on de ficheros regulares.  Por ejemplo, si usa la
orden



      /home/larry# cp foo bar



El int'erprete no usar'a PATH para localizar los ficheros foo y bar_esos nombres se suponen completos.
Solo se usar'a PATH para localizar el programa ejecutable cp.

    Esto le permitir'a ahorrar mucho tiempo; significa que no deber'a recordar donde son guarda-
das las 'odenes.  En muchos sistemas los ficheros ejecutables se dispersan por muchos sitios, como
/usr/bin, /bin o /usr/local/bin.  En lugar de dar el nombre completo con el camino (como
/usr/bin/cp), solo hemos de inicializar PATH con la lista de los directorios donde queremos que se
busquen autom'aticamente.

    N'otese que PATH contiene ".", el cual es el directorio actual de trabajo.  Esto le permite crear
guiones o programas y ejecutarlos desde su directorio de trabajo actual sin tener que especificarlo
directamente (como en ./makebool). Si un directorio no est'a en su PATH, entonces el int'erprete no
buscar'a en 'el ordenes para ejecutar_esto incluye al directorio de trabajo.
3.13.3     Guiones de inicializaci'on del int'erprete


A parte de los guiones que puede crear, hay un n'umero de estos que usa el int'erprete de coman-
dos para ciertos prop'ositos.  Los m'as importantes son sus guiones  de  inicializaci'on, guiones
autom'aticamente ejecutados por el int'erprete al abrir una sesi'on.

    Los guiones de inicializaci'on son eso, simples guiones como los descritos arriba.  De cualquier
modo, son muy 'utiles para la inicializaci'on de su entorno al ejecutarse autom'aticamente. Por ejemplo,
______________________________________________________________________________________________________3.14.  *
 *>Quieres seguir por tu cuenta?    @


si siempre usa la orden mail para comprobar si tiene correo al iniciar una sesi'on, incluya en su gui'on
de inicializaci'on dicha orden y ser'a ejecutada autom'aticamente.

   Tanto Bash como Tcsh distinguen entre un int'erprete de presentaci'on y otras invocaciones
del int'erprete. Un int'erprete de presentaci'on es el que se ejecuta en el momento de la presentaci'on
al sistema (login).  Es el 'unico que usar'a.  De cualquier modo, si ejecuta una opci'on de salir a un
int'erprete desde alg'un programa, como vi, inicializa otra instancia del int'erprete de comandos, el
cual no es su int'erprete de presentaci'on.  Adem'as, en cualquier momento que ejecuta un gui'on,
autom'aticamente est'a arrancando otro int'erprete que va a ser el encargado de ejecutar el gui'on.

   Los ficheros de inicializaci'on usados por Bash son: /etc/profile (configurado por el adminis-
trador del sistema, y ejecutado por todos los usuarios de Bash en el momento de la presentaci'on al
sistema), $HOME/.bash_profile (ejecutado por una sesi'on de presentaci'on Bash) y $HOME/.bashrc
(ejecutadas  por  todas  las  sesiones  Bash  que  no  son  de  presentaci'on).   Si  .bash_profile  no
est'a presente, se usa en su lugar .profile

   Tcsh usa los siguientes guiones de inicializaci'on:  /etc/csh.login (ejecutado por todos los
usuarios de Tcsh en el momento de la presentaci'on al sistema), $ HOME/.tcshrc (ejecutado en la
presentaci'on al sistema por todas las instancias nuevas de Tcsh) y $HOME/.login (ejecutado en la
presentaci'on al sistema, seguido .tcshrc). Si .tcshrc no est'a presente, .cshrc se usa en su lugar.

   Para entender completamente la funci'on de estos ficheros, necesitar'a aprender m'as acerca del
int'erprete de comandos. La programaci'on de guiones es una materia complicada, m'as all'a del alcance
de este libro. Lea las p'aginas de manual de bash y/o tcsh para aprender m'as sobre la configuraci'on
de su entorno.
3.14      >Quieres seguir por tu cuenta?



Esperamos haberle proporcionado suficiente informaci'on para darle una idea b'asica de como usar el
sistema, teniendo en cuenta que la mayor'ia de los aspectos m'as importantes e interesantes de Linux
no est'an cubiertos aqu'i_ esto es muy b'asico.  Con esta base, en poco tiempo estar'a ejecutando
complicadas aplicaciones y aprovechando todo el potencial de tu sistema.  Si la cosa no es muy
excitante al comienzo, no desespere_ hay mucho que aprender.

   Una herramienta indispensable para aprender acerca del sistema son las p'aginas del manual.
Aunque muchas de las p'aginas pueden parecer confusas al principio,  si se profundiza hay gran
cantidad de informaci'on en ellas.

   Tambi'en es interesante leer un libro sobre la utilizaci'on de un sistema UNIX. Hay mucho m'as en
UNIX de lo que pueda parecer a simple vista- desafortunadamente, la mayor'ia de ello queda fuera
del alcance de este libro.  En el ap'endice A encontrar'as una lista de algunos buenos libros sobre
UNIX.
______________________________________________________________________________________________________128    *
 *                                           @




Cap'itulo  4



Administraci'on  del  Sistema



Este cap'itulo es una visi'on general de la administraci'on de un sistema Linux, incluyendo un n'umero
de posibilidades avanzadas que no son, necesariamente, s'olo para administradores de sistemas. Igual
que cada perro tiene su d'ia, cada sistema tiene su administrador, y poner en marcha el sistema es
un trabajo muy importante y a veces consume mucho tiempo, incluso si se es el 'unico usuario en el
sistema.

   Hemos intentado cubrir aqu'i los elementos m'as importantes acerca de la administraci'on de sistem-
as que se necesitan conocer cuando se use Linux, en suficiente detalle para empezar confortablemente.
Para mantenerlo corto y agradable, s'olo hemos cubierto los niveles m'as b'asicos y nos hemos saltado
muchos e importantes detalles.  Se debe leer el Linux System Administrator's Guide si se quiere
ejecutar Linux en serio.  Le ayudar'a a comprender mejor como funcionan las cosas y como se en-
samblan juntas. Al menos hoj'eelo para que pueda conocer qu'e contiene y qu'e tipo de ayuda puede
esperar de 'el.

4.1      Acerca de Ra'ices, Sombreros y la Sensaci'on de Poder



Como sabe, UNIX distingue entre diferentes usuarios para que lo que hagan a los dem'as y al sistema
pueda ser regulado (uno no desear'ia que nadie pudiese leer nuestras cartas de amor, por ejemplo).
Cada usuario recibe una cuenta que incluye un nombre de usuario, un directorio inicial, y otras cosas
por el estilo.  Adem'as de las cuentas dadas a personas reales, existen cuentas especiales, definidas
por el sistema, que tienen privilegios especiales. La m'as importante de 'estas es la cuenta ra'iz, con
el nombre de usuario root.
4.1.1    La cuenta root


Los usuarios normales est'an restringidos normalmente para que no puedan da"nar a nadie m'as en el
sistema, s'olo a ellos mismos. Los permisos de los ficheros en el sistema est'an preparados para que
los usuarios normales no tengan permitido borrar o modificar ficheros en directorios compartidos


                                                 129
______________________________________________________________________________________________________130    *
 *                                           @


por todos los usuarios (como son /bin y /usr/bin. Muchos usuarios tambi'en protegen sus propios
ficheros con los permisos adecuados para que otros usuarios no puedan acceder o modificar 'estos
ficheros.

    Estas restricciones desaparecen para root.  El usuario root puede leer, modificar o borrar cu-
alquier fichero en el sistema, cambiar permisos y pertenencias en cualquier fichero, y ejecutar progra-
mas especiales, como pueden ser los que particionan un disco o crean sistemas de ficheros. La idea
b'asica es que la persona o personas que ejecutan y cuidan del sistema entren como root cuando sea
necesario para realizar tareas que no pueden ser ejecutadas por un usuario normal. Puesto que root
puede hacer todo, es f'acil cometer errores que tengan consecuencias catastr'oficas cuando se trabaja
utilizando esta cuenta.

    Por ejemplo, como un usuario normal, si inadvertidamente se intentase borrar todos los ficheros
en /etc, el sistema no lo permitir'ia. Sin embargo, como usuario root, el sistema no dir'ia nada. Es
muy simple el da"nar el sistema utilizando root. La mejor forma de evitar accidentes es:

                                             _________
    o Pens'arselo dos veces antes de apretar |_return_|en un comando_que_pueda causar da"no.  Por
      ejemplo, si se va a borrar un directorio, antes de pulsar |_return_|, releer el comando completo
      y asegurarse que es correcto.


    o No acostumbrarse a utilizar root.  Cuanto m'as confortable se encuentre uno trabajando con
      el usuario root, m'as seguro que se confundir'an los privilegios con los de un usuario nor-
      mal. Por ejemplo, puede uno pensar que se est'a conectado como larry, cuando realmente se
      est'a conectado como root.


    o Utilice un marcador distinto para la cuenta root.  Se debe cambiar el fichero .bashrc o el
      .login de root para poner el marcador del int'erprete a algo distinto del marcador de usuario
      normal.  Por ejemplo, mucha gente utiliza el car'acter "$" como marcador para los usuarios
      normales, y reserva el car'acter "#" como marcador para el usuario root.


    o Conectarse como root s'olo cuando sea absolutamente necesario.  Y desconectarse tan pronto
      como se haya terminado el trabajo. Cuanto menos se use la cuenta root, menos posibilidades
      habr'a de da"nar el sistema.



Por supuesto, existe una variante de hackers de UNIX que utilizan root para pr'acticamente todo.
Pero cada uno de ellos ha cometido, en alg'un momento, alg'un error tonto como root y corrompido
el sistema. La regla general es que hasta que se familiarice con la falta de restricciones de root, y
est'e c'omodo utilizando el sistema sin dichas restricciones, procure conectarse como root lo menos
posible.

    Por supuesto, todo el mundo comete errores.  El mismo Linus Torvalds borr'o accidentalmente
una vez el 'arbol de directorios completo del n'ucleo de su sistema.  Horas de trabajo se perdieron
para siempre.  Afortunadamente, sin embargo, gracias a su conocimiento del c'odigo del sistema de
ficheros, fue capaz de reiniciar el sistema y reconstruir el 'arbol de directorios del disco a mano.

    Pong'amoslo de otra forma, si se imagina la utilizaci'on de la cuenta root como la utilizaci'on de
un sombrero m'agico especial que le da montones de poderes, pudiendo, con un gesto de la mano,
destruir ciudades enteras, es una buena idea de lo que es ser un poco cauto con lo que se hace con
______________________________________________________________________________________________________4.1.   *
 * Acerca de Ra'ices, Sombreros y la@


las manos. Puesto que es f'acil mover la mano de manera destructiva por accidente, no es una buena
idea el llevar el sombrero m'agico cuando no es necesario, a pesar de la maravillosa sensaci'on.
4.1.2    Abusando del sistema


Junto con el sentimiento de poder llega la tendencia a hacer da"no. Este es uno de los puntos oscuros
de la administraci'on de sistemas UNIX, pero todo el mundo pasa por ello en alg'un momento. Muchos
usuarios de sistemas UNIX nunca tienen la posibilidad de manejar este poder _en los sistemas UNIX
de universidad y de empresas, solo los altamente cualificados (y altamente pagados) administradores
de sistemas llegan a conectarse como root.  De hecho, en muchas de esas instituciones, la clave de
root es un secreto celosamente guardado:  es tratado como el Sagrado Grial de la instituci'on.  Se
monta mucho jaleo con la conexi'on como root; est'a visto como un sabio y a la vez espantoso poder,
dado s'olo a un reducido grupo de elegidos.

   Este tipo de actitud hacia la cuenta root es, sencillamente, el tipo de actitud que alimenta la
malicia y el desprecio.  Ya que root es tan atractivo, cuando algunos usuarios tienen su primera
oportunidad de conectarse como root (ya sea en un sistema Linux, o en cualquier otro sitio), la
tendencia es a utilizar los privilegios de root de forma descuidada. Yo he conocido "administradores
de sistemas" (por llamarlos de alguna forma) que leen el correo de otros usuarios, borran ficheros de
usuario sin avisar y que, de forma general, se comportan como ni"nos cuando se les da un "juguete"
poderoso.

   Puesto que root tiene tantos privilegios en el sistema, se necesita una cierta madurez y autocontrol
para utilizar la cuenta de la forma para la que est'a dise"nada _para ejecutar el sistema. Existe un
c'odigo de honor no hablado entre el administrador y los usuarios del sistema.  Como se sentir'ia
si su administrador de sistemas leyese su correo electr'onico o mirase sus ficheros?  A'un no hay
ning'un precedente legal firme acerca de la intimidad electr'onica en sistemas de ordenadores de
tiempo compartido.  En sistemas UNIX, el usuario root tiene la posibilidad de saltarse todos los
mecanismos de seguridad y privacidad del sistema. Es importante que el administrador del sistema
desarrolle una relaci'on de confianza con los usuarios del sistema. Es algo en lo que nunca se puede
insistir lo suficiente.
4.1.3    Como proceder con los usuarios


La seguridad en UNIX es bastante laxa por dise"no.  La seguridad del sistema fue un pensamiento
posterior _el sistema se desarroll'o originalmente en un entorno donde las intrusiones de un usuario
en otro eran algo inaudito. Por esto, incluso con medidas de seguridad, a'un existe la posibilidad de
que usuarios normales hagan da"no.

   Los administradores de sistemas pueden tomar dos posturas cuando traten con usuarios abusivos:
ser paranoicos o confiados.  El administrador de sistemas paranoico normalmente causa m'as da"no
que el que previene.  Una de mis citas favoritas es, "Nunca atribuyas a la malicia nada que pueda
ser atribuido a la estupidez."  Dicho de otra forma, muchos usuarios no tienen la habilidad o el
conocimiento para hacer da"no real al sistema. El 90% del tiempo, cuando un usuario causa problemas
en el sistema (por ejemplo, rellenando la partici'on de usuarios con grandes ficheros, o ejecutando
______________________________________________________________________________________________________132    *
 *                                           @


m'ultiples instancias de un gran programa), el usuario simplemente desconoce que lo que est'a haciendo
es un problema. He ido a ver a usuarios que estaban causando una gran cantidad de problemas, pero
su actitud estaba causada por la ignorancia _no por la malicia.

    Cuando se enfrente con usuarios que puedan causar problemas potenciales no sea acusativo.
La antigua regla de "inocente hasta que se demuestre lo contrario" sigue siendo v'alida.  Es mejor
una simple charla con el usuario, pregunt'andole acerca del problema, en lugar de causar una con-
frontaci'on.  Lo 'ultimo que se desea es estar entre los malos desde el punto de vista del usuario.
Esto levantar'ia un mont'on de sospechas acerca de si usted _el administrador de sistemas_ tiene el
sistema correctamente configurado. Si un usuario cree que usted le disgusta o no le tiene confianza,
le puede acusar de borrar ficheros o romper la privacidad del sistema.  Esta no es, ciertamente, el
tipo de situaci'on en la que quisiera estar.

    Si encontrase que un usuario ha estado intentando "romper" el sistema, o ha estado haciendo
da"no al sistema de forma intencionada, no devuelva el comportamiento malicioso a su vez. En vez de
ello, simplemente, dele un aviso _pero sea flexible. En muchos casos, se puede cazar a un usuario
"con las manos en la masa" da"nando al sistema _av'isele.  D'igale que no lo vuelva a repetir.  Sin
embargo, si le vuelve a cazar haciendo da"no, entonces puede estar absolutamente seguro de que es
intencionado. Ni siquiera puedo empezar a describir la cantidad de veces que parec'ia que hab'ia un
usuario causando problemas al sistema, cuando de hecho, era o un accidente o un fallo m'io.
4.1.4     Fijando las reglas


La mejor forma de administrar un sistema no es con un pu"no de hierro.  As'i puede ser como se
haga lo militar, pero UNIX no fue dise"nado para ese tipo de disciplina.  Tiene sentido el escribir
un conjunto sencillo y flexible de reglas para los usuarios _pero recuerde, cuantas menos reglas
tenga, menos posibilidades habr'a de romperlas.  Incluso si sus reglas para utilizar el sistema son
perfectamente razonables y claras, siempre habr'a momentos en que los usuarios romper'an dichas
reglas sin pretenderlo. Esto es especialmente cierto en el caso de usuarios UNIX nuevos, que est'an
aprendiendo los entresijos del sistema. No esta suficientemente claro, por ejemplo, que uno no debe
bajarse un gigabyte de ficheros y envi'arselo por correo a todos los usuarios del sistema. Los usuarios
necesitan comprender las reglas y por que est'an establecidas.

    Si especifica reglas de uso para su sistema, aseg'urese de que el motivo detr'as de cada regla
particular est'e claro.  Si no lo hace, los usuarios encontrar'an toda clase de formas creativas de
salt'arsela y no saber que en realidad la est'an rompiendo.
4.1.5     Lo que todo esto significa


No podemos decirle como ejecutar su sistema al 'ultimo detalle.  Mucha de la filosof'ia depende en
como se use el sistema.  Si se tienen muchos usuarios, las cosas son muy diferentes de si solo tiene
unos pocos o si se es el 'unico usuario del sistema.  Sin embargo, siempre es una buena idea _en
cualquier situaci'on_ comprender lo que ser administrador de sistema significa en realidad.

    Ser el administrador de un sistema no le hace a uno un mago del UNIX. Hay muchos adminis-
tradores de sistemas que conocen muy poco acerca de UNIX. Igualmente, hay muchos usuarios "nor-
______________________________________________________________________________________________________4.2.   *
 * Arrancando el Sistema            @


males" que saben m'as acerca de UNIX que lo que cualquier administrador de sistemas.  Tambi'en,
ser el administrador de sistemas no le permite el utilizar la malicia contra sus usuarios. Aunque el
sistema le d'e el privilegio de enredar en los ficheros de los usuarios, no significa que se tenga ning'un
derecho a hacerlo.

   Por 'ultimo, ser el administrador del sistema no es realmente una gran cosa.  No importa si sus
sistema es un peque"no 386 o un super ordenador Cray.  La ejecuci'on del sistema es la misma.  El
saber la clave de root no significa ganar dinero o fama. Tan solo le permitir'a ejecutar el sistema y
mantenerlo funcionando. Eso es todo.
4.2      Arrancando el Sistema



Hay varias maneras de arrancar el sistema, bien sea desde disquete o bien desde el disco duro.
4.2.1    Utilizando un disquete de arranque


Mucha gente arranca Linux utilizando un "disquete de arranque" que contiene una copia del n'ucleo
de Linux. Este n'ucleo tiene la partici'on ra'iz de Linux codificada en 'el, para que sepa donde buscar
en el disco duro el sistema de ficheros ra'iz.  (El comando rdev puede ser utilizado para poner la
partici'on ra'iz en la imagen del n'ucleo; ver m'as adelante.)  Por ejemplo, este es el tipo de disquete
creado por Slackware durante la instalaci'on.

   Para crear su propio disquete de arranque, localice en primer lugar la imagen del n'ucleo en su
disco duro. Debe estar en el fichero /Image o /etc/Image. Algunas instalaciones utilizan el fichero
/vmlinux para el n'ucleo.

   En su lugar, puede que tenga un n'ucleo comprimido.  Un n'ucleo comprimido se descomprime
a s'imismo en memoria en tiempo de arranque, y utiliza mucho menos espacio en el disco duro.  Si
se tiene un n'ucleo comprimido, puede encontrarse en el fichero /zImage o /etc/zImage.  Algunas
instalaciones utilizan el fichero /vmlinuz para el n'ucleo comprimido.

   Una vez que se sabe donde est'a el n'ucleo, hay que poner el nombre de la partici'on ra'iz de un
dispositivo ra'iz en la imagen del n'ucleo, utilizando el comando rdev. El formato de este comando es


      rdev <nombre-de-n'ucleo> <dispositivo-ra'iz>


donde <nombre-del-n'ucleo> es el nombre de la imagen del n'ucleo, y <dispositivo-ra'iz> es el nombre de
la partici'on ra'iz de Linux. Por ejemplo, para hacer que el dispositivo ra'iz en el n'ucleo /etc/Image
sea /dev/hda2, utilice el comando


      # rdev /etc/Image /dev/hda2


   rdev tambi'en puede poner otras opciones en el n'ucleo, como puede ser el modo SVGA por defecto
a utilizar en tiempo de arranque. Tan s'olo utilice "rdev -h" para obtener un mensaje de ayuda.

   Una vez puesto el dispositivo ra'iz, tan s'olo hay que copiar la imagen del n'ucleo al disquete.
Siempre que se copia datos a un disquete, es una buena idea formatear previamente el disquete en
______________________________________________________________________________________________________134    *
 *                                           @


MS-DOS. Esto establece la informaci'on de pista y sector en el disquete con la que puede detectarse
como de alta o baja densidad.

    Por ejemplo, para copiar el n'ucleo en el fichero /etc/Image al disquete en /dev/fd0, se puede
utilizar el comando


      # cp /etc/Image /dev/fd0


    Este disquete debe arrancar ahora Linux.
4.2.2     Utilizando LILO


Otro m'etodo de arranque es utilizar LILO, un programa que reside en el sector de arranque del disco
duro.  Este programa se ejecuta cuando el sistema se inicia desde el disco duro, y puede arrancar
autom'aticamente Linux desde una imagen de n'ucleo almacenada en el propio disco duro.

    LILO puede utilizarse tambi'en como una primera etapa de carga de varios sistemas operativos,
permitiendo seleccionar en tiempo de arranque qu'e sistema operativo (como Linux o MS-DOS)
arrancar. _Cuando_se_arranca_utilizando_LILO, se inicia el sistema operativo por defecto, a menos
que pulse |_ctrl_|, |_alt_|, o |_shift_|durante la secuencia de arranque. Si se pulsa cualquiera de estas
teclas, se le presentar'a un indicador de arranque, donde debe teclear_el nombre del sistema operativo a
arrancar (como puede ser "linux" o "msdos"). Si se pulsa la tecla |_tab_|en el indicador de arranque,
se le presentar'a una lista de los sistemas operativos disponibles.

    La forma m'as simple de instalar LILO es editar el fichero de configuraci'on, /etc/lilo.conf, y
ejecutar el comando


      # /sbin/lilo


    El fichero de configuraci'on de LILO contiene una "estrofa" para cada sistema operativo que se
pueda querer arrancar. La mejor forma de mostrarlo es con un ejemplo de un fichero de configuraci'on
LILO. El ejemplo siguiente es para un sistema que tiene una partici'on ra'iz Linux en /dev/hda1 y
una partici'on MS-DOS en /dev/hda2.



      # Le indicamos a LILO que modifique el registro de arranque de
      # /dev/hda (el primer disco duro no-SCSI). Si se quiere arrancar desde
      # una unidad distinta de /dev/hda, se debe cambiar la siguiente lnea
      boot = /dev/hda


      # Nombre del cargador de arranque. No hay razn para cambiarlo, a menos
      # que se est haciendo una modificacin sera del LILO
      install = /boot/boot.b


      # Dejemos a LILO efectuar alguna optimizacin.
      compact


      # Estrofa para la particin raz de Linux en /dev/hda1.
______________________________________________________________________________________________________4.3.  C*
 *errando el Sistema                @


      image = /etc/Image    # Ubicacin del kernel
         label = linux      # Nombre del SO (para el men de aranque de LILO)
         root = /dev/hda1  # Ubicacin de la particin raiz
         vga = ask          # Indicar al ncleo que pregunte por modos SVGA
                             #    en tiempo de arranque


      # Estrofa para la particin MSDOS en /dev/hda2.
      other = /dev/hda2     # Ubicacin de la particin
         table = /dev/hda  # Ubicacin de la tabla de particin para /dev/hda2
         label = msdos      # Nombre del SO (para el men de arranque)



   La primera "estrofa" de sistema operativo en el men'u del fichero de configuraci'on ser'a el sistema
operativo que arrancar'a LILO por defecto. Se puede seleccionar otro sistema operativo en el indicador
de arranque de LILO, tal y como se indic'o anteriormente.

   Recuerde que cada vez que actualice la imagen del n'ucleo en disco, se debe reejecutar /sbin/lilo
para que los cambios queden reflejados en el sector de arranque de su unidad.

   Tambi'en tenga en cuenta que si utiliza la l'inea "root =", no hay motivo para utilizar rdev para
poner la partici'on ra'iz en la imagen del n'ucleo. LILO se encarga de ponerlo en tiempo de arranque.

   Las FAQ (Preguntas frecuentemente formuladas) (ver Ap'endice A) dan m'as informaci'on sobre
LILO, incluyendo como utilizar LILO con el "OS/2's Boot Manager".

4.3     Cerrando el Sistema



Cerrar un sistema Linux tiene algo de truco. Recuerde que nunca se debe cortar la corriente o pulsar
el bot'on de reset mientras el sistema est'e ejecut'andose. El n'ucleo sigue la pista de la entrada/salida
a disco en buffers de memoria.  Si se reinicializa el sistema sin darle al n'ucleo la oportunidad de
escribir sus buffers a disco, puede corromper sus sistemas de ficheros.

   En tiempo de cierre se toman tambi'en otras precauciones. Todos los procesos reciben una se"nal
que les permite morir airosamente (escribiendo y cerrando todos los ficheros y ese tipo de cosas).
Los sistemas de ficheros se desmontan por seguridad. Si se desea, el sistema tambi'en puede alertar
a los usuarios de que se est'a cerrando y darles la posibilidad de desconectarse.

   La forma m'as simple de cerrar el sistema es con el comando shutdown. El formato del comando
es



      shutdown <tiempo> <mensaje-de-aviso>



El argumento <tiempo> es el momento de cierre del sistema (en el formato hh:mm:ss), y <mensaje-de-
aviso> es un mensaje mostrado en todos los terminales de usuario antes de cerrar. Alternativamente,
se puede especificar el par'ametro <tiempo> como "now", para cerrar inmediatamente.  Se le puede
suministrar la opci'on -r a shutdown para reinicializar el sistema tras el cierre.

   Por ejemplo, para cerrar el sistema a las 8:00pm, se puede utilizar el siguiente comando
     ______________________________________________________________________________________________________13*
 *6                                               @


           # shutdown -r 20:00


         El comando halt puede utilizarse para forzar un cierre inmediato, sin ning'un mensaje de aviso
     ni periodo de gracia. halt se utiliza si se es el 'unico usuario del sistema y se quiere cerrar el siste*
 *ma
     y apagarlo.

3        No apague o reinicialice el sistema hasta que vea el mensaje:


           The system is halted


     Es muy importante que cierre el sistema "limpiamente"_utilizando_el comando shutdown o el halt. En
     algunos sistemas, se reconocer'a el pulsar |_ctrl-alt-del_,|que causar'a un shutdown; en otros sistemas,
     sin embargo, el utilizar el "Apret'on de Cuello de Vulcano" reinicializar'a el sistema inmediatamente
     y puede causar un desastre.
     4.4      Gesti'on de Usuarios



     Independientemente de que tenga muchos usuarios o no en su sistema, es importante comprender
     los aspectos de la gesti'on de usuarios bajo Linux.  Incluso si se es el 'unico usuario, se debe tener,
     presumiblemente, una cuenta distinta de root para hacer la mayor parte del trabajo.

         Cada persona que utilice el sistema debe tener su propia cuenta.  Raramente es una buena idea
     el que varias personas compartan la misma cuenta. No s'olo es un problema de seguridad, sino que
     las cuentas se utilizan para identificar un'ivocamente a los usuarios al sistema. Se necesita ser capaz
     de saber qui'en est'a haciendo qu'e.
     4.4.1     Conceptos de gesti'on de usuarios


     El sistema mantiene una cierta cantidad de informaci'on acerca de cada usuario. Dicha informaci'on
     se resume a continuaci'on.


     nombre de usuario
                      El nombre de usuario es el identificador 'unico dado a cada usuario del sistema.
                      Ejemplos de nombres de usuario son larry, karl y mdw.  Se pueden utilizar letras
                      y d'igitos junto a los caracteres "_" (subrayado) y "."  (punto).  Los nombres de
                      usuario se limitan normalmente a 8 caracteres de longitud.


     user ID          El user ID, o UID, es un n'umero 'unico dado a cada usuario del sistema. El sistema
                      normalmente mantiene la pista de la informaci'on por UID, no por nombre de usuario.


     group ID         El group ID, o GID, es la identificaci'on del grupo del usuario por defecto.  En la
                      secci'on 3.9 discutimos los permisos de grupo; cada usuario pertenece a uno o m'as
                      grupos definidos por el administrador del sistema. M'as sobre 'esto m'as adelante.


     clave            El sistema tambi'en almacena la clave encriptada del usuario.  El comando passwd
                      se utiliza para poner y cambiar las claves de los usuarios.
______________________________________________________________________________________________________4.4.  G*
 *esti'on de Usuarios               @


nombre completo
                 El "nombre real" o "nombre completo" del usuario se almacena junto con el nombre
                 de usuario. Por ejemplo, el usuario schmoj puede tener el nombre "Jos Schmo" en
                 la vida real.


directorio inicial
                 El directorio inicial es el directorio en el que se coloca inicialmente al usuario en
                 tiempo de conexi'on.  Cada usuario debe tener su propio directorio inicial, normal-
                 mente situado bajo /home.


int'erprete de inicio
                 El int'erprete de inicio del usuario es el int'erprete de comandos que es arrancado para
                 el usuario en tiempo de conexi'on. Ejemplos pueden ser /bin/bash y /bin/tcsh.



   El fichero /etc/passwd contiene la informaci'on anterior acerca de los usuarios.  Cada l'inea del
fichero contiene informaci'on acerca de un 'unico usuario; el formato de cada l'inea es
      nombre:clave encriptada:UID:GID:nombre completo:dir.inicio:int'erprete
Un ejemplo puede ser:
      kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash
   Como puede verse, el primer campo , "kiwi", es el nombre de usuario.


   El siguiente campo, "Xv8Q981g71oKK", es la clave encriptada. Las claves no se almacenan en el
sistema en ning'un formato legible por el hombre.  Las claves se encriptan utiliz'andose a s'imismas
como clave secreta. En otras palabras, s'olo si se conoce la clave, 'esta puede ser desencriptada. Esta
forma de encriptaci'on es bastante segura.


   Algunos sistemas utilizan "claves en sombra" en la que la informaci'on de las claves se relega al
fichero /etc/shadow. Puesto que /etc/passwd es legible por todo el mundo, /etc/shadow suminis-
tra un grado extra de seguridad, puesto que 'este no lo es. Las claves en sombra suministran algunas
otras funciones como puede ser la expiraci'on de claves; no entraremos a detallar 'estas funciones aqu'i.


   El tercer campo "102", es el UID. Este debe ser 'unico para cada usuario.  El cuarto campo,
"100", es el GID. Este usuario pertenece al grupo numerado 100. La informaci'on de grupos, como
la informaci'on de usuarios, se almacena en el fichero /etc/group. V'ease la secci'on 4.4.5 para m'as
informaci'on.


   El quinto campo es el nombre completo del usuario. "Laura Poole". Los dos 'ultimos campos son
el directorio inicial del usuario (/home/kiwi) y el int'erprete de conexi'on (/bin/bash), respectiva-
mente.  No es necesario que el directorio inicial de un usuario tenga el mismo nombre que el del
nombre de usuario. Sin embargo, ayuda a identificar el directorio.
______________________________________________________________________________________________________138    *
 *                                           @


4.4.2     A"nadiendo usuarios


Cuando se a"nade un usuario hay varios pasos a seguir.  Primero, se le debe crear una entrada en
/etc/passwd, con un nombre de usuario y UID 'unicos. Se debe especificar el GID, nombre completo
y resto de informaci'on. Se debe crear el directorio inicial, y poner los permisos en el directorio para
que el usuario sea el due"no. Se deben suministrar ficheros de comandos de inicializaci'on en el nuevo
directorio y se debe hacer alguna otra configuraci'on del sistema (por ejemplo, preparar un buz'on
para el correo electr'onico entrante para el nuevo usuario).

    Aunque no es dif'icil el a"nadir usuarios a mano (yo lo hago),  cuando se est'a ejecutando un
sistema con muchos usuarios, es f'acil el olvidarse de algo. La manera m'as simple de a"nadir usuarios
es utilizar un programa interactivo que vaya preguntando por la informaci'on necesaria y actualice
todos los ficheros del sistema autom'aticamente. El nombre de este programa es useradd o adduser
dependiendo del software que est'e instalado.  Las p'aginas man para estos comandos deber'ian ser
suficientemente autoexplicatorias.
4.4.3     Borrando usuarios


De forma parecida, borrar usuarios puede hacerse con los comandos userdel o deluser dependiendo
de qu'e software fuera instalado en el sistema.

    Si se desea "deshabilitar" temporalmente un usuario para que no se conecte al sistema (sin borrar
la cuenta del usuario), se puede prefijar con un asterisco ("*") el campo de la clave en /etc/passwd.
Por ejemplo, cambiando la l'inea de /etc/passwd correspondiente a kiwi a



      kiwi:*Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash



evitar'a que kiwi se conecte.
4.4.4     Poniendo atributos de usuario


Despu'es de que haya creado un usuario, puede necesitar cambiar alg'un atributo de dicho usuario,
como puede ser el directorio inicial o la clave.  La forma m'as simple de hacer 'esto es cambiar los
valores directamente en /etc/passwd.  Para poner clave a un usuario, utilice el comando passwd.
Por ejemplo,



      # passwd larry



cambiar'a la clave de larry.  S'olo root puede cambiar la clave de otro usuario de 'esta forma.  Los
usuarios pueden cambiar su propia clave con passwd tambi'en.

    En algunos sistemas, los comandos chfn y chsh est'an disponibles, permitiendo a los usuari-
os el cambiar sus atributos de nombre completo e int'erprete de conexi'on.  Si no, deben pedir al
administrador de sistemas que los cambie por ellos.
______________________________________________________________________________________________________4.5.  A*
 *rchivando y Comprimiendo Ficheros @


4.4.5    Grupos


Como hemos citado anteriormente, cada usuario pertenece a uno o m'as grupos. La 'unica importancia
real de las relaciones de grupo es la perteneciente a los permisos de ficheros, como dijimos en la
secci'on 3.9, cada fichero tiene un "grupo propietario" y un conjunto de permisos de grupo que define
de qu'e forma pueden acceder al fichero los usuarios del grupo.

   Hay varios grupos definidos en el sistema, como pueden ser bin, mail, y sys.  Los usuarios no
deben pertenecer a ninguno de estos grupos; se utilizan para permisos de ficheros del sistema. En su
lugar, los usuarios deben pertenecer a un grupo individual, como users. Si se quiere ser detallista, se
pueden mantener varios grupos de usuarios como por ejemplo estudiantes, soporte y facultad.

   El fichero /etc/group contiene informaci'on acerca de los grupos. El formato de cada l'inea es



      nombre de grupo:clave:GID:otros miembros



Algunos ejemplos de grupos pueden ser:



      root:*:0:
      usuarios:*:100:mdw,larry
      invitados:*:200:
      otros:*:250:kiwi



El primer grupo, root, es un grupo especial del sistema reservado para la cuenta root. El siguiente
grupo, users, es para usuarios normales.  Tiene un GID de 100.  Los usuarios mdw y larry tienen
acceso a este grupo.  Recu'erdese que en /etc/passwd cada usuario tiene un GID por defecto.  Sin
embargo, los usuarios pueden pertenecer a mas de un grupo, a"nadiendo sus nombres de usuario a
otras l'ineas de grupo en /etc/group. El comando groups lista a qu'e grupos se tiene acceso.

   El tercer grupo, invitados, es para usuarios invitados, y otros es para "otros" usuarios.  El
usuario kiwi tiene acceso a 'este grupo.

   Como se puede ver, el campo "clave" de /etc/group raramente se utiliza. A veces se utiliza para
dar una clave para acceder a un grupo. Esto es raras veces necesario. Para evitar el que los usuarios
cambien a grupos privilegiados (con el comando newgroup), se pone el campo de la clave a "*".

   Se pueden usar los comandos addgroup o groupadd para a"nadir grupos a su sistema.  Nor-
malmente es m'as sencillo a"nadir l'ineas a /etc/group uno mismo, puesto que no se necesitan m'as
configuraciones para a"nadir un grupo.  Para borrar un grupo, s'olo hay que borrar su entrada de
/etc/group.

4.5     Archivando y Comprimiendo Ficheros



Antes de que podamos hablar acerca de copias de seguridad, necesitamos presentar las herramientas
utilizadas para archivar ficheros y programas en los sistemas UNIX.
______________________________________________________________________________________________________140    *
 *                                           @


4.5.1     Utilizando tar


El comando tar es utilizado normalmente para archivar ficheros.

    El formato del comando tar es


      tar <opciones> <fichero1> <fichero2> . .<.ficheroN>


donde <opciones> es la lista de comandos y opciones para tar, y <fichero1> hasta <ficheroN> es la lista
de ficheros a a"nadir o extraer del archivo.

    Por ejemplo, el comando


      # tar cvf backup.tar /etc


empaquetar'a todos los ficheros de /etc en el fichero tar backup.tar. El primer argumento de tar
_"cvf"_ es el "comando" tar. "c" le dice a tar que cree un nuevo fichero de archivo. La opci'on
"v" fuerza a tar en el modo detallado _imprimiendo los nombres de los ficheros seg'un se archivan.
La opci'on "f" le dice a tar que el siguiente argumento _backup.tar_ es el nombre del archivo a
crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a a"nadir al archivo.

    El comando


      # tar xvf backup.tar


extraer'a el fichero tar backup.tar en el directorio actual. Esto puede ser peligroso a veces _cuando
se extraen ficheros de un fichero tar, los ficheros antiguos se sobreescriben.

    Por otra parte,  antes de extraer ficheros tar es importante conocer d'onde se deben desem-
paquetar los ficheros.  Por ejemplo, digamos que se archivaron los siguientes ficheros: /etc/hosts,
/etc/group, y /etc/passwd. Si se us'o el comando


      # tar cvf backup.tar /etc/hosts /etc/group /etc/passwd


el nombre de directorio /etc se a"nadi'o al principio de cada nombre de fichero. Para poder extraer
los ficheros en la localizaci'on correcta, se necesitar'a utilizar los siguientes comandos:


      # cd /
      # tar xvf backup.tar


Puesto que los ficheros se extraen con el nombre de camino almacenado en el fichero de archivo.

    Sin embargo, si se archivaron los ficheros con los comandos


      # cd /etc
      # tar cvf hosts group passwd


Los nombres de directorio no se salvaron en el fichero de archivo. Por 'esto se necesitar'a hacer "cd
/etc" antes de extraer los ficheros.  Como se puede ver, el c'omo haya sido creado un fichero tar
marca una gran diferencia en c'omo se extrae. Se puede usar el comando
______________________________________________________________________________________________________4.5.  A*
 *rchivando y Comprimiendo Ficheros @


      # tar tvf backup.tar


para mostrar un "'indice" del fichero tar antes de desempaquetarlo. De esta forma se puede ver que
directorio se utiliz'o como origen de los nombres de los ficheros, y se puede extraer el archivo desde
la localizaci'on correcta.
4.5.2    gzip y compress


A diferencia de los programas de archivo para MS-DOS, tar no comprime autom'aticamente los
ficheros seg'un los archiva. Por ello, si se est'an archivando dos ficheros de un megabyte, el fichero tar
resultante tendr'a dos megabytes.  El comando gzip puede utilizarse para comprimir un fichero (el
fichero a comprimir no necesita ser un fichero tar). El comando


      # gzip -9 backup.tar


comprimir'a backup.tar y le dejar'a con backup.tar.gz, que es la versi'on comprimida del fichero.
La opci'on -9 le dice a gzip que utilice el mayor factor de compresi'on.

   El comando gunzip puede ser utilizado para descomprimir un fichero comprimido con gzip.
Equival'entemente, se puede utilizar "gzip -d".

   gzip es una herramienta relativamente nueva en la comunidad UNIX. Durante muchos a"nos,
se utiliz'o en su lugar el comando compress.  Sin embargo, debido a varios factores1, compress se
est'a volviendo desfasado.

   Los ficheros comprimidos con compress terminan en la extensi'on .Z. Por ejemplo, backup.tar.Z
es la versi'on comprimida con compress de backup.tar, mientras que backup.tar.gz es la versi'on
comprimida con gzip2. El comando uncompress se utiliza para expandir un fichero comprimido con
compress; gunzip sabe tambi'en como tratar los ficheros comprimidos con compress.
4.5.3    Junt'andolo todo


Por lo tanto, para archivar un grupo de ficheros y comprimir el resultado, se pueden utilizar los
comandos:


      # tar cvf backup.tar /etc
      # gzip -9 backup.tar


El resultado ser'a backup.tar.gz. Para desempaquetar este fichero, se usan los comandos contrarios:


      # gunzip backup.tar.gz
      # tar xvf backup.tar
_________________________________________1
    Estos factores incluyen una disputa por una patente software contra el algoritmo de compress y el hecho d*
 *e que
gzip es mucho m'as eficiente que compress.
   2Para a"nadir m'as confusi'on, durante alg'un tiempo la extensi'on .z ("z" min'uscula) fu'e utilizada para*
 * los ficheros
comprimidos con gzip. La extensi'on oficial de los ficheros gzip ahora es .gz.
______________________________________________________________________________________________________142    *
 *                                           @


Por supuesto, aseg'urese siempre de que est'a en el directorio correcto antes de desempaquetar un
fichero tar.

    Se pueden utilizar algunas ma"nas UNIX para hacer todo esto en una sola l'inea de comando, como
por ejemplo:


      # tar cvf - /etc | gzip -9c > backup.tar.gz


Aqu'i estamos enviando el fichero tar a "-", que representa la salida est'andar de tar. Esto es encolado
hacia gzip, que comprime el fichero tar de entrada, y el resultado se salva en backup.tar.gz.
La opci'on -c de gzip le dice que env'ie su salida hacia la salida est'andar,  que es redirigida a
backup.tar.gz.

    Un comando 'unico para desempaquetar este archivo ser'ia:


      # gunzip -c backup.tar.gz | tar xvf -


De nuevo, gunzip descomprime el contenido de backup.tar.gz y env'ia el fichero tar resultante hacia
la salida est'andar.  Esta es redirigida hacia tar, que lee de "-", refiri'endose 'esta vez a la entrada
est'andar de tar.

    Felizmente,  el  comando  tar  tambi'en  incluye  la  opci'on  z  para  comprimir/descomprimir
autom'aticamente los ficheros al vuelo, utilizando el algoritmo de compresi'on de gzip.

    Por ejemplo, el comando


      # tar cvfz backup.tar.gz /etc


es equivalente a


      # tar cvf backup.tar /etc
      # gzip backup.tar


Igual que el comando


      # tar xvfz backup.tar.Z


se puede utilizar en vez de


      # uncompress backup.tar.Z
      # tar xvf backup.tar


    Rem'itase a las p'aginas man para obtener mas informaci'on acerca de tar y gzip.
4.6      Usando Disquetes y Haciendo Copias de Seguridad



Los disquetes son utilizados normalmente como medio para copias de seguridad. Si no se tiene una
unidad de cinta conectada al sistema, se pueden utilizar disquetes (a pesar de que sean m'as lentos y
lig'eramente menos seguros).
______________________________________________________________________________________________________4.6.  U*
 *sando Disquetes y Haciendo Copias @


   Tambi'en puede utilizar disquetes para contener sistemas de ficheros individuales _de 'esta forma,
se puede montar mount el disquete para acceder a los datos contenidos en 'el.
4.6.1    Utilizando disquetes para copias de seguridad


La forma m'as simple de hacer una copia de seguridad es con tar. El comando


      # tar cvfzM /dev/fd0 /


har'a una copia de seguridad completa de su sistema utilizando el disquete /dev/fd0. La opci'on "M"
de tar permite que la copia de seguridad sea una copia multi-volumen; esto es, cuando un disquete
est'a lleno, tar pedir'a el siguiente. El comando


      # tar xvfzM /dev/fd0


puede ser utilizado para recuperar la copia de seguridad completa. Este m'etodo puede ser utilizado
tambi'en si se tiene una unidad de cinta (/dev/rmt0) conectada al sistema.

   Existen otros programas para hacer copias de seguridad multi-volumen; el programa backflops
disponible en tsx-11.mit.edu puede ser 'util.

   Hacer una copia de seguridad completa del sistema puede ser costoso en tiempo y recursos.
Muchos administradores de sistemas utilizan una pol'itica de copias de seguridad incrementales, en
la que cada mes se hace una copia de seguridad completa, y cada semana s'olo se copian aquellos
ficheros que hayan sido modificados en esa semana.  En este caso, si el sistema se viene abajo a
mitad de mes, s'olo tiene que restaurar la 'ultima copia de seguridad mensual completa y, despu'es, las
'ultimas copias semanales seg'un el caso.

   El comando find puede ser 'util para localizar ficheros que hayan cambiado desde una cierta fecha.
Se pueden encontrar varios ficheros de comandos para manejar copias de seguridad incrementales en
sunsite.unc.edu.
4.6.2    Utilizando disquetes como sistemas de ficheros


Puede crearse un sistema de ficheros en un disquete igual que lo har'ia en una partici'on de un disco
duro. Por ejemplo,


      # mke2fs /dev/fd0 1440


crea un sistema de ficheros en el disquete en /dev/fd0.  El tama"no del sistema de ficheros debe
corresponder al tama"no del disquete.  Los disquetes de alta densidad de 3.5"tienen un tama"no de
1.44 megabytes, o 1440 bloques. Los disquetes de alta densidad de 5.25"tienen 1200 bloques.

   Para poder acceder a un disquete, se debe montar mount el sistema de ficheros que contiene. El
comando


      # mount -t ext2 /dev/fd0 /mnt
     ______________________________________________________________________________________________________14*
 *4                                               @


     montar'a el disquete en /dev/fd0 en el directorio /mnt. Ahora todos los ficheros del disquete apare-
     cer'an bajo /mnt en su unidad.  "-t ext2" especifica el tipo de sistema de ficheros como ext2fs.  Si
     crea otro tipo de sistema de ficheros en el disquete, necesitar'a especific'arselo al comando mount.

         El "punto de montaje" (el directorio donde est'a montando el sistema de ficheros) debe existir en
     el momento de utilizar el comando mount. Si no existiese, deba crearlo con el comando mkdir.

         Para m'as informaci'on sobre sistemas de ficheros, montaje y puntos de montaje, ver secci'on 4.8.

3        Tenga en cuenta que cualquier entrada/salida al disquete se gestiona con buffers igual que si fuese
     de disco duro. Si cambia datos en el disquete, puede que no vea encenderse la luz de la unidad hasta
     que el n'ucleo decida vaciar sus buffers.  Es importante que no quite un disquete antes de haberlo
     desmontado; esto puede hacerse con el comando



           # umount /dev/fd0



     No cambie los disquetes como se hace en un sistema MS-DOS; siempre que cambie disquetes, des-
     monte umount el primero y monte mount el siguiente.

     4.7      Actualizando e Instalando Nuevo Software



     Otra tarea del administrador de sistemas es la actualizaci'on e instalaci'on de nuevo software.

         La comunidad Linux es muy din'amica.  Las versiones nuevas del n'ucleo aparecen cada pocas
     semanas, y otros programas se actualizan casi tan a menudo. Por esto, los nuevos usuarios de Linux
     sienten a menudo la necesidad de actualizar sus sistemas constantemente para mantener el paso de
     los cambios.  No s'olo 'esto no es necesario, sino que es una p'erdida de tiempo.  Para mantenerse al
     d'ia de todos los cambios del mundo Linux, deber'ia utilizar todo su tiempo actualizando en vez de
     usando su sistema.

         Pero entonces, cu'ando se debe actualizar?. Alguna gente piensa que se debe actualizar cuando se
     libera una nueva versi'on de distribuci'on _por ejemplo, cuando Slackware presenta una nueva versi'on.
     Muchos usuarios Linux reinstalan completamente sus sistemas con la nueva versi'on Slackware, cada
     vez.  Esto, tambi'en, es una p'erdida de tiempo.  En general, los cambios de las versiones Slackware
     son peque"nos. Bajarse y reinstalar 30 discos cuando s'olo ha cambiado un 10% del software es, por
     supuesto, in'util.

         La mejor forma de actualizar su sistema es haci'endolo a mano: actualizando solo aquellos paquetes
     de software que sepa que hay que actualizar.  Esto asusta a un mont'on de gente:  quieren saber
     qu'e actualizar y c'omo, y qu'e se romper'a si no actualizan. Para tener 'exito con Linux, es importante
     superar los temores del "h'agalo usted mismo" _que es lo que Linux es, a fin de cuentas.  De
     hecho, una vez que tenga su sistema trabajando y todo el software correctamente configurado, la
     reinstalaci'on de una nueva versi'on no dudar'a en limpiar toda la configuraci'on y todo estar'a roto
     otra vez, igual que la primera vez que instal'o su sistema. Volver atr'as de 'esta forma no es necesario
     _todo lo que se necesita es alg'un conocimiento acerca de c'omo actualizar el sistema y de c'omo
     hacerlo bien.
______________________________________________________________________________________________________4.7.  A*
 *ctualizando e Instalando Nuevo Sof@


   Se encontrar'a con que cuando actualice un componente de su sistema, no tienen por que fallar los
dem'as. Por ejemplo, la mayor parte del software de mi sistema se qued'o en una instalaci'on antigua
basada en el nivel 0.96 MCC Interim. Ciertamente, utilizo la versi'on m'as reciente del n'ucleo y de las
librer'ias con 'este software sin problemas.  Realmente, la actualizaci'on insensata para "mantenerse
en la ola" no es tan importante. Esto no es MS-DOS o Microsoft Windows. No hay ninguna raz'on
importante para ejecutar la versi'on m'as reciente de todo el software.  Si encuentra que desea o
necesita funciones de una versi'on nueva, entonces actualice.  Si no, no lo haga.  En otras palabras,
actualice s'olo lo que tenga que hacerlo y cuando tenga que hacerlo.  No actualice s'olo por el mero
hecho de actualizar. Hacerlo s'olo gastar'ia un mont'on de tiempo y esfuerzo intentando mantenerse al
d'ia.

   El software m'as importante para actualizar en su sistema es el n'ucleo, las librer'ias y el compilador
gcc. Estas son las tres partes esenciales de su sistema, y en algunos casos cada uno depende de las
otras para que todo funcione bien. La mayor parte del resto del software de su sistema no necesita
ser actualizado peri'odicamente.
4.7.1    Actualizando el n'ucleo


Actualizar el n'ucleo es simplemente asunto de coger los fuentes y compilarlos uno mismo. Debe com-
pilar el n'ucleo por si mismo para poder activar o desactivar ciertas funciones, adem'as de asegurarse
de que el n'ucleo estar'a optimizado para correr en su m'aquina. El proceso es casi indoloro.

   Los fuentes del n'ucleo pueden obtenerse de cualquiera de los servidores FTP de Linux (para una
lista, v'ease Ap'endice C).  En sunsite.unc.edu, por ejemplo, los fuentes del n'ucleo se encuentran
en /pub/Linux/kernel. Las versiones del n'ucleo se numeran utilizando un n'umero de versi'on y un
nivel de "parche".  Por ejemplo, la versi'on de n'ucleo 0.99, nivel de parche 11 es nombrada como
0.99.pl11, o simplemente 0.99.11.

   Los fuentes del n'ucleo se presentan en un fichero tar comprimido con gzip3.  Por ejemplo, el
fichero conteniendo los fuentes del n'ucleo 0.99.pl11 es linux-0.99.11.tar.gz.

   Se  desempaqueta  este  fichero  tar  desde  el  directorio  /usr/src;  esto  crea  el  directorio
/usr/src/linux que contiene los fuentes del n'ucleo.  Se debe borrar o cambiar de nombre el dir-
ectorio /usr/src/linux existente antes de desempaquetar la nueva versi'on.

   Una vez que se han desempaquetado los fuentes, es necesario asegurarse que dos enlaces simb'oli-
cos son correctos. Para crear estos enlaces, se utilizan los comandos:



      # ln -sf /usr/src/linux/include/linux /usr/include/linux
      # ln -sf /usr/src/linux/include/asm /usr/include/asm



Una vez creados estos enlaces una vez, no hay raz'on para crearlos de nuevo cuando se instale la
siguiente versi'on de los fuentes del n'ucleo. (V'ease secci'on 3.10 para m'as informaci'on sobre enlaces
simb'olicos.)
_________________________________________3
    A menudo, se suministra un fichero de parches para la versi'on actual del n'ucleo, que permite parchear l*
 *os fuentes
actuales desde el nivel anterior al actual (utilizando el programa patch). En muchos casos, sin embargo, es n*
 *ormalmente
m'as sencillo el instalar la nueva versi'on de los fuentes del n'ucleo completa.
______________________________________________________________________________________________________146    *
 *                                           @


    Hay que advertir, que para poder compilar el n'ucleo, se debe tener gcc y g++, compiladores C y
C++, instalados en el sistema. Puede necesitar tener la versi'on m'as reciente de estos compiladores:
ver secci'on 4.7.3, m'as adelante, para m'as informaci'on.

    Para compilar el n'ucleo, primero cambie de directorio usando cd a /usr/src/linux.  Ejecute
el comando make config.  Este comando le ir'a preguntando por un n'umero de opciones de config-
uraci'on, como puede ser qu'e tipos de sistemas de ficheros se desea incluir en el nuevo n'ucleo.

    Despu'es, edite /usr/src/linux/Makefile. Aseg'urese que la definici'on para ROOT_DEV sea cor-
recta _define el dispositivo utilizado como sistema de ficheros ra'iz en tiempo de arranque.  La
definici'on normal es



      ROOT_DEV = CURRENT



    A menos que est'e cambiando el dispositivo ra'iz del sistema de ficheros, no hay raz'on para cambiar
esto.

    Despu'es, ejecute el comando make dep para asegurar que se cumplen todas las dependencias del
fuente. Este es un paso muy importante.

    Finalmente, se est'a listo para compilar el n'ucleo.  El comando make Image compilar'a el n'ucleo
y dejar'a la nueva imagen del n'ucleo en el fichero /usr/src/linux/Image.  Alternativamente, el
comando make zImage compilar'a una imagen comprimida del n'ucleo, que se descomprime a s'imisma
en tiempo de arranque y utiliza menos espacio en el disco.

    Una vez que est'a el n'ucleo compilado, se necesita, o bien copiarlo a un disquete de arranque (con
un comando como "cp Image /dev/fd0") o bien instalarlo utilizando LILO para arrancar desde el
disco duro. Ver secci'on 4.2.2 para m'as informaci'on.
4.7.2     Actualizando las librer'ias


Como se mencion'o antes, la mayor parte del software del sistema est'a compilado para que utilice las
librer'ias compartidas, que contienen subrutinas comunes compartidas entre distintos programas.

    Si le aparece el mensaje



      Incompatible library version



cuando se intenta ejecutar un programa, entonces necesita actualizar a la versi'on de las librer'ias
que el programa requiere. Las librer'ias son compatible-ascendentes; esto es, un programa compilado
para utilizar una versi'on antigua de las librer'ias, debe trabajar con la nueva versi'on de las librer'ias
instalada. Sin embargo, lo contrario no es cierto.

    La 'ultima versi'on de las librer'ias se puede encontrar en los servidores FTP de Linux.  En
sunsite.unc.edu, est'an disponibles en /pub/Linux/GCC. Los ficheros de "versi'on" que se encuen-
tran ah'i deben explicar qu'e ficheros se necesita obtener y c'omo instalarlos. R'apidamente, se deben
coger los ficheros image-versi'on.tar.gz y inc-versi'on.tar.gz donde versi'on es la versi'on de las
librer'ias a instalar, por ejemplo 4.4.1.  Son ficheros tar comprimidos con gzip; el fichero image
      ______________________________________________________________________________________________________4*
 *.7.  Actualizando e Instalando Nuevo Sof@


      contiene las im'agenes de las librer'ias a instalar en /lib y /usr/lib.  El fichero inc contiene los
      ficheros de inclusi'on a instalar en /usr/include.

         El fichero release-versi'on.tar.gz debe explicar el m'etodo de instalaci'on detalladamente (las
      instrucciones exactas var'ian para cada versi'on).  En general, se necesita instalar los ficheros de
      librer'ias .a y .sa en /usr/lib. Estas son las librer'ias utilizadas en tiempo de compilaci'on.

         Adem'as, los ficheros imagen de las librer'ias compartidas libc.so.versi'on se instalan en /lib.
      Estas son las im'agenes de las librer'ias compartidas que son cargadas en tiempo de ejecuci'on por los
      programas que utilizan las librer'ias. Cada librer'ia tiene un enlace simb'olico utilizando el n'umero *
 *de
      versi'on mayor de la librer'ia en /lib

         Por ejemplo, la versi'on 4.4.1 de la librer'ia libc tiene un n'umero de versi'on mayor de 4. El fich*
 *ero
      que contiene la librer'ia es libc.so.4.4.1.  Existe un enlace simb'olico del nombre libc.so.4 en
      /lib apuntando a este fichero. Por ejemplo, cuando se actualiza de libc.so.4.4 a libc.so.4.4.1,
      necesita cambiar el enlace simb'olico para apuntar a la nueva versi'on.

3        Es muy importante que se cambie el enlace simb'olico en un solo paso, como se indica m'as abajo.
      Si de alguna forma borrase el enlace simb'olico libc.so.4, los programas que dependen del enlace
      (incluyendo utilidades b'asicas como ls y cat) dejar'an de funcionar.  Utilice el siguiente comando
      para actualizar el enlace simb'olico libc.so.4 para que apunte al fichero libc.so.4.4.1:


            # ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4


      Se necesita tambi'en cambiar el enlace simb'olico libm.so.versi'on de la misma forma. Si se est'a ac-
      tualizando a una versi'on diferente de las librer'ias, sustituya lo anterior con los nombres adecuados.
      La nota de la versi'on de la librer'ia debe explicar los detalles. (Ver secci'on 3.10 para m'as informa*
 *ci'on
      acerca de los enlaces simb'olicos).
      4.7.3    Actualizando gcc


      El compilador de C y C++ gcc se utiliza para compilar software en su sistema, siendo el m'as
      importante el n'ucleo. La versi'on m'as reciente de gcc se encuentra en los servidores FTP de Linux.
      En sunsite.unc.edu se encuentra en el directorio /pub/Linux/GCC (junto con las librer'ias). Debe
      existir un fichero release para la distribuci'on gcc detallando qu'e ficheros se necesitan obtener y
      como instalarlos.
      4.7.4    Actualizando otro software


      La actualizaci'on de otro software s'olo suele consistir en obtener los ficheros apropiados e instalarl*
 *os.
      Mucho software para linux se distribuye como ficheros tar comprimidos con gzip, incluyendo, ya sea
      fuentes, ejecutables o ambos.  Si los ejecutables no se incluyen con la versi'on, puede ser necesario
      recompilarlos uno mismo;  normalmente esto significa teclear make en el directorio que tiene los
      fuentes.

         Leer el newsgroup de USENET comp.os.linux.announce en busca de anuncios de nuevas ver-
      siones de software es la mejor manera de enterarse de la aparici'on de nuevo software. Siempre que
______________________________________________________________________________________________________148    *
 *                                           @


busque software en un servidor FTP b'ajese el fichero de 'indice ls-lR del servidor FTP y utilice
grep para encontrar los ficheros en cuesti'on, es la forma m'as simple de localizar software. Si tiene
la posibilidad de utilizar archie, 'este puede servirle de ayuda. Si no tiene archie, puede conectarse
con telnet a un servidor archie como puede ser archie.rutgers.edu, identificarse como "archie"
y utilizar el comando "help". V'ease Ap'endice A para m'as detalles.

    Una fuente 'util de software para Linux, son las im'agenes de los discos de la distribuci'on Slackware.
Cada disco contiene varios ficheros .tgz que son simples ficheros tar comprimidos con gzip. En vez
de bajarse los discos, puede bajar s'olo los ficheros .tgz deseados de los directorios Slackware del
servidor FTP e instalarlos directamente. Si puede ejecutar la distribuci'on Slackware, puede utilizar
el comando setup para cargar e instalar autom'aticamente una serie completa de discos.

    Insistimos, normalmente no es una buena idea el actualizar reinstalando desde cero la versi'on
m'as reciente de Slackware, u otra distribuci'on. Si se reinstala de esta forma, no lo dude, arruinar'a su
instalaci'on actual. La mejor forma de actualizar software es por partes; esto es, si hay un programa
que se usa a menudo y tiene una nueva versi'on, actual'icelo. Si no, no se moleste. Regla pr'actica: Si
no tiene nada roto, no lo repare. Si su software actual funciona, no hay motivo para actualizar.

4.8      Gestionando Sistemas de Ficheros



Otra tarea del administrador de sistemas es el cuidado de los sistemas de ficheros.  Mucho de 'este
trabajo se basa en comprobaciones peri'odicas del sistema de ficheros en busca de ficheros da"nados
o corrompidos; muchos sistemas comprueban autom'aticamente los sistemas de ficheros en tiempo de
arranque.
4.8.1     Montando sistemas de ficheros


Para empezar, algunos conceptos acerca de sistemas de ficheros. Antes de que un sistema de ficheros
sea accesible al sistema, debe ser montado en alg'un directorio. Por ejemplo, si se tiene un sistema
de ficheros en un disquete, se debe montar bajo alg'un directorio, digamos /mnt, para poder acceder a
los ficheros que contiene (v'ease la secci'on 4.6.2). Tras montar el sistema de ficheros, todos los ficheros
en dicho sistema aparecen en ese directorio. Tras desmontar el sistema de ficheros, el directorio (en
este caso, /mnt) estar'a vac'io.

    Lo mismo es v'alido para los sistemas de ficheros del disco duro.  El sistema monta autom'atica-
mente los sistemas de ficheros del disco duro en tiempo de arranque.  El as'i llamado "sistema de
ficheros ra'iz" es montado en el directorio /. Si se tiene un sistema de ficheros separado para /usr,
por ejemplo, se monta en /usr.  Si s'olo se tiene un sistema de ficheros ra'iz, todos los ficheros
(incluyendo los de /usr) existen en ese sistema de ficheros.

    El comando mount se utiliza para montar un sistema de ficheros. El comando



      mount -av



se ejecuta desde el fichero /etc/rc (que es el fichero de inicializaci'on del sistema, ejecutado en tiempo
______________________________________________________________________________________________________4.8.  G*
 *estionando Sistemas de Ficheros   @


de arranque; v'ease la secci'on 4.10.1). El comando mount -av obtiene informaci'on de los sistemas de
ficheros y puntos de montaje del fichero /etc/fstab. Este es un ejemplo de fichero fstab:



      # dispositivo  directorio      tipo      opciones
      /dev/hda2        /               ext2      defaults
      /dev/hda3        /usr           ext2      defaults
      /dev/hda4        none           swap      sw
      /proc            /proc          proc      none



   El primer campo es el dispositivo _el nombre de la partici'on a montar. El segundo campo es el
punto de montaje. El tercero es el tipo de sistema de ficheros _como puede ser ext2 (para ext2fs) o
minix (para sistemas de ficheros Minix). La tabla 4.1 lista los distintos tipos de sistemas de ficheros
disponibles en Linux.4 Puede que no todos 'estos tipos de sistemas de ficheros est'en disponibles en su
sistema; el n'ucleo debe tener soporte para ellos compilado en 'el. V'ease secci'on 4.7 para informaci'on
sobre c'omo construir un n'ucleo.


________________________________________________________________________________________________________
__Sistema_de_ficheros__________Nombre_de_tipo____Comentarios____________________________________________
  Second Extended Filesystem   ext2              Sistema de ficheros mas com'un en Linux.
  Extended Filesystem          ext               Reemplazado por ext2.
  Minix Filesystem             minix             Sistema de ficheros Minix original; raras veces utilizado.
  Xia Filesystem               xia               Como ext2, pero raras veces utilizado.
  UMSDOS Filesystem            umsdos            Utilizado para instalar Linux en una partici'on MS-DOS.
  MS-DOS Filesystem            msdos             Utilizado para acceder a ficheros MS-DOS.
  /proc Filesystem             proc              Suministra informaci'on de proceso para ps, etc.
  ISO 9660 Filesystem          iso9660           Formato utilizado por muchos CD-ROMs.
  Xenix Filesystem             xenix             Sistema de ficheros de Xenix.
  System V Filesystem          sysv              Variantes del System V para el x86.
  Coherent Filesystem          coherent          Acceso a ficheros de Coherent.
  HPFS Filesystem              hpfs              Acceso en lectura a particiones HPFS (DoubleSpace).


                         Tabla 4.1: Tipos de Sistemas de Ficheros en Linux

   El 'ultimo campo del fichero fstab contiene las opciones del comando mount _normalmente,
est'a puesto a "defaults" (defecto).

   Como se puede ver, las particiones de intercambio est'an incluidas en /etc/fstab tambi'en. Tienen
un punto de montaje de none y tipo swap.  El comando swapon -a, que se ejecuta tambi'en desde
/etc/rc, se utiliza para activar el intercambio en todos los dispositivos de intercambio listados en
/etc/fstab.

   El fichero fstab contiene una entrada especial _para el sistema de ficheros /proc. Tal y como
se mencion'o en la secci'on 3.11.1, el sistema de ficheros /proc se utiliza para almacenar informaci'on
acerca de los procesos del sistema, memoria disponible, y otros datos del mismo tipo. Si /proc no
est'a montado, no funcionar'an comandos como ps.
_________________________________________
   4Esta tabla es v'alida a la versi'on de n'ucleo 1.1.37.
     ______________________________________________________________________________________________________15*
 *0                                               @


3        El comando mount s'olo puede ser utilizado por root. Esto es as'i para garantizar la seguridad del
     sistema; no es deseable que usuarios normales est'en montando y desmontando sistemas de ficheros
     a su antojo.  Existen varios paquetes disponibles que permiten a los usuarios normales montar y
     desmontar sistemas de ficheros (disquetes en particular) sin comprometer la seguridad del sistema.

         El comando mount -av realmente monta todos los sistemas de ficheros excepto el sistema de fich-
     eros ra'iz (en la tabla anterior, /dev/hda2). El sistema de ficheros ra'iz es montado autom'aticamente
     en tiempo de arranque por el n'ucleo.

         En vez de utilizar el comando mount -av, se puede montar un sistema de ficheros a mano.  El
     comando


           # mount -t ext2 /dev/hda3 /usr


     es equivalente a montar el sistema de ficheros con la entrada /dev/hda3 del ejemplo de fichero fstab
     anterior.

         En general, nunca se debe montar o desmontar sistemas de ficheros a mano. El comando mount
     -av en /etc/rc se encarga de montar los sistemas de ficheros en tiempo de arranque. Los sistemas
     de ficheros son desmontados por los comandos shutdown o halt antes de cerrar el sistema.
     4.8.2     Comprobando sistemas de ficheros


     Normalmente es una buena idea el comprobar de vez en cuando los sistemas de ficheros en busca
     de ficheros da"nados o corrompidos. Algunos sistemas comprueban autom'aticamente sus sistemas de
     ficheros en tiempo de arranque (con los comandos apropiados en /etc/rc).

         El comando utilizado para comprobar un sistema de ficheros depende del tipo de sistema de
     ficheros en cuesti'on. Para sistemas de ficheros ext2fs (el tipo m'as utilizado normalmente), el comando
     es e2fsck. Por ejemplo, el comando


           # e2fsck -av /dev/hda2


     comprobar'a el sistema de ficheros ext2fs de /dev/hda2 y corregir'a autom'aticamente cualquier error.

         Normalmente es una buena idea el desmontar un sistema de ficheros antes de comprobarlo. Por
     ejemplo, el comando


           # umount /dev/hda2


     desmontar'a el sistema de ficheros en /dev/hda2, tras lo cual podr'a ser comprobado.  La 'unica
     excepci'on es que no se puede desmontar el sistema de ficheros ra'iz.  Para poder comprobar el
     sistema de ficheros ra'iz cuando est'a desmontado,  se debe utilizar un disquete de arranque/ra'iz
     (v'ease la secci'on 4.11.1).  Tampoco se puede desmontar un sistema de ficheros si alguno de sus
     ficheros est'a "ocupado" _esto es, siendo utilizado por un proceso en ejecuci'on. Por ejemplo, no se
     puede desmontar un sistema de ficheros si el directorio de trabajo de alg'un usuario est'a en ese sistema
     de ficheros.  Se recibir'a un error "Device busy" (dispositivo ocupado) si se intenta desmontar un
     sistema de ficheros que est'e en uso.
      ______________________________________________________________________________________________________4*
 *.9.  Utilizando un fichero de intercambi@


         Otros tipos de sistemas de ficheros utilizan formas diferentes del comando e2fsck, como pueda
      ser efsck y xfsck. En algunos sistemas, se puede utilizar el comando fsck, que determina el tipo
      de sistema de ficheros y ejecuta el comando apropiado.

3        Es importante que se reinicialice el sistema inmediatamente despu'es de comprobar un sistema de
      ficheros montado, si es que se hizo alguna correcci'on al sistema de ficheros. (Sin embargo, en general,
      no se deben comprobar sistemas de ficheros que est'en montados.)  Por ejemplo, si e2fsck informa
      que ha corregido alg'un error en el sistema de ficheros, se debe apagar el sistema con shutdown -r
      para rearrancarlo. Esto permite al sistema resincronizar su informaci'on acerca del sistema de ficheros
      cuando e2fsck lo modifica.

         El sistema de ficheros /proc no necesita nunca ser comprobado de esta forma.  /proc es un
      sistema de ficheros en memoria, gestionado directamente por el n'ucleo.

      4.9     Utilizando un fichero de intercambio



      En vez de reservar una partici'on individual para espacio de intercambio, se puede usar un fichero.
      Sin embargo, hay que instalar todo Linux y hacer todas las tareas de configuraci'on antes de crear el
      fichero de intercambio.

         Si tiene un sistema Linux instalado, puede utilizar los siguientes comandos para crear un fichero
      de intercambio. A continuaci'on vamos a crear un fichero de intecambio de 8208 bloques de tama"no
      (unos 8 megas).



            # dd if=/dev/zero of=/swap bs=1024 count=8208



      Este comando crea el fichero de intercambio propiamente dicho. Reemplace "count=" con el tama"no
      del fichero de intercambio en bloques.



            # mkswap /swap 8208



      Este comando inicializar'a el fichero de intercambio swap; como antes, se debe cambiar el nombre y
      tama"no del fichero de intercambio a los valores apropiados.



            # /etc/sync
            # swapon /swap



      Ahora, tras sincronizar, lo que asegura que el fichero haya sido escrito a disco, ya estamos utilizando
      el fichero /swap que hab'iamos creado como fichero de intercambio.

         El principal inconveniente de utilizar un fichero de intercambio de 'esta forma es que todos los
      accesos al fichero de intercambio se realizan a trav'es del sistema de ficheros.  Esto significa que los
      bloques que forman el fichero de intercambio pueden no ser contiguos. Por esto, el rendimiento no
      puede ser tan alto como cuando se utiliza una partici'on de intercambio, en la que los bloques est'an
      siempre contiguos y las peticiones de entrada/salida se hacen directamente al dispositivo.
______________________________________________________________________________________________________152    *
 *                                           @


    Otra desventaja a la hora de utilizar un fichero de intercambio es la posibilidad de corromper los
datos del sistema de ficheros _cuando se utilizan grandes ficheros de intercambio, existe la posibilidad
de que se pueda corromper el sistema de ficheros si algo va mal. Manteniendo los sistemas de ficheros
y particiones de intercambio separados prevendr'a la posibilidad de que esto llegue a ocurrir.

    La utilizaci'on de un fichero de intercambio puede ser muy 'util si se tiene una necesidad temporal de
m'as espacio de intercambio. Por ejemplo, si se est'a compilando un gran programa y se quiere acelerar
las cosas, se puede crear un fichero de intercambio de forma temporal y utilizarlo conjuntamente con
el espacio habitual de intercambio.

    Para eliminar un fichero de intercambio, primero se usa swapoff de esta forma


      # swapoff /swap


Y ahora se puede borrar de forma segura el fichero.


      # rm /swap


    Recu'erde que cada fichero de intercambio (o partici'on) puede ser de hasta 16 megabytes, pero se
pueden usar hasta 8 ficheros o particiones de intercambio en un sistema.

4.10       Tareas Varias



Lo crea o no, hay un n'umero de tareas dom'esticas para el administrador de sistemas que no caen en
ninguna categor'ia principal.
4.10.1     Ficheros de arranque del sistema


Cuando el sistema arranca, se ejecutan autom'aticamente una serie de ficheros de comandos (scripts)
en el sistema, antes de que ning'un usuario entre. Aqu'i tenemos una descripci'on de lo que ocurre:

    En tiempo de arranque, el n'ucleo arranca el proceso /etc/init.  init es un programa que lee
su fichero de configuraci'on, /etc/inittab, y arranca otros procesos basados en el contenido de este
fichero. Uno de los procesos m'as importantes arrancado desde inittab es el proceso /etc/getty,
arrancado en cada consola virtual. El proceso getty dispone la consola virtual para ser utilizada y
arranca un proceso login en ella. Esto le permite conectarse a cada consola virtual; si /etc/inittab
no contiene un proceso getty para una consola virtual determinada, no se podr'a conectar nadie a
ella.

    Otro proceso ejecutado desde /etc/inittab es /etc/rc, el fichero de inicializaci'on principal
del sistema.  Este fichero es simplemente un fichero de comandos que ejecuta cualquier comando
de inicializaci'on necesario en tiempo de arranque, como es montar los sistemas de ficheros (v'ease
secci'on 4.8) e inicializar el espacio de intercambio (memoria virtual).

    Su sistema puede ejecutar otros ficheros de comandos de inicializaci'on tambi'en, como puede ser
/etc/rc.local. /etc/rc.local contiene normalmente comandos de inicializaci'on espec'ificos de su
______________________________________________________________________________________________________4.10.  *
 *Tareas Varias                     @


sistema, como puede ser el establecimiento del nombre del ordenador (v'ease la siguiente secci'on).
rc.local puede ser arrancado desde /etc/rc o directamente desde /etc/inittab.

4.10.2     Estableciendo el nombre del ordenador



En un entorno de red el nombre del ordenador es utilizado para identificar un'ivocamente una m'aquina
particular, mientras que en un entorno aut'onomo, el nombre del ordenador da a la m'aquina person-
alidad y encanto. Es como darle nombre a un animal dom'estico: siempre puede dirigirse a su perro
como "El perro", pero es mucho m'as interesante asignarle al perro un nombre como "Mancha" o
"Tes". Poner el nombre del sistema se limita a utilizar el comando hostname. Si se est'a en una red,
su nombre debe ser el nombre completo de su m'aquina, por ejemplo, goober.norelco.com.  Si no
se est'a en una red de ning'un tipo, se pueden escoger nombre de ordenador y de dominio arbitrarios,
como por ejemplo loomer.vpizza.com, shoop.nowhere.edu, o floof.org.


   Cuando se pone el nombre del ordenador, dicho nombre debe aparecer en el fichero /etc/hosts,
que asigna una direcci'on IP a cada ordenador. Incluso si su ordenador no est'a en una red, se debe
incluir el nombre del ordenador en /etc/hosts.


   Por ejemplo, si no se est'a en una red TCP/IP, y el nombre del ordenador es floof.org, incluya
la l'inea siguiente en /etc/hosts:



      127.0.0.1        floof.org localhost



Esto asigna el nombre del ordenador, floof.org, a la direcci'on de bucle 127.0.0.1 (utilizada si no se
est'a en una red). El alias localhost se asigna tambi'en a dicha direcci'on.


   Si se est'a en una red TCP/IP, sin embargo, su direcci'on y nombre de ordenador real deben
aparecer en /etc/hosts.  Por ejemplo, si su nombre de ordenador es goober.norelco.com y su
direcci'on IP es 128.253.154.32, a"nada la siguiente l'inea a /etc/hosts:



      128.253.154.32        goober.norelco.com



   Si el nombre de su ordenador no aparece en /etc/hosts no ser'a posible establecerlo.


   Para establecer el nombre de su ordenador, utilice el comando hostname. Por ejemplo, el comando



      # hostname -S goober.norelco.com



pone el nombre del ordenador a goober.norelco.com.  En muchos casos, el comando hostname
se  ejecuta  en  alguno  de  los  ficheros  de  inicializaci'on  del  sistema,  como  puede  ser  /etc/rc
'o /etc/rc.local.  Edite estos ficheros y cambie el comando hostname existente para poner su
propio nombre de ordenador; al rearrancar el sistema, el nombre del ordenador cambiar'a al nuevo
valor.
______________________________________________________________________________________________________154    *
 *                                           @


4.11       Qu'e Hacer En Una Emergencia



En algunas ocasiones, el administrador de sistemas se encuentra con el problema de recuperarse de
un desastre completo, como puede ser el olvidarse la palabra clave del usuario ra'iz, o el enfrentarse
con sistemas de ficheros da"nados.  El mejor consejo es, obrar sin p'anico.  Todo el mundo comete
errores est'upidos _'esta es la mejor forma de aprender sobre administraci'on de sistemas: la forma
dif'icil.

    Linux no es una versi'on inestable de UNIX. De hecho, he tenido menos problemas con cuelgues
de sistemas Linux que con versiones comerciales de UNIX en muchas plataformas. Linux tambi'en se
beneficia de un fuerte complemento de asistentes que pueden ayudar a salir del agujero.

    El primer paso al investigar cualquier problema es intentar arreglarlo uno mismo.   Hurgue
alrededor, vea c'omo funcionan las cosas.  Demasiadas veces, un administrador de sistemas pon-
dr'a un mensaje desesperado rogando ayuda antes de investigar el problema.  Muchas de las veces,
encontrar'a que arreglar problemas por uno mismo es realmente muy f'acil.  Este es el camino que
debe seguir para convertirse en un gur'u.

    Hay pocos casos en los que sea necesario reinstalar el sistema desde cero. Muchos nuevos usuarios
borran accidentalmente alg'un fichero esencial del sistema, e inmediatamente acuden a los discos de
instalaci'on.  Esta no es una buena idea.  Antes de tomar medidas dr'asticas como esa, investigar
el problema y preguntar a otros ayudar'a a solucionar las cosas.  En pr'acticamente todos los casos,
podr'a recuperar el sistema desde un disquete de mantenimiento.
4.11.1     Recuperaci'on utilizando un disquete de mantenimiento


Una herramienta indispensable para el administrador de sistemas es el llamado "disco arranque/ra'iz"
("boot/root disk") _un disquete desde el que se puede arrancar un sistema Linux completo, inde-
pendiente del disco duro.  Los discos de arranque/ra'iz son realmente muy simples _se crea un
sistema de ficheros ra'iz en el disquete, se ponen todas las utilidades necesarias en 'el y se instala
LILO y un n'ucleo arrancable en el disquete. Otra t'ecnica es usar un disquete para el n'ucleo y otro
para el sistema de ficheros ra'iz.  En cualquier caso, el resultado es el mismo:  Ejecutar un sistema
Linux completamente desde disquete.

    El ejemplo m'as claro de un disco de arranque/ra'iz son los discos de arranque Slackware5. Estos
disquetes contienen un n'ucleo arrancable y un sistema de ficheros ra'iz, todo en disquete.  Est'an
dise"nados para usarse en la instalaci'on de la distribuci'on Slackware, pero vienen muy bien cuando
hay que hacer mantenimiento del sistema.

    El  disco  de  arranque/ra'iz  de  H.J  Lu,   disponible  en  /pub/Linux/GCC/rootdisk  en
sunsite.unc.edu, es otro ejemplo de este tipo de discos de mantenimiento.  O, si se es ambi-
cioso, se puede crear uno su propio disco. En muchos casos, sin embargo, la utilizaci'on de un disco
de arranque/ra'iz prefabricado es mucho m'as simple y probablemente ser'a m'as completo.

    La utilizaci'on de un disco de arranque/ra'iz es muy simple. Tan s'olo arranque el sistema con el
_________________________________________5
    V'ease la secci'on 2.1.1 para la informaci'on sobre c'omo obtener 'esta desde Internet. Para este procedi*
 *miento, no
se necesita obtener la versi'on completa de Slackware _solo los disquetes de arranque y ra'iz.
______________________________________________________________________________________________________4.11.  *
 *Qu'e Hacer En Una Emergencia      @


disco, y haga login como root (normalmente sin password).  Para poder acceder a los ficheros del
disco duro, se necesitar'a montar el sistema de ficheros a mano. Por ejemplo, el comando


      # mount -t ext2 /dev/hda2 /mnt


montar'a un sistema de ficheros ext2fs existente en /dev/hda2 bajo /mnt. Recuerde que / es ahora
el propio disco de arranque/ra'iz; se necesitar'a montar los sistemas de ficheros de su disco duro bajo
alg'un directorio para poder acceder a los ficheros. Por lo tanto, el fichero /etc/passwd de su disco
duro es ahora /mnt/etc/passwd si se mont'o el sistema de ficheros ra'iz bajo /mnt.
4.11.2     Arreglando la password de root


Si se olvida de la password de root, no hay problema.  S'olo hay que arrancar del disco de ar-
ranque/ra'iz, montar su sistema de ficheros ra'iz en /mnt, y eliminar el campo de password de /root
en /mnt/etc/passwd, como por ejemplo:


      root::0:0:root:/:/bin/sh


Ahora root no tiene password; al rearrancar desde el disco duro deber'ia ser capaz de hacer login
como root y poner la password que desee utilizando passwd.

   No le gust'o el haber aprendido a utilizar vi?  En su disco de arranque/ra'iz probablemente no
estar'an disponibles otros editores como pueda ser Emacs, pero vi deber'ia estarlo.
4.11.3     Arreglando sistemas de ficheros corrompidos


Si se corrompiese de alguna forma el sistema de ficheros, se puede ejecutar e2fsck (si se usa el
sistema de ficheros ext2fs, por supuesto) para corregir desde disquete cualquier dato da"nado en el
sistema de ficheros. Otros tipos de sistemas de ficheros utilizan diferentes formas de comando fsck;
v'ease la Secci'on 4.8 para m'as detalles.

   Cuando se comprueba el sistema de ficheros desde disquete, es mejor que no est'e montado.

   Una causa com'un de da"no en un sistema de ficheros es la corrupci'on del super bloque.  El
super bloque es la "cabecera" del sistema de ficheros que contiene informaci'on acerca del estado del
sistema de ficheros, tama"no, bloques libres, y dem'as. Si se corrompe el super bloque (por ejemplo,
escribiendo accidentalmente datos directamente a la partici'on del sistema de ficheros), el sistema no
puede reconocer nada del sistema de ficheros.  Cualquier intento de montar el sistema de ficheros
fallar'a y e2fsck no ser'a capaz de arreglar el problema.

   Felizmente, el tipo de sistema de ficheros ext2fs salva copias del super bloque en los l'imites de
"grupos de bloques" en el disco _normalmente cada 8K bloques. Para poder decirle al e2fsck que
utilice una copia del super bloque, se puede utilizar un comando tal que


      # e2fsck -b 8193 <partici'on>


donde <partici'on> es la partici'on en la que reside el sistema de ficheros. La opci'on -b 8193 le dice
al e2fsck que utilice la copia del super bloque almacenada en el bloque 8193 del sistema de ficheros.
______________________________________________________________________________________________________156    *
 *                                           @


4.11.4     Recuperando ficheros perdidos


Si accidentalmente se borrasen ficheros importantes del sistema no habr'ia forma de "desborrarlos".
Sin embargo, se pueden copiar los ficheros relevantes desde el disquete al disco duro. Por ejemplo,
si se hubiese borrado /bin/login de su sistema (que le permite hacer login), simplemente arranque
del disquete de arranque/ra'iz, monte el sistema de ficheros ra'iz en /mnt, y use el comando


      # cp -a /bin/login /mnt/bin/login


La opci'on -a le dice a cp que conserve los permisos en los ficheros que se est'an copiando.

    Por supuesto, si los ficheros que se borraron no fueses ficheros esenciales del sistema que tengan
contrapartidas en el disquete de arranque/ra'iz, se habr'a acabado la suerte. Si se hicieron copias de
seguridad, siempre se podr'a recuperar de ellas.
4.11.5     Arreglando librer'ias corrompidas


Si accidentalmente se llegasen a corromper las librer'ias de enlaces simb'olicos en /lib, es m'as que
seguro que comandos que dependan de estas librer'ias no vuelvan a funcionar (V'ease la secci'on 4.7.2).
La soluci'on m'as simple es arrancar del disquete de arranque/ra'iz, montar el sistema de ficheros ra'iz
y arreglar las librer'ias en /mnt/lib.


Cap'itulo  5



Caracter'isticas  avanzadas



En este cap'itulo nos introduciremos en ciertas caracter'isticas avanzadas, pero interesantes de Linux.
Se asume que ya se tiene cierta experiencia en Unix, y se entiende la informaci'on contenida en los
cap'itulos precedentes.

   El aspecto m'as importante que distingue a Linux de otras implementaciones de Unix es su dise"no
abierto a nuevas ideas y su filosof'ia.  Linux no fue desarrollado por un peque"no equipo de pro-
gramadores liderado por una empresa con un objetivo comercial.  Fue desarrollado por un grupo
creciente de "hackers" quienes aportaban todo lo que sab'ian en desarrollo de Unix.  Por ello, es
enorme la cantidad de software adicional disponible.

5.1     El sistema X Window



X Windows es un enorme entorno gr'afico para sistemas Unix, potente y tambi'en complejo. Origin-
almente fue desarrollado por el MIT, y desde entonces los desarrolladores de sistemas comerciales
han convertido a las X en un est'andar de las plataformas Unix. Pr'acticamente todas las estaciones
de trabajo Unix del mundo utilizan X Window en alguna de sus variantes.

   Existe, desarrollada por un equipo de programadores inicialmente liderados por David Wexelblat1,
una implementaci'on gratuita de las X Windows versi'on 11, release 6 (X11R6) para sistemas Unix
con 80386/80486/Pentium.  Esta implementaci'on, llamada XFree862, se encuentra disponible en
Unix x86 como System V/386, 386BSD y por supuesto Linux. Incluye todos los binarios necesarios,
ficheros de soporte, librer'ias y utilidades.

   Configurar y utilizar a fondo las X Windows se sale de los objetivos de este libro. Le animamos a
leer The X Window System: A User's Guide_vea el ap'endice A para m'as informaci'on sobre el libro.
En esta secci'on, le daremos una descripci'on de c'omo instalar y configurar paso a paso XFree86 en
Linux, pero necesitar'a completar la informaci'on con otra disponible en la documentaci'on propia de
_________________________________________
   1Se puede contactar con David en Internet mediante la direcci'on dwex@XFree86.org
   2XFree86 es marca registrada de The XFree86 Project, Inc.



                                                 157
______________________________________________________________________________________________________158    *
 *                                           @


XFree86 (documentaci'on que comentaremos m'as adelante). Otra fuente interesante de informaci'on
es la XFree86 HOWTO.
5.1.1     Requisitos de hardware


Al igual que la versi'on XFree86 3.1 de Septiembre de 1994, est'an soportados los siguientes "chipsets".
La documentaci'on que se incluye con su adaptador de video deber'ia especificar cu'al es el "chipset" que
utiliza. Si est'a a punto de comprarse una nueva tarjeta gr'afica, conviene pedir al vendedor el modelo
exacto de tarjeta y "chipset" de video.  Esto supondr'a, casi siempre, recurrir al servicio t'ecnico,
pero normalmente los vendedores no pondr'an inconvenientes. La mayor parte de los vendedores de
PCs se limitan a decir que sus ordenadores tienen tarjetas gr'aficas "SVGA est'andar" que "tiene que
funcionar" en su sistema. Expl'iqueles que su software (nombrando a Linux y XFree86, por supuesto)
no soporta todos los "chipsets" y que usted necesita por eso informaci'on m'as detallada.

    De todas formas, puede determinar su "chipset" ejecutando el programa SuperProbe inclu'ido
con la distribuci'on de XFree86. De esto hablamos m'as abajo.

    Est'an soportados los siguientes "chipsets" SVGA:


    o Tseng ET3000, ET4000AX, ET4000/W32


    o Western Digital/Paradise PVGA1


    o Western  Digital  WD90C00,  WD90C10,  WD90C11,  WD90C24,  WD90C30,  WD90C31,
      WD90C33


    o Genoa GVGA


    o Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i,
      TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420


    o ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX,
      88800


    o NCR 77C22, 77C22E, 77C22E+


    o Cirrus  Logic  CLGD5420,  CLGD5422,  CLGD5424,  CLGD5426,  CLGD5428,  CLGD5429,
      CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6420


    o Compaq AVGA


    o OAK OTI067, OTI077


    o Avance Logic AL2101


    o MX MX68000, MX680010


    o Video 7/Headland Technologies HT216-32


    Tambi'en est'an soportados los siguientes, con acelerador:
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @


   o  8514/A (y cl'onicos)


   o  ATI Mach8, Mach32


   o  Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430,
      CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235


   o  S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964


   o  Western Digital WD90C31, WD90C33


   o  Weitek P9000


   o  IIT AGX-014, AGX-015, AGX-016


   o  Tseng ET4000/W32, ET4000/W32i, ET4000/W32p



   Todas las tarjetas gr'aficas que usan estos "chipsets" est'an soportadas, incluso para bus local
Vesa o PCI.

   El soporte incluye los modos monocrom'aticos y de 256 colores, con la excepcion de Avance Logic,
MX y Video 7, que est'an soportadas solo en 256 colores. Si su tarjeta gr'afica tiene suficiente memoria
DRAM, la mayor parte de los "chipsets" anteriores tambi'en est'an soportados para los modos de 16
y 32 bits por pixel (en concreto, algunas Mach32, P9000, S3 y Cirrus). Lo habitual, sin embargo, es
usar 8 bits por pixel, es decir, 256 colores.

   El servidor monocrom'atico tambi'en soporta las tarjetas VGA gen'ericas, la Hercules, la Hyundai
HGC1280, Sigma LaserView y Apollo.  Para la Compaq AVGA, solo est'an soportadas 64Kb de
memoria de v'ideo en el servidor monocrom'atico, y la GVGA no ha sido probada con m'as de 64 Kb.

   Indudablemente, esta lista seguir'a creciendo conforme pase el tiempo.  Las notas que encon-
trar'a junto a la versi'on actual de XFree86 contendr'an probablemente una completa lista de "chipsets"
soportados en ese momento.

   Un problema que se encuentran con frecuencia los desarrolladores de XFree86 es que algunos
fabricantes de tarjetas gr'aficas utilizan mecanismos no est'andares para determinar las frecuencias de
reloj a usar en la tarjeta. Algunos de esos fabricante tampoco editan especificaciones que describan
c'omo programar la tarjeta, o exigen a los desarrolladores que firmen un documento de no divulgaci'on
para poder obtener la informaci'on. Esto, obviamente, dificulta la libre distribuci'on del software de
XFree86. Durante mucho tiempo esto ha impedido trabajar con las tarjetas Diamond, pero desde la
versi'on 3.1 de XFree86, Diamond ya ha comenzado a colaborar con el equipo de desarrollo para la
realizaci'on de drivers para esas tarjetas.

   La configuraci'on que se sugiere para ejecutar XFree86 con Linux es una m'aquina 486 con 8
megabytes de RAM por lo menos, y una tarjeta gr'afica con un "chipset" de los listados antes.
Para obtener un rendimiento 'optimo, se sugiere utilizar una tarjeta acelerada, como las basadas en el
"chipset" S3. Usted debe comprobar sobre la documentaci'on de XFree86 que su tarjeta est'a soportada
antes de proceder al gasto que supone el nuevo hardware. Se han comparado rendimientos de diversos
modelos de tarjetas, y sus resultados son enviados peri'odicamente a los grupos de news USENET
comp.windows.x.i386unix y comp.os.linux.misc.
______________________________________________________________________________________________________160    *
 *                                           @


    Como nota adicional, mi sistema personal con Linux es un 486DX2-66 con 20 megabytes de
RAM y equipado con una tarjeta BLV con el "chipset" S3-864 y 2 megabytes de DRAM. He tenido
rendimientos en X superiores a los de una Sun Sparc IPX. El sistema Linux resulta unas siete
veces m'as r'apido que el Sparc IPX (para el curioso, XFree86-3.1 bajo Linux, con esta tarjeta gr'afica,
consigue unos 171,000 xstones mientras que la Sparc IPX consigue solo 24,000). En general, XFree86
en un sistema Linux con una tarjeta SVGA acelerada le dar'a mucho m'as rendimiento que el que se
encuentra en estaciones de trabajo Unix comerciales (que suelen emplear solo "framebuffers").


    Su m'aquina necesitar'a al menos 4 megabytes de memoria f'isica en RAM y 16 de memoria virtual
(por ejemplo, 8 megabytes en RAM y otros 8 en swap).  Recuerde que cuanta m'as RAM tenga,
menos tendr'a el sistema que acudir al disco duro cuando no hay memoria suficiente.  Dado que el
swapping es inherentemente lento, tener 8 megabytes de RAM o m'as es necesario si quiere correr
XFree86 de forma confortable. Un sistema con 4 megabytes de RAM correr'a mucho m'as lento (hasta
10 veces) que uno con 8 megabytes o m'as.



5.1.2     Instalaci'on de XFree86



La distribuci'on en binario de XFree86 para Linux puede encontrarse en muchos servidores de FTP.
En sunsite.unc.edu se encuentra en el directorio /pub/Linux/X11.  (En el momento de escribir
este libro, la versi'on era la 3.1; aunque periodicamente aparecen nuevas versiones).


    Es com'un que usted haya obtenido XFree86 como parte de una distribuci'on de Linux, en cuyo
caso no necesitar'a obtener el software del servidor anterior.


    Si en cambio los obtiene por esta v'ia, la siguiente tabla le informar'a de los ficheros de los que
consta la distribuci'on XFree86-3.1.


    Se requiere uno de los siguientes servidores:



                ______________________________________________________________________
                __Fichero____________________Descripci'on_____________________________
                  XF86-3.1-8514.tar.gz       Servidor para tarjetas tipo 8514.
                  XF86-3.1-AGX.tar.gz        Servidor para tarjetas tipo AGX.
                  XF86-3.1-Mach32.tar.gz     Servidor para tarjetas tipo Mach32.
                  XF86-3.1-Mach8.tar.gz      Servidor para tarjetas tipo Mach8.
                  XF86-3.1-Mono.tar.gz       Servidor monocromo.
                  XF86-3.1-P9000.tar.gz      Servidor para tarjetas tipo P9000.
                  XF86-3.1-S3.tar.gz         Servidor para tarjetas tipo S3.
                  XF86-3.1-SVGA.tar.gz       Servidor para tarjetas SVGA.
                  XF86-3.1-VGA16.tar.gz      Servidor para VGA en 16 colores.
                __XF86-3.1-W32.tar.gz________Servidor_para_tarjetas_tipo_ET4000/W32.__
    Adem'as, son necesarios todos los ficheros siguientes:
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @

               ________________________________________________________________________
               __Fichero________________Descripci'on___________________________________
                 XF86-3.1-bin.tar.gz    Binarios de X11R6.
                 XF86-3.1-cfg.tar.gz    Ficheros de configuraci'on para xdm, xinit y fs.
                 XF86-3.1-doc.tar.gz    Documentaci'on y p'aginas de manual.
                 XF86-3.1-inc.tar.gz    Ficheros include.
                 XF86-3.1-lib.tar.gz    Ficheros de soporte y librer'ias compartidas.
               __XF86-3.1-fnt.tar.gz____Fuentes_b'asicas.______________________________


   Los siguientes ficheros son opcionales:

                 ____________________________________________________________________
                 __Fichero_____________________Descripci'on__________________________
                   XF86-3.1-ctrb.tar.gz        Diversas contribuciones.
                   XF86-3.1-extra.tar.gz       Otros servidores y binarios.
                   XF86-3.1-lkit.tar.gz        Kit para personalizaci'on de servidores.
                   XF86-3.1-fnt75.tar.gz       Fuentes de 75 ppp.
                   XF86-3.1-fnt100.tar.gz      Fuentes de 100 ppp.
                   XF86-3.1-fntbig.tar.gz      Otras fuentes (Kanji...).
                   XF86-3.1-fntscl.tar.gz      Fuentes escalables (Speedo, Type1).
                   XF86-3.1-man.tar.gz         P'aginas de manual.
                   XF86-3.1-pex.tar.gz         Binarios PEX y librer'ias.
                   XF86-3.1-slib.tar.gz        Librer'ias est'aticas de X.
                   XF86-3.1-usrbin.tar.gz      Daemons que residen en /usr/bin.
                 __XF86-3.1-xdmshdw.tar.gz_____Versi'on_de_xdm_para_shadow_password._


   El directorio de XFree86 deber'ia contener los ficheros README y otras notas acerca de la instalaci'on
de la versi'on actual.

   Todo lo que se necesita para instalar XFree86 es obtener los ficheros anteriores, crear el directorio
/usr/X11R6 (como root), y desempaquetar los ficheros desde ese directorio con un comando como
el siguiente:



      # gzip -dc XF86-3.1-bin.tar.gz | tar xfB -

Recuerde que esos ficheros tar se empaquetan con directorios relativos a /usr/X11R6, con lo que es
imprescindible desempaquetarlos en el lugar indicado.

   Despu'es de desempaquetar los ficheros, necesitar'a hacer un enlace del nombre /usr/X11R6/bin/X
al servidor que vaya a utilizar. Por ejemplo, si desea usar el servidor SVGA color, /usr/bin/X11/X
debe ser un enlace a /usr/X11R6/bin/XF86_SVGA. Si desea utilizar el servidor monocromo en su
lugar, el enlace apuntar'a a XF86_MONO con el comando



      # ln -sf /usr/X11R6/bin/XF86_MONO  /usr/X11R6/bin/X



   El mecanismo es similar para cualquier otro servidor que quiera usar.

   Si no est'a seguro de qu'e servidor debe usar, o no conoce el "chipset" de su tarjeta gr'afica,
puede ejecutar SuperProbe, un programa del directorio /usr/X11R6/bin (inclu'ido en el fichero
______________________________________________________________________________________________________162    *
 *                                           @


XF86-3.1-bin), que intentar'a identificar su "chipset" y otras informaciones.  Anote su salida para
posterior referencia.

    Necesita asegurarse de que /usr/X11R6/bin se encuentra en el path. Esto puede hacerse editando
el fichero /etc/profile o /etc/csh.login (seg'un qu'e shell utilice).  O simplemente puede a"nadir
el directorio a su path personal modificando su propio .bashrc o .cshrc.

    Adem'as, hay que asegurarse que /usr/X11R6/lib es localizable por ld.so, el enlazador din'amico.
Para ello, a"nada la l'inea



      /usr/X11R6/lib



al fichero /etc/ld.so.conf, y ejecute /sbin/ldconfig, como root.
5.1.3     Configuraci'on de XFree86


Poner a punto XFree86 no suele ser dif'icil.  Sin embargo, si va a usar manejadores de "chipsets"
aun en desarrollo o desea obtener el mejor rendimiento o resoluci'on de una tarjeta aceleradora, en
configurar a la perfecci'on XFree86 puede tardar bastante.

    En esta secci'on vamos a describir c'omo crear y editar el fichero XF86Config, que configura al
servidor. En muchos casos lo mejor es comenzar con una configuraci'on "b'asica", de baja resoluci'on,
como 640x480 puntos, que es soportada por todas las tarjetas y monitores.  Una vez comprobado
su funcionamiento a baja resoluci'on, puede pasar a modificar la configuraci'on para explotar toda la
capacidad de su tarjeta de video.

    Adem'as de la informaci'on que nosotros le damos, deber'ia leerse la siguiente documentaci'on:



    o La documentaci'on propia de XFree86 en /usr/X11R6/lib/X11/doc (viene con el paquete
      XFree86-3.1-doc).  Debe prestar especial atenci'on al fichero README.Config, que es un tu-
      torial sobre la configuraci'on de XWindows.


    o Diferentes "chipsets" de video tendr'an sus propios ficheros README en el directorio anterior
      (por ejemplo, README.Cirrus). L'ease el que le corresponda.


    o Las p'aginas de manual para XFree86.


    o Las p'aginas de manual para XF86Config.


    o Las p'aginas de manual para el servidor concreto que utilice (como XF86_SVGA o XF86_S3).



    El fichero de configuraci'on principal debe ser /usr/X11R6/lib/X11/XF86Config.  Este fichero
contiene informaci'on acerca del rat'on, par'ametros de la tarjeta gr'afica, etc. El fichero XF86Config.ed
es un ejemplo que incluye la distribuci'on. Copie este fichero como XF86Config y modif'iquelo para
su sistema.

    Las p'aginas de manual para XF86Config explican el formato del fichero con detalles. Lea ahora
esas p'aginas si aun no lo ha hecho.
      ______________________________________________________________________________________________________5*
 *.1.  El sistema X Window                @


         Le vamos a presentar un ejemplo de XF86Config. No tiene por qu'e coincidir con el ejemplo que
      incluye la distribuci'on, pero en todo caso tendr'an estructura parecida.

3        Observe que el formato del fichero puede cambiar algo entre versiones de XFree86. La informaci'on
      que le damos solo vale para la versi'on 3.1.

3        Adem'as, no debe limitarse a copiar este fichero e intentar probarlo en su sistema. Si lo hace, y,
      por error, env'ia a su monitor una frecuencia demasiado alta para 'el puede producir una aver'ia. No
      ser'ia el primer caso. Esto ha ocurrido especialmente con monitores de frecuencia fija. En definitiva,
      aseg'urese de que su fichero XF86Config se corresponde con su hardware antes de intentar utilizarlo.

         Cada secci'on del siguiente ejemplo de XF86Config se enmarca en un par de l'ineas Section
      <section-name>. .E.ndSection. La primera parte del fichero es la secci'on de Ficheros, que tendr'a el
      siguiente aspecto:


            Section "Files"
                RgbPath      "/usr/X11R6/lib/X11/rgb"
                FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
                FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
            EndSection


      La l'inea RgbPath pone la ruta de acceso a la base de datos de colores RGB para X11R6, y cada l'inea
      FontPath pone rutas de acceso a directorios con fuentes X11. Por lo general no tendr'a que modificar
      estas l'ineas.  Tan s'olo debe comprobar que en los directorios correspondientes se encuentran los
      ficheros implicados (fuentes, etc).

         La siguiente secci'on es ServerFlags, que especifica algunos "flags" generales para el servidor.
      Por lo general la secci'on suele ir vac'ia.


            Section "ServerFlags"
            # Si quita el comentario siguiente, la llegada de una se~nal al
            # provocara el volcado de su memoria. Esto puede dejar la consola en
            # un estado inutilizable pero el volcado puede servirle en la depuracion.
            #     NoTrapSignals


            # Quitando este comentario se desactiva la secuencia <Crtl><Alt><BS>
            #     DontZap
            EndSection


         La siguiente secci'on es Keyboard. Su significado es claro.


            Section "Keyboard"
                Protocol     "Standard"
                AutoRepeat  500 5
                ServerNumLock
            EndSection


      Existen otras opciones.  Vea su fichero XF86Config si desea modificar las opciones de teclado.  Las
      que trae por defecto suelen funcionar bien en casi todos los sistemas.
______________________________________________________________________________________________________164    *
 *                                           @


    La siguiente secci'on es Pointer, y especifica los par'ametros para el rat'on.


      Section "Pointer"


           Protocol     "MouseSystems"
           Device       "/dev/mouse"


      # Los dos parametros siguientes solo son necesarios en algunos Logitech.
      #     BaudRate    9600
      #     SampleRate 150


      # La siguiente opcion es util para ratones Microsoft de dos botones.
      #     Emulate3Buttons


      # La siguiente opcion es util para algunos ratones con tres botones Logitech.
      #     ChordMiddle


      EndSection


Le pueden interesar las opciones Protocol y Device. Protocol especifica el protocolo que utiliza su
rat'on (no se trata de su marca o modelo). Bajo Linux los protocolos v'alidos son:


    o BusMouse


    o Logitech


    o Microsoft


    o MMSeries


    o Mouseman


    o MouseSystems


    o PS/2


    o MMHitTab


BusMouse es el que se usa para rat'on Logitech en bus. Observar que los ratones antiguos de Logitech
usan Logitech pero los m'as modernos usan Microsoft o Mouseman.  Este es un caso en el que el
protocolo no coincide con la marca.

    Device especifica el dispositivo donde est'a el rat'on. En muchos sistemas Linux se encuentra en
/dev/mouse, que suele ser un enlace al dispositivo verdadero (puerto serie como /dev/cua0, etc).
Por supuesto, debe asegurarse de que el dispositivo que corresponda est'e en /dev.

    La siguiente secci'on es Monitor, que especifica las caracter'isticas de su pantalla TRC. La secci'on
Monitor de XF86Config puede no ser 'unica, como sucede con otras secciones. Es 'util si hay varios
monitores conectados al sistema, o si se quiere usar el mismo XF86Config en diferentes config-
uraciones hardware. Por lo general, sin embargo, solo necesitar'a una secci'on Monitor.
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @


      Section "Monitor"


          Identifier  "CTX 5468 NI"


          # !! Estos valores son validos solo para un monitor "CTX 5468 NI"
          # No intente usarlo en su monitor si no es este mismo.


          Bandwidth     60
          HorizSync     30-38,47-50
          VertRefresh  50-90


          # Modos: Nombre      reloj     horiz                  vert


          ModeLine "640x480"  25        640 664 760 800       480 491 493 525
          ModeLine "800x600"  36        800 824 896 1024      600 601 603 625
          ModeLine "1024x768" 65        1024 1088 1200 1328  768 783 789 818


      EndSection


   La l'inea Identifier se usa para dar a la secci'on un nombre.  Puede ser cualquier cadena de
caracteres y se usar'a despu'es para referirse a ese monitor.

   HorizSync es el valor de frecuencia de sincronismo horizontal v'alida, en kHz. Si tiene un monitor
"multisync", puede tratarse de un rango (o diversos rangos separados por comas). Si se trata de un
monitor de frecuencia fija, ser'a un conjunto discreto de valores como el siguiente:


          HorizSync     31.5, 35.2, 37.9, 35.5, 48.95


El manual de su monitor deber'ia incluir estos datos en las especificaciones t'ecnicas. Si no tiene esta
informaci'on, contacte con el vendedor o fabricante para obtenerla. Por supuesto, hay otras fuentes
de informaci'on.

   VertRefresh especifica las frecuencias de refresco vertical v'alidas (o sincronismo vertical), en
Hz. Como HorizSync puede ser uno o m'as rangos o valores discretos. Tambi'en deben indicarse en
su manual.

   Los dos par'ametros anteriores solo se utilizan para comprobar que los modos gr'aficos pedidos
van a ser tolerados por su monitor. Esos modos se especifican en las entradas Modeline que tienen
el formato siguiente:


      ModeLine <nombre> <reloj> <valores-horiz> <valores-vert>


<nombre> es un nombre cualquiera que le damos al modo.  <reloj> es la frecuencia de reloj o "dot
clock" asociada al modo. Se suele especificar siempre en Mhz, y es la frecuencia de env'io de pixels
al monitor para esa resoluci'on. <valores-horiz> y <valores-vert> son cuatro n'umeros que especifican
cu'ando el haz de electrones del monitor debe dispararse y cu'ando se env'ian los pulsos de sincronismo.

   Se preguntar'a c'omo determinar esos valores para su monitor. El fichero Videomodes.doc, inclu'ido
en la distribuci'on de XFree86 describe en detalle c'omo obtener los valores requeridos.  En primer
______________________________________________________________________________________________________166    *
 *                                           @


lugar, <reloj> debe corresponderse con un valor de los que pueda producir su tarjeta de video.  Por
lo tanto solo usar'a modos con valores de reloj soportados.

    En la distribuci'on se incluyen dos ficheros que pueden darle los datos para Modeline de su
monitor. Estos ficheros son modeDB.txt y Monitors, ambos en /usr/X11R6/lib/X11/doc.

    Deber'ia comenzar con valores para el est'andar VESA, que la mayor parte de los monitores
soportan. Estos valores est'an inclu'idos en modeDB.txt. En este fichero encontrar'a entradas como



      # 640x480@60Hz Non-Interlaced mode
      # Horizontal Sync = 31.5kHz
      # Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
      #
      # name         clock    horizontal timing      vertical timing       flags
       "640x480"      25.175  640  664  760  800     480  491  493  525



Esta es una temporizaci'on est'andar VESA para modo 640x480.  Utiliza un reloj de 25.175, que
debe ser soportado por la tarjeta (esto lo veremos luego).  Para incluir esta entrada en el fichero
XF86Config usar'ia la l'inea



      ModeLine "640x480"25.175  640 664 760 800  480 491 493 525



Observe que el argumento <nombre> (en este caso, "640x480") es una cadena de caracteres arbitraria,
aunque se suele seguir la convenci'on de indicar la resoluci'on del modo.

    Para cada Modeline indicado, el servidor comprobar'a que sus valores caen dentro de los rangos
permitidos de frecuencias (especificados antes), anulando el modo si no ocurre as'i. Principalmente, el
valor de reloj no debe ser mayor que el indicado en Bandwidth. Sin embargo, usar valores ligeramente
superiores no suele dar problemas.

    Si los tiempos est'andares en VESA no le funcionan correctamente (lo sabr'a cuando despu'es los
pruebe) mire los ficheros modeDB.txt y Monitors, que incluyen valores espec'ificos para muchos
modelos de monitores.  Puede crear entradas Modeline a partir de lo que vea en estos ficheros.
Aseg'urese de que solo usa valores v'alidos en su monitor.  Vea que muchos monitores de 14 o 15
pulgadas no soportan modos de alta resoluci'on como 1024x768 con se"nales de reloj lentas.  Esto
significa que si no encuentra modos de alta resoluci'on para su monitor en esos ficheros, no podr'a usar
dicha resoluci'on.

    Si se encuentra perdido, y no encuentra ning'un modo que funcione en su monitor, puede seguir
las instrucciones de VideoModes.doc, que le ayudar'an a calcular las entradas ModeLine adecua-
das a partir de las especificaciones que se digan en el manual de su monitor.  El mismo fichero
VideoModes.doc explica tambi'en otros aspectos del servidor de XFree86 como el formato de la
directiva ModeLine.

    Por 'ultimo, si obtiene valores para ModeLine que son aceptables pero no del todo correcto, puede
modificarlos ligeramente para obtener el resultado deseado. Por ejemplo, si cuando ejecuta XFree86
la imagen se desplaza ligeramente, o parece girar, puede seguir las instrucciones de VideoModes.doc
para intentar corregir esas deficiencias.  Adem'as, utilice tambi'en los propios controles del monitor.
      ______________________________________________________________________________________________________5*
 *.1.  El sistema X Window                @


      Muchas veces es necesario ajustarlos despu'es de cambiar de modo gr'afico.  Tener esos controles en
      la parte frontal del monitor le har'a la vida m'as f'acil.

3        Nunca debe usar valores de tiempo o de Modeline pensados para monitores diferentes al suyo.
      Si lo intenta hacer, y env'ia al monitor una frecuencia para la que no fu'e dise"nado, puede producirle
      una aver'ia.

         La siguiente secci'on del fichero XF86Config es Device, que especifica los par'ametros de su tarjeta
      gr'afica. Por ejemplo,


            Section "Device"
                    Identifier "#9 GXE 64"


                    # Todavia nada; a~nadiremos los valores despu\'es.


            EndSection


         Esta secci'on establece las propiedades de su tarjeta gr'afica. Identifier es una cadena de cara-
      cteres usada para identificar su tarjeta, cadena que usar'a para referirse a las caracter'isticas que en
      esta secci'on se detallen.

         Inicialmente no necesita incluir nada m'as a la secci'on Device que la identificaci'on de la tarjeta.
      Esto es as'i pues usaremos el servidor X para probar las propiedades de su tarjeta, para incluirlas
      luego en esta secci'on. El servidor X es capaz de obtener el "chipset", "RAMDAC" y memoria RAM
      de su tarjeta.

         Antes de hacer esto, sin embargo, necesitamos terminar el fichero XF86Config.  La siguiente
      secci'on es Screen, que especifica qu'e combinaci'on monitor/tarjeta usar para un servidor concreto.



             Section "Screen"
                 Driver      "Accel"
                 Device      "#9 GXE 64"
                 Monitor     "CTX 5468 NI"
                 Subsection "Display"
                      Depth       16
                      Modes       "1024x768" "800x600" "640x480"
                      ViewPort    0 0
                      Virtual     1024 768
                 EndSubsection
             EndSection



         La l'inea Driver indica qu'e servidor X utiliza. Los valores v'alidos son:


         o  Accel:   Para  servidores  XF86_S3,  XF86_Mach32,  XF86_Mach8,  XF86_8514,  XF86_P9000,
            XF86_AGX, y XF86_W32;


         o  SVGA: Para el servidor XF86_SVGA;


         o  VGA16: Para el servidor XF86_VGA16;
______________________________________________________________________________________________________168    *
 *                                           @


    o VGA2: Para el servidor XF86_Mono;


    o Mono:   Para  manejadores  monocrom'aticos  no  VGA  que  se  encuentran  en  los  servidores
      XF86_Mono y XF86_VGA16.


Debe asegurarse de que /usr/X11R6/bin/X es un enlace simb'olico al servidor que va a usar.

    La l'inea Device especifica el valor Identifier de la secci'on Device que corresponda a la tarjeta
de video que se va a usar con este servidor. Antes, hemos creado una secci'on Device con la l'inea


      Identifier "#9 GXE 64"


As'i pues, utilizaremos "#9 GXE 64" en la l'inea Device de aqu'i.

    De forma parecida, la l'inea Monitor especifica el nombre de la secci'on Monitor que se va a
usar en este servidor.  Aqu'i, "CTX 5468 NI" es el identificador Identifier utilizado en la secci'on
Monitor vista antes.

    Subsection "Display" define distintas caracter'isticas del XFree86 con su particular combinaci'on
de monitor y tarjeta gr'afica. El fichero XF86Config describe todas las opciones en detalle. La mayor'ia
no son necesarias para que el sistema funcione.

    Las opciones que deber'ia conocer son:


    o Depth. Define el n'umero de bits por pixel (o planos de color), que normalmente valdr'a 8 (supone
      256 colores). Para el servidor VGA16 se usar'a una profundidad de 4, y para el monocromo, una
      profundidad de 1.  Si se utiliza una tarjeta acelerada con suficiente memoria, se puede subir
      la profundidad a 16, 24 o 32. Si le da problemas, vuelva a profundidad 8 e intente corregir el
      problema despu'es.


    o Modes.  Es la lista de modos de video que estar'an entre los definidos con ModeLine para su
      monitor. Los nombres usados antes para identificarlos ( "1024x768", etc) se usar'an ahora para
      expresar los modos de la siguiente manera:


                     Modes     "1024x768" "800x600" "640x480"


      De esta forma, XFree86 intentar'a_arrancar_en_el_primero_de_los_modos.__Una_vez_que_ha__
      arrancado, con las teclas |_ctrl_|-|_alt_|-|_numeric_+_ |y |_ctrl_|-|_alt_|-|_numeric_-_ |podr'a cambia*
 *r a
      otro modo.

      La mejor forma de empezar, cuando se est'a configurando XFree86, es usar modos de baja res-
      oluci'on (como 640x480) que suelen funcionar siempre. Una vez que se tenga una configuraci'on
      b'asica que va bien, puede pasarse a modificar XF86Config para soportar resoluciones mayores.


    o Virtual.  Pone el tama"no del 'area de trabajo virtual.  XFree86 es capaz de usar la memoria
      sobrante de su tarjeta gr'afica para extender el tama"no de su 'area de trabajo. Cuando mueve
      el rat'on a extremos de la pantalla, ver'a como la pantalla se desplaza, accediendo as'i a todo el
      'area virtual.  As'i pues, si usted trabaja con una resoluci'on inferior, como 800x600 y pone un
      'area de 1024x768 (propia para 1 Mbyte de DRAM y 8 bits por pixel) podr'a usar un 'area de
      trabajo m'as grande que la que cabe en pantalla.
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @


      El mecanismo Virtual resulta interesante para aprovechar toda la memoria de la tarjeta
      gr'afica, pero es limitado.  Si quiere usar un 'area de trabajo virtual, el autor recomienda usar
      las facilidades que al respecto dan gestores de ventanas como fvwm.  El mecanismo aqu'i se
      implementa a base de ocultar ventanas, etc. en lugar de ocupar toda la memoria de la tarjeta.
      Para m'as detalle, vea las p'aginas de manual de fvwm, gestor de ventanas que suelen traer los
      sistemas Linux por defecto.


   o  ViewPort. Si usted utiliza la opci'on Virtual descrita antes, puede usar ViewPort para indicar
      en qu'e coordenadas virtuales comenzar XFree86. Se suele usar ViewPort 0 0 que pone el 'area
      de trabajo en la esquina superior izquierda. Pero si no se indica se pondr'a centrado, algo que
      quiz'as le interese m'as.



   Hay muchas otras opciones en esta secci'on; vea las p'aginas de manual para XF86Config para
m'as detalle. En la pr'actica no son necesarias esas otras opciones para que funcione el sistema.
5.1.4    Introducci'on de los datos de la tarjeta gr'afica


Su fichero XF86Config est'a ya casi listo para usar, aunque aun falta la informaci'on de su tarjeta
gr'afica. Lo que vamos a hacer ahora es usar el servidor X para obtener la informaci'on que falta, e
introducirla en XF86Config.

   A veces se puede encontrar esa informaci'on en los ficheros modeDB.txt, AccelCards y Devices,
que se encuentran en /usr/X11R6/lib/X11/doc. Adem'as, existen numerosos ficheros README para
algunos "chipsets". Debe mirar esos ficheros para buscar su tarjeta y usar los valores que aparezcan
en ellos (de reloj, tipo de "chipset" y otros) en la secci'on correspondiente de XF86Config.  Si falta
alguna informaci'on puede intentar obtenerla con el procedimiento siguiente.

   En estos ejemplos vamos a ver c'omo configurar'iamos el sistema para una tarjeta #9 GXE 64,
que usa el servidor XF86_S3. Es la tarjeta que utiliza el autor, aunque el procedimiento es igualmente
aplicable a cualquier otra.

   Lo  primero  que  debe  hacerse  es  determinar  el  "chipset"  que  lleva  la  tarjeta.   Ejecutando
/usr/X11R6/bin/SuperProbe lo averiguaremos, aunque tambi'en hay que conocer el nombre con
el que el servidor X conoce a ese "chipset". Para conseguir esto 'ultimo, ejecutar:



      X -showconfig



Esto le dar'a los nombres de "chipsets" que conoce el servidor X (esto tambi'en se encuentra en las
p'aginas de manual). Por ejemplo, con el servidor XF86_S3 obtendremos:


      XFree86 Version 3.1 / X Window System
      (protocol Version 11, revision 0, vendor release 6000)
      Operating System: Linux
      Configured drivers:
        S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
            mmio_928, s3_generic
______________________________________________________________________________________________________170    *
 *                                           @


    As'i pues los nombres de "chipsets" que este servidor tiene son mmio_928 y s3_generic.  En la
p'agina de manual para XF86_S3 encontrar'a la descripci'on de estos "chipsets" junto a algunas tarjetas
que los utilizan. Para la #9 GXE 64 el "chipset" es mmio_928.

    Si no conoce qu'e "chipset" usar, el servidor X puede intentar averiguarlo. Para ello, ejecutar


      X -probeonly > /tmp/x.out 2>&1


si usa bash como shell. Si usa csh, intente:


      X -probeonly &> /tmp/x.out


    El comando anterior debe ejecutarse solo cuando no hay otras actividades en el sistema (otros
usuarios, procesos, etc.)  Este comando obtiene tambi'en los valores para los relojes y si el sistema
est'a cargado se calcular'an incorrectamente.

    Por ejemplo, esto es lo que sale para la tarjeta del autor:


      XFree86 Version 3.1 / X Window System
      (protocol Version 11, revision 0, vendor release 6000)
      Operating System: Linux
      Configured drivers:
        S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
             mmio_928, s3_generic
      algunas l'ineas borradas . . .
      (--) S3: card type: 386/486 localbus
      (--) S3: chipset:    864 rev. 0
      (--) S3: chipset driver: mmio_928


Aqu'i vemos los dos "chipsets" v'alidos (mmio_928 y s3_generic) del servidor. Este prob'o ambos y
determin'o que la tarjeta usa el "chipset" mmio_928.

    En la secci'on Device del fichero XF86Config, a"nada una l'inea Chipset con el nombre obtenido
antes. Por ejemplo,


      Section "Device"
               # Este es el identificador que le pusimos...
               Identifier "#9 GXE 64"
               # A~nadimos esta lnea:
               Chipset "mmio_928"
      EndSection


    Ahora hay que determinar las frecuencias de reloj. Cada una de 'estas es simplemente la frecuencia
con la que la tarjeta puede enviar p'ixeles al monitor. Como ya sabemos, estas frecuencias dependen
de la resoluci'on usada.

    En primer lugar debe echar un vistazo a los ficheros mencionados antes (como modeDB.txt) y
ver si los relojes de su tarjeta est'an listados.  En su caso ver'a una lista de 8 'o 16 valores, todos
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @


ellos dados en Mhz. Por ejemplo, en modeDB.txt encontramos lo siguiente para la tarjeta Cardinal
ET4000:


      # chip     ram    virtual    clocks                              default-mode  flags
       ET4000    1024  1024 768    25  28  38  36  40  45  32    0  "1024x768"


Como vemos, los relojes son 25, 28, 38, 36, 40, 45, 32 y 0 MHz.

   En la secci'on Devices del fichero XF86Config debe a"nadir una l'inea Clocks como la siguiente
(para nuestro ejemplo):


              Clocks 25 28 38 36 40 45 32 0


Esto estar'a en la secci'on Devices, despu'es de Chipset.  Observe la importancia del orden de los
relojes. No los cambie.

   Si no encuentra las frecuencias de reloj para su tarjeta en los ficheros, el servidor X tambi'en
los puede intentar averiguar.  Con el comando ya visto X -probeonly obtendr'a una l'inea como la
siguiente:


      (--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00


Con esta l'inea podemos hacer la l'inea Clocks en XF86Config. Si hay muchos valores y no caben en
una l'inea puede crear m'as l'ineas Clock, pero respete el orden de todas formas.

   Aseg'urese de que no hay ninguna l'inea Clocks en la secci'on Devices cuando use el comando X
-probeonly puesto que en este caso no har'a pruebas reales de los relojes, sino que probar'a solo los
valores que haya en el fichero XF86Config.

   Observe que algunas tarjetas aceleradas tienen chip de reloj programable (vea las p'aginas de
manual de XF86_Accel para m'as detalle.  Estas son aplicables a las tarjetas S3, AGX y XGA-2).
Este chip viene a permitir que el servidor X diga a la tarjeta qu'e relojes usar. Si este es el caso, no
debe haber una lista de valores v'alidos de reloj en el fichero XF86Config.  Si no, la lista de valores
de reloj que devuelve X -probeonly contendr'a solo uno o dos valores discretos de reloj, dejando el
resto copiados de los primeros o a cero.

   Para placas con reloj programable, deber'a usar una l'inea ClockChip en lugar de Clocks.  Esta
l'inea da el nombre del chip correspondiente a la tarjeta. Esos nombres se encuentran en las p'aginas
de manual. Por ejemplo, en el fichero README.S3, veremos que diversas tarjetas S3-864 utilizan un
chip "ICD2061A", y deber'a existir la l'inea


              ClockChip "icd2061a"


en lugar de la l'inea Clocks en el fichero XF86Config. Como sucede con Clocks, la l'inea formar'a parte
de la secci'on Devices e ir'a a continuaci'on de Chipset.

   De manera similar, algunas tarjetas aceleradas requieren que se especifique el tipo de chip RAM-
DAC del fichero XF86Config, con una l'inea Ramdac.  Esta opci'on se describe en XF86_Accel.  Nor-
malmente, el servidor X ya se ocupa de tomar un valor correcto para el RAMDAC.
______________________________________________________________________________________________________172    *
 *                                           @


    Algunas tarjetas gr'aficas necesitan que se especifiquen diversas opciones en la secci'on Devices.
Estas opciones se describen en ficheros como README.cirrus o p'aginas de manual, y se integran
en una l'inea Option del fichero XF86Config.  Por ejemplo, una tarjeta #9 GXE 64 necesita dos
opciones:



               Option "number_nine"
               Option "dac_8_bit"



Normalmente, el servidor X funcionar'a sin las opciones, pero conviene ponerlas para aumentar el
rendimiento de la tarjeta. Hay muchas opciones y muchas particulares de cada tarjeta. Para utiliz-
arlas, mire los ficheros del directorio /usr/X11R6/lib/X11/doc.

    As'i pues, cuando haya acabado, tendr'a una secci'on Devices como la siguiente:



      Section "Device"
               # Solo valida para la tarjeta #9 GXE 64 !
               Identifier "#9 GXE 64"
               Chipset "mmio_928"
               ClockChip "icd2061a"
               Option "number_nine"
               Option "dac_8_bit"
      EndSection



Observe que en muchos casos se requiere una l'inea Clocks en lugar de Clockchip, etc. Lo anterior
es s'olo un ejemplo.

    Hay otras opciones para la secci'on Devices.  Los detalles los ver'a en las p'aginas de manual
correspondientes.
5.1.5     Funcionamiento de XFree86


Con el fichero XF86Config terminado, puede probar ya el servidor X. En primer lugar, debe asegur-
arse de que /usr/X11R6/bin est'a en el path.

    El comando para iniciar XFree86 es



      startx



Que es un programa que llama a xinit (en el caso de que usted haya usado xinit para iniciar
XWindows en otros sistemas).

    Este comando arrancar'a el servidor X y ejecutar'a los comandos encontrados en el fichero .xinitrc
de su directorio home. .xinitrc es un shell-script que contiene los clientes a ejecutar. Si no existe
se buscar'a un equivalente en /usr/X11R6/lib/X11/xinit/xinitrc.

    Un t'ipico .xinitrc ser'ia el siguiente:
______________________________________________________________________________________________________5.1.  E*
 *l sistema X Window                @


      #!/bin/sh


      xterm -fn 7x13bold -geometry 80x32+10+50 &
      xterm -fn 9x15bold -geometry 80x34+30-10 &
      oclock -geometry 70x70-7+7 &
      xsetroot -solid midnightblue &


      exec twm


Este script arrancar'a dos clientes xterm y un oclock, y pondr'a el fondo (root window) en color
midnightblue.  Entonces arrancar'a el gestor de ventanas twm.  Observe que twm se ejecuta con la
sentencia exec. Esto quiere decir que el proceso de xinit ser'a reemplazado por twm. Por lo tanto,
al ordenar la terminaci'on de twm desde los men'us el servidor X tambi'en terminar'a.  Para hacerlo
pulse el bot'on 1 del rat'on sobre el fondo de la pantalla (no en las ventanas) y ver'a un men'u con la
opci'on de terminar twm entre otras.

   Aseg'urese que el 'ultimo comando de .xinitrc se arranca con exec, y no se le pone en background
(con el "&"). Si no, el servidor X terminar'a tan pronto se arranquen los clientes de .xinitrc.
                                                 _______  _____   ____________
   Otra forma de salir de X es pulsando a la vez |_ctrl_|-|_alt_|-|_backspace_.|Esto detendr'a el servidor
X y se saldr'a del sistema XWindows.

   Lo anterior es una configuraci'on de desktop muy sencilla. Hay otros muchos programas X dispon-
ibles que pueden especificarse en el fichero .xinitrc. Por ejemplo, puede usar fvwm en lugar de twm,
para obtener un desktop virtual, posibilidad de personalizar colores, fuentes, ventanas... En principio
puede parecer muy simple el sistema XWindows, aunque con las personalizaciones se descubre lo
potente que es.

   Si usted es nuevo en X Windows, le sugerimos que consulte libros como The X Window System:
A User's Guide.  Aqu'i se tratan los temas de X Windows en profundidad, que se completar'an con
las p'aginas de manual para xterm, twm, etc.
5.1.6    Ejecuci'on con problemas


No siempre le saldr'a perfecta la primera prueba con el servidor X. Suele venir causado por un error
en el fichero XF86Config. Normalmente, los valores de reloj del monitor o de la tarjeta han sido mal
puestos. Si su pantalla "gira" o los lados est'an difusos, se trata de un error en los valores para los
relojes del monitor. Otra fuente de problemas es especificar mal el "chipset" de la tarjeta de video
as'i como otras opciones de la secci'on Device de XF86Config.  Compruebe tambi'en que el nombre
/usr/X11R6/bin/X es un enlace simb'olico al servidor X que quiera usar.

   Si todo lo anterior no le sirve, prueba a iniciar X en modo "bare", o sea, con el comando:


      X > /tmp/x.out 2>&1

                                                                         _______  _____   ____________
A continuaci'on puede matar el servidor X (con la combinaci'on de teclas |_ctrl_|-|_alt_|-|_backspace_)|y
ver el contenido del fichero /tmp/x.out, en el que el servidor X habr'a puesto todo tipo de avisos y
errores, como los correspondientes a valores de reloj no encontrados en la tarjeta, etc.
______________________________________________________________________________________________________174    *
 *                                           @


    El fichero VideoModes.doc inclu'ido en la distribuci'on contiene muchas ayudas para calcular los
valores para su fichero XF86Config.
                                                                                     _______  _____
____Recuerde_que_puede_conmutar_entre_modos_de_video con las combinaciones de teclas |_ctrl_|-|_alt_|-

|_numeric_+_ |y |_ctrl_|-|_alt_|-|_numeric_-_.|Si la m'axima resoluci'on no sale bien, es porque alguna parte
del fichero XF86Config se ha puesto mal.

    Compruebe tambi'en los mandos de tama"no de imagen del monitor.  Muchas veces hay que re-
tocarlos cuando se entra en X. Por ejemplo, si la pantalla se ve desplazada, act'ue sobre el mando
correspondiente.

    El el grupo de news USENET comp.windows.x.i386unix encontrar'a m'as ayuda sobre la util-
izaci'on de XFree86. Puede ser una buena idea comprobar si en el grupo alguien ha enviado mensajes
con configuraciones para un sistema similar al suyo.
5.2      Acceso a ficheros MS-DOS



Si, por alguna extra"na raz'on, necesitara acceder a ficheros MS-DOS, es f'acil de hacer en Linux.

    La forma habitual de acceder a los ficheros MS-DOS es montar una partici'on o disquete con un
sistema MSDOS, permiti'endole as'i que acceda a los ficheros a trav'es del sistema de ficheros de Linux.
Por ejemplo, si tiene un disquete MSDOS en /dev/fd0, el comando


      # mount -t msdos /dev/fd0 /mnt


lo montar'a en /mnt. Vea la secci'on 4.6.2 para m'as informaci'on acerca del montaje de disquetes.

    Tambi'en puede montar una partici'on del disco duro con MS-DOS. Si se encuentra en /dev/hda1,
el comando


      # mount -t msdos /dev/hda1 /mnt


lo montar'a. Aseg'urese de desmontar (umount) la partici'on o el disquete cuando ya no los necesite.
Tambi'en puede pedir a Linux que monte las particiones DOS durante el arranque, para lo que se
usa /etc/fstab. Vea la secci'on 4.8 para m'as detalle. Por ejemplo, la siguiente l'inea de /etc/fstab
provocar'a el montaje de la partici'on de DOS en el directorio /dos:


      /dev/hda1      /dos      msdos       defaults


    Las Mtools pueden usarse tambi'en para acceder a ficheros DOS en disquetes, con comandos mcd,
mdir, mcopy, etc. Vea las p'aginas de manual correspondientes.

    Una cosa es acceder a ficheros MS-DOS. Otra es ejecutarlos en Linux.  Existe un emulador de
DOS bajo Linux en desarrollo, que se puede encontrar f'acilmente incluso en algunas distribuciones
como SLS. El emulador se porta bien para bastantes aplicaciones, incluyendo Wordperfect.  Pero
dado lo diferentes que son Linux y MS-DOS, la potencia del emulador siempre estar'a limitada.

    Adem'as, se est'a trabajando en un emulador de Microsoft Windows para funcionar en X Windows.
Vea los grupos de news y servidores de FTP para m'as informaci'on.
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


5.3     Redes con TCP/IP



Linux soporta una implementaci'on completa de los protocolos de red TCP/IP (Transport Control
Protocol/Internet Protocol). TCP/IP ha resultado ser hasta ahora el mejor mecanismo de comunic-
aci'on entre ordenadores de todo el mundo.  Con Linux y una tarjeta Ethernet podr'a introducir su
m'aquina en una red local o (si se tienen las conexiones apropiadas) a la InterNet, la red TCP/IP de
'ambito mundial.

   Poner en marcha una peque"na red local de m'aquinas Unix es f'acil.  S'olo requiere una tarjeta
Ethernet en cada m'aquina y los cables adecuados as'i como hardware accesorio (terminadores, etc).
Y si su universidad o empresa tiene acceso a la InterNet, podr'a insertar su m'aquina Linux en esta
red.

   La implementaci'on actual de TCP/IP y los protocolos relacionados para Linux se llama "NET-
2".  No tiene que ver con la versi'on NET-2 para BSD. En realidad, se refiere a que es la segunda
implementaci'on que se hace para Linux.

   NET-2 de Linux soporta tambi'en SLIP (Serial Line Internet Protocol). SLIP le permitir'a acceder
a la InterNet con un m'odem. Si su universidad o empresa proporciona accesos por SLIP, podr'a llamar
desde su casa al servidor SLIP y conectarse as'i a la Red.  Rec'iprocamente, si posee en Linux una
tarjeta de Red y un m'odem podr'a configurar un servidor SLIP en 'el.

   Para obtener m'as informaci'on de configuraci'on de TCP/IP en Linux, le animamos a que lea
el documento NET-2 HOWTO, disponible mediante FTP an'onimo en sunsite.unc.edu.  Se trata
de una gu'ia completa de configuraci'on, que incluye conexiones mediante Ethernet y SLIP. Otro
documento relacionado es el Ethernet HOWTO, que se centra en c'omo configurar diversos modelos
de tarjetas Ethernet.  Adem'as, en el Proyecto de Documentaci'on de Linux, al que pertenece este
libro, se ha desarrollado otro sobre este tema, Linux Network Administrator's Guide. Vea, para m'as
informaci'on el ap'endice A.

   Encontrar'a m'as ayuda en el libro TCP/IP Network Administration, de Craig Hunt.  Contiene
informaci'on completa acerca del uso y la configuraci'on de TCP/IP en m'aquinas Unix.
5.3.1    Hardware requerido


Puede utilizar el TCP/IP para Linux sin hardware de red. As'i podr'a usar el dispositivo "loopback"
para conectarse con usted mismo. Aunque parezca poco serio, hay algunos programas que necesitan
conexiones de red "loopback" para funcionar.

   Sin embargo, si quiere usar Linux en una red TCP/IP Ethernet, necesitar'a una de las tarjetas
soportadas:  3com 3c503, 3c503/16; Novell NE1000, NE2000; Western Digital WD8003, WD8013;
Hewlett Packard HP27245, HP27247, HP27250.

   Se ha comprobado que tambi'en funcionan las siguientes tarjetas cl'onicas: Cl'onicas de WD-80x3:
LANNET LEC-45; cl'onicas de NE2000:  Alta Combo, Artisoft LANtastic AE-2, Asante Etherpak
2001/2003,  D-Link Ethernet II, LTC E-NET/16 P/N 8300-200-002,  Network Solutions HE-203,
SVEC 4 Dimension Ethernet, 4-Dimension FD0490 EtherBoard 16, D-Link DE-600 y SMC Elite 16.

   Sobre este tema encontrar'a m'as informaci'on en el documento Ethernet HOWTO.
______________________________________________________________________________________________________176    *
 *                                           @


    Linux tambi'en funciona con SLIP, que permite acceder a la red InterNet por tel'efono.  En este
caso, necesitar'a un m'odem compatible con el servidor SLIP. Muchos servidores requieren modems
de alta velocidad, a 14400 bits por segundo (norma V.32bis).
5.3.2     Configuraci'on de TCP/IP


En esta secci'on intentaremos explicar c'omo configurar una conexi'on TCP/IP con Ethernet. Notese
que este m'etodo funcionar'a en muchos sistemas, pero no siempre.  Nuestra explicaci'on deber'ia ser
suficiente para aclararle el camino en la configuraci'on de red en su m'aquina, pero hay adem'as otros
detalles que no mencionaremos aqu'i por su extensi'on. Le aconsejamos que consulte los documentos
Linux Network Administrators'Guide y NET-2 HOWTO para m'as informaci'on.3

    En primer lugar, vamos a asumir que su sistema Linux ha sido instalado con el software TCP/IP.
Esto incluye clientes como telnet y ftp, comandos de administraci'on como ifconfig y route
(que suelen estar en /etc) y ficheros de configuraci'on de red, como /etc/hosts.  Los documentos
adicionales que hemos mencionado explican c'omo instalar todo ese software si aun no lo ha hecho.

    Tambi'en vamos a suponer que el n'ucleo est'a compilado con el soporte TCP/IP. Vea la secci'on 4.7
para informarse de c'omo recompilar el n'ucleo. Para incluir el soporte de red, tendr'a que contestar
afirmativamente a la pregunta correspondiente que se le har'a durante el comando make config.

    Una vez hecho esto, se deben modificar los ficheros de configuraci'on que usa NET-2. Esta parte
suele ser bastante simple, pero suele haber bastante desacuerdo entre las diferentes distribuciones de
Linux. Los ficheros pueden estar en /etc o en /usr/etc o incluso /usr/etc/inet. En el peor caso
puede usar el comando find para localizar los ficheros. A veces los ficheros est'an tambi'en repartidos
por varios directorios y no en uno solo.

    Lo siguiente es fundamentalmente aplicable a conexiones Ethernet. Si lo que va a usar es SLIP,
l'ease esta secci'on para ir entendiendo los conceptos y luego vea las instrucciones espec'ificas para
SLIP.
5.3.2.1    La configuraci'on de red


Antes de configurar su sistema con TCP/IP necesita conocer cierta informaci'on sobre la red.  En
muchos casos, el administrador local se la proporcionar'a.



    o Direcci'on IP. Es la direcci'on 'unica de cada m'aquina, formada por n'umeros separados por
      puntos. Por ejemplo, 128.253.153.54. El administrador de red le dar'a este n'umero.

      Si est'a configurando el modo "loopback" 'unicamente (esto es, no tiene conexi'on a la red
      mediante SLIP o Ethernet) su direcci'on IP ser'a la 127.0.0.1.


    o M'ascara de red ("netmask"). Es un n'umero similar a la direcci'on IP, que determina qu'e parte
      de la direcci'on IP determina el n'umero de sub-red, y qu'e parte especifica el host en la sub-red
_________________________________________3
    Algunas de las cosas que aqu'i se exponen proceden del documento NET-2 HOWTO de Terry Dawson y Matt
Welsh.
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


      (si todo esto no lo comprende bien, le sugerimos que lea documentos sobre administraci'on de
      red).

      La m'ascara de red es un patr'on de bits, que al ser superpuesto a una direcci'on de la red, le
      dir'a en qu'e sub-red se encuentra esa direcci'on.  Esto es muy importante para el rutado y, si
      usted nota que puede comunicar con gente de redes externas pero no con gente de su misma
      red, es un buen motivo para pensar que tiene mal puesta la m'ascara.

      Los administradores de la sub-red habr'an seleccionado las m'ascaras en tiempo de dise"no de la
      red, y ser'an quienes deban darle esa informaci'on. Muchas sub-redes son de "clase C" y usan la
      m'ascara 255.255.255.0. Otras sub-redes de "clase B" usan la 255.255.0.0. El c'odigo de NET-2
      seleccionar'a autom'aticamente una m'ascara que asume que no hay subred.

      Todo esto debe aplicarse tambi'en a la configuraci'on "loopback". Dado que la direcci'on "loop-
      back" es siempre la 127.0.0.1, las m'ascara ser'a la 255.0.0.0.  Puede especificarla de forma
      expl'icita o dejar que el sistema la ponga por defecto.


   o  Direcci'on de red. Es el resultado de la operaci'on l'ogica AND entre su direcci'on IP y la m'ascara.
      Por ejemplo, si su direcci'on IP es la 128.253.154.32 y la m'ascara es 255.255.255.0, su direcci'on
      de red ser'a la 128.253.154.0.  Con una m'ascara 255.255.0.0, la direcci'on ser'ia 128.253.0.0.  Si
      utiliza solo la configuraci'on en "loopback", la direcci'on de red no existe.


   o  Direcci'on de "broadcast". Se utiliza para lanzar paquetes que deben recibir todas las m'aquinas
      de la subred. As'i pues, si el n'umero de host de la subred se obtiene mediante el 'ultimo octeto
      de la direcci'on IP (o sea, la m'ascara es la 255.255.255.0), su direcci'on de "broadcast" ser'a su
      direcci'on de red operado en OR con 0.0.0.255.

      Por ejemplo, si su n'umero IP es el 128.253.154.32, y la m'ascara es la 255.255.255.0, la direcci'on
      de "broadcast" ser'ia la 128.253.154.255.

      Observe que por motivos hist'oricos, algunas subredes est'an configuradas para usar la direcci'on
      de red como direcci'on de "broadcast". Si tiene dudas, consulte con el administrador de la red.
      En muchos casos, bastar'a con copiar la configuraci'on que tengan otras m'aquinas de la subred
      y cambiar 'unicamente el valor IP, por supuesto.

      La direcci'on "broadcast" tampoco tiene utilidad en una configuraci'on en "loopback".


   o  Direcci'on de pasarela. Se trata de la direcci'on de la m'aquina que va a ser su pasarela a otras
      m'aquinas que no est'en en su misma subred. Muchas veces es una direcci'on IP como la suya,
      solo que terminada en ".1". Por ejemplo, si si direcci'on IP es la 128.253.154.32, la de la pasarela
      podr'ia ser la 128.253.154.1. El administrador se la dir'a en cualquier caso.

      En ocasiones puede tener varias pasarelas. Una pasarela o gateway es simplemente una m'aquina
      que se encuentra a la vez en dos subredes (tiene una direcci'on IP por cada una), y reparte los
      paquetes entre ellas.  En muchas subredes existe una sola pasarela para comunicarse con las
      redes externas, pero en otras hay varias, una para cada subred adicional.

      Si su red est'a aislada de otras, o su m'aquina se encuentra en configuraci'on "loopback", no
      necesitar'a direcci'on de pasarela.


   o  Direcci'on del servidor de nombres. Suele existir un servidor que traduce nombres de m'aquinas
      a direcciones IP. El administrador le facilitar'a su direcci'on.  Puede usted mismo ejecutar en
______________________________________________________________________________________________________178    *
 *                                           @


      su m'aquina un servidor de nombres, el programa named, en cuyo caso su direcci'on ser'a la
      127.0.0.1.  A menos que realmente lo necesite, le recomendamos que procure siempre usar
      otra m'aquina distinta.  La configuraci'on de named es otro tema; y lo primordial aqu'i es que
      comunique con la red. Puede tratar estos asuntos m'as tarde.

      En una configuraci'on "loopback" no es necesario este dato.


    Nota para usuarios de SLIP: La informaci'on anterior puede necesitarla o no. Cuando use SLIP
su direcci'on IP ser'a determinada de dos formas: bien "est'atica", lo que significa que ser'a siempre
la misma, o bien "din'amica", lo que indica que le ser'a asignada una de las disponibles cada vez que
conecte con el servidor SLIP. En la secci'on sobre SLIP ampliaremos el tema.

    NET-2 implementa rutado completo, m'ultiples rutas, subredes...  Lo anterior describe las con-
figuraciones m'as b'asicas.  Pero la suya puede ser diferente: cuando tenga alguna duda, consulte al
administrador de la red, y eche un vistazo a las p'aginas del manual para route e ifconfig.  La
configuraci'on completa de redes TCP/IP supera ampliamente las intenciones de este libro, y con lo
anterior s'olo pretendemos posibilitar que todo el mundo pueda poner en marcha su sistema en una
red ya configurada.



5.3.2.2    Los ficheros de inicio rc para trabajo en redes


Los ficheros rc son shell scripts que se ejecutan durante el arranque del sistema para configurarlo.
Son ejecutados por el proceso init, y ponen en marcha los demonios b'asicos como sendmail o cron
y adem'as configuran par'ametros de la red como la direcci'on IP y el nombre del host. Estos scripts
se suelen encontrar en /etc/rc.d o en /etc.

    Lo que vamos a hacer aqu'i es describir los ficheros rc que configuran TCP/IP. En Linux son dos:
rc.inet1 y rc.inet2. El primero configura par'ametros b'asicos como direcciones IP e informaci'on
de rutado.  El segundo lanza los demonios TCP/IP, principalmente inetd, quien se encargar'a de
lanzar cuando haga falta los telnetd y dem'as.

    En muchos sistemas se juntan los dos ficheros en uno, el rc.inet o rc.net. No tiene importancia
el nombre, siempre que se ejecuten en el momento adecuado durante el arranque. Para conseguirlo,
init tiene que saberlo, y para ello existen entradas espec'ificas en el fichero inittab.  En el peor
caso tendr'ia usted que crear las entradas para rc.inet1 y rc.inet2 en dicho fichero.

    Como hemos dicho, rc.inet1 configura los par'ametros b'asicos de red. Esto incluye el n'umero IP
y direcci'on de red, y la tabla de rutado. Estas tablas se usan para rutar los datagramas entrantes y
salientes de otras m'aquinas. Lo m'as simple es tener tres rutas: una para enviar paquetes a su propia
m'aquina, otra para enviarlos a otra m'aquina de la subred y una tercera para enviarlos a m'aquinas
de otras subredes (a trav'es de una pasarela). Para configurar esto se usan los programas ifconfig
y route, programas que suelen estar en /etc.

    ifconfig se utiliza para configurar el dispositivo interfaz de red con los par'ametros que necesita,
como la direcci'on IP, la m'ascara, direcci'on de broadcast y otros. route, por su lado, se utiliza para
crear o modificar entradas de la tabla de rutado.

    Para muchas configuraciones, el siguiente rc.inet1 puede valer, aunque, por supuesto, necesit-
ar'a poner sus propias direcciones IP y dem'as.
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


      #!/bin/sh
      # /etc/rc.d/rc.inet1 -- Configuracion de TCP/IP


      # Configuracion del dispositivo 'loopback'


      HOSTNAME=`hostname`


      /etc/ifconfig lo 127.0.0.1       # utiliza por defecto la mascara 255.0.0.0
      /etc/route add 127.0.0.1         # una ruta apunta al dispositivo 'loopback'


      # Configuracion del dispositivo ethernet. Si solo se usa el 'loopback',
      # comentar las lneas siguientes.


      # EDITELO con sus propios datos.
      IPADDR="128.253.154.32"          # PONGA aqui su direccion IP
      NETMASK="255.255.255.0"          # PONGA aqui su mascara de red
      NETWORK="128.253.154.0"          # PONGA aqui su direccion de red
      BROADCAST="128.253.154.255"      # PONGA aqui su direccion 'broadcast' si
                                         # la tiene. Si no, elimine la linea.
      GATEWAY="128.253.154.1"          # PONGA aqui su direccion de pasarela


      /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}


      # Si no tiene direccion de 'broadcast', ponga la anterior linea asi:
      # /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK}


      /etc/route add ${NETWORK}


      # Lo que sigue solo hace falta si hay pasarela, o sea, si su subred esta
      # conectada a otra red.
      /etc/route add default gw ${GATEWAY} metric 1


      # Fin de la configuracion de ethernet



   Quiz'as tenga que estudiarse un poco m'as el tema para su instalaci'on particular, aunque en la
mayor parte de los casos el fichero anterior ser'a suficiente.

   rc.inet2 arranca servidores usados por TCP/IP. El m'as importante es inetd, que queda en
segundo plano y escucha por varios puertos de la red. Cuando una m'aquina intenta conectarse por
uno de ellos (por ejemplo, por el de telnet), inetd env'ia una copia del servidor correspondiente
(en este caso, in.telnetd) para que controle el puerto afectado.  Esto es mejor que mantener en
ejecuci'on todos los servidores de red necesarios (m'ultiples copias de in.telnetd, in.ftpd y dem'as).
inetd los arranca conforme se van necesitando.

   Pero  en  rc.inet2  se  arrancan  tambi'en  otros  demonios.   syslogd  se  ocupa  de  acumular
los  mensajes  generados  por  el  n'ucleo  y  diversas  aplicaciones  y  tratarlos  seg'un  diga  el  fichero
/etc/syslogd.conf (guardarlos en ficheros, sacarlos por consola,. .)..  routed se ocupa de la in-
formaci'on de rutado din'amica. Cuando su sistema intenta enviar paquetes a otra red, puede requerir
______________________________________________________________________________________________________180    *
 *                                           @


nuevas entradas en las tablas de rutado, que routed trata sin necesidad de intervenci'on del usuario.

    El ejemplo siguiente solo arranca un n'umero m'inimo de servidores.  Existen otros que pueden
interesarle, como el NFS. Cuando instale TCP/IP en su sistema, es mejor empezar con una config-
uraci'on sencilla y luego complicarla seg'un sus necesidades.

    Observe que en el fichero siguiente se asume que los servidores de red se encuentran en /etc,
pero pueden estar en otro sitio (en /sbin, por ejemplo).



      #! /bin/sh
      # Ejemplo de /etc/rc.d/rc.inet2


      # Arrancar syslogd
      if [ -f /etc/syslogd ]
      then
             /etc/syslogd
      fi


      # Arrancar inetd
      if [ -f /etc/inetd ]
      then
             /etc/inetd
      fi


      # Arrancar routed
      if [ -f /etc/routed ]
      then
             /etc/routed -q
      fi


      # Hecho!



    Otro servidor que puede interesarle es named, servidor de nombres, que traducir'a nombres (loc-
ales) a direcciones IP y viceversa. Si no hay servidor de nombres en su subred o quiere proporcionar
nombres nuevos a la misma, necesitar'a arrancar named. Su configuraci'on es m'as compleja y requiere
cierto cuidado y planificaci'on, por lo que le recomendamos consultar bibliograf'ia espec'ifica.  Sin
embargo, no es habitual tener que instalar un servidor de nombres en su sistema.
5.3.2.3    /etc/hosts


/etc/hosts lleva una lista de direcciones IP y nombres de m'aquinas que les corresponden.  En
general, /etc/hosts solo contiene entradas para su m'aquina y quiz'as alguna otra "importante",
como servidores de nombres o pasarelas. Su servidor de nombres local proporciona a otras m'aquinas
traducci'on autom'atica del nombre de su host a su direcci'on IP.

    Por  ejemplo,  si  su  m'aquina  es  loomer.vpizza.com  con  la  direcci'on  IP  128.253.154.32,  su
/etc/hosts ser'ia como este:
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


      127.0.0.1                 localhost
      128.253.154.32           loomer.vpizza.com loomer



Si solo usa el "loopback", la 'unica l'inea necesaria es la que tiene el n'umero 127.0.0.1, a"nadiendo tras
localhost el nombre de su m'aquina.
5.3.2.4   /etc/networks


El fichero /etc/networks tiene direcciones de su red y otras, y es usado por el comando route.
Permite dar nombre a las redes.

   Cada subred que quiera a"nadir a route debe aparecer en /etc/networks.

   Por ejemplo,



      default 0.0.0.0 # rutado por defecto - obligatorio
      loopnet 127.0.0.0 # red de 'loopback' - obligatorio
      mynet 128.253.154.0 # Ponga aqui su direccion de red
5.3.2.5   /etc/host.conf


Este fichero dice a su sistema c'omo resolver los nombres de los hosts. Debe contener dos l'ineas:



      order hosts,bind
      multi on



Estas l'ineas indican a los mecanismos de resoluci'on que empiezen buscando en el fichero /etc/hosts
y luego pregunten al servidor de nombres, si existe. La entrada multi permite que para un nombre
de m'aquina haya varias direcciones IP en /etc/hosts.
5.3.2.6   /etc/resolv.conf


En este fichero se configura el mecanismo de resoluci'on, especificando la direcci'on del servidor de
nombres y el nombre del dominio de su m'aquina. El dominio es como un nombre de host "mutilado".
Por ejemplo, si su m'aquina se llama loomer.vpizza.com, el dominio ser'a vpizza.com.

   Como                                 fichero                                 /etc/resolv.conf
de ejemplo, veremos el caso de la m'aquina goober.norelco.com cuyo servidor de nombres es el
127.253.154.5:



      domain       norelco.com
      nameserver  127.253.154.5



   Con l'ineas nameserver adicionales podr'a especificar la existencia de varios servidores de nombres.
______________________________________________________________________________________________________182    *
 *                                           @


5.3.2.7    Ajuste del nombre de su host


Para activar el nombre de su host debe usar el comando hostname. Esto suele hacerse en un fichero
como /etc/rc.local. Busque en sus ficheros rc y busque una llamada a hostname como la siguiente:


      /bin/hostname loomer.vpizza.com


    Vea que hay que especificar el nombre completo (dominio inclu'ido).



5.3.2.8    Problemas con la configuraci'on


Una vez que haya preparado los ficheros anteriores, habr'a que reiniciar Linux para que reconozca
las nuevas configuraciones. Luego tendr'a que hacer pruebas, para las que lo m'as indicado es probar
aspectos individuales de la red y no tratar de empezar, por ejemplo, lanzando un proceso Mosaic
con una conexi'on X.

    Con el comando netstat puede ver las tablas de rutado.  Esta suele ser la principal fuente de
problemas.  En la p'agina del manual para este comando encontrar'a la sintaxis adecuada.  Para
comprobar que funciona su conexi'on, le sugerimos probar un cliente como telnet para ver si puede
conectarse a m'aquinas de su subred y de otras redes. Esto puede ponerle sobre la pista del problema.
Por ejemplo, si puede conectarse a m'aquinas de otras subredes pero no de la suya propia, puede
tratarse de un problema con la m'ascara de red o las tablas de rutado. Ejecutando route como root
podr'a jugar directamente con las entradas de la tabla.

    Para hacer estas pruebas de conectividad, utilice direcciones IP y no nombres.  As'i, si tiene
problemas para ejecutar


      $ telnet shoop.vpizza.com


la causa puede ser una configuraci'on incorrecta del servidor de nombres.  Si funciona usando la
direcci'on IP, se puede casi asegurar que el resto de la configuraci'on est'a bien hecha. Solo falta que
funcione bien el servicio de nombres (probablemente haya que especificar correctamente la direcci'on
del servidor de nombres).

    La depuraci'on de configuraciones de red puede ser tarea dif'icil, y no podemos tratarla aqu'i. Le
sugerimos, si no consigue otra ayuda, que consulte el libro Linux Network Administrators'Guide de
esta misma serie.
5.3.3     Configuraci'on de SLIP


Con SLIP (Serial Line Internet Protocol) usted puede conectarse a una red TCP/IP mediante una
l'inea serie, como puede ser un m'odem o una l'inea dedicada as'incrona. Por supuesto, para usar SLIP
tiene que tener acceso a un servidor SLIP. Muchas empresas y universidades proporcionan acceso
por poco dinero.

    Podemos destacar dos programas relacionados con SLIP: dip y slattach. Ambos se usan para
iniciar una conexi'on SLIP y por lo tanto son necesarios. No es suficiente con llamar al servidor SLIP
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


con programas como kermit y despu'es usar los comandos ifconfig y route.  Esto se debe a que
dip y slattach realizan una llamada especial ioctl() para convertir el control de un dispositivo serie
a la interfaz de SLIP.

   Con dip puede llamarse a un servidor SLIP, hacer ciertas negociaciones de entrada con el mismo
(intercambio de usuario y password, por ejemplo) y despu'es iniciar la conexi'on SLIP. Por su lado,
slattach se limita pr'acticamente a modificar la l'inea serie para SLIP, por lo que est'a indicado
para l'ineas dedicadas que no requieren interacci'on con el m'odem o similar. Casi todo el mundo, sin
embargo, usa dip.

   Con dip tambi'en puede configurar su sistema como servidor SLIP, permitiendo a otras m'aquinas
conectarse a la red a trav'es de su m'odem y su conexi'on Ethernet. Vea los manuales en l'inea de dip
para m'as informaci'on.

   A SLIP se le llama conexi'on "punto a punto" (point-to-point) pues a ambos lados de la l'inea
existen s'olo las dos m'aquinas involucradas (no como sucede en una ethernet). Esta idea se generaliza
y mejora con el protocolo PPP (point-to-point protocol) que tambi'en se ha portado a Linux.

   Cuando inicia una conexi'on al servidor SLIP, se le asignar'a una direcci'on IP, bien de forma
"est'atica" (su direcci'on IP es siempre la misma) o "din'amica" (su direcci'on puede ser diferente de
un d'ia para otro).  Por lo general, los valores de la direcci'on y pasarela asignados ser'an impresos
por el servidor SLIP al conectarse. El programa dip es capaz de capturar esos valores y configurar
su sistema para adaptarse a ellos.

   Esencialmente, configurar una conexi'on SLIP es como configurar la conexi'on en "loopback" o con
ethernet. En las siguientes l'ineas le mostramos las diferencias. Es importante que vea lo que hemos
explicado antes sobre configuraci'on en general, y aplique ahora las modificaciones que le vamos a
contar.



5.3.3.1   Conexiones SLIP con asignaci'on de IP est'atica usando dip


Si su servidor SLIP le permite tener la direcci'on IP est'atica, lo m'as adecuado es insertar la direcci'on
y el nombre del host en el fichero /etc/hosts.  Adem'as, debe configurar los ficheros rc.inet2,
hosts.conf y resolv.conf como se ha dicho antes.

   En el fichero rc.inet1 tambi'en tendr'a que introducir cambios, ejecutando ifconfig y route
solo para el dispositivo "loopback", puesto que dip har'a lo propio con el dispositivo SLIP. Pero si
usa slattach s'i tendr'a que incluir comandos ifconfig/route en rc.inet1 para el dispositivo SLIP
(en breve veremos c'omo).

   El programa dip deber'ia configurar sus tablas de rutado para la conexi'on SLIP. Sin embargo,
puede no hacerlo bien, y tendr'a que corregirlo ejecutando por su cuenta ifconfig o route cuando se
haya conectado. Quiz'as le convenga entonces escribirse un shell script para hacerlo autom'atica-
mente.  En muchos casos, la pasarela es el propio servidor SLIP. De todas formas, el comando dip
puede deducirlo de la informaci'on que env'ia el servidor al conectarse.

   Puede que necesite el argumento pointopoint en ifconfig si ve que dip no lo configura bien.
Por ejemplo, si la direcci'on del servidor SLIP es 128.253.154.2 y la suya es 128.253.154.32, el comando
a ejecutar (como root) podr'ia ser:
______________________________________________________________________________________________________184    *
 *                                           @


      ifconfig sl0 128.253.154.32 pointopoint 128.253.154.2


tras conectar con dip. La documentaci'on en l'inea de este comando le ser'a 'util.

    Observe que los dispositivos SLIP que se usan en ifconfig y route son sl0, sl1, etc.  (y no
como en ethernet, que es eth0, eth1, etc.)

    En la secci'on posterior 5.3.4 le explicaremos c'omo configurar dip para conectarse a un servidor
SLIP.



5.3.3.2    Conexiones SLIP con asignaci'on de IP est'atica usando slattach


Si tiene una l'inea dedicada o un cable conectado directamente al servidor SLIP, no necesitar'a usar
dip para iniciar la conexi'on. En su lugar puede usar slattach.

    En este caso, el fichero /etc/rc.inet1 puede quedar como sigue:


      #!/bin/sh
      IPADDR="128.253.154.32"          # Ponga aqui su direccion IP
      REMADDR="128.253.154.2" # Ponga aqui la del servidor de SLIP


      # Modifique lo siguiente para su dispositivo serie
      slattach -p cslip -s 19200 /dev/ttyS0
      /etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up
      /etc/route add default gw $REMADDR


    slattach asigna el primer dispositivo SLIP disponible (sl0, etc.) a la l'inea serie especificada.

    Observe que el primer par'ametro de slattach es el protocolo SLIP a utilizar.  Actualmente
solo valen slip y cslip.  El segundo es un SLIP que incluye compresi'on de las cabeceras de los
datagramas.  Por ello su elecci'on habitual ser'a cslip a menos que tenga alg'un problema con la
conexi'on.

    Si hay m'as de un dispositivo SLIP tendr'a que considerar algunas cosas respecto al rutado. Tiene
que decidir qu'e rutas a"nadir, y esto debe hacerse en funci'on de la configuraci'on de la red a la que se
conecte. Le ser'an de ayuda los libros sobre configuraci'on de TCP/IP, la documentaci'on en l'inea del
comando route, etc.



5.3.3.3    Conexiones SLIP con asignaci'on de IP din'amica usando dip


Si el servidor SLIP le asigna din'amicamente las direcciones IP, no sabr'a, evidentemente, su dir-
ecci'on IP antes de conectarse, con lo que no puede incluir esa informaci'on en /etc/hosts (aunque
s'i incluir'a la informaci'on de "loopback", 127.0.0.1).

    Muchos servidores SLIP env'ian al terminal la direcci'on IP y la del propio servidor. Por ejemplo,
un servidor SLIP podr'ia decirle esto al conectarse:


      Your IP address is 128.253.154.44.
      Server address is 128.253.154.2.
______________________________________________________________________________________________________5.3.  R*
 *edes con TCP/IP                   @


dip puede capturar ese texto y configurar as'i el sistema.

   Vea la secci'on 5.3.3.1 para informarse sobre la configuraci'on de los ficheros de TCP/IP con SLIP.
Ahora le indicaremos c'omo se configura SLIP para conectarse al servidor SLIP.
5.3.4    Utilizaci'on de dip


dip puede facilitar el proceso de conexi'on a un servidor SLIP, pues se ocupar'a de entrar en el sistema
remoto y configurar el dispositivo SLIP seg'un la informaci'on recibida del servidor.  Este programa
es el m'as indicado a menos que su l'inea sea dedicada.

   Para utilizar dip tendr'a que escribir un "script" que contendr'a comandos para comunicar con el
servidor SLIP durante la entrada en el sistema remoto.  Por ejemplo, incluir'a env'io autom'atico de
usuario y password al servidor as'i como lo necesario para asignar la direcci'on IP.

   Lo que sigue es un ejemplo de script para asignaci'on din'amica de direcci'on IP. Para asignaci'on
est'atica puede poner al principio del script los valores fijos a $local y $remote (direcciones IP local
y remota, respectivamente). Vea los manuales de dip para m'as informaci'on.



      main:
        # MTU es 'Maximum Transfer Unit' o tama~no maximo de los paquetes
        # transmitidos por el dispositivo SLIP. En muchos servidores este
        # valor debe ser 1500 o 1506. Hable con el administrador de la red
        # si no esta seguro.
        get $mtu 1500


        # Hacer que el rutado de SLIP sea el de su sistema por defecto.
        default


        # Elegir puerto serie y velocidad.
        port cua03
        speed 38400


        # Reiniciar el modem y la linea del terminal. Si le da problemas,
        # comente la linea.
        reset


        # Ponga aqui su cadena de inicio del modem.
        send ATT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r
        wait OK 2
        if $errlvl != 0 goto error
        # Llamar al servidor SLIP (ponga aqui el telefono).
        dial 2546000
        if $errlvl != 0 goto error
        wait CONNECT 60
        if $errlvl != 0 goto error


        # En este punto estaremos conectados. Entrar en el sistema.
______________________________________________________________________________________________________186    *
 *                                           @


      login:
        sleep 3
        send \r\n\r\n
        # Esperar el 'prompt' de entrada (login).
        wait login: 10
        if $errlvl != 0 goto error


        # Enviar su nombre de usuario.
        send USERNAME\n


        # Esperar el 'prompt' de password.
        wait ord: 5
        if $errlvl != 0 goto error


        # Enviar su password.
        send PASSWORD\n


        # Esperar el 'prompt' del servidor que indica que esta preparado.
        wait annex: 30
        if $errlvl != 0 goto error


        # Enviar un comando al servidor para empezar la conexion.
        send slip\n
        wait Annex 30


        # Obtener la direccion IP desde el servidor. El comando 'get...remote'
        # lee un texto de la forma xxx.xxx.xxx.xxx y lo asigna a la variable
        # dada como segundo argumento (aqui es $remote).
        get $remote remote
        if $errlvl != 0 goto error
        wait Your 30


        # Obtener la direccion local IP desde el servidor y asignarla a $local.
        get $local remote
        if $errlvl != 0 goto error


        # Establecer la conexion SLIP.
      done:
        print CONNECTED to $remote at $rmtip
        print GATEWAY address $rmtip
        print LOCAL address $local
        mode SLIP
        goto exit
      error:
        print SLIP to $remote failed.


      exit:
______________________________________________________________________________________________________5.4.  R*
 *ed con UUCP                       @


   dip ejecuta autom'aticamente los programas ifconfig y route seg'un los valores asignados a
$local y $remote. Aqu'i, esas variables son asignadas con el comando get. .r.emote, que obtiene el
texto de la direcci'on del servidor SLIP y lo asigna a la variable.

   Si los comandos ifconfig y route que dip ejecuta no funcionan, siempre puede llamarlos por
su cuenta desde un shell script tras ejecutar dip o modificar las fuentes del propio dip. La opci'on -v
de dip le dar'a informaci'on para depuraci'on generada durante la conexi'on y le ayudar'a a averiguar
la(s) causa(s) del problema(s).

   Ahora, para probar dip y abrir la conexi'on SLIP, escriba un comando como:


      /etc/dip/dip -v /etc/dip/mychat 2>&1


Estando los ficheros de dip, incluyendo el script mychat.dip en /etc/dip.

   Las explicaciones de esta secci'on le deber'ian haber permitido conectarse a la red, bien sea por
Ethernet o por SLIP. De nuevo le volvemos a recomendar que consulte un libro sobre configuraci'on
de redes TCP/IP, en especial si en la red hay configuraciones especiales de rutado o similar.
5.4     Red con UUCP



UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo usado para transferir informaci'on entre sis-
temas Unix. Mediante UUCP, los sistemas Unix se comunican con otros (v'ia m'odem), transfiriendo
mensajes de correo, news, ficheros y dem'as. Si no tiene acceso TCP/IP o SLIP, puede usar UUCP
para comunicarse con el mundo.  Casi todo el software de correo puede ser configurado para usar
transferencias UUCP. De hecho, si tiene alg'un servidor InterNet cercano, puede recibir correo en su
sistema de esa red mediante UUCP.

   El libro Linux Network Administrator's Guide le dar'a informaci'on completa para configurar y
utilizar UUCP en Linux.  Tambi'en encontrar'a informaci'on en el documento UUCP-HOWTO, que
puede obtener por FTP an'onimo de sunsite.unc.edu. Otra fuente de informaci'on sobre UUCP es
el libro Managing UUCP and USENET, de Tim O'Reilly y Grace Todino. Vea el ap'endice A para
m'as informaci'on.
5.5     Correo Electr'onico



Como casi todos los UNIX, Linux dispone de paquetes de software para tener correo electr'onico.
Este puede ser tanto local (entre usuarios de su sistema) como remoto (mediante una red TCP/IP
o UUCP). El software de E-Mail consta normalmente de dos partes: un agente de usuario o mailer
y un programa de transporte.  El agente de usuario es el software que el usuario utiliza para crear
mensajes, leerlos, etc.  Podemos destacar aqu'i los programas elm, pine y mailx.  El programa de
transporte es quien se ocupa de entregar correo tanto remoto como local, conociendo protocolos de
comunicaciones y dem'as. El usuario nunca interact'ua directamente con este programa, sino que lo
hace a trav'es del agente de usuario. Sin embargo, el administrador del sistema debe conocer c'omo
funciona el programa de transporte, con el fin de configurarlo seg'un sus necesidades.
______________________________________________________________________________________________________188    *
 *                                           @


    En Linux, el m'as conocido de los programas de transporte es Smail.  Es f'acil de configurar y
capaz de enviar tanto correo local como remoto v'ia UUCP o TCP/IP. En otros sistemas Unix se
suele usar con m'as frecuencia el programa sendmail, que es bastante m'as complicado de configurar,
por lo que no se suele usar en Linux.

    En el documento Linux Mail HOWTO se expone m'as informaci'on sobre el software disponible
para correo y c'omo configurarlo. Si pretende tener correo remoto, necesitar'a entender los conceptos
de TCP/IP o UUCP (seg'un la red utilizada) (vea las secciones 5.3 y 5.4). Los documentos de UUCP
y TCP/IP indicados en el ap'endice A tambi'en le ayudar'an.

    Casi  todo  el  software  de  correo  para  Linux  puede  obtenerse  mediante  FTP  an'onimo  de
sunsite.unc.edu en el directorio /pub/Linux/system/Mail.
5.6      News y USENET



Linux proporciona tambi'en todo lo necesario para tratar las news. Puede elegir configurar un servidor
de news local, que permitir'a a los usuarios poner "art'iculos" a los diversos "grupos" del sistema. .e.n
cierto modo, es una forma de discutir.  Sin embargo, si tiene acceso a una red UUCP o TCP/IP,
podr'a participar realmente en USENET, una red de news de 'ambito mundial.

    En el software de news hay dos partes, el servidor y el cliente. El servidor de news es el software
que controla los grupos de news y se ocupa de enviar los art'iculos a otras m'aquinas (si estamos en
una red).  El cliente, o lector de news, es el software que conecta al servidor para permitir que los
usuarios lean y escriban art'iculos.

    Hay varios tipos de servidores de news para Linux.  Todos siguen un dise"no y esquema de
protocolos parecido. Principalmente, tenemos los servidores "C News" e "INN". En cuanto a clientes,
destacamos rn y tin. La selecci'on del cliente es cuesti'on de gustos, y, por supuesto, es independiente
del servidor elegido.

    Si solo pretende leer y escribir art'iculos localmente (no como parte de USENET), necesitar'a un
servidor que corra en su sistema, as'i como el lector para los usuarios.  El servidor guardar'a los
art'iculos en un directorio como /usr/spool/news, y el lector se compilar'a para buscar los art'iculos
en ese directorio.

    Sin embargo, si desea tener news en red, tendr'a ahora varias opciones m'as. Para redes basadas
en TCP/IP se usa el protocolo NNTP (Network News Transmision Protocol).  NNTP permite al
cliente leer los art'iculos a trav'es de la red, desde una m'aquina remota.  NNTP tambi'en permite a
los servidores enviarse art'iculos por la red.  En esto se basa USENET. Casi todas las empresas y
universidades conectadas cuentan con uno o m'as servidores NNTP para controlar todas las news
USENET en ese lugar.  Cualquier otra m'aquina de esa empresa o universidad tendr'a un lector de
news que acceder'a al servidor con NNTP. Por ello, solo el servidor NNTP guarda art'iculos en disco.
Los clientes no lo hacen, y siempre tienen que conectar con el servidor para leerlos.

    A continuaci'on mostramos algunas situaciones t'ipicas de configuraci'on.


    o News locales. No hay conexi'on a red o no se desea tener news en red. En este caso, hay que
      ejecutar C News o INN en su m'aquina, e instalar el lector para leer las news locales.
______________________________________________________________________________________________________5.6.  N*
 *ews y USENET                      @


   o  Con acceso a red TCP/IP y servidor NNTP. Si existe un servidor NNTP ya configurado, puede
      leer y escribir art'iculos desde su m'aquina Linux instalando un lector basado en NNTP (casi
      todos los lectores tienen opciones de configuraci'on para leer news en NNTP). Por lo tanto,
      no necesita preocuparse de instalar el servidor o guardar art'iculos en su sistema. El lector se
      ocupar'a de enviarlos a la red. Por supuesto, necesitar'a configurar TCP/IP y tener acceso a la
      red (vea la secci'on 5.3).


   o  Tiene acceso a la red TCP/IP pero no hay un servidor NNTP. En este caso, puede instalar un
      servidor NNTP en su sistema. Adem'as, puede instalarlo para comunicarse con otros servidores
      NNTP para intercambiar art'iculos.


   o  Desea transferir news con UUCP. Si tiene acceso a UUCP (ver la secci'on 5.4), puede parti-
      cipar en USENET de la misma forma.  Necesitar'a instalar un servidor de news y un lector.
      Adem'as necesitar'a configurar su software UUCP para transferir los art'iculos peri'odicamente
      a otra m'aquina con UUCP. En UUCP no se usa el protocolo NNTP, sino que posee su propio
      mecanismo para transferir art'iculos.


   El 'unico inconveniente de muchos clientes y servidores de news es que deben ser compilados a
mano, es decir, no usan ficheros de configuraci'on, sino que se configuran en el momento de compil-
arlos.

   Muchos programas de news "est'andares" (disponibles por FTP an'onimo en ftp.uu.net, dir-
ectorio /news) podr'ian no compilarse en Linux.  Los parches que hagan falta se encuentran en
sunsite.unc.edu, directorio /pub/Linux/system/Mail (aqu'i se encuentra tambi'en todo el soft-
ware de correo para Linux). Pueden encontrarse tambi'en versiones ya compiladas.

   Para  m'as  informaci'on,  l'ease  el  documento  Linux  News  HOWTO  que  encontrar'a  en
sunsite.unc.edu. Tambi'en encontrar'a ayuda en el manual Linux Network Administrator's Guide
de la misma serie de este libro. Tambi'en puede consultar el libro Managing UUCP and Usenet, de
Tim O'Reilly y Grace Todino. Una 'ultima posibilidad es el documento "How to become a USENET
site", disponible en ftp.uu.net, directorio /usenet/news.announce.newusers.
______________________________________________________________________________________________________190    *
 *                                           @




Ap'endice  A



Fuentes  de  Informaci'on  de  Linux



Este ap'endice contiene informaci'on sobre algunas fuentes de informaci'on de Linux, tales como docu-
mentos en l'inea, libros, y dem'as. Muchos de estos documentos estan disponibles en formato impreso,
o electr'onicamente desde Internet o sistemas BBS. Tambi'en muchas de las distribuciones de Linux
incluyen esta documentaci'on dentro de ellas, de forma que una vez que haya instalado Linux pueda
disponer de estos ficheros en su sistema.
A.1      Documentos en L'inea



Estos  documentos  deber'ian  estar  disponibles  en  cualquiera  de  los  FTP  sites  de  Linux  (vea  el
Ap'endice C donde tendr'a una lista). Si no tiene acceso directo a FTP, es posible que localice estos
documentos en otros servicios en l'inea (tales como CompuServe, BBSs locales, etc.).  Si dispone
de acceso a correo Internet, podr'a usar el servicio ftpmail para recibir estos documentos.  Vea el
Ap'endice C para m'as informaci'on.

   En particular, los siguientes documentos se pueden encontrar en sunsite.unc.edu en el dir-
ectorio /pub/Linux/docs.  Muchos sites hacen copia de este directorio; sin embargo, si no puede
localizar un site pr'oximo a Ud., 'este es un buen lugar en el que intentarlo.

   Tambi'en puede acceder a los ficheros de Linux y la documentaci'on usando gopher. Solo tiene que
indicar a su cliente gopher que acceda al puerto 70 de sunsite.unc.edu, y siga los men'us hasta los
archivos Linux. Esta es una buena forma de hojear la documentaci'on de Linux de forma interactiva.


La lista de FAQ
                 La lista de Frequently Asked Questions, o "FAQ", es una lista de preguntas (<y
                 respuestas!)  comunes sobre Linux.  Este documento debe proporcionar una fuente
                 de informaci'on general sobre Linux, problemas comunes y soluciones, y una lista
                 de otras fuentes de informaci'on. Todos los nuevos usuarios de Linux deberian leer
                 este documento.  Est'a a disposici'on en varios formatos, incluyendo ASCII puro,
                 PostScript, y formato Lout typesetter.  El Linux FAQ lo mantiene Ian Jackson,
                 ijackson@nyx.cs.du.edu.


                                                 191
______________________________________________________________________________________________________192    *
 *                                       Ap'e@


El Linux META-FAQ
                 El META-FAQ es una colecci'on de "metapreguntas" sobre Linux; es decir, fuentes de
                 informaci'on sobre el sistema Linux, y otros t'opicos generales. Es un buen comienzo
                 para el usuario de Internet que desea encontrar m'as informaci'on sobre el sistema.
                 Lo mantiene Michael K. Johnson, johnsonm@sunsite.unc.edu.


El Linux INFO-SHEET
                 El Linux INFO-SHEET es una presentaci'on t'ecnica del sistema Linux. Ofrece una
                 visi'on de las caracter'isticas del sistema y el software disponible, y proporciona una
                 lista de otras fuentes de informaci'on de Linux. El formato y contenido es similar en
                 naturaleza al META-FAQ; casualmente tambi'en lo mantiene Michael K. Johnson.


El Mapa de Software de Linux
                 El Mapa de Software de Linux es una lista de muchas aplicaciones disponibles en
                 Linux, donde conseguirlas, quien las mantiene, y dem'as. Est'a lejos de ser una lista
                 completa_compilar una lista completa de software de Linux ser'ia pr'acticamente
                 imposible. Sin embargo, incluye muchos de los paquetes m'as populares de software
                 de Linux.  Si no consigue encontrar una aplicaci'on en particular, que se adapte a
                 sus necesidades, el LSM es un buen lugar por el que comenzar.  Lo mantiene Lars
                 Wirzenius, lars.wirzenius@helsinki.fi.


El Indice de HOWTOs de Linux
                 Los HOWTOs de Linux son una colecci'on de documentos "How to"1, cada uno de
                 ellos describiendo un aspecto concreto del sistema Linux. Los mantiene al dia Matt
                 Welsh, mdw@sunsite.unc.edu.  Los Indices de HOWTOs listan los documentos
                 HOWTO que est'an disponibles (algunos de los cuales se listan aqu'i abajo).


El HOWTO de Instalaci'on de Linux (Linux Installation HOWTO)
                 El HOWTO de Instalaci'on de Linux describe como obtener e instalar una dis-
                 tribuci'on de Linux, similar a la informaci'on presentada en el Cap'itulo 2.


El HOWTO de Distribuci'ones de Linux (Distribution HOWTO)
                 Este documento es una lista de las distribuciones de Linux disponibles a trav'es
                 de pedido por correo y FTP an'onimo.  Tambi'en incluye informaci'on sobre otras
                 bondades y servicios relacionados con Linux.  El Ap'endice B contiene una lista
                 de vendedores de Linux, la mayor'ia de los cuales est'an listados en el Distribution
                 HOWTO.


El HOWTO de XFree86 de Linux (Linux XFree86 HOWTO)
                 Este documento describe como instalar y configurar el software del Sistema X Win-
                 dow para Linux.  Ver la secci'on "5.1" para mayor informaci'on acerca del Sistema
                 X Window.


Los HOWTOs de Mail, News y UUCP de Linux
                 Estos tres documentos HOWTO describen la configuraci'on y puesta a punto del

_________________________________________
   1N. del T.: del ingl'es "C'omo"  o "C'omo se hace"
______________________________________________________________________________________________________A.2.  M*
 *anuales del Proyecto de Documentac@


                 correo electr'onico, news y comunicaciones UUCP en un sistema Linux.  Dado que
                 estos tres temas est'an generalmente interconectados, probablemente desee leer estos
                 tres HOWTOs de una misma vez.


El HOWTO de Hardware de Linux (Linux Hardware HOWTO)
                 Este HOWTO contiene una extensa lista de hardware soportado por Linux. A pesar
                 de que esta lista no est'a completa, deber'ia ofrecerle una perspectiva general de que
                 dispositivos hardware deben estar soportados por el sistema.


El HOWTO de SCSI de Linux (Linux SCSI HOWTO)
                 Este HOWTO es una gu'ia completa de la configuraci'on y uso de los dispositivos
                 SCSI bajo Linux, tales como discos duros, unidades de cinta y CD-ROM.


El Linux NET-2-HOWTO
                 El Linux NET-2-HOWTO describe la instalaci'on, puesta a punto y configuraci'on
                 del software TCP/IP "NET-2" bajo Linux, incluyendo SLIP. Si desea usar TCP/IP
                 en su sitema Linux, deber'ia leer este documento.


El HOWTO de Ethernet de Linux (Linux Ethernet HOWTO)
                 Muy relacionado con el NET-2-HOWTO, el HOWTO de Ethernet describe los di-
                 versos dispositivos Ethernet soportados por Linux, y explica como configurar cada
                 uno de ellos desde el software de TCP/IP de Linux.


El HOWTO de Impresi'on de Linux (Linux Printing HOWTO)
                 En este documento se describe como configurar el software de impresi'on bajo Linux,
                 como por ejemplo lpr. La configuraci'on de las impresoras y el software de impresi'on
                 bajo UNIX puede resultar a veces confuso; este documento siembra algo de luz en
                 la materia.


Otros documentos en-l'inea
                 Si hojea el directorio docs de cualquier FTP site de Linux, podr'a ver otros muchos
                 documentos que no est'an aqu'i listados: Una pila de FAQs, trucos de inter'es, y otra
                 informaci'on importante.  Esta miscel'anea es dif'icil de clasificar aqu'i; si no puede
                 ver en la lista de abajo lo que est'e buscando, eche un vistazo en los sites de archivos
                 Linux listados en el Ap'endice C.



A.2      Manuales del Proyecto de Documentaci'on de Linux



El Proyecto de Documentaci'on de Linux (LDP) est'a trabajando en el desarrollo de una serie de
manuales y otra documentaci'on para Linux, incluyendo las p'aginas de manual.  Estos manuales se
encuentran en diversos estados de desarrollo, y cualquier ayuda de revisi'on y puesta al dia de los
mismos es apreciada enormemente. Si tiene preguntas acerca del LDP, por favor contacte con Matt
Welsh(mdw@sunsite.unc.edu).

   Estos libros est'an disponibles a trav'es de FTP an'onimo desde un mont'on de servidores de
______________________________________________________________________________________________________194    *
 *                                       Ap'e@


archivos Linux, incluyendo sunsite.unc.edu en el directorio /pub/Linux/docs/LDP. Unos cuan-
tos distribuidores comerciales est'an vendiendo copias impresas de estos libros; en el futuro, Ud.
podr'a encontrar los manuales del LDP en las estanter'ias de su librer'ia m'as pr'oxima.



Linux Installation and Getting Started, de Matt Welsh
                 Una nueva gu'ia de usuario para Linux, que cubre todo lo que un nuevo usuario
                 necesita saber para comenzar. Este libro lo tiene ahora mismo en sus manos.


The Linux System Administrators'Guide, de Lars Wirzenius
                 Esta es una gu'ia completa para poner en marcha y configurar un sistema Linux. Hay
                 muchos temas relacionados con la administraci'on de sistemas que son espec'ificas de
                 Linux, tales como lo necesario para soportar una comunidad de usuarios, manteni-
                 miento del sistema de ficheros, backups, y dem'as. Esta gu'ia los cubre a todos.


The Linux Network Administrators'Guide, de Olaf Kirch
                 Una extensa y completa gu'ia de redes bajo Linux, que incluye TCP/IP, UUCP,
                 SLIP, y m'as.  Este libro es de lectura recomendable;  contiene gran cantidad de
                 informaci'on sobre muchos temas, y clarifica la gran cantidad de aspectos confusos
                 de la configuraci'on en red.


The Linux Kernel Hackers'Guide, de Michael Johnson
                 Hasta los m'as peque"nos detalles del n'ucleo por dentro y del desarrollo bajo Linux.
                 Linux es 'unico en poner a disposici'on los fuentes del n'ucleo al completo. Este libro
                 abre las puertas a desarrolladores que desean a"nadir o modificar caracter'isticas
                 dentro del n'ucleo.  Esta gu'ia tambi'en da una amplia covertura a los conceptos del
                 n'ucleo y las convenciones usadas en Linux.



A.3       Libros y Otros Trabajos Publicados



Linux Journal es una revista mensual para y sobre la comunidad Linux, escrito y producido por
algunos de los desarrolladores y entusiastas de Linux. Se distribuye por el mundo entero, y es una
forma excelente de mantenerse en contacto con la din'amica del mundo de Linux, especialmente si no
se tiene acceso a las news de USENET.

    En la fecha que se escribe esto, las subscripciones a Linux Journal  son de US$22/a"no en los
Estados Unidos, US$27 en Canada, y US$32 en el resto.  Para subscribirse, o para ampliar in-
formaci'on, escriba a Linux Journal, PO Box 85867, Seattle, WA, 98145-1867, USA, o llame al +1
206 527-3385.  El n'umero de FAX es +1 206 527-2806, y la direcci'on e-mail es linux@ssc.com.
Tambi'en podr'a encontrar un Linux Journal FAQ y algunos art'iculos de muestra v'ia FTP an'onimo
en sunsite.unc.edu en /pub/Linux/docs/linux-journal.

    Como ya hemos dicho, no se han publicado muchos libros que tengan que ver con Linux concreta-
mente. Sin embargo, si Ud. es nuevo en el mundo de UNIX, o desea m'as informaci'on de la que se
presenta aqu'i, le sugerimos que eche un vistazo a los siguientes libros que podr'a encontrar.
______________________________________________________________________________________________________A.3.  L*
 *ibros y Otros Trabajos Publicados @


A.3.1     Usando UNIX


T'itulo:            Learning the UNIX Operating System

Autor:              Grace Todino & John Strang

Editorial:          O'Reilly and Associates, 1987

ISBN:               0-937175-16-1, $9.00



         Un buen libro de introducci'on al aprendizaje del sistema operativo UNIX. La mayor'ia
      de la informaci'on se deber'ia de poder aplicar tambi'en a Linux. Le sugerir'ia leer este libro
      si Ud. es nuevo en UNIX y realmente quiere iniciarse en el uso de este nuevo sistema.
T'itulo:            Learning the vi Editor

Autor:              Linda Lamb

Editorial:          O'Reilly and Associates, 1990

ISBN:               0-937175-67-6, $21.95



         Este es un libro sobre el editor vi, un potente editor de texto que podr'a encontrar
      en todos los sistemas UNIX del mundo. A menudo es importante saber y poder usar vi,
      porque no siempre tendr'a acceso a un editor "real" como el Emacs.
A.3.2     Administraci'on de Sistemas


T'itulo:            Essential System Administration

Autor:              AEleen Frisch

Editorial:          O'Reilly and Associates, 1991

ISBN:               0-937175-80-3, $29.95



         From the O'Reilly and Associates Catalog, "Como cualquier otro sistema multiusuar-
      io, UNIX requiere algo de cuidado y dedicaci'on. Essential System Administration te dice
      c'omo.  Este libro destierra el mito y la confusi'on que rodea a este importante t'opico
      y proporciona una introducci'on compacta y manejable de las tareas a que se enfrenta
      cualquier responsable de un sistema UNIX." Ni yo mismo podr'ia haberlo dicho mejor.
T'itulo:            TCP/IP Network Administration

Autor:              Craig Hunt

Editorial:          O'Reilly and Associates, 1990

ISBN:               0-937175-82-X, $24.95



         Una gu'ia completa para poner a punto y echar a andar una red TCP/IP. A pesar de
______________________________________________________________________________________________________196    *
 *                                       Ap'e@


      que este libro no es concretamente de Linux, cerca del 90% de 'el es aplicable a Linux.
      Junto con el Linux NET-2-HOWTO y el Linux Network Administrator's Guide, este es
      un gran libro que trata los conceptos y los detalles t'ecnicos del manejo de TCP/IP.
T'itulo:             Managing UUCP and Usenet

Autor:               Tim O'Reilly and Grace Todino

Editorial:           O'Reilly and Associates, 1991

ISBN:                0-937175-93-5, $24.95



          Este libro cubre como instalar y configurar el software de red UUCP, incluyendo la
      configuraci'on de las news de USENET. Si est'a absolutamente interesado en usar UUCP
      o acceder a las news de USENET en su sistema, deber'ia leer este libro.
A.3.3      The X Window System


T'itulo:             The X Window System: A User's Guide

Autor:               Niall Mansfield

Editorial:           Addison-Wesley

ISBN:                0-201-51341-2, ??



          Un tutorial completo y una gu'ia de referencia para usar el Sistema X Window.  Si
      ha instalado X window en su sistema Linux, y quiere saber como sacar el m'aximo de
      'el, deber'ia leer este libro.  Al contrario que algunos sistemas de ventanas, mucha de la
      potencia que proporciona X no es evidente a primera vista.
A.3.4      Programaci'on


T'itulo:             The C Programming Language

Autor:               Brian Kernighan and Dennis Ritchie

Editorial:           Prentice-Hall, 1988

ISBN:                0-13-110362-8, $25.00



          Este libro es obligado para cualquiera que desee programar en C en un sistema UNIX.
      (O cualquier sistema, pensandolo mejor.) Aunque este libro no es claramente espec'ifico
      de UNIX, es perfectamente aplicable a la programaci'on de C bajo UNIX.
T'itulo:             The Unix Programming Environment

Autor:               Brian Kernighan and Bob Pike

Editorial:           Prentice-Hall, 1984
______________________________________________________________________________________________________A.3.  L*
 *ibros y Otros Trabajos Publicados @


ISBN:               0-13-937681-X, ??



         Una panor'amica de la programaci'on bajo sistemas UNIX. Da covertura a todas las
      herramientas disponibles; una buena lectura para familiarizarse con el a veces amorfo
      mundo de la programaci'on de UNIX.
T'itulo:            Advanced Programming in the UNIX Environment

Autor:              W. Richard Stevens

Editorial:          Addison-Wesley

ISBN:               0-201-56317-7, $50.00



         Este importante tomo contiene todo lo que necesita saber para programar UNIX a
      nivel del sistema_E/S de ficheros, control de procesos, comunicaci'on entre procesos,
      se"nales, E/S del terminal, los trabajos.  Este libro se enfoca sobre varios estandards
      UNIX, incluyendo POSIX.1, al cual se adhiere Linux en la mayor'ia de los casos.
A.3.5     Manejo del Kernel


T'itulo:            The Design of the UNIX Operating System

Autor:              Maurice J. Bach

Editorial:          Prentice-Hall, 1986

ISBN:               0-13-201799-7, ??



         Este libro cubre los algoritmos e interioridades del kernel de UNIX. No es espec'ifico
      de ning'un kernel en particular, aunque se inclina hacia el System V. Es el mejor punto
      de comienzo para entender las triqui"nuelas del sistema Linux.
T'itulo:            The Magic Garden Explained

Autor:              Berny Goodheart and James Cox

Editorial:          Prentice-Hall, 1994

ISBN:               0-13-098138-9, ??



         Este libro describe el kernel del Sistem V R4 al detalle. Al contrario que el libro de
      Bach, que se concentra profundamente en los algoritmos que dan vida al kernel, este libro
      presenta la implementaci'on del SVR4 en un nivel m'as t'ecnico.  Aunque Linux y SVR4
      son primos lejanos, este libro puede dar una visi'on muy profunda de los trabajos de una
      implementaci'on actual de un kernel de UNIX. Este es tambi'en un libro muy moderno
      sobre el kernel de UNIX_publicado en 1994.
______________________________________________________________________________________________________198    *
 *                                       Ap'e@




Ap'endice  B



Lista  de  Vendedores  de  Linux



Este ap'endice lista informaci'on de contacto de un n'umero de vendedores que ofrecen Linux en
disquete, cinta, y CD-ROM. Muchos de ellos proporcionan documentaci'on de Linux, soporte, as'i como
otros servicios.  En ning'un modo 'esta es una lista completa; si Ud.  compr'o este libro impreso, es
posible que la compa"n'ia de ventas o publicaciones tambi'en le haya proporcionado el software y
servicios de Linux.

   El autor no garantiza la exactitud de cualquier informaci'on listada en este Ap'endice.  Esta in-
formaci'on se incluye aqu'i 'unicamente como un servicio a los lectores, no como un anuncio de una
organizaci'on concreta.



      Fintronic Linux Systems
      1360 Willow Rd., Suite 205
      Menlo Park, CA 94025 USA
      Tel: +1 415 325-4474
      Fax: +1 415 325-4908
      linux@fintronic.com



      InfoMagic, Inc.
      PO Box 30370
      Flagstaff, AZ 86003-0370 USA
      Tel: +1 800 800-6613, +1 602 526-9565
      Fax: +1 602 526-9573
      Orders@InfoMagic.com



      Lasermoon Ltd
      2a Beaconsfield Road, Fareham,
      Hants, England. PO16 0QB.
      Tel: +44 (0) 329 826444.
      Fax: +44 (0) 329 825936.
      info@lasermoon.co.uk


                                                 199
______________________________________________________________________________________________________200    *
 *                                           @


      Linux Journal
      P.O. Box 85867
      Seattle, WA 98145-1867 USA
      Tel: +1 206 527-3385
      Fax: +1 206 527-2806
      linux@ssc.com



      Linux Systems Labs
      18300 Tara Drive
      Clinton Twp, MI 48036 USA
      Tel: +1 313 954-2829, +1 800 432-0556
      Fax: +1 313 954-2806
      info@lsl.com



      Morse Telecommunication, Inc.
      26 East Park Avenue, Suite 240
      Long Beach, NY 11561 USA
      Tel: +1 800 60-MORSE
      Fax: +1 516 889-8665
      Linux@morse.net



      Nascent Technology
      Linux from Nascent CDROM
      P.O. Box 60669
      Sunnyvale CA 94088-0669 USA
      Tel: +1 408 737-9500
      Fax: +1 408 241-9390
      nascent@netcom.com



      Red Hat Software
      P.O. Box 4325
      Chapel Hill, NC 27515 USA
      Tel: +1 919 309-9560
      redhat@redhat.com



      SW Technology
      251 West Renner Suite 229
      Richardson, TX 75080 USA
      Tel: +1 214 907-0871
      swt@netcom.com



      Takelap Systems Ltd.
      The Reddings, Court Robin Lane,
      Llangwm, Usk, Gwent, United Kingdom NP5 1ET.
______________________________________________________________________________________________________201


      Tel: +44 (0)291 650357
      Fax: +44 (0)291 650500
      info@ddrive.demon.co.uk



      Trans-Ameritech Enterprises, Inc.
      2342A Walsh Ave
      Santa Clara, CA 95051 USA
      Tel: +1 408 727-3883
      roman@trans-ameritech.com



      Unifix Software GmbH
      Postfach 4918
      D-38039 Braunschweig
      Germany
      Tel: +49 (0)531 515161
      Fax: +49 (0)531 515162



      Yggdrasil Computing, Incorporated
      4880 Stevens Creek Blvd., Suite 205
      San Jose, CA 95129-1034 USA
      Tel: +1 800 261-6630, +1 408 261-6630
      Fax: +1 408 261-6631
      info@yggdrasil.com
______________________________________________________________________________________________________202    *
 *                                           @




Ap'endice  C



Tutorial  de  FTP  y  Lista  de  Sites



FTP ("File Transfer Protocol") es el conjunto de programas que se usa en Internet para transferir
ficheros entre sistemas.  La mayor'ia de los sistemas UNIX, VMS y MS-DOS de Internet tienen un
programa llamado ftp que se usa para transferir estos ficheros, y si Ud. tiene acceso a Internet, el
mejor modo de descargarse el software de Linux es usando ftp. Este ap'endice cubre el uso de ftp
a nivel b'asico_por supuesto, hay muchas m'as funciones y usos del ftp de los que se dan aqu'i.

   Al final de este ap'endice hay una lista de sites FTP donde se puede encontrar el software de
Linux. Adem'as, si no tiene acceso directo a internet, pero puede intercambiar correo electr'onico con
Internet, abajo se incluye informaci'on sobre como usar el ftpmail.

   Si est'a usando un sistema MS-DOS, UNIX, o VMS para traer ficheros desde Internet, entonces
ftp ser'a un programa a base de comandos.  Sin embargo, existen otras implementaciones de ftp,
como la versi'on Macintosh (llamada Fetch) con un bonito interface guiado por men'us, que lo hacen
m'as amigable y c'omodo de usar.  Incluso si no esta usando la versi'on de comandos de ftp, la
informaci'on que se facilita deber'ia serle de ayuda.


   ftp puede usarse tanto para "subir" (enviar) como para "bajar" (recibir) ficheros desde los sites
de Internet.  En la mayor'ia de situaciones, Ud.  estar'a bajando software.  En Internet hay un gran
n'umero de FTP archive sites de acceso p'ublico, m'aquinas que permiten a cualquiera hacer ftp
sobre ellas y bajarse el software. Un "archive site" de este tipo es sunsite.unc.edu, que contiene
un mont'on de software de Sun Microsistems, y que act'ua como uno de los principales sites de Linux.
Adem'as, los FTP archive sites se reflejan (mirror) el software unos a otros_es decir, el software
que se sube a un site ser'a autom'aticamente copiado a un gran n'umero de otros sites. De modo que
no se sorprenda si ve exactamente los mismos ficheros en muchos sites diferentes.
C.1      Aprendiendo ftp



Fijese que en el ejemplo "screens" que figura debajo solamente estoy mostrando la informaci'on m'as
relevante, y lo que Ud.  vea podr'ia diferir.  Tome nota tambi'en de que los comandos en it'alicas
representan comandos que Ud teclea; todo lo dem'as es la salida de pantalla.


                                                 203
______________________________________________________________________________________________________204    *
 *                                        Ap'@


    Para arrancar el ftp y conectar con un site, use simplemente el comando



      ftp <hostname>



donde <hostname> es el nombre del site al que se quiere conectar. Por ejemplo, para conectar con el
ya m'itico site shoop.vpizza.com se puede usar el comando



      ftp shoop.vpizza.com

C.2       Registrandose



Cuando comienza el ftp deber'ia verse algo como



      Connected to shoop.vpizza.com.
      220 Shoop.vpizza.com FTPD ready at 15 Dec 1992 08:20:42 EDT
      Name (shoop.vpizza.com:mdw):



    En este punto, ftp nos est'a pidiendo que le demos el nombre de usuario con el que nos queremos
registrar en shoop.vpizza.com. El nombre por defecto aqu'i es mdw, que corresponde con mi nombre
de usuario del sistema desde el que estoy usando el FTP. Como no tengo cuenta en shoop.vpizza.com
no me podr'e registrar como yo mismo. En cambio, para acceder al software disponible publicamente
en un FTP site hay que registrarse como anonymous, y dar la direcci'on de e-mail Internet (si se
tiene) como password. De modo que teclear'iamos



      Name (shoop.vpizza.com:mdw):  anonymous
      331-Guest login ok, send e-mail address as password.
      Password:  mdw@sunsite.unc.edu
      230- Welcome to shoop.vpizza.com.
      230- Virtual Pizza Delivery[tm]:  Download pizza in 30 cycles or less
      230- or you get it FREE!
      ftp>



    Por supuesto, Ud.  deber'ia dar su direcci'on de e-mail en vez de la mia, y no se reflejar'a en
pantalla mientras la est'e escribiendo (ya que t'ecnicamente es un "password" o contrase"na). El ftp
nos deber'ia permitir registrarnos y ya estariamos preparados a bajarnos el software.

C.3       Moviendonos dentro



Perfecto, ya estamos dentro.  Nuestro prompt es ftp>, y el programa ftp est'a a la espera de
comandos. Hay unos pocos comandos b'asicos que deber'ia conocer. Primero, los comandos



      ls <fichero>
______________________________________________________________________________________________________C.3.  M*
 *oviendonos dentro                 @


y



      dir <fichero>



ambos dan un listado de ficheros (donde <fichero> es un argumento opcional que especifica un fichero
particular a listar).  La diferencia es que ls generalmente produce un listado corto y dir produce
un listado m'as largo (es decir, con m'as informaci'on sobre los tama"nos de los ficheros, fechas de
modificaci'on, etc.).

   El comando



      cd <directorio>



mover'a al directorio dado (exactamente como el comando cd en sistemas UNIX o MS-DOS). Puede
usar tambi'en el comando



      cdup



para cambiar al directorio padre1.

   El comando



      help <comando>



proporciona ayuda en el citado <comando> ftp (como puede ser ls o cd). Si no se especifica comando,
ftp listar'a todos los comandos disponibles.

   Si tecleamos dir en este punto, veremos un listado del directorio inicial en el que nos encontramos.


      ftp> dir
      200 PORT command successful.
      150 Opening ASCII mode data connection for /bin/ls.
      total 1337
      dr-xr-xr-x  2 root      wheel          512 Aug 13 13:55 bin
      drwxr-xr-x  2 root      wheel          512 Aug 13 13:58 dev
      drwxr-xr-x  2 root      wheel          512 Jan 25 17:35 etc
      drwxr-xr-x 19 root      wheel         1024 Jan 27 21:39 pub
      drwxrwx-wx  4 root      ftp-admi      1024 Feb  6 22:10 uploads
      drwxr-xr-x  3 root      wheel          512 Mar 11  1992 usr



      226 Transfer complete.
      921 bytes received in 0.24 seconds (3.7 Kbytes/s)
      ftp>
_________________________________________
   1el directorio por encima del actual.
______________________________________________________________________________________________________206    *
 *                                        Ap'@


    Cada una de estas entradas es un directorio, no un fichero individual que nos podamos traer
(especificado por la d de la primera columna del listado). En la mayor'ia de los "FTP archive sites"
(Servidores de FTP), el software p'ublicamente accesible est'a bajo el directorio /pub, de modo que
vamos a 'el.



      ftp> cd pub
      ftp> dir
      200 PORT command successful.
      150 ASCII data connection for /bin/ls (128.84.181.1,4525) (0 bytes).
      total 846
      -rw-r--r--    1 root      staff         1433 Jul 12  1988 README
      -r--r--r--    1 3807      staff        15586 May 13  1991 US-DOMAIN.TXT.2
      -rw-r--r--    1 539       staff        52664 Feb 20  1991 altenergy.avail
      -r--r--r--    1 65534     65534        56456 Dec 17  1990 ataxx.tar.Z
      -rw-r--r--    1 root      other      2013041 Jul  3  1991 gesyps.tar.Z
      -rw-r--r--    1 432       staff        41831 Jan 30  1989 gnexe.arc
      -rw-rw-rw-    1 615       staff        50315 Apr 16  1992 linpack.tar.Z
      -r--r--r--    1 root      wheel        12168 Dec 25  1990 localtime.o
      -rw-r--r--    1 root      staff         7035 Aug 27  1986 manualslist.tblms
      drwxr-xr-x    2 2195      staff          512 Mar 10 00:48 mdw
      -rw-r--r--    1 root      staff         5593 Jul 19  1988 t.out.h


      226 ASCII Transfer complete.
      2443 bytes received in 0.35 seconds (6.8 Kbytes/s)
      ftp>



    Aqu'i podemos ver un n'umero de (>interesantes?)  ficheros, uno de los cuales se llama README,
que deber'iamos bajarnos (la mayor'ia de FTP sites tienen un fichero README en el directorio /pub).
C.4       Traerse ficheros



Antes de traer ficheros, hay algunas cosas que deber'ia tener en cuenta.


    o Conectar las marcas de progreso. Las Marcas de Progreso se imprimen en pantalla mien-
      tras se est'an transfiriendo ficheros; le permitir'an saber como de avanzada va su transferencia,
      y que su conexi'on no se ha cortado (de modo que no est'e sentado 20 minutos pensando que aun
      est'a trayendose un fichero). En general, una marca de progreso aparece como una almohadilla
      (#), y se imprime una por cada 1024 o 8192 bytes transferidos, dependiendo del sistema.

      Para activar la impresi'on de marcas de progreso, utilice el comando hash.


           ftp> hash
           Hash mark printing on (8192 bytes/hash mark).
           ftp>
______________________________________________________________________________________________________C.4.  T*
 *raerse ficheros                   @


   o  Determinar el tipo de fichero que va a transferir. En lo que concierne al FTP, los ficheros
      van en dos formatos:  binario y texto.  La mayor'ia de los ficheros que Ud.  transferir'a ser'an
      binarios:  es decir, programas, ficheros comprimidos, ficheros de datos, etc.  Sin embargo,
      muchos ficheros (tales como READMEs y dem'as) son ficheros de texto.

      >Porqu'e es importante el tipo de fichero?  Simplemente porque en algunos sistemas (como el
      MS-DOS), ciertos caracteres de un fichero de texto, tales como retornos de carro, necesitan
      convertirse de modo que los ficheros puedan ser legibles. Mientras las transferencias en modo
      binario, no realizan ninguna conversi'on_el fichero se tranfiere byte a byte.

      Los comandos bin y ascii ponen el modo de tranferencia en binario y texto respectivamente.
      Si est'a en duda, use siempre el modo binario para transferir ficheros.  Si intenta tranferir un
      fichero binario en modo texto, obtendr'a un fichero corrupto que no podr'a utilizar. (Este es uno
      de los fallos m'as corrientes cuando se usa el FTP.) Sin embargo, puede usar tranquilamente el
      modo texto para ficheros de texto (aquellos cuyos nombres terminan habitualmente en .txt).

      En nuestro ejemplo traeremos el fichero README, que por lo general es un fichero de texto, para
      lo cual usaremos el comando


           ftp> ascii
           200 Type set to A.
           ftp>


   o  Establecer el directorio local.  El directorio local es el directorio de su sistema en el que
      quiere que vayan a parar los ficheros traidos.  Mientras el comando cd cambia el directorio
      remoto (de la m'aquina remota a la que est'a haciendo FTP), el comando lcd cambia el directorio
      local.

      Por ejemplo, para cambiar el directorio local a /home/db/mdw/tmp, utilice el siguiente comando


           ftp> lcd /home/db/mdw/tmp
           Local directory now /home/db/mdw/tmp
           ftp>


   Ahora ya est'a listo para traerse el fichero. El comando


      get <nombre-remoto> <nombre-local>


se usa para esto, donde <nombre-remoto> es el nombre del fichero de la m'aquina remota, y <nombre-
local> es el nombre que le quiere dar al fichero en su m'aquina local. El argumento <nombre-local> es
opcional; por defecto el nombre fichero local es el mismo que el remoto. Sin embargo, si est'a trayen-
dose el fichero README, y ya tiene un README en su directorio local, necesitar'a darle un <nombre-local>
distinto para que no se sobreescriba el primero.

   En nuestro ejemplo, para traer el fichero README, usamos simplemente


      ftp> get README
      200 PORT command successful.
      150 ASCII data connection for README (128.84.181.1,4527) (1433 bytes).
______________________________________________________________________________________________________208    *
 *                                        Ap'@


      #
      226 ASCII Transfer complete.
      local:  README remote:  README
      1493 bytes received in 0.03 seconds (49 Kbytes/s)
      ftp>

C.5       Saliendo de FTP



Para terminar una sesi'on FTP, solo tiene que usar el comando



      quit



El comando



      close



se puede usar para cerrar la conexi'on con el FTP site actual; el comando open se puede usar para
comenzar una sesi'on con otro site distinto (sin salir completamente del programa FTP).



      ftp> close
      221 Goodbye.
      ftp> quit

C.6       Usando ftpmail



ftpmail es un servicio que le permite obtener ficheros de FTP sites a trav'es del correo electr'onico de
Internet. Si no tiene acceso directo a Internet, pero al menos puede enviar correo a Internet (desde
un servicio como CompuServe, por ejemplo), entonces ftpmail es un buen m'etodo para conseguir
los ficheros de los FTP archive sites.  Desafortunadamente, ftpmail puede ser lento, sobre todo
cuando env'ia grandes trabajos. Antes de intentar traerse gran cantidad de software usando ftpmail,
asegurese de que su cola de correo pueda manejar el tr'afico entrante. Muchos sistemas ponen cuotas
de correo entrante, y pueden borrar su cuenta si su correo se excede de esta cuota. Solamente tiene
que usar el sentido com'un.

    sunsite.unc.edu, uno de los m'as grandes FTP sites de Linux, posee un servidor de ftpmail.
Para usar este servicio, envie un e-mail a



      ftpmail@sunsite.unc.edu



en cuyo cuerpo del mensaje contenga solamente la palabra:



      help
______________________________________________________________________________________________________C.7.  L*
 *ista de FTP Sites de Linux        @


Esto le enviar'a de vuelta una lista de comandos ftpmail y un breve tutorial de uso del sistema.

   Por ejemplo, para conseguir una lista de los ficheros de Linux encontrados en sunsite.unc.edu,
env'ie un correo a la direcci'on mencionada y que contenga el siguiente texto


      open sunsite.unc.edu
      cd /pub/Linux
      dir
      quit


   Podr'a  usar  el  servicio  ftpmail  para  conectar  con  cualquier  FTP  site;  no  est'a  limitado  a
sunsite.unc.edu. La siguiente secci'on lista un n'umero de FTP sites de Linux.
C.7      Lista de FTP Sites de Linux



La tabla C.1 es una lista de los m'as conocidos FTP sites que mantienen software de Linux. Tenga
en cuenta tambi'en que un gran n'umero de otros sites son copia de estos, y muy probablemente
podr'a encontrar Linux en un mont'on de sites que no est'an en esta lista.


               _______________________________________________________________________
               __Nombre_del_Site________________Direcci'on_IP____Directorio___________
                 tsx-11.mit.edu                 18.172.1.2       /pub/linux
                 sunsite.unc.edu                152.2.22.81      /pub/Linux
                 nic.funet.fi                   128.214.6.100    /pub/OS/Linux
                 ftp.mcc.ac.uk                  130.88.200.7     /pub/linux
                 fgb1.fgb.mw.tu-muenchen.de     129.187.200.1    /pub/linux
                 ftp.informatik.tu-muenchen.de  131.159.0.110    /pub/Linux
                 ftp.dfv.rwth-aachen.de         137.226.4.105    /pub/linux
                 ftp.informatik.rwth-aachen.de  137.226.112.172  /pub/Linux
                 ftp.ibp.fr                     132.227.60.2     /pub/linux
                 kirk.bu.oz.au                  131.244.1.1      /pub/OS/Linux
                 ftp.uu.net                     137.39.1.9       /systems/unix/linux
                 wuarchive.wustl.edu            128.252.135.4    /systems/linux
                 ftp.win.tue.nl                 131.155.70.100   /pub/linux
                 ftp.ibr.cs.tu-bs.de            134.169.34.15    /pub/os/linux
                 ftp.denet.dk                   129.142.6.74     /pub/OS/linux


                                    Tabla C.1: Linux FTP Sites



   tsx-11.mit.edu, sunsite.unc.edu, y nic.funet.fi son los "home sites" del software de Linux,
donde se deja la mayor'ia del nuevo software.  La mayor'ia de los otros sites de la lista se hacen
copia de alguna combinaci'on de estos tres.  Para reducir el tr'afico en la red,  elija un site que
est'e geogr'aficamente lo m'as cerca de Ud.
______________________________________________________________________________________________________210    *
 *                                        Ap'@




Ap'endice  D



Lista  de  BBS  de  Linux



Aqu'i se ha puesto una lista de bulletin board systems (BBS) que mantienen software de Linux. Esta
lista la mantiene Zane Healy (healyzh@holonet.net). Si conoce o tiene una BBS que proporcione
software de Linux, y que no est'e en esta lista, deber'ia contactar con 'el.

   La comunidad Linux ya no es solamente una sociedad 'unicamente de Internet.  De hecho, se
estima que la mayor'ia de usuarios de Linux no tienen acceso a internet.  Por ello es especialmente
importante que las BBSs continuen proporcionando y apoyando a los usuarios de Linux a lo ancho
del mundo.

D.1      Estados Unidos



Citrus  Grove  Public  Access,  916-381-5822.   ZyXEL  16.8/14.4  Sacramento,  CA.  Internet:
citrus.sac.ca.us
Higher Powered BBS, 408-737-7040. ? CA. RIME ->HIGHER
hip-hop, 408-773-0768. 19.2k Sunnyvale, CA. USENET access
hip-hop, 408-773-0768. 38.4k Sunnyvale, CA.
Unix Online, 707-765-4631. 9600 Petaluma, CA. USENET access
The Outer Rim, 805-252-6342.  Santa Clarita, CA.
Programmer's Exchange, 818-444-3507.  El Monte, CA. Fidonet
Programmer's Exchange, 818-579-9711.  El Monte, CA.
Micro Oasis, 510-895-5985. 14.4k San Leandro, CA.
Test Engineering, 916-928-0504.  Sacramento, CA.
Slut Club, 813-975-2603. USR/DS 16.8k HST/14.4K Tampa, FL. Fidonet 1:377/42
Lost City Atlantis, 904-727-9334. 14.4k Jacksonville, FL. FidoNet
Aquired Knowledge, 305-720-3669. 14.4k v.32bis Ft. Lauderdale, FL. Internet, UUCP
The Computer Mechanic, 813-544-9345.  14.4k v.32bis St.  Petersburg, FL. Fidonet, Sailnet,
MXBBSnet
AVSync, 404-320-6202.  Atlanta, GA.
Information Overload, 404-471-1549. 19.2k ZyXEL Atlanta, GA. Fidonet 1:133/308


                                                 211
______________________________________________________________________________________________________212    *
 *                                           @


Atlanta Radio Club, 404-850-0546. 9600 Atlanta, GA.
Rebel BBS, 208-887-3937. 9600 Boise, ID.
Rocky Mountain HUB, 208-232-3405. 38.4k Pocatello, ID. Fionet, SLNet, CinemaNet
EchoMania, 618-233-1659. 14.4k HST Belleville, IL. Fidonet 1:2250/1, f'req LINUX
UNIX USER, 708-879-8633. 14.4k Batavia, IL. USENET, Internet mail
PBS BBS, 309-663-7675. 2400 Bloomington, IL.
Third World, 217-356-9512. 9600 v.32 IL.
Digital Underground, 812-941-9427. 14.4k v.32bis IN. USENET
The OA Southern Star, 504-885-5928.  New Orleans, LA. Fidonet 1:396/1
Channel One, 617-354-8873.  Boston, MA. RIME ->CHANNEL
VWIS Linux Support BBS, 508-793-1570. 9600 Worcester, MA.
WayStar BBS, 508-481-7147. 14.4k V.32bis USR/HST Marlborough, MA. Fidonet 1:333/14
WayStar BBS, 508-481-7293. 14.4k V.32bis USR/HST Marlborough, MA. Fidonet 1:333/15
WayStar  BBS,  508-480-8371.   9600  V.32bis  or  14.4k  USR/HST  Marlborough,  MA.  Fidonet
1:333/16
Programmer's Center, 301-596-1180. 9600 Columbia, MD. RIME
Brodmann's Place, 301-843-5732. 14.4k Waldorf, MD. RIME ->BRODMANN, Fidonet
Main Frame, 301-654-2554. 9600 Gaithersburg, MD. RIME ->MAINFRAME
1 Zero Cybernet BBS, 301-589-4064.  MD.
WaterDeep BBS, 410-614-2190. 9600 v.32 Baltimore, MD.
Harbor Heights BBS, 207-663-0391. 14.4k Boothbay Harbor, ME.
Part-Time BBS, 612-544-5552. 14.4k v.32bis Plymouth, MN.
The Sole Survivor, 314-846-2702. 14.4k v.32bis St. Louis, MO. WWIVnet, WWIVlink, etc
MAC's Place, 919-891-1111. 16.8k, DS modem Dunn, NC. RIME ->MAC
Digital Designs, 919-423-4216. 14.4k, 2400 Hope Mills, NC.
Flite Line, 402-421-2434.  Lincoln, NE. RIME ->FLITE, DS modem
Legend, 402-438-2433.  Lincoln, NE. DS modem
MegaByte Mansion, 402-551-8681. 14.4 V,32bis Omaha, NE.
Mycroft QNX, 201-858-3429. 14.4k NJ.
Steve Leon's, 201-886-8041. 14.4k Cliffside Park, NJ.
Dwight-Englewood BBS, 201-569-3543. 9600 v.42 Englewood, NJ. USENET
The Mothership Cnection, 908-940-1012. 38.4k Franklin Park, NJ.
The Laboratory, 212-927-4980. 16.8k HST, 14.4k v.32bis NY. FidoNet 1:278/707
Valhalla,   516-321-6819.     14.4k  HST  v.32  Babylon,   NY.  Fidonet  (1:107/255),   UseNet
(die.linet.org)
Intermittent Connection, 503-344-9838. 14.4k HST v.32bis Eugene, OR. 1:152/35
Horizon Systems, 216-899-1086. USR v.32 Westlake, OH.
Horizon Systems, 216-899-1293. 2400 Westlake, OH.
Centre Programmers Unit, 814-353-0566. 14.4k V.32bis/HST Bellefonte, PA.
Allentown Technical, 215-432-5699. 9600 v.32/v.42bis Allentown, PA. WWIVNet 2578
Tactical-Operations, 814-861-7637.  14.4k V32bis/V42bis State College, PA. Fidonet 1:129/226,
tac_ops.UUCP
North Shore BBS, 713-251-9757.  Houston, TX.
The Annex, 512-575-1188. 9600 HST TX. Fidonet 1:3802/217
______________________________________________________________________________________________________D.2.  F*
 *uera de los Estados Unidos        @


The Annex, 512-575-0667. 2400 TX. Fidonet 1:3802/216
Walt Fairs, 713-947-9866.  Houston, TX. FidoNet 1:106/18
CyberVille, 817-249-6261. 9600 TX. FidoNet 1:130/78
splat-ooh, 512-578-2720. 14.4k Victoria, TX.
splat-ooh, 512-578-5436. 14.4k Victoria, TX.
alaree, 512-575-5554. 14.4k Victoria, TX.
Ronin BBS, 214-938-2840. 14.4 HST/DS Waxahachie (Dallas), TX. RIME, Intelec, Smartnet, etc.
VTBBS, 703-231-7498.  Blacksburg, VA.
MBT, 703-953-0640.  Blacksburg, VA.
NOVA, 703-323-3321. 9600 Annandale, VA. Fidonet 1:109/305
Rem-Jem, 703-503-9410. 9600 Fairfax, VA.
Enlightend, 703-370-9528. 14.4k Alexandria, VA. Fidonet 1:109/615
My UnKnown BBS, 703-690-0669. 14.4k V.32bis VA. Fidonet 1:109/370
Georgia Peach BBS, 804-727-0399. 14.4k Newport News, VA.
Top Hat BBS, 206-244-9661. 14.4k WA. Fidonet 1:343/40
victrola.sea.wa.us, 206-838-7456. 19.2k Federal Way, WA. USENET



D.2      Fuera de los Estados Unidos



Galaktische Archive, 0043-2228303804. 16.8 ZYX Wien, Austria. Fidonet 2:310/77 (19:00-7:00)
Linux-Support-Oz, +61-2-418-8750.  v.32bis 14.4k Sydney, NSW, Austrailia.  Internet/Usenet,
E-Mail/News
500cc Formula 1 BBS, +61-2-550-4317. V.32bis Sydney, NSW, Australia.
Magic BBS, 403-569-2882. 14.4k HST/Telebit/MNP Calgary, AB, Canada. Internet/Usenet
Logical Solutions, 299-9900 through 9911. 2400 AB, Canada.
Logical Solutions, 299-9912, 299-9913. 14.4k Canada.
Logical Solutions, 299-9914 through 9917. 16.8k v.32bis Canada.
V.A.L.I.S., 403-478-1281. 14.4k v.32bis Edmonton, AB, Canada. USENET
The Windsor Download, (519)-973-9330. v32bis 14.4 ON, Canada.
r-node, 416-249-5366. 2400 Toronto, ON, Canada. USENET
Synapse, 819-246-2344. 819-561-5268 Gatineau, QC, Canada. RIME->SYNAPSE
Radio Free Nyongwa, 514-524-0829. v.32bis ZyXEL Montreal, QC, Canada. USENET, Fidonet
DataComm1, +49.531.132-16. 14.4 HST Braunschweig, NDS, Germany. Fido 2:240/550, LinuxNet
DataComm2, +49.531.132-17. 14.4 HST Braunschweig, NDS, Germany. Fido 2:240/551, LinuxNet
Linux  Server  /Braukmann,  +49.441.592-963.   16.8 ZYX Oldenburg,  NDS, Germany.   Fido
2:241/2012, LinuxNet
MM's Spielebox, +49.5323.3515. 14.4 ZYX Clausthal-Zfd., NDS, Germany. Fido 2:241/3420
MM's Spielebox, +49.5323.3516. 16.8 ZYX Clausthal-Zfd., NDS, Germany. Fido 2:241/3421
MM's Spielebox, +49.5323.3540. 9600 Clausthal-Zfd., NDS, Germany. Fido 2:241/3422
Bit-Company / J. Bartz, +49.5323.2539.  16.8 ZYX MO Clausthal-Zfd., NDS, Germany.  Fido
2:241/3430
Fractal  Zone  BBS  /Maass,  +49.721.863-066.   16.8  ZYX  Karlsruhe,  BW,  Germany.   Fido
______________________________________________________________________________________________________214    *
 *                                           @


2:241/7462
Hipposoft /M. Junius, +49.241.875-090. 14.4 HST Aachen, NRW, Germany. Fido 2:242/6, 4:30-
7,8-23:30
UB-HOFF /A. Hoffmann, +49.203.584-155. 19.2 ZYX+ Duisburg, Germany. Fido 2:242/37
FORMEL-Box,  +49.4191.2846.   16.8  ZYX  Kaltenkirchen,  SHL,  Germany.   Fido  2:242/329,
LinuxNet (6:00-20:00)
BOX/2, +49.89.601-96-77.  16.8 ZYX Muenchen, BAY, Germany.  Fido 2:246/147, info magic:
LINUX (22-24,0:30-2,5-8)
Die Box Passau 2+1, +49.851.555-96. 14.4 V32b Passau, BAY, Germany. Fido 2:246/200 (8:00-
3:30)
Die Box Passau Line 1, +49.851.753-789.  16.8 ZYX Passau, BAY, Germany.  Fido 2:246/2000
(8:00-3:30)
Die Box Passau Line 3, +49.851.732-73.  14.4 HST Passau, BAY, Germany.  Fido 2:246/202
(5:00-3:30)
Die Box Passau ISDN, +49.851.950-464.  38.4/64k V.110/X.75 Passau, BAY, Germany.  Fido
2:246/201 (8:00-24:00,1:00-3:30)
Public Domain Kiste, +49.30.686-62-50. 16.8 ZYX BLN, Germany. Fido 2:2403/17
CS-Port / C. Schmidt, +49.30.491-34-18. 19.2 Z19 Berlin, BLN, Germany. Fido 2:2403/13
BigBrother / R. Gmelch, +49.30.335-63-28. 16.8 Z16 Berlin, BLN, Germany. Fido 2:2403/36.4
(16-23:00)
CRYSTAL BBS, +49.7152.240-86. 14.4 HST Leonberg, BW, Germany. Fido 2:2407/3, LinuxNet
Echoblaster BBS #1, +49.7142.213-92.  HST/V32b Bietigheim, BW, Germany.  Fido 2:2407/4,
LinuxNet (7-19,23-01h
Echoblaster  BBS  #2,  +49.7142.212-35.   V32b Bietigheim,  BW, Germany.   Fido 2:2407/40,
LinuxNet (20h-6h)
LinuxServer / P. Berger, +49.711.756-275. 16.8 HST Stuttgart, BW, Germany. Fido 2:2407/34,
LinuxNet (8:3-17:5,19-2)
Rising  Sun  BBS,  +49.7147.3845.   16.8  ZYX  Sachsenheim,  BW,  Germany.   Fido  2:2407/41,
LinuxNet (5:30-2:30)
bakunin.north.de,    +49.421.870-532.         14.4    D    2800    Bremen,    HB,    Germany.
kraehe@bakunin.north.de
oytix.north.de, +49.421.396-57-62. ZYX HB, Germany. mike@oytix.north.de, login as gast
Fiffis  Inn  BBS,  +49-89-5701353.    14.4-19.2  Munich,  Germany.    FidoNet  2:246/69,Inter-
net,USENET,LinuxNet
The Field of Inverse Chaos, +358 0 506 1836. 14.4k v32bis/HST Helsinki, Finland. USENET;
ichaos.nullnet.fi
Modula BBS, +33-1 4043 0124. HST 14.4 v.32bis Paris, France.
Modula BBS, +33-1 4530 1248. HST 14.4 V.32bis Paris, France.
STDIN BBS, +33-72375139. v.32bis Lyon, Laurent Cas, France. FidoNet 2:323/8
Le Lien, +33-72089879. HST 14.4/V32bis Lyon, Pascal Valette, France. FidoNet 2:323/5
Basil, +33-1-44670844. v.32bis Paris, Laurent Chemla, France.
Cafard Naum, +33-51701632. v.32bis Nantes, Yann Dupont, France.
DUBBS, +353-1-6789000. 19.2 ZyXEL Dublin, Ireland. Fidonet 2:263/167
Galway Online, +353-91-27454. 14.4k v32b Galway, Ireland. RIME, @iol.ie
______________________________________________________________________________________________________D.2.  F*
 *uera de los Estados Unidos        @


Nemesis'Dungeon, +353-1-324755 or 326900. 14.4k v32bis Dublin, Ireland. Fidonet 2:263/150
nonsolosoftware, +39 51 6140772. v.32bis, v.42bis Italy. Fidonet 2:332/407
nonsolosoftware, +39 51 432904. ZyXEL 19.2k Italy. Fidonet 2:332/417
Advanced Systems, +64-9-379-3365.  ZyXEL 16.8k Auckland, New Zealand.  Singet, INTLnet,
Fidonet
Thunderball Cave, 472567018.  Norway. RIME ->CAVE
DownTown BBS Lelystad, +31-3200-48852. 14.4k Lelystad, Netherlands. Fido 2:512/155, UUCP
MUGNET Intl-Cistron BBS, +31-1720-42580. 38.4k Alphen a/d Rijn, Netherlands. UUCP
The Controversy, (65)560-6040. 14.4k V.32bis/HST Singapore. Fidonet 6:600/201
Pats System, +27-12-333-2049. 14.4k v.32bis/HST Pretoria, South Africa. Fidonet 5:71-1/36
Gunship BBS, +46-31-693306. 14.4k HST DS Gothenburg Sweden.
Baboon BBS, +41-62-511726. 19.2k Switzerland. Fido 2:301/580 and /581
The Purple Tentacle, +44-734-590990. HST/V32bis Reading, UK. Fidonet 2:252/305
A6 BBS, +44-582-460273. 14.4k Herts, UK. Fidonet 2:440/111
On the Beach, +444-273-600996. 14.4k/16.8k Brighton, UK. Fidonet 2:441/122
______________________________________________________________________________________________________216    *
 *                                           @




Ap'endice  E



Linux  en  Espa"na



Este ap'endice contiene varias fuentes de informaci'on tales como libros, BBS, forums en castellano,
etc.  La recopilaci'on est'a basada en el documento "Fuentes de Informaci'on Linux en Espa"na" que
periodicamente publica Ram'on Guti'errez Camus 1 en el "echo" espa"nol R34.LINUX. Dir'ijase a 'el si
desea una informaci'on m'as actualizada.

E.1      Internet Sites en Espa"na



Suelen ser mirrors de los lugares "oficiales". La Tabla E.1 lista los FTP espa"noles que disponen de
informaci'on y/o ficheros sobre Linux.


                      _________________________________________________________
                      __Nombre____________Direcci'on_IP__Directorio____________
                        luna.gui.uva.es.
                        ftp.upc.es
                        ocaso.sis.ucm.es
                        asterix.fi.upm.es 138.100.8.6)   /pub/linux
                        rigel.deusto.es   130.206.100.2
                        diable.upc.es                    /pub/sistemes/Linux
                        sunsite.rediris.es


                              Tabla E.1: Linux FTP Sites en Espa"na



E.2      BBS Espa"noles con ficheros Linux



Relaci'on de BBS espa"noles que disponen de ficheros Linux en mayor o menor grado.

   LuckyLink BBS Barcelona (93) 4400899, <BBS montada en Linux!
_________________________________________
   1Puede contactar con Ram'on Guti'errez en rcamus@jet.es 'o 2:344/3.439@fidonet.org



                                                 217
______________________________________________________________________________________________________218    *
 *                                           @


    Deusto BBS Bilbao - Tlf (94) 4130397, Dispone de ficheros Linux directamente recibidos de
Internet por alumnos de esta Universidad. No admite FileRequest.

    Europa BBS 2:341/19 - Madrid (91)320.84.60,

    Virtual Software BBS, 2:341/8 - Madrid (91) 355-16-12 y (91) 355-28-95

    New Order (2:345/207) M'alaga (95) 238 13 43.

    ArFIN BBs (2:341/68) Madrid (34-1) 326.2605, 28k8 VFC - 24 Horas. Acceso libre a ficheros
Linux. No Acepta FileRequest. Dispone de ocho areas dedicadas con 52 Mb de ficheros Linux. Pedir
FILES para lista de ficheros.

    NorCom-Zombi BBS (2:348/103) La Coru"na (???) ?????? Tiene un area de ficheros y, coment-
andoselo a su SysOp, permite el acceso a su sistema linux.

    FIC BBS (94:348/1) La Coru"na (???) ??????

    Rias Baixas BBS, Pontevedra (2:348/603),+34-(9)86-863434, 24 horas.  28k8 bps V.34 V.FC
V.32terbo H16 V.32bis V.42Bis

    Telebase STD (2:345/102) Almer'ia, Tlf (950) 274.830, 28k8 V34 - 24 Horas.

    Area Soft BBS (2:340/21) Las Palmas (928) 201351


Ap'endice  F



The  GNU  General  Public  License



A continuaci'on le mostramos la Licencia Publica General GNU (La GPL1 o copyleft 2), a la cual
est'a sometido el Linux. Se reproduce aqu'i para aclarar algunas de las confusiones que se dan sobre
el estado del copyright de Linux_Linux no es shareware, y no est'a en el dominio publico. El grueso
del n'ucleo de Linux est'a bajo copyright Oc1993 de Linus Torvalds, y otro software y partes del n'ucleo
est'an bajo copyright de sus autores.  En este caso, Linux tiene copyright, sin embargo, Ud.  puede
distribuirlo en los t'erminos de la GPL que se imprime a continuaci'on en su versi'on original.



        GNU  GENERAL  PUBLIC  LICENSE
                                        Version 2, June 1991

   Copyright Oc1989, 1991 Free Software Foundation, Inc.  675 Mass Ave, Cambridge, MA 02139,
USA Everyone is permitted to copy and distribute verbatim copies of this license document, but
changing it is not allowed3.
F.1      Pre'ambulo



The licenses for most software are designed to take away your freedom to share and change it. By
contrast, the GNU General Public License is intended to guarantee your freedom to share and change
free software-to make sure the software is free for all its users. This General Public License applies
to most of the Free Software Foundation's software and to any other program whose authors commit
to using it. (Some other Free Software Foundation software is covered by the GNU Library General
Public License instead.) You can apply it to your programs, too.

   When we speak of free software, we are referring to freedom, not price.  Our General Public
Licenses are designed to make sure that you have the freedom to distribute copies of free software
(and charge for this service if you wish), that you receive source code or can get it if you want it,
_________________________________________
   1N. del T.: Del ingl'es General Public License
   2N. del T.: Juego de palabras en ingl'es que quiere decir que es algo como un Copyright... pero al rev'es
   3N. del T.: No tenemos conocimiento de la existencia de una versi'on oficial de la GPL en espa"nol, por lo*
 * que hemos
dejado la licencia original, intacta y en ingl'es.


                                                 219
______________________________________________________________________________________________________220    *
 *                                       Ap'e@


that you can change the software or use pieces of it in new free programs; and that you know you
can do these things.

    To protect your rights, we need to make restrictions that forbid anyone to deny you these rights
or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you
if you distribute copies of the software, or if you modify it.

    For example, if you distribute copies of such a program, whether gratis or for a fee, you must
give the recipients all the rights that you have.  You must make sure that they, too, receive or can
get the source code. And you must show them these terms so they know their rights.

    We protect your rights with two steps: (1) copyright the software, and (2) offer you this license
which gives you legal permission to copy, distribute and/or modify the software.

    Also, for each author's protection and ours, we want to make certain that everyone understands
that there is no warranty for this free software.  If the software is modified by someone else and
passed on, we want its recipients to know that what they have is not the original, so that any
problems introduced by others will not reflect on the original authors'reputations.

    Finally, any free program is threatened constantly by software patents.  We wish to avoid the
danger that redistributors of a free program will individually obtain patent licenses, in effect making
the program proprietary.  To prevent this, we have made it clear that any patent must be licensed
for everyone's free use or not licensed at all.

    The precise terms and conditions for copying, distribution and modification follow.
F.2      T'erminos  y  Condiciones  para  la  Copia,  Distribuci'on  y

         Modificaci'on


   0. This License applies to any program or other work which contains a notice placed by the copy-
      right holder saying it may be distributed under the terms of this General Public License. The
      "Program", below, refers to any such program or work, and a "work based on the Program"
      means either the Program or any derivative work under copyright law: that is to say, a work
      containing the Program or a portion of it, either verbatim or with modifications and/or trans-
      lated into another language. (Hereinafter, translation is included without limitation in the term
      "modification".) Each licensee is addressed as "you".

      Activities other than copying, distribution and modification are not covered by this License;
      they are outside its scope.  The act of running the Program is not restricted, and the output
      from the Program is covered only if its contents constitute a work based on the Program
      (independent of having been made by running the Program). Whether that is true depends on
      what the Program does.


   1. You may copy and distribute verbatim copies of the Program's source code as you receive it,
      in any medium, provided that you conspicuously and appropriately publish on each copy an
      appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to
      this License and to the absence of any warranty; and give any other recipients of the Program
      a copy of this License along with the Program.
______________________________________________________________________________________________________F.2.  T*
 *'erminos y Condiciones para la Cop@


      You may charge a fee for the physical act of transferring a copy, and you may at your option
      offer warranty protection in exchange for a fee.


   2. You may modify your copy or copies of the Program or any portion of it, thus forming a work
      based on the Program, and copy and distribute such modifications or work under the terms of
      Section 1 above, provided that you also meet all of these conditions:


        a. You must cause the modified files to carry prominent notices stating that you changed the
           files and the date of any change.

        b. You must cause any work that you distribute or publish, that in whole or in part contains
           or is derived from the Program or any part thereof, to be licensed as a whole at no charge
           to all third parties under the terms of this License.

        c. If the modified program normally reads commands interactively when run, you must cause
           it, when started running for such interactive use in the most ordinary way, to print or
           display an announcement including an appropriate copyright notice and a notice that
           there is no warranty (or else, saying that you provide a warranty) and that users may
           redistribute the program under these conditions, and telling the user how to view a copy
           of this License.  (Exception:  if the Program itself is interactive but does not normally
           print such an announcement, your work based on the Program is not required to print an
           announcement.)


      These requirements apply to the modified work as a whole. If identifiable sections of that work
      are not derived from the Program, and can be reasonably considered independent and separate
      works in themselves, then this License, and its terms, do not apply to those sections when you
      distribute them as separate works.  But when you distribute the same sections as part of a
      whole which is a work based on the Program, the distribution of the whole must be on the
      terms of this License, whose permissions for other licensees extend to the entire whole, and
      thus to each and every part regardless of who wrote it.

      Thus, it is not the intent of this section to claim rights or contest your rights to work written
      entirely by you; rather, the intent is to exercise the right to control the distribution of derivative
      or collective works based on the Program.

      In addition, mere aggregation of another work not based on the Program with the Program (or
      with a work based on the Program) on a volume of a storage or distribution medium does not
      bring the other work under the scope of this License.


   3. You may copy and distribute the Program (or a work based on it, under Section 2) in object
      code or executable form under the terms of Sections 1 and 2 above provided that you also do
      one of the following:


        a. Accompany it with the complete corresponding machine-readable source code, which must
           be distributed under the terms of Sections 1 and 2 above on a medium customarily used
           for software interchange; or,

        b. Accompany it with a written offer, valid for at least three years, to give any third party, for
           a charge no more than your cost of physically performing source distribution, a complete
______________________________________________________________________________________________________222    *
 *                                       Ap'e@


           machine-readable copy of the corresponding source code, to be distributed under the terms
           of Sections 1 and 2 above on a medium customarily used for software interchange; or,

        c. Accompany it with the information you received as to the offer to distribute corresponding
           source code. (This alternative is allowed only for noncommercial distribution and only if
           you received the program in object code or executable form with such an offer, in accord
           with Subsection b above.)


      The source code for a work means the preferred form of the work for making modifications to
      it.  For an executable work, complete source code means all the source code for all modules
      it contains, plus any associated interface definition files, plus the scripts used to control com-
      pilation and installation of the executable.  However, as a special exception, the source code
      distributed need not include anything that is normally distributed (in either source or binary
      form) with the major components (compiler, kernel, and so on) of the operating system on
      which the executable runs, unless that component itself accompanies the executable.

      If distribution of executable or object code is made by offering access to copy from a designated
      place, then offering equivalent access to copy the source code from the same place counts as
      distribution of the source code, even though third parties are not compelled to copy the source
      along with the object code.


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


   5. You are not required to accept this License, since you have not signed it.  However, nothing
      else grants you permission to modify or distribute the Program or its derivative works. These
      actions are prohibited by law if you do not accept this License.  Therefore, by modifying or
      distributing the Program (or any work based on the Program), you indicate your acceptance
      of this License to do so, and all its terms and conditions for copying, distributing or modifying
      the Program or works based on it.


   6. Each time you redistribute the Program (or any work based on the Program), the recipient
      automatically receives a license from the original licensor to copy, distribute or modify the
      Program subject to these terms and conditions. You may not impose any further restrictions
      on the recipients'exercise of the rights granted herein.  You are not responsible for enforcing
      compliance by third parties to this License.


   7. If, as a consequence of a court judgment or allegation of patent infringement or for any other
      reason (not limited to patent issues), conditions are imposed on you (whether by court order,
      agreement or otherwise) that contradict the conditions of this License, they do not excuse you
      from the conditions of this License.  If you cannot distribute so as to satisfy simultaneously
      your obligations under this License and any other pertinent obligations, then as a consequence
      you may not distribute the Program at all. For example, if a patent license would not permit
      royalty-free redistribution of the Program by all those who receive copies directly or indirectly
______________________________________________________________________________________________________F.2.  T*
 *'erminos y Condiciones para la Cop@


      through you, then the only way you could satisfy both it and this License would be to refrain
      entirely from distribution of the Program.

      If any portion of this section is held invalid or unenforceable under any particular circumstance,
      the balance of the section is intended to apply and the section as a whole is intended to apply
      in other circumstances.

      It is not the purpose of this section to induce you to infringe any patents or other property
      right claims or to contest validity of any such claims; this section has the sole purpose of
      protecting the integrity of the free software distribution system,  which is implemented by
      public license practices.  Many people have made generous contributions to the wide range of
      software distributed through that system in reliance on consistent application of that system;
      it is up to the author/donor to decide if he or she is willing to distribute software through any
      other system and a licensee cannot impose that choice.

      This section is intended to make thoroughly clear what is believed to be a consequence of the
      rest of this License.


   8. If the distribution and/or use of the Program is restricted in certain countries either by patents
      or by copyrighted interfaces, the original copyright holder who places the Program under this
      License may add an explicit geographical distribution limitation excluding those countries, so
      that distribution is permitted only in or among countries not thus excluded. In such case, this
      License incorporates the limitation as if written in the body of this License.


   9. The Free Software Foundation may publish revised and/or new versions of the General Public
      License from time to time.  Such new versions will be similar in spirit to the present version,
      but may differ in detail to address new problems or concerns.

      Each version is given a distinguishing version number.  If the Program specifies a version
      number of this License which applies to it and "any later version", you have the option of
      following the terms and conditions either of that version or of any later version published by
      the Free Software Foundation. If the Program does not specify a version number of this License,
      you may choose any version ever published by the Free Software Foundation.


 10.  If you wish to incorporate parts of the Program into other free programs whose distribution
      conditions are different, write to the author to ask for permission. For software which is copy-
      righted by the Free Software Foundation, write to the Free Software Foundation; we sometimes
      make exceptions for this.  Our decision will be guided by the two goals of preserving the free
      status of all derivatives of our free software and of promoting the sharing and reuse of software
      generally.


                                        NO WARRANTY


 11.  BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WAR-
      RANTY  FOR  THE  PROGRAM,  TO  THE  EXTENT  PERMITTED  BY  APPLICABLE
      LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLD-
      ERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WAR-
      RANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
______________________________________________________________________________________________________224    *
 *                                       Ap'e@


      FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PER-
      FORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
      DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
      OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRIT-
      ING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
      AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO
      YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CON-
      SEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
      PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
      RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
      OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
      EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIB-
      ILITY OF SUCH DAMAGES.

                             END OF TERMS AND CONDITIONS
F.3      Ap'endice:  C'omo aplicar estos t'erminos a sus nuevos pro-

         gramas



If you develop a new program, and you want it to be of the greatest possible use to the public, the
best way to achieve this is to make it free software which everyone can redistribute and change under
these terms.

    To do so, attach the following notices to the program. It is safest to attach them to the start of
each source file to most effectively convey the exclusion of warranty; and each file should have at
least the "copyright" line and a pointer to where the full notice is found.


      <one line to give the program's name and a brief idea of what it does.> Copyright Oc19yy
      <name of author>

      This program is free software; you can redistribute it and/or modify it under the terms
      of the GNU General Public License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.

      This program is distributed in the hope that it will be useful, but WITHOUT ANY
      WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

      You should have received a copy of the GNU General Public License along with this
      program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
      MA 02139, USA.


    Also add information on how to contact you by electronic and paper mail.

    If the program is interactive, make it output a short notice like this when it starts in an interactive
mode:
______________________________________________________________________________________________________F.3.  A*
 *p'endice: C'omo aplicar estos t'er@


      Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with
      ABSOLUTELY NO WARRANTY; for details type `show w'.  This is free software, and
      you are welcome to redistribute it under certain conditions; type `show c'for
      details.



   The hypothetical commands `show w'and `show c'should show the appropriate parts of the General
Public License. Of course, the commands you use may be called something other than `show w'and
`show c'; they could even be mouse-clicks or menu items-whatever suits your program.

   You should also get your employer (if you work as a programmer) or your school, if any, to sign
a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:



      Yoyodyne,  Inc.,  hereby  disclaims  all  copyright  interest  in  the  program  `Gnomovi-
      sion'(which makes passes at compilers) written by James Hacker.

      <signature of Ty Coon>, 1 April 1989
      Ty Coon, President of Vice



   This General Public License does not permit incorporating your program into proprietary pro-
grams.  If your program is a subroutine library, you may consider it more useful to permit linking
proprietary applications with the library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
______________________________________________________________________________________________________226    *
 *                                       Ap'e@




Glosario



bugs                       Errores en la confecci'on de un programa.


driver                     programa encargado de servir de intermediario entre el sistema operativo
                           y los distintos dispositivos conectados en el ordenador.


FAQ                        Frecuent  Asked  Question.   Cuesti'on  frecuentemente  preguntada.   Re-
                           copilaci'on de preguntas y respuestas sobre las dudas m'as frecuentes.


FTP                        File Transfer Protocol: Protocolo utilizado para la transmisi'on de ficheros.


GNU                        GNU 's not UNIX. Frase recursiva que representa al proyecto encargado
                           de la protecci'on y creaci'on de software de libre distribuci'on.


hacker                     En su doble acepci'on, persona que posee un nivel muy importante de
                           conocimientos en Unix, experto. Tambi'en se dice que un hacker es aquel
                           que utiliza sus extensos conocimientos de inform'atica para "romper" sis-
                           temas de seguridad.


HOWTO                      Como ir hacia...  como conseguir...  Documentacion espec'ifica obre alg'un
                           aspecto concreto de Linux (impresoras, redes, UPS, etc.


kernel                     n'ucleo.  En Linux, parte principal del sistema operativo.  C'odigo fuente
                           del propio sistema


LDP                        Linux Documentation Project: Proyecto para la Documentaci'on de Linux.


LILO                       LInux LOader.  Cargador de Linux.  Peque"no programa que permite el
                           arranque  de  uno  o  varios  sistemas  operativos  situados  en  una  misma
                           m'aquina.  LILO puede poner en marcha,  OS/2,  Linux,  ms-dos,  Win-
                           dows'95, SCO, etc.


LSM                        Linux Software Map. "Mapa" de software para Linux. Base de datos que
                           recoge la mayor parte del software disponible para Linux, as'i como su
                           autor, descripci'on, localizaci'on, observaciones, etc.


mainframe                  Ordenador principal. Equipo de muy altas prestaciones, Host.


n'ucleo                    kernel.


                                                 227
______________________________________________________________________________________________________228    *
 *                                           @


NFS                        Network Filey System: Sistemas de ficheros en red.


online                     on-line:  en  l'inea,  en  conexi'on.   Documentaci'on  on-line:  documentos
                           disponibles a trav'es de sistemas telem'aticos


script                     Gui'on. Shell script: gui'on para el procesador de 'ordenes. Programa batch.
                           Equivalente en unix a los ficheros BAT de MS-DOS.


shell                      Int'erprete de 'ordenes o comandos.  Programa intermediario entre el sis-
                           tema operativo y el usuario.  Imag'inatelo como si fuera el sustituto del
                           COMMAND.COM  de  ms-dos.   Linux  soporta  varias  shells  diferentes
                           (bash, ksh, cshell...).


stdin                      entrada standard; usualmente el teclado.


stdout                     salida stantard; usualmente la pantalla.


swap                       Intercambio. swap space: Area de intercambio. Memoria virtual. Zona de
                           almacenamiento en disco (fichero o partici'on) que sirve como prolongaci'on
                           de la memoria RAM realmente instalada, permitiendo la ejecuci'on de pro-
                           cesos que, de otra forma, requeririan una ampliaci'on f'isica de dicha RAM.


'Indice  de  Materias



 *, 98                                                  /etc/rc, 152

 - para iniciar opciones de los comandos, 91            /etc/rc.local, 152

 .bash_profile, 127                                     /etc/resolve.conf, 181

 .bashrc, 127                                           /etc/zImage, 133

 .profile, 127                                          /home, 95

 .tcshrc, 127                                           /lib, 95

 /                                                      /proc, 95

     en caminos, 83                                         montaje de, 149

     nombre del directorio raiz, 84                     /sbin, 95

 /Image, 133                                            /tmp, 95

 /bin/bash, 98                                          /usr, 95

 /bin/csh, 98                                           /usr/X11R6/lib/X11/XF86Config, 162

 /bin/sh, 98                                            /usr/X386, 96

 /bin/tcsh, 98                                          /usr/etc, 96

 /dev/console, 94                                       /urs/g++-include, 96

 /dev/cua, 94                                           /usr/include, 96

 /dev/hd, 94                                            /usr/lib, 96

 /dev/lp, 95                                            /usr/local, 96

 /dev/null, 95                                          /usr/man, 97

 /dev/pty, 95                                           /usr/src, 97

 /dev/tty, 95                                           /var, 97

 /dev/ttyS, 94                                          /var/adm, 97

 /etc, 95                                               /var spool, 97

 /etc/Image, 133                                        /vmlinux, 133

 csh.login, 127                                         /vmlinuz, 133

 /etc/fstab, 149                                        /zImage, 133

 /etc/getty, 152                                        <, 102

 /etc/group                                             ?, 100

     formato de, 139                                    'ordenes

 /etc/host.conf, 181                                        - inicio de las opciones, 91

 /etc/hosts, 180                                            sumario de 'ordenes b'asicas, 91-94

 /etc/init, 152                                         ~

 /etc/inittab, 152                                          para referirse al directorio home, 86

 /etc/networks, 181                                     386BSD, 24

 /etc/passwd, 137

 /etc/profile, 127                                      a"nadiendo usuarios, 136


                                                  229
______________________________________________________________________________________________________230    *
 *                                           @


     con adduser, 138                                  borrando usuarios, 138

     con useradd, 138                                  borrar

actualizaciones, 20                                         directorio, 90

addgroup, 139                                               ficheros, 90

adduser, 138                                           Bourne again shell, 98

administraci'on de sistemas                            Bourne shell, 7, 98

     cerrando el sistema, 135-136                      broadcast address

     obligaciones, 132                                      defined, 177

     temas de seguridad, 131                           bugs, 18

administraci'on de usuarios

     a"nadiendo usuarios, 136                          C News, 188

administraci'on del sistema                            C Shell (csh), 7, 98

     arrancando Linux, 133-135                         camino

afio, 143                                                   absoluto, 85

alpha, 19                                                   completo, 85

archivando ficheros, 139-142                                relativo, 85

argument                                               car'acteres comd'in

     command                                                defined, 98

       defined, 82                                     car'acteres comod'in

arrancando, 133-135                                         *, 98

     con LILO, 134-135                                      ?, 100

     de un disquete de mantenimiento, 154                   en nombres de fichero, 98-101

arrancando Linux                                       Caracter'isticas

     con un disquete de arranque, 133                       del sistema, 4-6

arrancando sistemas no-Linux, 134                           kernel, 4-6

arranque, 52                                           cat, 93

ayuda                                                       para ver el contenido de ficheros, 90

     consiguiendo, 33-35                               cd, 86-87, 92

     en l'inea, 91                                     cerrando el sistema, 135-136

ayuda, consiguiendo, 29                                chfn, 138
                                                       chmod, 107

backflops, 143                                         chsh, 138

bases de datos, 15                                     client

bash, 98                                                    news

BBS                                                           defined, 188

     Espa"noles con ficheros Linux(, 217               Coherent, 24

     Espa"noles con ficheros Linux), 218               comando shutdown, 135

     programas de, 14                                  command

BBS, lista de, 211-215                                      argument

beta, 19                                                      defined, 82

bg, 114                                                     defined, 82

/bin, 94                                               command not found error message, 82

booting, 52                                            compra por correo, 39

     problems, 66-68, 74, 75                           compress, 141
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


comprimiendo ficheros, 139-142                         deshabilitando usuarios, 138

comunicaciones, 13-14                                  desmontando sistemas de ficheros, 150

configuration scripts                                  /dev, 94

    for TCP/IP, 178                                    /dev/sd, 95

consola                                                /dev/sr, 95

    defined, 81                                        /dev/st, 95

    nombre de dispositivo para, 94                     dinero, 23

    virtual, 81                                        dip, 182

consolas virtuales, 4, 95                                  chat script for, 185-187

control de tareas, 110-115                                 connecting to SLIP server with, 185-187

controladores de dispositivo, 94                           dynamic IP address with, 184

copia de ficheros, 89                                      static IP address with, 183

copiando el Linux, 219-225                             directorio

copiar Linux, 16-17, 23                                    . para referirnos a, 87

copias de seguridad, 142-143                               /etc, 95

    a disquete, 143                                        /home, 95

    incremental, 143                                       /lib, 95

    multi-volumen, 143                                     /proc, 95

coprocesador matem'atico, 5                                /sbin, 95

copyright, 16-17, 219-225                                  /tmp, 95

core dumps, 6                                              /usr, 95

cp, 89, 92                                                 /usr/X386, 96

csh, 7                                                     /usr/bin, 96

cuenta                                                     /usr/etc, 96

    creaci'on, 80                                          /urs/g++-include, 96

cuenta de usuario                                          /usr/include, 96

    creaci'on, 80                                          /usr/lib, 96

cuenta root, 129-131                                       /usr/local, 96

    consideraciones 'eticas, 131                           /usr/man, 97

    privilegios de, 130                                    /usr/src, 97

    utilizando distinto marcador para, 130                 /var, 97

cuentas definidas por el sistema                           /var/adm, 97

    root, 129                                              /var spool, 97
                                                           'arbol, 84
debugging                                                  anidamiento, 83

    core dumps, 6                                          /bin, 94

deluser, 138                                               borrar, 90

desarrollo                                                 creaci'on, 89

    alpha, 19                                              defined, 83

    beta, 19                                               /dev, 94

    convenciones, 19                                       estructura, 84

desastres                                                     movi'endonos con cd, 86

    recuperaci'on de, 154-156                              home

       con disquete de mantenimiento, 154                     ~ para referirse a, 86
______________________________________________________________________________________________________232    *
 *                                           @


       defined, 84                                          /dev/tty, 95

     listando el contenido de, 87-89                        /dev/ttyS, 94

     padre, 84                                              acceso, 94

       .. para referirnos a, 87                             consola, 94

     raiz                                                   consolas virtuales, 95

       defined, 84                                          discos duros, 94

     trabajo                                                disqueteras, 94

       defined, 84                                          fd, 94

     trabajo actual                                         null, 95

       defined, 84                                          pseudo-terminales, 95

directorio de trabajo                                       puertos paralelo, 95

     defined, 84                                            puertos serie, 94

directorio de trabajo actual                                SCSI, 95

     defined, 84                                       dispositivos SCSI

directorio home                                             nombres para, 95

     ~ para referirse a, 86                            disquete de arranque, 63-64, 154

     defined, 84                                            creando, 133

directorio inicial                                     disquete de mantenimiento, 154

     definido, 137                                     disqueteras

directorio padre, 84                                        nombres de dispositivo para, 94

     .. para referirnos a, 87                          disquetes

directorio raiz                                             como medio de copias de seguridad, 143

     defined, 84                                            desmontando, 144

directorios                                                 sistemas de ficheros en, 143

     permisos                                          disquette

       cambiando, 107                                       arranque/ra'iz, 154

       dependencias de, 107                                 de mantenimiento, 154

       ejecuci'on, 105                                 distribuciones, 19, 37-46

       escritura, 105                                       compra por correo, 39

       lectura, 105                                         fuentes on-line, 39

disco duro                                                  Internet, adquiri'endolo desde, 38

     problemas, 70                                          lista, 199-201

discos duros                                           documentaci'on, 191-197

     nombre de dispositivo para, 94                         documentos HOWTO, 192

dispositivos                                                ficheros info, 8

     /dev/console, 94                                       Frequently Asked Questions, 191

     /dev/cua, 94                                           libros, 31, 194-197

     /dev/hd, 94                                            Linux Documentation Project, 31

     /dev/lp, 95                                            Linux Software Map, 16

     /dev/null, 95                                          online, 30, 191-193

     /dev/pty, 95                                             FAQ, 30

     /dev/sd, 95                                              HOWTO, documentos, 30

     /dev/sr, 95                                            Proyecto  de  Documentaci'on  de  Linux,

     /dev/st, 95                                                193-194
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


    texinfo, 8                                         estabilidad, 23

documentos HOWTO, 192                                  ethernet, 13

Doom, 16                                                   supported cards, 175

                                                       exit, 83
e-mail, 187-188                                        expansi'on de comodines

    mailer                                                 defined, 99

       defined, 187                                    exportar, 124

    transport

       defined, 187                                    FAQ, 30

e2fsck, 150, 155                                       fcheros

echo, 93                                                   pertenencia a un usuario, 105

editor                                                 fdisk, 50, 55-58

    defined, 115                                           bajo MS-DOS, 51

editor de texto                                        fg, 114

    comparando, 115                                    fichero

    defined, 115                                           ejecutable

editores, 6                                                   definici'on, 88

editores de texto, 6                                   fichero de intercambio, 151-152

efsck, 150                                                 creando temporal, 152

ejecutable                                             fichero de itnercambio

    definici'on, 88                                        borrando, 152

ejecutables, 5                                         fichero de password

elm, 187                                                   formato de, 137

Emacs, 6, 115                                          fichero null, 95

emergencias                                            ficheros

    recuperaci'on de, 154-156                              a"nadir a, 104

       con disquete de mantenimiento, 154                  archivando, 139-142

enlaces, 108-110                                           borrar, 90

    duros, 108                                             comprimiendo, 139-142

    mostrar n'umero de, 109                                copia, 89

    simb'olicos, 109                                       defined, 83

entorno                                                    dispositivos, 94

    personalizaci'on, 122-127                              enlaces, 108-110

    variables                                              listado, 87-89

       PATH, 126                                           listando permisos con ls, 106

entrada                                                    mover, 90

    redirecci'on, 102                                      n'umeros de inodo, 108

entrada estandard, 101-105                                 ocultos

    redirecci'on, 102                                         no cuadran con comodines, 99

error messages                                             permisos

    error messages                                            cambiando, 107

       command not found, 82                                  defined, 105

espacio de intercambio, 5                                     dependencias de, 107

est'andares, 4                                                ejecuci'on, 105
______________________________________________________________________________________________________234    *
 *                                           @


       escritura, 105                                       defined, 177
       grupos, 139                                     gcc
       interpretando, 106                                   actualizando, 147
       lectura, 105                                    gdb, 10
     permisos de, 105-108                              General Public License, 16-17, 219-225
     pertenencia a un grupo, 105                       gestores de correo, 13
     recuperaci'on, 156                                getty, 152
     salvaguarda, 142-143                              GID
     viendo el contenido de, 90                             definici'on, 136
ficheros de comandos de arranque, 152                  GNU, 6
ficheros de comandos de inicializaci'on, 152                General Public License, 16-17, 219-225
ficheros de inicializaci'on                            gprof, 10
     para int'erpretes de comandos, 127                grep, 93
FidoNet, 14                                            groff, 7
files                                                  nroff, 7
     MS-DOS, 174                                       group ID
filesystems, 5, 48                                          definici'on, 136
     creaci'on, 59-60                                  groupadd, 139
     root, 48                                          groups, 139
filtros                                                grupos, 105, 139
     definici'on, 103                                       a"nadiendo, 139
find                                                        borrando, 139
     para copias de seguridad incrementales,           guiones de inicializaci'on
          143                                               para int'erpretes de comandos, 126
FIPS, 50                                               guiones de int'erprete de comandos
floating-point math, 5                                      defined, 123
free software, 16                                      guiones del int'erprete de comandos, 7
Free Software Foundation, 16, 219                           comentarios, 123
Frequently Asked Questions, 191                             inicializacion, 126
fsck, 150, 155                                              permisos para, 123
FTP                                                         variables en, 124
     an'onimo, 38                                      gzip, 141
     anonymous, 38
     lista de sites, 209                               halt, 136
     uso, 203-209                                      hardware
ftp                                                         problemas
     Espa"noles(, 217                                         conflictos, 68-69
     Espa"noles), 217                                         disco duro, 70-71
ftpmail, 208                                                  SCSI, 71-72
Fuentes de informaci'on                                     problems, 68-72
     en Espa"na, 217-218
fuentes de informaci'on, 191-197                       hardware support
functionalidad, 20                                          ethernet cards, 175
                                                            video card, 158

gateway address                                        hostname
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


    hostname, 153                                          defined, 127

    defined, 80                                        int'erpretes de comandos, 97-98

    setting, 182                                           Bourne again shell, 98

hostname, 182                                              Bourne shell, 98

HOWTO, documentos, 30                                      C shell, 98

HURD, 24                                                   car'acteres comod'in para, 98-101
                                                           defined, 81

ifconfig, 178                                              definici'on, 97

inetd, 179                                                 ficheros de inicializaci'on, 127

Ingres, 15                                             Internet, 12, 38

init, 152                                                  mailing lists (listas de correo), 32

inittab, 152                                           IP address

INN, 188                                                   defined, 176

instalaci'on, 37-77                                    IRQ, 68

    arranque de Linux, 52

    booting Linux, 52                                  job control, 4

    disquete de arranque, 63-64                        juegos, 16

    LILO, 63-64                                            Doom, 16

    mke2fs, 59-60                                      kernel

    mkswap, 58-59                                          Caracter'isticas, 4-6

    otros procedimientos, 64

    preparaci'on, 46-51                                LATEX, 7

    problemas, 65-77                                   lectores de noticias, 13

    rehaciendo particiones, 47                         lectura

    reparticionado, 50-51                                  recomendado, 194-197

    Visi'on general de la instalaci'on, 46-47          librar'ias

installation                                               compartidas, 5

    problems                                               shared, 5

       booting, 66-68, 74, 75                          librer'ias

       errors, 72                                          actualizando, 146

       file permissions, 76                                arreglando corrompidas, 156

       hardware, 68-72                                 librer'ias, 10

       LILO, 75                                        libros, 194-197

       logging in, 76                                  LILO, 63-64, 134-135

       media errors, 72                                    como cargador de arranque, 134

       postinstallation, 74-77                             instalaci'on, 134

int'erprete de comandos, 6                                 problems booting, 66

    expansi'on de comodines, 99                            problems installing, 75

    variables                                              seleccionando el sistema operativo por de-

       defined, 124                                             fecto para, 135

int'erprete de conexi'on                               Linux, 1-225

    definici'on, 137                                       adquirir, 38

    poni'endolo con chsh, 138                              bugs, 18

Int'erprete de presentaci'on                               Caracter'isticas del sistema, 4-6
______________________________________________________________________________________________________236    *
 *                                           @


     copiar, 23                                        modo protegido, 5

     copyright, 16-17, 219-225                         more, 90, 93

     desarrollo, 18                                    Motif, 12

     distribuciones, 19                                mount, 148

     estabilidad, 23                                        montando disquetes con, 143

     filosof'ia, 17-20                                      to mount MS-DOS partition, 174

     fuentes de informaci'on, 29                       movimiento de ficheros, 90

     historia, 2                                       MS-DOS, 21-22

     instalaci'on, 37-77                                    accediendo a ficheros desde, 15

     pronunciaci'on, 1                                      accessing files from, 174

     soporte comercial, 33                                  emulador, 14

     y el coste, 23                                         emulator, 174

Linux Documentation Project, 31                             mounting partion under Linux, 174

Linux Journal, 194                                          reparticionado, 51

Linux Software map, 16                                      running programs from Linux, 174

Linux-Activists mailing list, 33                            using Mtools to access files, 174

listando el contenido de directorios, 87-89            multitarea, 4

logging in, 80                                              defined, 80

     problems, 76                                      multitasking, 4

logging out                                            multiusuario

     con la orden exit, 83                                  defined, 80

login, 80                                              mv, 90, 92

ls, 87-89, 92

     listando permisos de ficheros con, 106            n'ucleo
                                                            actualizando, 145

mailer                                                      compilando, 145

     for e-mail, 187                                        compilando una imagen comprimida, 146

mailing lists, 32                                           fuentes del, 145

     Linux-Activists, 33                                    imagen comprimida del, 133

mailx, 187                                                  nombre de fichero de la imagen del, 133

man, 91, 93                                            n'umero de inodo

mandando tareas a segundo plano, 112                        defined, 108

Mapa de Software de Linux, 192                         named, 180

master boot record, 48                                 nameserver address

kill, 113                                                   defined, 177

Mbase, 15                                              NET-2, 175

METAFONT, 10                                                support for serial line Internet protocol

Microsoft Windows, 15                                           (SLIP), 175

     emulator, 174                                     NetBSD, 24

Minix, 3, 24                                           netstat, 182

mkdir, 89, 93                                          network address

mke2fs, 59-60                                               defined, 177

     para disquete, 143                                network mask

mkswap, 58-59, 151                                          defined, 176
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


networking, 5                                              defined, 80
    ethernet cards, supported, 175                     palabra de paso
    NET-2, 175                                             cambiandola con passwd, 83
    news, 188-189                                      partici'on de intercambio
    NFS, 180                                               en /etc/fstab, 149
    PPP, 183                                           particiones, 47, 49
    SLIP, 175                                              conceptos, 47
    tarjetas ethernet, soportadas, 29                      fdisk, 50, 55-58
    TCP/IP, 175-187                                        Linux, 54-55
    UUCP, 187                                              tama"no, 49
news, 188-189                                          passwd, 83, 138
    client                                             password
       defined, 188                                        arreglando la de root, 155
    news readers                                       permisos
       defined, 188                                        cambiando, 107
       rn, 188                                             de ficheros, 105-108
       rn, 188                                             defined, 105
    server                                                 dependencias de, 107
       C News, 188                                         ejecuci'on, 105
       defined, 188                                        escritura, 105
       INN, 188                                            grupos, 139
    UUCP, 187                                              interpretando, 106
news readers                                               lectura, 105
    defined, 188                                           para los guiones del int'erprete de coman-
NFS, 180                                                        dos, 123
nombre completo                                        permissions
    poni'endolo con chfn, 138                              problems, 76
nombre con camino (pathname)                           pipes
    defined, 83                                            creaci'on, 103
nombre de fichero                                          definici'on, 103
    defined, 83                                            uso de, 103-104
nombre de usuario                                      POSIX.1, 4
    defined, 80                                        Postgres, 15
    definici'on, 136                                   PPP, 5, 183
nombre del ordenador                                   problemas
    estableciendo, 153                                     ayuda para resolver, 65-77
nombres de ficheros                                    procesadores de texto, 9
    car'acteres comod'in en, 98-101                    proceso de textos, 7-10


ordenes                                                proceso en primer plano, 111
    agrupando con guiones, 123                         proceso en segundo plano, 111
OS/2, 22-23                                            procesos
                                                           defined, 110

p'aginas de manual, 91                                     ID
palabra clave                                                 defined, 110
______________________________________________________________________________________________________238    *
 *                                           @


     interrumpir, 111                                       NNTP, 13

     interrupci'on, 112                                     SLIP, 13

     kill, 112                                              UUCP, 13

     primer plano, 111                                      y X Windows, 13

     ps para listar, 110                               redirecci'on

     segundo plano, 111                                     entrada estandard, 102

       matar, 113                                           no destructiva, 104

programaci'on, 10-11                                        salida estandard, 102

     core dumps, 6                                     reparticionado, 50-51

     lenguajes, 10                                          fdisk, 50

     librer'ias, 10                                           bajo MS-DOS, 51

     UNIX, 11                                               FIPS, 50

     utilidades, 10                                    rm, 90, 92

Programas de BBS                                       rmdir, 90, 93

     FidoNet, 14                                       rn, 188

Proyecto de Documentaci'on de Linux, 193-194           root

ps, 110                                                     arreglando la password de, 155

pseudo-terminales, 95                                  root filesystem, 48

puertos paralelos                                      route, 178

     nombre de dispositivo para, 95                         entry in /etc/networks required for, 181

puertos serie                                          routed, 179

     nombre de dispositivo para, 94

punto de montaje                                       salida

     definici'on, 144                                       redirecci'on, 102
                                                       salida estandard, 101-105

ra'iz, dispositivo                                          redirecci'on, 102

     poniendo el nombre de con rdev, 133               script, 7

RAWRITE.EXE, 38                                        scripts de arranque, 152

rc, 152                                                scripts de inicializaci'on, 152

     files                                             SCSI

       defined, 178                                         problemas, 71-72

       for TCP/IP, 178                                 Se"nal EOT (end of text,fin de texto), 101

rc.inet, 178                                           se"nal fin-de-texto, 101

rc.inet1, 178                                          seguridad, 131

     sample, 178                                       seguridad del sistema, 131

rc.inet2, 178, 179                                     sendmail, 187

     sample, 180                                       serial line Internet protocol, 175, 182-187

rc.local, 152                                          setenv, 124

rc.net, 178                                            Seyon, 14

rdev, 133                                              shareware, 17

redes, 5, 12-13                                        shell

     FTP, 13                                                int'erpretes de comandos, 97

     news, 13                                          shells, 6

     NFS, 13                                                control de tareas proporcionado por, 110
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


    prompt, 82                                             cinta, unidades de, 28

shutdown orden, 65                                         controladora, 26

sistema de archivos, 48                                    CPU, 25

    ra'iz, 48                                              disco duro, 26

    root, 48                                               espacio de la unidad, 27

sistema de ficheros                                        impresoras, 28

    explorando, 94-97                                      memoria, 26

Sistemas de archivos, 5                                    modems, 28

sistemas de archivos                                       monitor, 27

    creaci'on, 59-60                                       PCI, 26

sistemas de ficheros, 148-151                              placa base, 25

    /etc/fstab, 149                                        rat'on, 28

    arreglando corrompidos, 155                            SCSI, 26, 28

    comprobando, 150                                       tarjetas ethernet, 29

    desmontando, 150                                       VESA, 26

       desmontando con shutdown o halt, 150                video, tarjeta de, 27

    en disquete, 143                                   slattach

    montando, 148-150                                      static IP addresses with, 184

sistemas oeprativos                                    stdin, 101

    arrancando no-Linux, 135                           stdout, 101

sistemas operativos                                    super bloque

    arrancando no-Linux, 134                               corrompido, arreglo, 155

Slackware                                                  definici'on, 155

    conseguir, 40-46                                   swap, 26

    instalando, 60-63                                      creaci'on espacio de, 58-59

slattach, 182                                          swap space, 5

SLIP, 5, 13, 175, 182-187                              swap: espacio de, 49

    connecting to servier with dip, 185                swap: fichero de, 49

    device names for, 184                              swapoff, 152

    dynamic IP address with dip, 184                   swapon, 149, 151

    static IP address with dip, 183                    syslogd, 179

    static IP address with slattach, 184

Smail, 187                                             tabla de particiones, 48

software, 6-16                                         Tanenbaum, Andy, 3

    actualizando, 144-148                              tar, 140

    bash, 7                                            tarea

    donde encontrar versiones, 147                         defined, 110

    instalando, 144-148                                    parada, 113

    tcsh, 7                                                primer plano, 111

software cient'ifico, 15                                   relanzamiento, 114

soporte comercial, 33                                      segundo plano, 111, 112, 114

soporte de sonido, 16                                         matar, 113

soporte hardware, 24-29                                    suspendido, 111

    CD-ROM, 28                                         tareas
______________________________________________________________________________________________________240    *
 *                                           @


     interrumpir, 111                                  term, 14

     interrupci'on, 112                                TEX, 7

     matar, 112                                        texinfo, 8

jobs, 112                                              tin, 188

TCP/IP, 5, 12-14, 175-187                              Torvalds, Linus, 3, 18

     /etc/host.conf, 181                               transport

     /etc/hosts, 180                                        for e-mail, 187

     /etc/networks, 181                                tuber'ias

     /etc/resolve.conf, 181                                 creaci'on, 103

     broadcast address, 177                                 definici'on, 103

     configuration scripts for, 178                         uso de, 103-104

     configuring, 176

     debugging, 182                                    UID

     displaying routing tables, 182                         definici'on, 136

     gateway address, 177                              umount, 150

     hardware requirements for, 175                         desmontando disquetes con, 144

     ifconfig, 178                                     UNIX

     inetd, 179                                             comercial, 20, 23-24

     IP address, 176                                        commercial, 18

     named, 180                                             conceptos b'asicos, 80-86

     nameserver address, 177                                estructura de directorios, 84

     NET-2 implementation of, 175                           gur'us, 1

     network address, 177                                   implementaciones gratuitas, 24

     network mask, 176                                      multitarea

     over serial line, 182-187                                defined, 80

     point-to-point connection, 183                         p'aginas de manual para, 91

     PPP, 183                                               para PCs, 23-24

     rc.inet, 178                                           popularidad, 2

     rc.inet1, 178                                     USENET, 188-189

       sample, 178                                          newsgroups relacionadas con Linux, 31

     rc.inet2, 178                                          poniendo mensajes, 34

       sample, 180                                     user ID

     rc.net, 178                                            definici'on, 136

     route, 178                                        useradd, 138

     routed, 179                                       userdel, 138

     SLIP, 182-187                                     usuarios

       device names for, 184                                a"nadiendo, 136

       dynamic IP address with dip, 184                       a"nadiendo con adduser, 138

       static IP address with dip, 183                        a"nadiendo con useradd, 138

       static IP address with slattach, 184                 borrando, 138

     syslogd, 179                                           cambiando el int'erprete de conexi'on de,

     troubleshooting, 182                                       138

Tcsh, 98                                                    cambiando el nombre completo de, 138

tcsh, 98                                                    clave de, 136
______________________________________________________________________________________________________'INDICE*
 * DE MATERIAS                      @


    deshabilitando, 138                                XFree86, 11, 157
    directorio inicial de, 137                             configuration file for, 162
    en grupos, 105                                         configuring, 162
    fijando reglas para, 132                               hardware requirements for, 158
    group ID de, 136                                       installing, 160
    Int'erprete de conexi'on de, 137                       RAM requirements for, 160
    lista de grupos para, 139                              video chipsets supported by, 158
    nombre completo de, 136                            xfsck, 150
    nombre de , 136                                    X Window System, 11-12, 157-174
    poniendo atributos de, 138                             defined, 157
    poniendo la password de, 138
    seguridad del sistema y, 131
    user ID de, 136
UUCP, 13, 187


variables
    en guiones, 124
    entorno, 124
    int'erprete de comandos, 124
variables del int'erprete de comandos
    exportando al entorno, 124
vendedor
    lista, 199-201
vi, 6, 115-122
    borrando texto, 118-119
    comandos del int'erprete desde, 121
    comenzando, 116
    conmutando entre ficheros, 121
    escribiendo cambios, 120
    guardando cambios, 120
    incluyendo ficheros, 121
    insertando texto, 117-118
    modificando texto, 119-120
    modo 'ordenes, 116
    modo 'ultima l'inea, 116
    modo inserci'on, 116
    moviendo el cursor, 120
    saliendo, 120
Volkerding, Patrick, 40


Windows NT, 22-23
WINE, 15


X11R6, 157
XF86Config, 162
