____________________________________________________________________________
Copyright Oc 1992-1996 Matt Welsh (Traducción:
Proyecto
LuCAS)
Versión 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ón y guía para nuevos usuarios del
sistema
Linux,
dirigido tanto a los más nóveles en UNIX, como a los
más expertos. Contiene información sobre como conseguir el
Linux, la
instalación de nuevo software, un tutorial para
principiantes de UNIX y una
introducción a la administración del sistema. Hemos
pretendido ser tan genéricos 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ón gratuíta. Esto quiere
decir que puedes copiarlo y redistribuirlo pero bajo determinadas
condiciones. Por favor, mira el copyright y las notas sobre su
distribución en la página
xiii.
índice General
Prefacio x
Audiencia . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . x
Organización del Libro . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. x
Reconocimientos . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . xi
La traducción . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . xii
Créditos y aspectos Legales . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . xii
Notación usada en el documento . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . xiv
1 Introducción a Linux
16
1.1 Sobre este libro . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 16
1.2 Breve historia de Linux . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.3 Características del sistema . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.4 Software . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
1.4.1 Comandos y
utilidades básicas . . . . . . . . . . . . . . . . . . . .
. . . . . . 20
1.4.2 Formateado y proceso de
textos . . . . . . . . . . . . . . . . . . . . . . . . . .
21
1.4.3 Lenguajes de
programación y utilidades . . . . . . . . . . . . . .
. . . . . . . 24
1.4.4 El sistema X Window
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
1.4.5 Redes . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
1.4.6 Programas de
comunicaciones
y BBS . . . . . . . . . . . . . . . . . . . . . . . 27
1.4.7 Enlazando con MS-DOS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
28
1.4.8 Otras aplicaciones . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 28
1.5 Acerca del Copyright . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 29
1.6 Diseño
y filosofía de Linux . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 30
1.6.1 Consejos para novatos en UNIX . . . . . .
. . . . . . . . . . . . . . . . . . . . 32
1.6.2 Consejos para los gurús . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 33
1.7 Diferencias Entre Linux y Otros Sistemas
Operativos . . . . . . . . . . . . . . . .33
1.7.1 ¿Por qué usar Linux? . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 33
1.7.2 Linux vs. MS-DOS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
1.7.3 Linux vs. Otros Sistemas
Operativos . . . . . . . . . . . . . . . . . . . . . . .
35
1.7.4 Otras implementaciones de UNIX . . . . . .
. . . . . . . . . . . . . . . . . . . 35
1.8 Requerimientos de Hardware . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 37
1.8.1 Requisitos de Placa Base y de CPU . . . . .
. . . . . . . . . . . . . . . . . . 37
1.8.2 Requisitos de memoria . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
38
1.8.3 Requisitos de la controladora de disco duro . .
. . . . . . . . . . . . . . . . .38
1.8.4 Requisitos de espacio en disco . . . . . . . . . .
. . . . . . . . . . . . . . . . . 39
1.8.5 Requisitos de monitor y
adaptador de vídeo . . . . . . . . . . . . . . . . . . .
39
1.8.6 Hardware diverso . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
1.8.7 Tarjetas Ethernet . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
1.9 Fuentes de
información sobre Linux . . . . . . . . . .
. . . . . . . . . . . . . . . . . 42
1.9.1 Documentación On-Line . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 42
1.9.2 Linux en el WWW . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 42
1.9.3 Libros y otras
publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 42
1.9.4 Grupos de NEWS
USENET . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
1.9.5 Listas de correo en Internet . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 44
1.10 Cómo obtener ayuda . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 45
2 Obtención e Instalación de Linux
47
2.1 Distribuciones de Linux . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 47
2.1.1 Conseguir Linux desde Internet . . . . . . . . . .
. . . . . . . . . . . . . . . . 48
2.1.2 Conseguir Linux desde otras fuentes online
. . . . . . . . . . . . . . . . . . .49
2.1.3 Conseguir Linux por correo . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 49
2.1.4 Conseguir la Slackware . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 49
2.2 Preparación para instalar Linux . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 56
2.2.1 Visión general de la instalación . .
. . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.2 Conceptos sobre particiones . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 57
2.2.3 Necesidades de reparticionado en Linux . . . . . .
. . . . . . . . . . . . . . . 58
2.2.4 Reparticionado de los discos . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 59
2.3 Instalación del software de Linux . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.1 Arranque de Linux . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 61
2.3.2 Dispositivos y particiones en Linux . . . . . . .
. . . . . . . . . . . . . . . . . 63
2.3.3 Creación de las particiones en Linux . . .
. . . . . . . . . . . . . . . . . . . . 64
2.3.4 Creación del espacio de intercambio (swap)
. . . . . . . . . . . . . . . . . . . 68
2.3.5 Creación de los sistemas de
ficheros . . . . . . . . . . . . . . . . . . . . . . . .
69
2.3.6 Instalación del software . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 70
2.3.7 Creación del disco de arranque o
instalación del LILO . . . . . . . . . . . 73
2.3.8 Otros procedimientos de
instalación . . . . . . . . . . . . . . . . . . . . . . .
74
2.4 Procedimientos
post-instalación . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 74
2.5 Resolviendo problemas . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
2.5.1 Problemas con
el arranque . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 75
2.5.2 Problemas con
el hardware . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 77
2.5.3 Problemas con
la instalación del software . . . . . . . . . . . . . . .
. . . . . 82
2.5.4 Problemas
después de instalar Linux . . . . . . . . . . . . . . . .
. . . . . . . 83
3 Tutorial de Linux 87
3.1 Introducción . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2 Conceptos básicos de UNIX . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
87
3.2.1 Creación de una cuenta . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 88
3.2.2 Presentación en el sistema (loggin
in) . . . . . . . . . . . . . . . . . . . . . . 88
3.2.3 Consolas virtuales . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 89
3.2.4 Intérpretes de comandos y
comandos . . .
. . . . . . . . . . . . . . . . . . . . 89
3.2.5 Salida del sistema . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 91
3.2.6 Cambiando la palabra de paso . . . . . . . . . . .
. . . . . . . . . . . . . . . . 91
3.2.7 Ficheros y directorios . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 91
3.2.8 El árbol de directorios . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 92
3.2.9 Directorio de trabajo actual . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 92
3.2.10 Refiriendose al directorio home . . . . . . . . .
. . . . . . . . . . . . . . . . . 94
3.3 Primeros pasos en UNIX . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 94
3.3.1 Moviendonos por el entorno . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 95
3.3.2 Mirando el contenido de los directorios . . . . .
. . . . . . . . . . . . . . . . . 96
3.3.3 Creando directorios nuevos . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 97
3.3.4 Copia de ficheros . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 98
3.3.5 Moviendo ficheros . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 98
3.3.6 Borrando ficheros y directorios . . . . . . . . .
. . . . . . . . . . . . . . . . . 99
3.3.7 Mirando los ficheros . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 99
3.3.8 Obteniendo ayuda en línea . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 99
3.4 Sumario de Ordenes Básicas . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 100
3.5 Explorando el Sistema de Ficheros . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 102
3.6 Tipos de intérpretes de comandos . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 106
3.7 Carácteres comodín . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
106
3.8 Fontanería UNIX . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 109
3.8.1 Entrada y salida estandard . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 109
3.8.2 Redireccionando la entrada y salida . . . . . . .
. . . . . . . . . . . . . . . . 110
3.8.3 Uso de tuberías (pipes) . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 111
3.8.4 Redirección no destructiva . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 112
3.9 Permisos de Ficheros . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 113
3.9.1 Conceptos de permisos de ficheros . . . . . . . .
. . . . . . . . . . . . . . . . 113
3.9.2 Interpretando los permisos de ficheros . . . . . .
. . . . . . . . . . . . . . . . 114
3.9.3 Dependencias . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 115
3.9.4 Cambiando permisos . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 115
3.10 Manejando enlaces de ficheros . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 116
3.10.1 Enlaces duros (Hard links) . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 116
3.10.2 Enlaces simbólicos . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 117
3.11 Control de Tareas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 118
3.11.1 Tareas y procesos . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118
3.11.2 Primer plano y Segundo plano . . . . . . . . . .
. . . . . . . . . . . . . . . . 119
3.11.3 Envío a segundo plano y eliminación
procesos . . .
. . . . . . . . . . . . . . . 120
3.11.4 Parada y relanzamiento de tareas . . . . . . . .
. . . . . . . . . . . . . . . . . 122
3.12 Usando el editor vi . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 124
3.12.1 Conceptos . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 124
3.12.2 Comenzando con vi . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 125
3.12.3 Insertando texto . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
3.12.4 Borrando texto . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
127
3.12.5 Modificando texto . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
128
3.12.6 Ordenes de movimiento . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
3.12.7 Guardando ficheros y saliendo de vi . . . . . . .
. . . . . . . . . . . . . . . . 129
3.12.8 Editando otro fichero . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 130
3.12.9 Incluyendo otros ficheros . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 131
3.12.10Ejecutando comandos del
intérprete . . . . . . . . . . . . . . . . . . . . . . .
131
3.12.11Obteniendo ayuda . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 132
3.13 Personalizando su entorno . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 132
3.13.1 Guiones del intérprete de comandos . . . .
. . . . . . . . . . . . . . . . . . . 132
3.13.2 Variables del
intérprete de comandos y el entorno . . . . . . . . . . .
. . . 133
3.13.3 Guiones de inicialización del
intérprete . . . . . . . . . . . . . . . . . . . . . .
136
3.14 ¿Quieres seguir por tu cuenta? . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 137
4 Administración del Sistema 138
4.1 Acerca de Raíces, Sombreros y la
Sensación de Poder . . . .
. . . . . . . . . . . 138
4.1.1 La cuenta root . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 138
4.1.2 Abusando del sistema . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 139
4.1.3 Como proceder con los usuarios . . . . . . . . . .
. . . . . . . . . . . . . . . . 140
4.1.4 Fijando las reglas . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 140
4.1.5 Lo que todo esto significa . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 141
4.2 Arrancando el Sistema . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 141
4.2.1 Utilizando un disquete de arranque . . . . . . . .
. . . . . . . . . . . . . . . . 141
4.2.2 Utilizando LILO . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 142
4.3 Cerrando el Sistema . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 144
4.4 Gestión
de Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 144
4.4.1 Conceptos de gestión
de usuarios . . . . . . . . . . . . . . . . . . . . . . . . .
145
4.4.2 Añadiendo usuarios . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 146
4.4.3 Borrando usuarios . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 146
4.4.4 Poniendo atributos de usuario . . . . . . . . . .
. . . . . . . . . . . . . . . . . 147
4.4.5 Grupos . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 147
4.5 Archivando y Comprimiendo Ficheros . . . . . . . . .
. . . . . . . . . . . . . . . . . 148
4.5.1 Utilizando tar . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 148
4.5.2 gzip y compress . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 149
4.5.3 Juntándolo todo . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 150
4.6 Usando Disquetes y Haciendo Copias de Seguridad . . . .
. . . . . . . . . . . . . 151
4.6.1 Utilizando disquetes para copias de seguridad . . . .
. . . . . . . . . . . . . 151
4.6.2 Utilizando disquetes como sistemas de
ficheros . . . . . . . . . . . . . . . .152
4.7 Actualizando e Instalando Nuevo Software . . . . . .
. . . . . . . . . . . . . . . . . . 153
4.7.1 Actualizando el núcleo . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 154
4.7.2 Actualizando las librerías . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 155
4.7.3 Actualizando gcc . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 156
4.7.4 Actualizando otro software . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 156
4.8 Gestionando Sistemas de
Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 156
4.8.1 Montando sistemas de
ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . .
157
4.8.2 Comprobando sistemas de
ficheros . . . . . . . . . . . . . . . . . . . . . . . .
158
4.9 Utilizando un fichero de intercambio . . . . . . . .
. . . . . . . . . . . . . . . . . . . 159
4.10 Tareas Varias . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 161
4.10.1 Ficheros de arranque del sistema . . . . . . . .
. . . . . . . . . . . . . . . . . 161
4.10.2 Estableciendo el nombre del ordenador . . . . . .
. . . . . . . . . . . . . . . . 161
4.11 Qué Hacer En Una Emergencia . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 162
4.11.1 Recuperación utilizando un disquete de
mantenimiento
. . . . . . . . . 163
4.11.2 Arreglando la password de root . . . . . . . . .
. . . . . . . . . . . . . . . . . 163
4.11.3 Arreglando sistemas de ficheros corrompidos . . .
. . . . . . . . . . . . . . .164
4.11.4 Recuperando ficheros perdidos . . . . . . . . . .
. . . . . . . . . . . . . . . . 164
4.11.5 Arreglando librerías corrompidas . . . . .
. . . . . . . . . . . . . . . . . . . . 164
5 Características avanzadas 165
5.1 El sistema X Window . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 165
5.1.1 Requisitos de hardware . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 165
5.1.2 Instalación de XFree86 . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 168
5.1.3 Configuración de XFree86 . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 170
5.1.4 Introducción de los datos de la
tarjeta gráfica . . . . . . . . . . . . . . . . . .
177
5.1.5 Funcionamiento de XFree86 . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 180
5.1.6 Ejecución con problemas . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 181
5.2 Acceso a ficheros MS-DOS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182
5.3 Redes con TCP/IP . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
5.3.1 Hardware requerido . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
183
5.3.2 Configuración de TCP/IP . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 184
5.3.3 Configuración de SLIP . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 190
5.3.4 Utilización de dip . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 193
5.4 Red con UUCP . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
5.5 Correo
Electrónico . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 195
5.6 News y USENET . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 196
A Fuentes de
Información de Linux 198
A.1 Documentos en
Línea . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 198
A.2 Manuales del
Proyecto de
Documentación de Linux . . . . . . . . . . . . . . . .
.200
A.3 Libros y Otros
Trabajos Publicados . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 201
A.3.1 Usando UNIX . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 201
A.3.2 Administración de Sistemas . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 202
A.3.3 The X Window System . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 203
A.3.4 Programación . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 203
A.3.5 Manejo del Kernel . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 204
B Lista de Vendedores de Linux 205
C Tutorial de FTP y Lista de
Sites 208
C.1 Aprendiendo ftp . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
208
C.2 Registrandose . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 209
C.3 Moviendonos dentro . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 209
C.4 Traerse ficheros . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 211
C.5 Saliendo de FTP . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
213
C.6 Usando ftpmail . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 213
C.7 Lista de FTP Sites de
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 214
D Lista de BBS de Linux 215
D.1 Estados Unidos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 215
D.2 Fuera de los Estados Unidos .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
216
E Linux en España
219
E.1 Internet Sites en España . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219
E.2 BBS Españoles con ficheros Linux . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 219
F The GNU General Public License 221
F.1 Preámbulo . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 221
F.2 Términos y Condiciones para la Copia,
Distribución y Modificación . . .
.222
F.3 Apéndice: Cómo aplicar estos
términos a sus nuevos programas . . . .
. . . 225
Glosario 227
Indice de Materias 228 – 246
Prefacio
"You are in a maze of twisty little passages, all
alike."
Tiene ante usted a uno de los sistemas más
completos y amenazantes que jamás se ha
escrito:
Linux, el clónico de UNIX gratuito para el
ordenador personal (PC),
generado por un heterogeneo
equipo formado por gurús de UNIX y hackers junto al
recién llegado de turno. El sistema en sí
refleja
esta compleja herencia y, a
pesar de que el desarrollo de
Linux puede parecer un esfuerzo voluntario
desorganizado, el sistema es potente, rápido y
gratuito. Es un verdadero sistema operativo
de 32 bits (1).
_________________________________________
(1) N. del T.: En la actualidad ya existen versiones de
64-bits para algunas otras plataformas hardware distintas del
PC.
________________________________________________________________________________
Mis propias experiencias con Linux comenzaron hace
años, cuando me senté a adivinar como
instalar la única "distribución" disponible en aquel tiempo_un
par de disquetes que me hizo llegar
H.J. Lu. Descargué una pila de ficheros y
leí páginas y páginas de notas de
instalación líbremente
organizadas. De algún modo, conseguí
instalar este sistema básico 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ás rápido y más potente
sistema
operativo que existe para el ordenador personal.
Instalar su propio sistema Linux puede ser un gran
momento de diversión_de modo que coja una taza de
café, sientese cómodamente, y siga
leyendo.
Mientras esté con ello coja una taza
también para mí. Yo también he estado
despierto enredando
con el Linux durante días.
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ásicos sobre ordenadores personales y sistemas
operativos tales como MS-DOS, pero
no se asume ningún conocimiento
previo sobre Linux o UNIX.
A pesar de esto, sugerimos a los principiantes de UNIX
que investiguen en alguno de los muchos
y buenos libros que
existen sobre él. Algunos de ellos aparecen listados en el
Apéndice A.
Organización del Libro
Este libro contiene los siguientes
capítulos:
Capítulo 1, Introducción a Linux, da una
introducción general a lo que es Linux, que puede
hacer
por Ud., y que se necesita para hacerlo funcionar en su
sistema. También proporciona sugerencias
útiles para obtener ayuda y reducir el stress
general.
Capítulo 2, Obtener e Instalar Linux, explica
como obtener el software de Linux, así 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ón de Linux, y
confía en que la documentación
suministrada para su versión particular cubra todos los
huecos.
Capítulo 3, Tutorial de Linux, es una
introducción completa de como usar el sistema Linux
para
principiantes de UNIX. Si ya tiene experiencia previa
con UNIX, la mayoría de este material debería serle
familiar.
Capítulo 4, Administración del Sistema, presenta muchos
de los conceptos importantes de la
administración del sistema bajo Linux. Esto
será también de interés
para administradores de sistemas UNIX que quieran saber acerca de
las formas concretas de llevar un sistema en Linux.
Capítulo 5, Características Advanzadas, presenta al
lector un gran número de las características
avanzadas que soporta el Linux, tales como el Sistema
X-Window y el protocolo de
red TCP/IP.
Se
incluye una guía completa de configuración
de XFree86-3.1.
Apéndice A, Fuentes de
Información de Linux, es un listado de
otras fuentes de
información
acerca de Linux, incluyendo grupos de
noticias, listas de distribución, documentos
en-línea, y libros.
Apéndice B, Lista de Vendedores de Linux,
proporciona una breve lista de vendedores de software que ofrecen
software y servicios de
Linux.
Apéndice C, Tutorial de FTP y Lista de
Sites, es un tutorial para recibir ficheros desde
Internet
con FTP. Este apéndice también incluye una
lista de sites de FTP que mantienen software Linux.
Apéndice D, Lista de BBS Linux, es una lista de
BBS (2) a lo ancho del mundo que mantienen
software de Linux. Dado que la mayoría de
usuarios de Linux no disponen de acceso a Internet, es
importante que se ponga a disposición la información sobre los sistemas
BBS.
Apéndice 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 últimos meses han
surgido muchos desacuerdos sobre los términos de dicha
Licencia (3).
_________________________________________
(2) Sistema de Tablón de Boletines, Bulletin
Board Sistem
(3) N. del T.: Precisamente por eso hemos decidido dejar
el original de la GPL intacto y en inglés.
No conocemos de la existencia de ninguna traducción
oficial de la GPL al castellano.
________________________________________________________________________________
Apéndice E, Linux en España, es
una relación de todos aquellos aspectos de Linuxque puedan
in-
teresar al usuario español. Contempla forums de
mensajería españoles, BBS, canales de
distribución,
ftp-sites españoles, etc
Reconocimientos
Este libro ha tardado mucho en hacerse, y mucha gente ha
sido responsable de su realización. En
particular, me gustaria agradecer a Larry Greenfield y
Karl Fogel por su trabajo en la primera
versión del Capítulo 3, y a Lasr Wirzenius
por su trabajo en el Capítulo 4. Gracias a Michael
K.
Johnson por su apoyo al LDP (4) y las convenciones LATEX
usadas en este manual, y a Ed
Chi, quien me envió una copia impresa del libro para su
edición.
_________________________________________
(4) LDP es Linux Documentation Project, o Proyecto de
Documentación de Linux
________________________________________________________________________________
Gracias a Melinda A. McBride de SSC, Inc., quien hizo un
excelente trabajo completando el
índice de los Capítulos 3, 4, y 5.
También 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és
tanto de las ventas de este
libro como de otros
trabajos.
Muchas gracias a gran cantidad de activistas, incluyendo
(sin ningún orden específico) 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ás, por dedicar tanto
tiempo y energía a este proyecto, y sin
los cuales no habría nada sobre lo que
escribir.
Gracias especialmente al gran número de lectores
que han enviado sus útiles comentarios y cor-
recciones. Hay tantísimos que citar aqui.
>Quién necesita un corrector ortográfico
teniendo tanta
audiencia?
Matt Welsh
13 de Enero de 1994
La traducción
Lo anterior es por parte del autor. Asi que, por lo que
al equipo de traducción respecta tengo que
agradecer especialmente a aquellos que han colaborado en
traducir este gran montón de líneas, que
yo solo no me hubiera atrevido ni siquiera a intentarlo:
Gerardo Izquierdo, Juan Jose Amor, Eduardo
Lluna, Luis Ramón
Duarte, Guillermo Bautista y Carlos Martínez Chacartegui,
así como a todos aquellos que también 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ón 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ñol
sobre Linux.
Un agradecimiento especial a mi gran amigo Ramón
Gutierrez, quien me dio la idea de traducir
este libro y me apoyó hasta terminarlo,
además de encargarse de la tarea más importante, la
de
montar todos los trozos.
Alfonso Belloso
10 de noviembre de 1996
Créditos y aspectos Legales
El Proyecto de
Documentación de Linux es un amplio grupo de
escritores, correctores, y editores
que están 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ás que uno entre un conjunto de varios distribuidos por
el Proyecto de
Documentación de Linux, que incluyen una
Guía de Usuario de Linux, Guía del
Administrador
del Sistema, y Guía del Hacker del
Kernel. Estos manuales
están todos disponibles en formato
fuente LATEX y salida Postscript a través de FTP
anónimo en sunsite.unc.edu, en el directorio
/pub/Linux/docs/LDP (5)
_________________________________________
(5) N. del T.: Esperamos que, en breve, pueda recoger
esta versión traducida y actualizada también
allí
________________________________________________________________________________
Animamos a cualquiera al que le guste escribir o editar
a que se una a nosotros a fin de mejorar
la documentación de Linux. Si dispone de acceso a
correo
electrónico de Internet (e-mail),
puede
apuntarse al canal DOC de la lista de
distribución de correo Linux-Activists enviando un
mensaje
a
linux-activists-request[arroba]niksula.hut.fi
con la línea
X-Mn-Admin: join DOC
como primera línea del cuerpo del
mensaje.
Sírvase 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[arroba]sunsite.unc.edu, y en la vida real en
205 Gray Street
Wilson, N.C. 27896
U.S.A.
UNIX es una marca comercial
de X/Open.
Linux no es una marca comercial,
y no tiene conexión 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[arroba]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).
_________________________________________
(6) N. del T.: Las mismas condiciones son aplicables a
esta traducción
________________________________________________________________________________
0. La nota de copyright de arriba y esta
notificación de permiso se deben conservar completas
en
todas las copias completas o parciales.
1. Cualquier traducción o trabajo derivado de
Linux Installation and Getting Started debe ser
aprobado por el autor por escrito antes de su
distribución.
2. Si Ud. distribuye Linux Installation and Getting
Started parcialmente, debe incluir instruc-
ciones para obtener la versión completa de este
manual, y
proporcionar medios para la
obtención de una versión completa.
3. Se pueden reproducir pequeñas porciones como
ilustraciones para revistas o citas en otros
trabajos sin esta notificación de permiso si se
da la mención oportuna.
4. La Licencia Pública General "GNU General
Public License", a la que se hace referencia
más
abajo, puede reproducirse bajo las condiciones dadas con
ella.
5. Varias secciones de este documento están
sujetas a copyrights separados. Cuando esas sec-
ciones estén cubiertas por un copyright distinto,
se hará 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án las
condiciones de ese copyright.
Se pueden conceder excepciones a estas reglas con fines
académicos: Escriba a Matt Welsh, a la
dirección de arriba, o por correo
electrónico a mdw[arroba]sunsite.unc.edu, y pregunte.
Estas restricciones están aquí 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ía de instalación 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ño "suplemento de
instalación" para su versión.
El autor desearía 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ón a punto de salir, Ud.
podría desear retrasar la publicación del libro
hasta que
esté disponible.
Si Ud. esta distribuyendo este libro comercialmente,
cualquier donación, royalties, y/o copias
impresas serian enormemente apreciadas por el autor. La
contribución en este sentido muestra
su
apoyo al software libre y al Proyecto de
Documentación de Linux.
Todo el código fuente en Linux Installation and
Getting Started se ha puesto bajo la licencia GNU
General Public License. Vea el Apéndice F con una
copia de la licencia GNU "GPL."
Notación usada en el documento
Este acuerdo de notación debería de ser
obvio, no obstante se incluye aquí por si
acaso.
Negita Usado para resaltar conceptos nuevos, AVISOS, y
palabras clave de un len-
guaje.
itálicas Usado para enfatizar en el texto, y
ocasionalmente para citas o presentaciones al
comienzo de una sección. También usado
para indicar comandos que teclee el usuario
cuando se muestra
interacción con la pantalla (ver debajo).
<sesgado> Usado para marcar meta-variables en
el texto,
especialmente en representaciones
de la línea de comandos. Por ejemplo,
ls -l <foo>
donde <foo> "equivale a" un nombre de fichero,
como /bin/cp.
Escritura de máquina
Usada para representar interacción de pantalla,
como en
$ ls -l /bin/cp
-rwxr-xr-x 1 root wheel 12104 Sep 25 15:53
/bin/cp
También se usa en ejemplos de código, ya
sea código C, un script de la shell, o
cualquier otro, y para mostrar ficheros en general,
tales como ficheros de configuración.
Cuando sea necesario, y por una mejor claridad, estos
ejemplos o figuras
se incluirán en cajas.
|_Tecla_| Representa una tecla a pulsar. A menudo lo
verá de esta forma:
________
Press |_return_|to continue.
3 Un diamante en el margen, como un diamante negro en
una pista de esqui, señala
"peligro" o "precaución". Lea detenidamente los
párrafos marcados de esta forma.
_________________________________________________________________________________
Nota del Convertidor: Por motivos obvios de
conversión de formatos, esta notación no se ha
podido mantener.
_________________________________________________________________________________
Capítulo 1
Introducción a Linux
Linux es probablemente el acontecimiento más
importante del software gratuito desde el original
Space War, o, más recientemente, Emacs. Se ha
convertido en el sistema operativo
para los negocios,
educación,
y provecho personal. Linux
ya no es solo para gurús de UNIX que se sientan durante
horas frente a la resplandeciente consola (aunque le aseguramos
que un gran número de usuarios pertenece a esta
categoría). Este libro le ayudará a sacarle el
máximo partido.
Linux (pronounciado con una i corta, como en LIH-nucs)
es un clónico 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ón de UNIX versátil,
distribuida gratuitamente en los términos de la
Licencia GNU (vea el Apéndice F).
Linux puede convertir cualquier PC 386 o 486 en una
estación de trabajo. Le pondrá 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ón y diseño de
sistemas operativos. Y, por supuesto, entusiastas de los
ordenadores de todo el mundo están usando Linux en casa,
para programar, entretenerse, y conocerlo a fondo.
Lo que hace a Linux tan diferente es que es una
implementación gratuita de UNIX. Fue y aun
es desarrollado por un grupo de
voluntarios, principalmente en Internet, intercambiando
código,
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és en
producir un clónico
gratuito de UNIX y algunos conocimientos de programación. El libro que tiene en sus
manos es su
guía de viaje.
1.1 Sobre este libro
Este libro es una guía de instalación e
iniciación 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átiles detalles
técnicos,
esas cosas que tienden a cambiar con el veloz desarrollo, le
ofrecemos una base suficiente con la que podrá buscar
más por Ud. mismo.
Linux no es difícil de instalar y usar. Sin
embargo, como cualquier implementación 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é es Linux? El diseño
y la filosofía de este sistema operativo
único, 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ón hardware se recomienda para
un sistema completo.
o Como obtener e instalar Linux. Hay muchas
distribuciones del software de Linux. Presentamos
una discusión general de las distribuciones de
software de Linux, como obtenerlas, e instruc-
ciones genéricas para instalar el software (que
deberían ser aplicables a cualquier
distribución).
Esta edición también contiene
instrucciones específicas para la distribución
Slackware de Linux.
o Un breve tutorial de introducción a UNIX, para
aquellos usuarios que nunca antes hayan tenido
contacto con UNIX. Este tutorial debería
proporcionar, esperamos, material suficiente para que
completos novatos consigan los conocimientos
básicos de como moverse por el sistema.
o Una introducción a la administración de sistemas con Linux. Esto
abarca las tareas más
importantes con las que los nuevos administradores de
Linux necesitarán familiarizarse, tales
como crear usuarios, manejar los sistemas de ficheros, y
muchas más.
o Información sobre configuración de
aspectos más avanzados de Linux, como el Sistema X
Window, redes con
TCP/IP y SLIP, y
la puesta en marcha del correo
electrónico 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ás materiales
sobre la marcha.
Para los no familiarizados con UNIX, se da una lista de
fuentes de información útiles en el Apéndice
A.
En general, se pretende que este libro se lea junto con
otro libro sobre conceptos básicos de UNIX.
1.2 Breve historia de Linux
UNIX es uno de los sistemas
operativos más populares del mundo debido a su extenso
soporte y
distribución. 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ás
utilizados a pesar de su, ocasionalmente, confusa interfaz con el
usuario y el problema de su estandarización.
¿Cuál es la verdadera razón de la
popularidad de UNIX? Muchos hackers
consideran que UNIX
es el auténtico y único sistema operativo.
El desarrollo de
Linux parte de un grupo en
expansión 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ía
de las versiones de UNIX para ordenadores
personales son muy caras. Cuando se escribía este
libro, una copia para una máquina 386 del UNIX
System V de AT&T costaba unos 1500 dólares
estadounidenses.
Linux es una versión de UNIX de libre
distribución, inicialmente desarrollada por Linus Torvalds
(1) 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ódulos
o cambiarlo a su antojo. El núcleo de Linux no utiliza ni
una sola línea del código 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.
_________________________________________
(1) torvalds[arroba]kruuna.helsinki.fi.
____________________________________________________________________________
Inicialmente, sólo fue un proyecto de
aficiónado de Linus Torvalds. Se inspiraba en Minix,
un
pequeño 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ño sistema UNIX de carácter
académico dirigido a aquellos usuarios de Minix que
querían algo más.
El desarrollo inicial de Linux ya aprovechaba las
características de conmutación de
tareas en
modo protegido del 386, y se escribió todo en
ensamblador.
Linus dice,
"Comencé a utilizar el C tras escribir algunos
drivers, y ciertamente se aceleró el
desarrollo. En este punto sentí que mi idea de
hacer un `un Minix mejor que Minix'se
hacía más seria. Esperaba que algún
día pudiese recompilar el gcc bajo Linux. . .
"Dos meses de trabajo, hasta que tuve un driver de
discos (con numerosos bugs, pero
que parecía funcionar en mi PC) y un
pequeño sistema de ficheros. Aquí tenía ya
la
versión 0.01 [al final de Agosto de 1991]: no era
muy agradable de usar sin el driver de
disquetes, y no hacía gran cosa. No pensé
que alguien compilaría esa versión."
No se anunció nada sobre esa versión,
puesto que las fuentes del 0.01 jamás fueron
ejecutables:
contenían solo rudimentos de lo que sería
el núcleo , y se asumía que se tenía acceso
a un Minix para poderlo compilar y jugar con
él.
El 5 de Octubre de 1991, Linus anunció la primera
versión "oficial" de Linux, la 0.02. Ya
podía
ejecutar bash (el shell de GNU) y gcc (el compilador de
C de GNU), pero no hacía mucho más. La
intención era ser un juguete para hackers. No
había nada sobre soporte a usuarios,
distribuciones,
documentación 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ía en comp.os.minix,
"¿Suspiráis al recordar aquellos
días de Minix-1.1, cuando los hombres eran
hombres
y escribían sus propios drivers? ¿Os
sentís sin ningún proyecto interesante y os
gustaría
tener un verdadero S.O. que pudiérais modificar a
placer? ¿Os resulta frustrante el tener
solo a Minix? Entonces, este artículo es para
vosotros.
"Como dije hace un mes, estoy trabajando en una
versión 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ón. Es
solo la versión 0.02. pero he conseguido
ejecutar en él bash, gcc, gnu-make, gnu-sed,
compress, etc."
Tras la versión 0.03, Linus saltó a la
versión 0.10, al tiempo que
más gente empezaba a participar
en su desarrollo. Tras numerosas revisiones, se
alcanzó la versión 0.95, reflejando la
esperanza
de tener lista muy pronto una versión "oficial".
(Generalmente, la versión 1.0 de los programas
se corresponden con la primera teóricamente
completa y sin errores). Esto sucedía en Marzo
de
1992. Año y medio después, en Diciembre
del 93, el núcleo estaba en la revisión 0.99.pl14,
en una
aproximación asintótica al 1.0.
Actualmente, el núcleo se encuentra en la versión
1.1 parche 52, y se
acerca la 1.2.2
Hoy Linux es ya un clónico de UNIX completo,
capaz de ejecutar X Window, TCP/IP, Emacs,
UUCP y software de correo y News. Mucho software de
libre distribución ha sido ya portado a
Linux, y están empezando a aparecer aplicaciones
comerciales. El hardware soportado es mucho
mayor que en las primeras versiones del núcleo.
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én iba a imaginar que este
"pequeño" clónico de UNIX iba a convertirse en un
estándar mundial para los ordenadores
personales?
1.3 Características del sistema
Linux implementa la mayor parte de las
características que se encuentran en otras
implementaciones de UNIX, más algunas otras que no son
habituales. En esta sección nos daremos una vuelta por
todo ello.
Linux es un sistema operativo completo con multitarea y
multiusuario (como cualquier otra
versión de UNIX). Esto significa que pueden
trabajar varios usuarios simultáneamente en él, y
que
cada uno de ellos puede tener varios programas en
ejecución.
El sistema Linux es compatible con ciertos
estándares de UNIX a nivel de código fuente,
in-
cluyendo el IEEE POSIX.1, System V y BSD. Fue
desarrollado buscando la portabilidad de los
fuentes: encontrará que casi todo el software
gratuito desarrollado para UNIX se compila en Linux
sin problemas. Y todo lo que se hace para Linux
(código del núcleo, drivers, librerías y
programas
de usuario) es de libre distribución.
En Linux también 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ámicamente. Además,
soporta consolas virtuales, lo que permite tener
más
de una sesión abierta en la consola de texto y
conmutar entre ellas fácilmente. A los usuarios
del
programa "screen" les resultará familiar
esto.
El núcleo es capaz de emular por su cuenta las
instrucciones del coprocesador 387, con lo que en
cualquier 386 con coprocesador o sin él se
podrán 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íficamente
para Linux. Otros sistemas de ficheros, como el
Minix-1 o el de Xenix también están
soportados. Y con el de MS-DOS se podrán acceder
desde
Linux a los disquetes y particiones en discos duros
formateados con MS-DOS. Además, también
soporta el ISO-9660, que
es el estándar seguido en el formato de los CD-ROMs.
Hablaremos más
sobre los sistemas de ficheros en los capítulos 2
y 4.
Linux implementa todo lo necesario para trabajar en
red con TCP/IP.
Desde manejadores para
las tarjetas de red
más populares hasta SLIP/PPP, que permiten acceder a una
red TCP/IP
por
el puerto serie. También se implementan PLIP
(para comunicarse por el puerto de la impresora)
y
NFS (para acceso remoto a ficheros). Y también se
han portado los clientes de
TCP/IP, como FTP,
telnet, NNTP y SMTP. Hablaremos más acerca de
esto en el capítulo 5.
El núcleo de Linux ha sido desarrollado para
utilizar las características del modo protegido
de
los microprocesadores
80386 y 80486. En concreto, hace
uso de la gestión
de memoria avanzada
del modo protegido y otras características avanzadas.
Cualquiera que conozca la programación del 386 en el modo protegido
sabrá que este modo fue diseñado para su uso en
UNIX (o tal vez Multics). Linux hace uso de esta funcionalidad
precisamente.
El núcleo soporta ejecutables con
paginación por demanda. Esto
significa que sólo los segmentos
del programa que se
necesitan se cargan en memoria desde el
disco. Las páginas de los ejecutables
son compartidas mediante la técnica
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ón con el
disco:
puede tener hasta 256 megabytes de espacio de
intercambio o "swap" (3) en el disco duro.
Cuando
el sistema necesita más memoria,
expulsará páginas inactivas al disco, permitiendo
la ejecución de
programas más grandes o aumentando el
número 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ás lento que
ésta.
_________________________________________
(3) El nombre swap es inadecuado: no se intercambian
procesos
completos, sino páginas individuales. Por supu esto, en
muchos casos se expulsan al disco procesos
completos, pero no siempre ocurre.
____________________________________________________________________________
La memoria dedicada
a los programas y a la
cache de disco está unificada. Por ello, si en
cierto
momento hay mucha memoria libre, el tamaño de la
cache de disco aumentará acelerando así
los
accesos.
Los ejecutables hacen uso de las librerías de
enlace dinámico.
Esto significa que los ejecutables comparten el
código común de las librerías en un
único fichero,
como sucede en SunOS. Así, los ejecutables
serán más cortos a la hora de guardarlos en el
disco,
incluyendo aquellos que hagan uso de muchas funciones de
librería. También pueden enlazarse
estáticamente cuando se deseen ejecutables que no
requieran la presencia de las librerías
dinámicas
en el sistema. El enlace dinámico se hace en
tiempo de
ejecución, con lo que el programador puede
cambiar las librerías sin necesidad de
recompilación de los ejecutables.
Para facilitar la depuración de los programas, el
núcleo de Linux puede generar volcados de
la imagen de memoria
de los programas (ficheros core). Entre esto y la posibilidad de
compilar
ejecutables con soporte de depuración, el
programador podrá averiguar la causa de los fallos de
su
programa.
1.4 Software
En esta sección le haremos una breve
introducción sobre las muchas aplicaciones software
disponibles para Linux y sobre tareas típicas con
ordenadores. Después de todo la parte más
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ún más
impresionante.
1.4.1 Comandos y utilidades básicas
Prácticamente cada utilidad que
espere encontrar en un sistema UNIX estandard ha sido
transladada
a Linux. Esto incluye comandos básicos como ls,
awk, tr, sed, bc, more, y muchos más. 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án ahí. (Los usuarios novatos de Linux
deberían ver el Capítulo 3 para una
introducción a los
comandos básicos 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é acostumbrado a usar,
es prácticamente seguro que
habrá sido portado a
Linux.
La elección de un editor de texto es un asunto
interesante. Muchos usuarios de UNIX siguen
usando editores "simples", como vi (de hecho, el autor
escribió este libro usando vi sobre Linux.
Pero vi tiene muchas limitaciones debido a su antigedad,
por lo que están ganando popularidad
editores más modernos (y complejos) como Emacs.
Emacs proporciona un completo lenguaje
de
macros basadas en LISP con su intérprete, una
poderosa sintaxis de órdenes y multitud de
otras
opciones interesantes. Existe un conjunto de macros de Emacs
para leer correo
electrónico y 'news',
moverse por el árbol de directorios, e incluso
tener una sesión de psicoterapia con un
psicoterapeuta
de inteligencia
artificial (indispensable para Linuxeros estresados 🙂
)
Un punto interesante es que la mayoría de las
utilidades básicas para Linux son programas
GNU.
Estas utilidades GNU proporcionan características
avanzadas que no se encuentran en las versiones
estandard para BSD ó AT&T. Por ejemplo, la
versión de GNU del editor vi, elvis, incluye un
lenguaje de macros
estructurado que difiere de la versión 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ás importante para la mayoría de los usuarios es
el intérprete de comandos.
El intérprete de comandos es un programa que lee
y ejecuta órdenes del usuario. Además,
muchas
proporcionan características como control de
procesos
(permitiendo al usuario manejar varios
procesos corriendo a la vez), redirección de
entrada/salida, y un lenguaje de
órdenes para escribir
scripts. Una script es un fichero que contiene un
programa en
el lenguaje de
ordenes del intérprete
de comandos, similar a los ficheros "batch" de
MS-DOS.
Hay varios tipos de intérpretes 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ón C. El clásico Bourne Shell usa un
lenguaje de
comandos
diferente. Un argumento para la elección de un
determinado intérprete de comandos es el
lenguaje
de comandos que proporciona. El intérprete de
comandos que use, definirá su entorno de
trabajo
bajo Linux.
No importa el intérprete de comandos que
esté acostumbrado a usar, alguna versión de
este
habrá sido probablemente llevada a Linux. La
más popular es el GNU Bourne Again Shell
(bash),,
que es una variante del Bourne clásico que
incluye muchas características avanzadas como control
de
procesos, historial de órdenes,
terminación de comandos y ficheros, edición de la
línea de comandos
al estilo Emacs y poderosas extensiones al lenguaje de
comandos del Bourne clásico. Otro
intérprete
de comandos muy popular es el tcsh, una versión
del C Shell con funcionalidad avanzada similar
a la encontrada en bash. Otros intérpretes de
comandos son zsh, un pequeño intérprete similar
al
Bourne; el Korn (ksh); BSD's ash y rc, el
intérprete de comandos de Plan
9.
Linux le da la oportunidad única de configurar el
sistema a su gusto según sus necesidades. Por
ejemplo, si usted es la única persona que usa
el sistema, y prefiere el editor vi, y el intérprete
de
comandos bash, no es necesario que instale otros
editores e intérpretes de comandos. La actitud
"hágaselo 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ón
de documentos de
algún tipo. (¿Cuantos entusiastas de los
ordenadores conoces que todavía usen
papel y lapiz?. No demasiados, apostamos por ello). En
el mundo de los PC, procesado de textos es
la norma: esto implica edición y
manipulación de texto (a menudo en un entorno WYSIWYG (4)
y la
producción de copias impresas del texto con
dibujos,
tablas y otros adornos.
_________________________________________
(4) N. del T.: WYSIWYG: "What-You-See-Is-What-You-Get".
"Lo-que-ves-es-lo-que-obtienes"
_____________________________________________________________________________________
En el mundo UNIX, el formateado de textos es mucho
más común. Es bastante diferente del
clásico
concepto de proceso de
textos. Con un sistema de formateado de textos, el texto es
introducido por
el autor usando un "lenguaje de composición", 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á completo (en el lenguaje de
composición), el usuario formatea el texto con
un
programa separado, que convierte el texto fuente a un
formato adecuado para la impresión. Esto
es en cierta forma análogo 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ón GNU del
clásico nroff originalmente desarrollado por Bell
Labs y todavía usado en muchos sistemas UNIX
por todo el mundo. Otro sistema de formateado de textos
moderno es TEX, desarrollado por Donald
Knuth de gran popularidad. Dialectos de TEX, como LATEX,
también están disponibles.
Formateadores de texto como TEX y groff difieren entre
si principalmente en la sintaxis del
lenguaje de composición. La elección de un
sistema de formateo frente a otro estará basada en
las
utilidades disponibles para satisfacer sus necesidades,
así como en su gusto personal.
Por ejemplo, algunas personas consideran que el lenguaje de
composición de groff es un poco
oscuro por lo que usan TEX, que es más legible
para humanos. Pero, groff es capaz de producir
salida en ASCII llano,
visualizable en un terminal, mientras que TEX está
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ón de TEX usada para la
documentación
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 único fichero fuente.
Los ficheros Info son el formato principal de
documentación usado por paquetes de GNU como
Emacs.
Los formateadores de texto son usados ampliamente en la
comunidad
informática para producir
informes, tesis,
artículos 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í, 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ón y extender el sistema.
¿Que aspecto tiene el lenguaje de
composición? En general, el texto fuente consiste
principalmente
en el texto en si mismo, junto con "códigos 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ñadir sugestión post-hipnótica
en
el código del terminal de Linux. Nos sentimos
así por tres razones:
1. Mostrar mensajes subliminares en el terminal no es
solo inmoral, sino una pérdida
de tiempo;
2. Ha sido probado que las sugestiones
post-hipnóticas no son efectivas cuando se usan
sobre `UNIX hackers'desprevenidos;
3. Ya hemos añadido descargas eléctricas
de alto voltaje como medida de seguridad
en
el código de login.
Esperamos que lo reconsidere.
Este texto aparecería en el lenguaje de formateo
de LATEX como sigue:
begin{quote}
Sr. Torvalds:
Estamos muy preocupados con sus planes actuales de
a~nadir
{em sugestión post-hipnótica/} en el
código 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érdida de tiempo;
item Ha sido probado que las sugestiones
post-hipnóticas
no son efectivas cuando se usan sobre `UNIX hackers'
desprevenidos;
item Ya hemos a~nadido descargas eléctricas de
alto voltaje
como medida de seguridad en el
código 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ón puede parecer oscuro,
pero es realmente fácil de aprender. Usar un
sistema de formateo de textos hace cumplir las normas
tipográficas en la escritura. Por
ejemplo, todas las listas enumeradas dentro del documento
tendrán
el mismo aspecto, aunque el autor modifique la
definición 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áficas.
Los procesadores de
texto WYSIWYG son atractivos por muchas razones; proporcionan
un po-
deroso (y a veces complejo) interface visual para la
edición del documento. Pero este interface
está 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órmulas matemáticas. Esto es
idéntico
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én, los formateadores de
texto permiten editar el texto fuente con cualquier
editor de texto y el fuente es fácilmente
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á una
vez formateado. El escritor aprende a imaginarse
el aspecto que tendrá el texto una vez formateado
a partir de las órdenes de formateado usadas en
el
fuente.
Hay programas que permiten ver el documento formateado
en una pantalla gráfica 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áficos
WYSIWYG para
dibujar, los cuales son posteriormente convertidos al
lenguaje de formateo de textos para su
inclusión
en el documento.
Los formateadores de texto como nroff están
disponibles desde mucho antes de que apareciesen
los procesadores de
texto. Sin embargo, mucha gente todavia prefiere el uso de
los formateadores de
texto porque son más versátiles e
independientes del entorno gráfico. En cualquier caso, el
procesador
de textos idoc está también disponible en
Linux y no pasará mucho tiempo hasta que también
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ún otro sistema operativo
además de Linux.
Hay disponibles muchas otras utilidades relacionadas con
el formateo de textos. El potente sistema
METAFONT, usado para diseñar fuentes para TEX,
está incluido el la distribución de TEX
para
Linux. Otros programas incluyen ispell, un corrector
ortográfico interactivo; makeindex, usado
para generar índices en documentos LATEX;
así como muchos paquetes de macros para groff
y TEX
para el formateo de diferentes tipos de documentos y
textos matemáticos. Hay disponibles programas
de conversión entre fuentes de TEX y groff a
miles de otros formatos.
1.4.3 Lenguajes de
programación y utilidades
Linux proporciona un completo entorno de programación UNIX, incluyendo todas las
librerías es-
tandard, herramientas
de programación, compiladores,
depuradores y todo aquello que esperarías
encontrar en otro sistema UNIX. En el mundo del
desarrollo de programas UNIX, las aplicaciones
y sistemas suelen ser programados en C ó 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én capaz de compilar C++ (incluyendo las
características de AT&T 3.0) así como en
Objetive-C
y otros dialectos de C orientados a objetos.
Además de C y C++ han sido llevados a Linux
muchos otros lenguajes de
programación tanto
interpretados como compilados, como Smalltalk, FORTRAN,
Pascal, LISP,
Scheme, Ada (si es tan
masoquista como para programar en Ada, no le
detendremos). Además hay disponibles varios
ensambladores para escribir código 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
órdenes al estilo del intérprete de comandos
incluyendo soporte para desarrollar
aplicaciones simples para X Window).
El depurador avanzado gdb también 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ísticas de prestaciones
de sus progra-
mas, permitiendo saber en que parte de su programa se va la
mayor parte del tiempo de ejecución.
El editor Emacs proporciona un entorno interactivo de
edición y compilación para varios
lenguajes
de programación. Otras herramientas
incluyen GNU make e imake, usados para dirigir el
proceso
de compilación de aplicaciones grandes ó
RCS, sistema de control de revisiones.
Linux dispone de librerías compartidas enlazadas
dinámicamente, lo que permite a los ejecutables
ser mucho menores al enlazar el código de las
librerías en tiempo de ejecución. Estas
librerías DLL
(Dinamically Linked Library) también permiten al
programador de aplicaciones sustituir funciones
ya definidas con su propio código. Por ejemplo,
si un programador desea escribir su propia
versión
de la función de librería malloc(), el
editor de enlaces usaría la nueva rutina del programador
en
lugar de la que se encuentra en las
librerías.
Linux es ideal para desarrollar aplicaciones UNIX,
proporciona un moderno entorno de pro-
gramación con todos los detalles y funcionalidad
necesarios. Se soportan varios estandards como
POSIX.1, permitiendo a los programas escritos para Linux
ser fácilmente 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én le permitirá traba-
jar con la comodidad de su propia casa (5). Los
estudiantes de informática pueden usar Linux
para
aprender la programación en UNIX y explorar otros
aspectos del sistema como la arquitectura
del
núcleo.
_________________________________________
(5) El autor usa su sistema Linux para desarrollar y
probar aplicaciones X Window en casa, que pueden ser directamente
compiladas en estaciones de trabajo en cualquier
parte.
_________________________________________
Con Linux, no solo tienes acceso a un conjunto completo
de librerías y utilidades de
programación,
también tiene acceso al código fuente
completo del núcleo y las librerías.
1.4.4 El sistema X Window
El sistema X Window es un interface gráfico
estandard para máquinas UNIX. Es un potente
entorno
que soporta muchas aplicaciones. Usando X Windows, el
usuario puede tener múltiples terminales
a la vez en ventanas sobre la pantalla, cada una
conteniendo una sesión diferente. Un
dispositivo
apuntador como el ratón es usado a menudo en el
interface X, pero no es indispensable.
Han sido escritas muchas aplicaciones especificamente
para X, como juegos,
utilidades gráficas,
herramientas de programación y
documentación, y muchas más. Con Linux y X, su
sistema es una
auténtica estación de trabajo. Junto con
una red TCP/IP puede
incluso visualizar aplicaciones que
se están ejecutando en otras máquinas en
su pantalla local, tal y como es posible con otros
sistemas
corriendo X.
El sistema X Window fué desarrollado
originalmente en el MIT y es de libre distribución. A
pesar
de esto muchas empresas han
distribuido sus mejoras particulares al diseño
original de X Window. La
versión de X Window disponible para Linux es
conocida como XFree86, una adaptación de X11R5 (6)
de
libre distribución 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ón completa de X Windows conteniendo el
servidor de X,
muchas
aplicaciones y utilidades, librerías de
programación y documentación.
_________________________________________
(6) N. del T.: Linux dispone en la actualidad de la
versión X11R6 de X Window
___________________________________________________________________________________
Aplicaciones X estandard incluyen xterm (emulador de
terminal usado por la mayoría 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áginas de
manual para X)
y muchos más. El número de aplicaciones
disponibles para X Windows en Linux es demasiado
numeroso como para mencionarlas aquí, pero la
distribución básica de XFree86 incluye las
aplicaciones `estandard'que se encontraban en la
versión
original del MIT. Muchas otras están disponibles
separadamente y teóricamente cualquier
aplicación
escrita para X Windows debería compilar
limpiamente bajo Linux.
El aspecto y comportamiento
del interface de las X Windows está controlado por el
controlador
de ventanas. Este amigable programa es el
encargado de la situación de las ventanas,
redimen-
sionado, iconización, movimiento de
las ventanas, aspecto de los marcos de las ventanas..etc.
La
distribución estandard XFree86 incluye twm, el
clásico controlador de ventanas del MIT, aunque
hay
disponibles controladores mucho más 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ño
controlador que requiere menos de la mitad de la memoria
usada por twm. Proporciona aspecto de
3 D para las ventanas, así como un escritorio
virtual _si el usuario desplaza el ratón al borde
de
la pantalla, la pantalla entera es desplazada como fuese
mucho más 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ón. Muchas distribuciones de Linux
usan fvwm como controlador de ventanas estandard.
La distribución XFree86 contiene librerías
para programación y ficheros de cabecera para
aquellos
programadores mañosos que deseen desarrollar
aplicaciones para X. Están soportados varios
con-
juntos de controles como los de Athena, Open Look y
Xaw3D. Todas las fuentes estandard, mapas
de bits, páginas de manual y documentación
está incluida. PEX (interface de programación
para
gráficos 3 D) también está
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ón 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áticamente enlazados con las librerías de
Motif
pueden ser libremente distribuidos. Por lo tanto, si
escribes un programa usando Motif y deseas dis-
tribuirlo libremente, deberás de proporcionar un
ejecutable con las librerías enlazadas
estáticamente
para que los usuarios que no posean Motif puedan usar el
programa.
La única advertencia con las X Windows son los
requerimientos de máquina y memoria. Un 386
com 4 Mb de RAM es capaz de
ejecutar las X, pero para usarlo adecuadamente serán
necesarios 8 Mb
o más. También es recomendable usar un
procesador
rápido, pero tener mayor cantidad de memoria
física es mucho más importante.
Además, para conseguir realmente buenas prestaciones
de video,
es
muy recomendable usar una tarjeta aceleradora (como las
tarjetas local
bus con
aceleradores gráficos
S3). Se han conseguido índices de prestaciones
por encima de los 140.000 Xstones con XFree86 y
Linux. Con suficiente hardware, encontrará que
ejecutar X en Linux es tan rápido o más
rápido que
ejecutar X en otras estaciones de trabajo
UNIX.
En el Capítulo 5 se tratará sobre como
instalar y usar las X en su propio sistema.
1.4.5 Redes
¿Está interesado en comunicarse con el
mundo? ¿Si? ¿No? ¿Quizá? Linux
dispone de los dos
principales protocolos de red
para sistemas UNIX: TCP/IP y UUCP. TCP/IP (para los
aficionados
a los acrónimos, Transmission Control
Protocol/Internet Protocol) es un conjunto de protocolos
de
red que permite a sistemas de todo el mundo comunicarse
en una única red conocida como Internet.
Con Linux, TCP/IP y una conexión a la red, puede
comunicarse con usuarios y máquinas por toda
Internet mediante correo electrónico, noticias
(USENET news), transferencias de ficheros con FTP
y mucho más. Actualmente hay muchos sistemas
Linux conectados a Internet.
La mayoría de las redes TCP/IP usan Ethernet como
tipo de red física de transporte.
Linux da
soporte a muchas tarjetas de red
Ethernet e
interfaces para ordenadores personales, incluyendo el
adaptador Ethernet D-Link
de bolsillo para ordenadores portátiles.
Pero dado que no todo el mundo tiene una conexión
Ethernet en
casa, Linux también proporciona
SLIP (7) (Serial Line Internet Protocol), el cual
permite conectarse a Internet a través de un modem.
Para poder usar
SLIP, necesitará tener acceso a un servidor de SLIP,
una máquina conectada a la
red que permite acceso de entrada por teléfono.
Muchas empresas y
universidades tienen servidores
SLIP disponibles. De hecho, si su sistema Linux dispone
de conexión Ethernet y de modem,
puede
configurarlo como servidor de SLIP
para otros usuarios.
_________________________________________
(7) N. del T.: Linux también dispone, entre
otros, de soporte PPP: Point to Point Protocol.
_____________________________________________________________________________________
NFS (Network File System) permite fácilmente
compartir ficheros con otras máquinas de la
red.
FTP (File Transfer Protocol) permite la transferencia de
ficheros entre máquinas. Otras aplicaciones
incluyen sendmail, sistema para enviar y recibir correo
electrónico 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ón y ejecutar
órdenes en otras máquinas de la red; y finger, que
permite
obtener información 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án
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ónico y noticias por todo el
mundo.
Si tienes experiencia con aplicaciones TCP/IP en otros
sistemas UNIX, Linux te será muy famil-
iar. El sistema proporciona el interface estandar de
programación por 'sockets', lo que virtualmente
permite que cualquier programa que use TCP/IP pueda ser
llevado a Linux. El servidor Linux de
X
también soporta TCP/IP, permitiendo ver
aplicaciones que están corriendo en otros sistemas
sobre
tu pantalla.
En el Capítulo 5 trataremos sobre la
configuración 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ónico y noticias entre máquinas UNIX.
Clásicamente las máquinas UUCP conectan entre
ellas
mediante líneas telefónicas y modem, pero
UUCP es capaz de funcionar también 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ónico usando UUCP. Ver el Capítulo 5 para
más
información.
1.4.6 Programas de comunicaciones
y BBS
Si tienes un modem
serás capaz de comunicarte con otras máquinas
usando alguno de los paquetes de
comunicaciones disponibles para Linux. Mucha gente usa
programas de comunicaciones
para acceder
a BBSs, así como a servicios
comerciales en línea, 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á un equivalente
familiar en Linux.
Uno de los paquetes de comunicaciones
más populares para Linux es Seyon, una aplicación
para X
que proporciona un interface configurable y
ergonómico 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 últimos
son similares a programas de comunicaciones
que se pueden encontrar en otros sistemas
operativos y son muy fáciles de usar.
Si no tienes acceso a un servidor de SLIP (ver la
sección anterior), puedes usar term para
multiplexar la línea serie. term te
permitirá abrir múltiples sesiones a través
de la conexión por
modem a una máquina remota. term también
te permitirá redireccionar las conexiones de un
cliente
X a tu servidor local de X, a través de la
línea serie, permitiéndote 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ás potentes que los disponibles para
otros sistemas
operativos. Con una línea telefónica, un modem
y Linux, puedes convertir tu sistema
en una BBS, proporcionando acceso telefónico a tu
sistema a usuarios de todo el mundo. Los
programas de BBS para Linux incluyen XBBS y UniBoard
BBS.
La mayoría de los programas de BBS mantienen al
usuario en un sistema basado en menús
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és de un "login"). Aunque
este procedimiento
requiere mayor mantenimiento
y atención por parte del administrador del
sistema, puede hacerse, y proporcionar acceso público
a
UNIX desde el sistema Linux no es difícil. Junto
con una red TCP/IP, puedes proporcionar acceso
a correo electrónico y noticias a los usuarios
del sistema.
Si no tienes acceso a una red TCP/IP o UUCP, Linux
también te permitirá comunicarte con la
gran cantidad de redes de BBS, como FidoNet, en la cual
puedes intercambiar correo electrónico y
noticias por la línea telefónica. En el
Capítulo 5 encontrarás más
información 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ás 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á todavía bajo
desarrollo, aunque muchos de los programas más
populares corren sobre él. Por lo tanto, es
comprensible que programas MS-DOS que usan carac-
terísticas extrañas o esotéricas
del sistema, puede que nunca estén soportados, puesto que
solo es un
emulador. Por ejemplo, no espere que sea posible
ejecutar programas que usan las características
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
_____________________________________________________________________________________
Aplicaciones que corren sin problemas bajo el emulador
de MS-DOS incluyen 4DOS (intérprete 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én con el emulador.
El emulador de MS-DOS es principalmente una
solución `ad-hoc'para aquellos usuarios que ne-
cesitan MS-DOS solo para unas pocas aplicaciones, pero
usan Linux para todo lo demás. Eso no
significa que no sea una implementación 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ón MS-DOS o disco
flexible bajo Linux y acceder directamente a los
ficheros
MS-DOS como se haría 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é completado, los usuarios podrán
ejecutar aplicaciones MS-Windows directamente desde
Linux, similar al emulador de Windows WABI
de Sun Microsystems. Al tiempo de escribir este texto,
WINE está todavía en las primeras etapas
del desarrollo, pero tiene muy buenas
perspectivas.
En el Capítulo 5 hablaremos de las herramientas
MS-DOS disponibles para Linux.
1.4.8 Otras aplicaciones
Tal y como se podría esperar de tal mezcolanza de
sistema operativo, hay una gran cantidad de
miscelánea disponible para Linux. La
intención primaria de Linux es, actualmente, el uso
personal
de UNIX, pero esto está cambiando
rápidamente. Programas de negocios y
científicos se están
expandiendo y los vendedores de programas comerciales
están comenzando a contribuir al crecimiento
del número de aplicaciones disponibles para
Linux.
Están disponibles para Linux varias bases de datos
relacionales, incluyendo Postgres, Ingres
y Mbase. Estas tienen todas las características
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 comercial (9) está también
disponible.
Aplicaciones de cálculo
científico Incluyen FELT (herramienta de análisis de elementos finitos);
gnuplot (aplicación de análisis y representación
gráfica de datos); Octave
(matemática
simbólica,
similar a MATLAB); xspread (hoja de
cálculo); fractint, versión para X del popular
generador
de fractales Fractint; xlispstat (paquete
estadístico), y muchos más. Otras aplicaciones
incluyen a
Spice (herramienta de diseño
y análisis de circuitos) y
Khoros (proceso de señales imágenes/digital
y sistema de visualización).
_________________________________________
(9) N. del T.: En el momento de realizar esta
traducción ya existían varios paquetes de Bases de Datos
comerciales portadas a Linux. Van desde compatibilidad con
Clipper 5.x hasta soporte SQL entre
otros
_____________________________________________________________________________________
Por supuesto, hay muchas más aplicaciones que han
sido y pueden ser llevadas a Linux. Sea
cual sea su campo de trabajo, transladar aplicaciones
UNIX a Linux debería ser bastante directo.
Linux proporciona un completo entorno de
programación UNIX, suficiente para servir de base
a
aplicaciones científicas.
Como con cualquier sistema operativo, Linux tiene su
porción de juegos. Estos
incluyen juegos
clásicos 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í como juegos para X
Windows como tetris, netrek, y Xboard (la versión para X11
de gnuchess).
El popular juego
`arcade'de masacrar enemigos Doom también ha sido llevado
a Linux.
Para audíofilos, 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ás
buscando?. El `Linux Software Map' descrito en el
Apéndice A contiene una lista con gran cantidad
de programas que han sido escritos o llevados a
Linux. Ciertamente, la lista está 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á 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ón de la aplicación desde otra
plataforma a Linux. La mayoría de los programas de
libre
distribución para UNIX compilarán en Linux
sin ningún problema. O si todo falla, puede
escribirse
Vd. mismo el programa. Si lo que está buscando es
un programa comercial, puede que exista un
`clon'de libre difusión disponible. O puede
sugerir a la empresa que
considere el lanzamiento de una
versión de su programa para Linux. Algunas
personas han contactado con empresas de
programación
pidiéndoles que lleven sus aplicaciones a Linux,
y han obtenido varios grados de éxito.
1.5 Acerca del Copyright
Linux está regido por lo que se conoce como la
Licencia Pública 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ón por el
Software Gratuito". La licencia hace una serie de
previsiones sobre la distribución y
modificación 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ómo
afecta a Linux. Se incluye una copia completa de la
Licencia al final del libro, en el apéndice
F.
Originalmente, Linus Torvalds lanzó Linux bajo
una licencia más restrictiva que la GPL, que
permitía que el software fuera libremente
distribuido y modificado, pero prohibía 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úblico. El software de dominio
público carece de copyright y pertenece literalmente al
público. El
software regido por la GPL sí tiene el copyright
de su autor o autores. Esto significa que está
protegido
por las leyes
internacionales del copyright y que el autor del software
está declarado legalmente. No
solo porque un programa sea de libre distribución
puede considerársele del dominio
público.
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és
de la distribución. 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á
también por la GPL. En otras palabras, una
compañía
nunca puede tomar Linux, modificarlo y venderlo bajo una
licencia restringida. Si un software se
deriva de Linux, éste deberá regirse por
la GPL también.
La GPL permite distribuir y usar el software sin cargo
alguno. Sin embargo, también permite que
una persona u
organización gane dinero
distribuyendo el software. Sin embargo, cuando se
venden
programas GPL, el distribuidor no puede poner ninguna
restricción a la redistribución. Esto es,
si
usted compra un programa GPL, puede a su vez
redistribuirlo gratis o cobrando una cantidad.
Esto puede parecer contradictorio. >Por qué
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á cobrar por el hecho de haber
producido el CD, y
asímismo querrá ganar dinero. Esto
está 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ún derecho al comprador del programa. Esto
significa que si usted compra un CD-ROM con
programas GPL, podrá copiar ese CD y
revenderlo
sin ninguna restricción. 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ódigo
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ñías venden Linux, y él 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ástico
asequible a cualquiera. En la siguiente sección,
hablaremos
de cómo esto se aplica al desarrollo de
Linux.
1.6 Diseño
y filosofía de Linux
En ocasiones, los nuevos usuarios de Linux se crean
falsas expectativas acerca de éste. Linux es un
sistema operativo único, y es importante entender
su filosofía y diseño para usarlo
eficientemente.
Aunque usted sea un experimentado "gurú" del
UNIX, lo que viene a continuación le interesará
con
total seguridad.
En versiones comerciales de UNIX, el sistema es
desarrollado siguiendo una rigurosa política
de
mantenimiento de la calidad, con
sistemas de
control de revisiones para las fuentes y
documentación,
etc. Los desarrolladores no pueden añadir cosas
nuevas por su cuenta: cualquier cambio
será en
respuesta a un informe de bug
detectado, y será cuidadosamente registrado en el sistema
de control
de versiones, de manera que podrá volverse
atrás sin problemas. Cada desarrollador tiene
asignada
una o más partes del código, y solo ese
desarrollador puede alterar esas secciones del
código.
Internamente, el departamento de calidad realiza
conjuntos de
tests para cada versión del sistema
operativo, e informa de los errores. Es responsabilidad de los desarrolladores corregir
esos errores.
Se utiliza un complicado sistema de análisis estadístico para asegurarse
de que cierto porcentaje de
los errores son corregidos antes de la próxima
versión.
Como vemos, el proceso seguido por los desarrolladores
de UNIX comercial para mantenerlo y
darle soporte es muy complicado, pero razonable. La
compañía debe tener cierta seguridad de que
la
próxima revisión del sistema ya
está lista para ser comercializada, a través de las
pruebas que
hemos
comentado. Esto supone un gran trabajo que involucra a
cientos (si no miles) de programadores,
betatesters, redactores de documentación y
personal administrativo. Por supuesto, no todos los
fabricantes de UNIX trabajan así, pero esto da
una idea de la panorámica habitual.
Con Linux, hay que olvidarse del concepto de
desarrollo organizado, sistemas de
control de
versiones, información de errores estructurada o
análisis estadísticos. Linux es un
sistema operativo
hecho por "hackers" (10)
_________________________________________
(10) Por "hacker" queremos
referirnos a programadores fervientemente dedicados, por hobby, a
explotar sus ordenadores al máximo, con resultados
útiles para otras personas. Este concepto es
contrario al habitualmente aceptado, que dice que un "hacker" es un
pirata informático.
_____________________________________________________________________________________
Linux ha sido desarrollado principalmente por un
grupo de
programadores de todo el mundo
unidos por Internet. A través de Internet,
cualquiera tiene la oportunidad de unirse al grupo y
ay-
udar al desarrollo y depuración del
núcleo, portar nuevo software, escribir
documentación 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ódigo sea incluido en la
versión "oficial" del núcleo deberá ponerse
en contacto con Linux
Torvalds, quien comprobará el código y lo
incluirá en el núcleo. Por lo general,
estará encantado en
hacerlo, siempre que no estropee otras cosas.
El sistema se ha diseñado siguiendo una
filosofía abierta y de crecimiento. Por regla
general
hay una nueva versión del núcleo cada dos
meses (a veces cada menos tiempo) (11) Esto depende
del
número de errores a corregir, la cantidad de
información recibida de los usuarios, y lo que
haya
dormido Linus esta semana.
_____________________________________________________________________________________
(11) N. del T.: Actualmente nos consta la
aparición semanal de al menos una revisión de las
versiones experimentales.
_____________________________________________________________________________________
Por lo tanto, es difícil decir que todos los
errores hayan sido corregidos en cierta fecha. Pero
conforme el sistema va apareciendo libre de errores
críticos 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ón gratuita de UNIX. Linux
está hecho para desarrolladores, más que
para otro tipo de personas.
Si alguien desarrolla una aplicación o nueva
característica para el núcleo, se añade
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éndice 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ónico.
Una vez que se corrigen los problemas iniciales, el
código pasa a una etapa "beta", en la que
se considera estable pero incompleto (o sea, funciona,
pero no incluye todas las funcionalidades
previstas). También se puede pasar a una etapa
"final" en la que el software se considera terminado.
Para el código del núcleo, una vez que se
ha terminado, el desarrollador puede pedir a Linus que
lo
incluya en el núcleo estándar, o bien que
lo ponga como código optativo.
Recordar que lo anterior son solo convenciones, y no
leyes. Algunos
programas pueden no neces-
itar fases "alpha". Es el desarrollador quien
tomará las decisiones al respecto.
Estará 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ás efi-
cientes y motivados. Todo el núcleo de Linux ha
sido escrito de la nada, sin emplear ningún código
de
fuentes propietarias. Todo el software,
librerías, sistemas de ficheros y drivers han sido
desarrollados
o portados desde otros sistemas; y se han programado
drivers para los dispositivos más populares.
Normalmente, Linux es distribuido junto con otro
software en lo que se conoce como distribución,
que es un paquete de software que permite poner a punto
un sistema completo. Dado que es difícil
para los usuarios noveles el crear un sistema UNIX
partiendo del núcleo y programas de diversas
fuentes, se crearon las distribuciones con el fin de
facilitar esta tarea: con la distribución, usted
solo
tiene que coger el CD-ROM o los disquetes e instalar
para tener un sistema completo con programas
de aplicación incluidos. Como es de esperar, no
hay ninguna distribución "estándar". Hay
muchas,
cada una con sus ventajas y desventajas. Hablaremos
más sobre distribuciones en la sección
2.1.
A pesar de lo anterior, necesitará cierto
conocimiento
de UNIX para poder instalar
y usar un
sistema completo. No hay distribución que no
tenga fallos, por lo que requerirá de su habilidad
al
teclado para corregir los pequeños problemas que
se presenten. Ejecutar un sistema UNIX no es
fácil, ni siquiera en las versiones comerciales.
Hay que andarse con cuidado en cualquier UNIX, y
Linux no es una excepción.
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 éxito sus
sistemas. Es una experiencia de la que se aprende,
pero de la que se pueden generar fustraciones. Si tiene
suerte, podrá instalar y usar Linux sin
conocimiento alguno de UNIX. Sin embargo, cuando quiera
introducirse en tareas más complejas
(instalar nuevo software, recompilar el núcleo,
etc.) el
conocimiento de UNIX empieza a ser necesario.
Por suerte, ejecutando su propio sistema Linux
podrá aprender las cosas esenciales de UNIX
para
llevar a cabo esas tareas. Este libro contiene
información que intentará ayudarle (vea el
capítulo 3,
que es un tutorial sobre UNIX; y el capítulo 4,
que le enseñará cosas sobre la
administración de
Linux). Quizás le parezca interesante leer esos
capítulos antes de instalar Linux. En este caso,
se
ahorrará algunos problemas.
Nadie puede esperar hacerse experto administrador de
la noche a la mañana. No hay imple-
mentación alguna que esté libre de
mantenimiento.
Por lo tanto, prepárese si es novato, pero no
se
desespere ante los problemas. El que escribe esto (12)
tampoco tenía mucha idea antes de empezar.
_________________________________________
(12) N. del T.: al igual que el que lo
traduce
_____________________________________________________________________________________
1.6.2 Consejos para los gurús
La gente con años de experiencia programando y
administrando sistemas UNIX también puede
necesitar ayuda al querer instalar Linux. Existen
aspectos con los que los magos del UNIX tendrán
que familiarizarse antes de entrar en materia. Por
un lado, Linux no es un sistema UNIX comercial.
No intenta seguir exactamente el mismo estándar
de otros sistemas. En otras palabras, este factor
no es el único factor que interesa en el
desarrollo de Linux.
Es más importante, sin embargo, su funcionalidad.
En muchos casos, el nuevo código introducido
en el núcleo aun tendrá errores o
estará incompleto. Se acepta que es más importante
lanzar el código
cuanto antes para que los usuarios lo puedan probar. Por
ejemplo, el emulador WINE (emulador
de Microsoft Windows para Linux) tiene una
versión alfa "oficial" mientras la prueban los
usuarios.
En este sentido, la comunidad de
Linux tiene derecho a trabajar con este código, probarlo y
ayudar
a su desarrollo. Los UNIX comerciales, raramente siguen
esta política.
Si ha sido administrador de
UNIX durante más de diez años, y ha usado
diferentes sistemas
comerciales, verá que este sistema es muy moderno
y dinámico. Se crea un nuevo núcleo cada
dos
meses aproximadamente. Se lanza nuevo software
permanentemente. Un día puede creer que su
sistema está a la última, y al día
siguiente creer que está en la Edad de Piedra.
Con toda esta actividad dinámica, >cómo puede mantenerse
al día? 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ística
nueva que le interese. No hay razón para estar
siempre cambiándose las versiones del
software.
Esperamos que Linux satisfaga sus expectativas de un
sistema UNIX. El corazón de
Linux alberga
el espíritu del software gratuito y el desarrollo
constante. La comunidad de Linux favorece su
expansión, y es difícil creer en su
fiabilidad, especialmente cuando se procede del UNIX
comercial.
Tampoco puede esperarse que Linux sea perfecto, ya que
no lo es ningún otro software. Sin embargo,
creemos que Linux es tan útil y completo como
cualquier otra implementación 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
que Linux puede convivir felizmente con otros sistemas
operativos en la misma máquina: es decir,
Ud. puede correr MS-DOS y OS/2 en compañía
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é usar Linux?
¿Por qué usar Linux en lugar de un sistema
operativo comercial conocido, bien probado, y bien
docu-
mentado? Podríamos darle miles de razones. Una de
las más importantes es, sin embargo, que Linux
es una excelente elección para trabajar con UNIX
a nivel personal. Si Ud. es un desarrollador de
software UNIX, ¿por qué usar MS-DOS en
casa? Linux le permitirá 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á en que los sistemas de su
universidad
correrán UNIX. Con Linux, podrá correr
su
propio sistema UNIX y adaptarlo a sus necesidades. La
instalación y uso de Linux es también
una
excelente manera de aprender UNIX si no tiene acceso a
otras máquinas 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ómputo distribui-
das. Muchos negocios
especialmente los pequeños se están cambiando a
Linux en lugar de otros
entornos de estación de trabajo basados en UNIX.
Las universidades encuentran a Linux perfecto
para dar cursos de
diseño de
sistemas operativos. Grandes vendedores de software comercial
se están
dando cuenta de las oportunidades que puede brindar un
sistema operativo gratuito.
Las siguientes secciones deberían destacar las
diferencias más 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 él. En el Capítulo 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álogos para estas aplicaciones (por ejemplo,
TEX), existen varias razones por las que un usuario
concreto desearía correr tanto MS-DOS como Linux.
Si toda su tesis
está escrita en WordPerfect (13)
para MS-DOS, puede no ser capaz de convertirla
fácilmente a TEX o algún otro formato. Hay
muchas
aplicaciones comerciales para MS-DOS que no están
disponibles para Linux, y no hay ninguna razón
por la que no pueda usar ambos.
_________________________________________
(13) N. del T.: El ejemplo del autor se ha quedado
obsoleto: Ya existe un WordPerfect 6.1 nativo para
Linux
_____________________________________________________________________________________
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ísticas del éste. Puede
acceder directamente a toda su memoria disponible (e
incluso
más allá de la disponible, usando RAM virtual).
Linux proporciona un interface UNIX completo
no disponible bajo MS-DOS, el desarrollo y
adaptación de aplicaciones UNIX bajo Linux es
cosa
fácil, mientras que, bajo MS-DOS, Ud. está
limitado a un pequeño subgrupo de la funcionalidad
de
programación UNIX. Al ser Linux un verdadero
sistema UNIX, Ud. no tendrá estas limitaciones.
Podríamos debatir los pros y contras de MS-DOS y
Linux durante páginas y páginas. 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ún otro sistema operativo para
PC ha conseguido el nivel de popularidad de MS-
DOS básicamente porque el coste de esos otros
sistemas operativos es inaccesible para la
mayoría
de los usuarios de PC's. Muy pocos usuarios de PC pueden
imaginar gastarse 100.000 ptas. o más
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á 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ácil acceder a los ficheros MS-DOS desde Linux.
También hay disponible un emulador de MS-DOS,
que permite ejecutar muchas aplicaciones populares de
MS-DOS. Actualmente se está desarrollando
un emulador de Microsoft Windows.
1.7.3 Linux vs. Otros Sistemas Operativos
Están surgiendo un gran número 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écnicamente, OS/2, Windows NT y
Linux son bastante similares: Soportan aproximada-
mente las mismas características en
términos de interfaz de usuario, redes, seguridad, y
demás. Sin
embargo, la diferencia real entre Linux y los otros es
el hecho de que Linux es una versión de UNIX,
y por ello se beneficia de las contribuciones de la
comunidad UNIX en pleno.
¿Qué hace a UNIX tan importante? No solo
es el sistema operativo más popular para
máquinas
multiusuario, también es la base de la
mayoría del mundo del software de libre
distribución. Si tiene
acceso a Internet, casi todo el software de libre
distribución disponible está específicamente
escrito
para sistemas UNIX. (Internet en si está
profundamente basada en UNIX.)
Hay muchas implementaciones de UNIX, de muchos
vendedores, y ni una sola organización es
responsable de su distribución. Hay un gran pulso
en la comunidad UNIX por la estandarización en
forma de sistemas abiertos, pero ninguna
corporación controla este diseño. Por eso,
ningún vendedor
(o, como parece, ningún hacker) puede
adoptarar estos estandars en una implementación de
UNIX.
Por otro lado, OS/2 y Windows NT son
sistemas propietarios. El interface y diseño
están
controlados por una sola corporación, y solo esa
coproración puede implementar ese diseño.
(No
espere encontrar una versión gratis de OS/2 en un
futuro cercano.) De alguna forma, este tipo de
organización es beneficiosa: establece un
estándar estricto para la programación y el
interfaz de
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á
constantemente desarrollandose y cambiando. Varias or-
ganizaciones están intentando estandarizar el
modelo de
programación, pero la tarea es muy
difícil.
Linux, en particular, es en su mayoría compatible
con el estandar POSIX.1 para el interface de pro-
gramación UNIX. A medida que pase el tiempo, se
espera que el sistema se adhiera a otros estandars,
pero la estandarización 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ño de UNIX y buen un número de
vendedores han sacado ventaja de este factor.
Hablando de características, otras
implementaciones de UNIX para PC son bastante
similares
a Linux. Podrá ver que casi todas las versiones
comerciales de UNIX soportan basicamente el
mismo software, entorno de programación, y
características 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ía de
dispositivos hardware conocidos, pero el soporte
está 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ás amplia, y tienden
a soportar más hardware, aunque Linux no esta tan
lejos de ellos. Cubriremos los requerimientos
hardware de Linux en la Sección 1.8.
En segundo, las implementaciones comerciales de UNIX
suelen venir acompañadas de un conjunto
completo de documentación, así como
soporte de usuario por parte del vendedor. Por contra,
la
mayoría de documentación para Linux se
limita a documentos disponibles en Internet_y libros
como este. En la Sección 1.9 se listan fuentes de
documentación de Linux y otra
información.
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á aun en desarrollo, y algunas
características (como redes TCP/IP) son menos
estables, pero mejora a medida que pasa el tiempo.
El factor más 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ón de comprarlo
pidiéndolo por correo en disquetes, cinta o CD-ROM (vea
el
Apéndice 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ás. Si planea instalar Linux en un gran número
de
máquinas, solo necesita comprar una copia del
software_Linux no se distribuye con licencia para
"una sola máquina".
El valor de las
implementaciones comerciales de UNIX no debería ser
rebajado: conjuntamente
con el precio del
software en si, uno paga generalmente por la
documentación, 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
a correr una versión comercial de UNIX en un
laboratorio de
estaciones de trabajo. Linux es capaz
de proporcionar la funcionalidad de una estación
de trabajo sobre hardware de PC a una fracción
de
su coste.
Como un ejemplo del "mundo real" sobre el uso de Linux
dentro de la comunidad informática,
los sistemas Linux han viajado hasta los grandes mares
del Pacífico Norte, encargandose de las
telecomunicaciones y analisis de datos para en un
buque de investigación oceanográfica. Los
sistemas
Linux se están usando en estaciones de investigación en la Antártida. Como
ejemplo más mundano,
quizá, varios hospitales están usando
Linux para mantener registros de
pacientes. Está probando ser
tan fiable y útil como otras implementaciones de
UNIX.
Hay otras implementaciones gratuitas o baratas de UNIX
para el 386 y 486. Una de las más
conocidas es 386BSD, una implementación y
adaptación 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 única
distinción 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óficas y
de diseño 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ódigo de BSD existente
para usarlo en el 386.
NetBSD es otra adaptación de la
distribución NET/2 de BSD a un número de
máquinas, incluy-
endo el 386. NetBSD tiene una estructura de
desarrollo ligeramente más abierta, y es comparable
al
386BSD en muchos aspectos.
Otro proyecto conocido es HURD, un esfuerzo de la Free
Software Foundation (Fundación de
Software gratuito) para desarrollar y distribuir una
versión gratis de UNIX para muchas plataformas.
Contacte con la Free Software Foundation (la dirección se da en el Apéndice F)
para obtener más
información sobre este proyecto. Al tiempo de
escribir este documento, HURD aun está en los
primeros pasos de su desarrollo.
También existen otras versiones baratas de UNIX,
tales como Coherent (disponible por cerca de
$99) y Minix (un clónico de UNIX
académico, pero útil, en el que se basaron los
primeros pasos del
desarrollo de Linux). Algunas de estas implementaciones
son de interés en
mayor parte académico,
mientras otras son sistemas ya maduros para productividad
real. No hace falta decir, sin embargo,
que muchos usuarios de UNIX de PC se están
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ía de las
ocasiones, que el hardware soportado por Linux es
únicamente aquél al que usuarios y
desarrolladores
tienen realmente acceso. Según van apareciendo,
se van soportando la mayor parte del hardware y
los periféricos populares para sistemas
80386/80486 (de hecho, Linux soporta más hardware
que
algunas implementaciones comerciales de UNIX). Sin
embargo, aún no son reconocidos algunos de
los periféricos más oscuros y
esotéricos. Según pasa el tiempo aumenta el
hardware soportado por
Linux, de manera que si sus periféricos favoritos no están
aquí listados, hay gran probabilidad
de
que sean soportados próximamente.
Otro inconveniente en el soporte de hardware bajo Linux
es que muchas compañías han decidido
conservar las especificaciones del interfaz de su
hardware como propietario. Como consecuencia de
ésto, los desarrolladores voluntarios de Linux
simplemente no pueden escribir controladores (drivers)
para esos periféricos (y si pudieran, tales
controladores serían propiedad de
la compañía dueña del
interfaz, lo cual violaría el GPL). Las
compañías 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éricos.
Hay muy poco que hacer en esta tesitura. En algunos
casos, los programadores han intentado
escribir controladores "cloneados" basándose en
asumciones acerca del interfaz. En otras ocasiones,
los desarrolladores trabajarán con la
compañía en cuestión e intentarán
obtener información del
interfaz del periférico con un nivel de
éxito que puede variar.
En las siguientes secciones, trataremos de resumir los
requerimientos hardware para Linux. El
documento Hardware HOWTO (ver Sección 1.9)
contiene un listado más completo del hardware
soportado por Linux.
Aclaración: un buen tratado acerca del hardware
soportado por Linux, está actualmente en fase
de desarrollo. Algunas distribuciones puede que
soporten, o no, estas características
experimentales.
Esta sección 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ón de la distribución de Linux
que
está usando (ver Sección 2.1 para
más información 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/Pro. Esto
incluye
todas las variantes del tipo de CPU, como el
386SX, 486SX, 486DX, y 486DX2. Los "clónicos"
no
Intel, como AMD y Cyrix también funcionan con
Linux (14).
_________________________________________
(14) N. del T.: Linux ya soporta, en la actualidad a
otras arquitecturas tales como ALPHA, Amiga, PowerPc,
etc.
_____________________________________________________________________________________
Si tiene un 80386 o 80486SX, puede que también
quiera aprovechar el coprocesador matemático,
si bien no es imprescindible (el núcleo de Linux
puede emular el coprocesador si no cuenta con uno).
Están soportados todos los copros
estándar, 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érminos
definen cómo interactúa el sistema con los
periféricos y otros componentes por medio del bus princip-
al. La mayoría de los sistemas vendidos hoy son
de bus ISA o
EISA. El bus MicroChannel
(MCA),
que se encuentra en máquinas como los IBM/PS2 no
está soportado actualmente.
Los sistemas que usan arquitectura de
bus local (para accesos más rápidos en vídeo
y disco)
también están soportados. Es recomendable
que tenga una arquitectura de
bus local estándar como
pueda ser el Bus Local VESA (15) ("VLB").
_________________________________________
15N. del T.: PCI también está
soportado
_________________________________________
1.8.2 Requisitos de memoria
Linux, comparado con otros sistemas operativos
avanzados, necesita muy poca memoria para funcion-
ar . Debería contar con un mínimo de 2
megabytes de RAM; sin embargo,
es altamente recomendable
tener 4 megabytes. Cuanta más memoria tenga
más rápido irá su sistema.
Linux soporta el rango completo de direcciones de
32-bits de los 386/486; es decir, utilizará toda
la
memoria RAM de forma automática, y se
apañará sin problemas con tan sólo 4
megabytes de RAM,
incluyendo aplicaciones "pedigüeñas" como
X-Window, Emacs, y demás. Sin embargo, disponer
de
más memoria es casi tan importante como tener un
procesador
más rápido. 8 megabytes es más
que
suficiente para uso personal; 16 megabytes o más
pueden ser necesarios si espera una fuerte carga
de usuarios en el sistema.
La mayoría 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ísica
en
su máquina, puede que quiera utilizar un
área de "swap" . El área de "swap" no puede
reemplazar
a una memoria física RAM real, pero
puede permitir a su sistema ejecutar aplicaciones más
grandes
guardando en disco duro
aquellas partes de código que están inactivas. La
cantidad de espacio de
intercambio a reservar depende de diversos factores;
volveremos a esta cuestión en la Sección
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ínimo
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ándar
(16-bit). El núcleo
soporta controladoras XT-estándar (8 bit); aunque
la mayoría de las controladoras usadas hoy son
AT-estándar. Linux debería soportar todas
las controladoras MFM, RLL, e IDE. La mayoría,
pero
no todas, las controladoras ESDI están soportadas
sólo aquellas que hacen emulación 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ía poder hacerlo
desde Linux.
Linux también soporta un número de
controladoras de disco SCSI, si bien el soporte para SCSI es
más 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ón 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 SCSI; Western Digital WD7000FASST. Las
controladoras clónicas basadas en estas tarjetas
también deberían funcionar.(16)
_________________________________________
(16) N. del T.: Ver la sección 1.9 sobre como
conseguir el fichero Hardware HOWTO que contendrá una
lista mas actualizada y completa
_____________________________________________________________________________________
1.8.4 Requisitos de espacio en disco
Efectivamente, para instalar Linux, necesitará
tener algo de espacio libre en su disco duro. Linux
soporta múltiples discos duros
en la misma máquina; puede disponer de espacio para Linux
en
múltiples unidades si es necesario.
La cantidad de espacio en disco duro que
necesitará depende en gran medida de sus
necesidades
y de la cantidad de software que va a instalar. Linux es
relativamente pequeño en relación a las
implementaciones de UNIX; usted podría 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ás grandes
como X Window, necesitará más espacio. Si
planea permitir a múltiples usuarios utilizar la
máquina,
tendrá que dejar espacio para sus
ficheros.
También, a menos que tenga un montón de
memoria RAM
física (16
megabytes o más), necesit-
ará crear espacio de intercambio ("swap"), para
ser usado como RAM virtual. Comentaremos todos
estos detalles acerca de la instalación y uso del
espacio de intercambio en la Sección 2.2.3.
Cada distribución de Linux normalmente viene con
algún que otro texto que debería ayudarle
a
estimar la cantidad precisa de espacio a reservar en
función del software que planee instalar. Puede
ejecutar un sistema mínimo 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á que decidir, según sus
necesidades y objetivos, los
requerimientos específicos de alma-
cenamiento para su sistema.
1.8.5 Requisitos de monitor y
adaptador de vídeo
Linux soporta todas las tarjetas de vídeo
estándar Hercules, CGA, EGA, VGA, IBM
monocromo,
y Super VGA así como monitores para
el interfaz por defecto basado en texto. En general, si
la
combinación que tiene de monitor y
tarjeta de vídeo funcionan bajo otro sistema operativo
como
MS-DOS, debería funcionar perfectamente con
Linux. La genuínas tarjetas CGA de IBM sufren
el
(d)efecto nieve ("snow") bajo Linux, por lo que no es
muy recomendable su uso.
Los entornos gráficos como el Sistema X Window
tienen requerimientos propios de hardware para
la tarjeta de vídeo. En vez de listar estos
requerimientos aquí, los trataremos en la Sección
5.1.1.
De forma breve, para ejecutar el Sistema X Window en su
máquina Linux, necesitará alguna de las
tarjetas de vídeo listadas en esa
sección.
1.8.6 Hardware diverso
Las secciones de arriba describían qué
hardware es necesario para correr un sistema Linux.
Sin
embargo, la mayoría de los usuarios tienen cierto
número de dispositivos "opcionales" como alma-
cenamiento en cintas y CD-ROM, tarjetas de sonido y
demás, y están interesados en saber si
este
hardware está, o no es, soportado por Linux. Siga
leyendo.
1.8.6.1 Ratones y otros dispositivos
apuntadores
Normalmente usted sólo usará un
ratón bajo un entorno gráfico como el Sistema X
Window. Sin
embargo, algunas aplicaciones Linux no asociadas con un
entorno gráfico, hacen uso del ratón.
Linux soporta todos los ratones serie estándar,
incluyendo Logitech, MM series, Mouseman, Mi-
crosoft (2-button) y Mouse Systems
(3-botones). Linux también soporta los ratones de bus
Microsoft,
Logitech, y ATIXL. El interfaz de ratón de PS/2
también es soportado.
Todos los demás dispositivos apuntadores, como
los "trackball" que emulen a los dispositivos de
arriba, también deberían
funcionar.
1.8.6.2 Almacenamiento en
CD-ROM
Casi todas las unidades de CD-ROM usan el interfaz SCSI
(17). Siempre y cuando tenga un adaptador
SCSI soportado por Linux, su unidad de CD-ROM
debería funcionar. Hay un número 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én están soportadas por
Linux.
Linux soporta el sistema de ficheros estándar
para CD-ROMs ISO-9660.
_______________________
(17) N. del T.: El parque de CD ROMs ha cambiado de
forma asombrosa en los últimos meses. Sirva decir que
Linux soporta, además de las citadas en el párrafo,
los nuevos estándares ATAPI para CD ROMs conectables a
controladoras IDE
_____________________________________________________________________________________
1.8.6.3 Unidades de cinta
Hay varios tipos de unidades de cinta disponibles en el
mercado. La
mayoría usan el interfaz SCSI,
por lo que estarían soportadas por Linux. Entre
las unidades de cinta SCSI verificadas están la
Sankyo CP150SE; Tandberg 3600; Wangtek 5525ES, 5150ES, y
5099EN con el adaptador PC36.
Otras unidades QIC-02 deberían estar soportadas
también.
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ía
poder acceder
a él desde Linux también. El software
de impresión de Linux consiste en el software
estándar de UNIX lp y lpr. Este software también
le
permite imprimir remotamente a través 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
Kermit, pcomm, minicom, Seyon. Si su modem es accesible
desde otro sistema operativo en la misma
máquina, debería poder acceder a él
sin dificultad desde Linux.
1.8.7 Tarjetas Ethernet
Linux soporta un buen número de tarjetas Ethernet
y adaptadores para LAN (18). Esto
incluye los
siguientes:
_________________________________________
18N. del T.: Algunas tarjetas token-ring ya están
soportadas
_____________________________________________________________________________________
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ónicos 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ónicas compatibles con
cualquiera de las tarjetas anteriores también
debería fun-
cionar.
1.9 Fuentes de información sobre Linux
Como podrá imaginar, además de este libro,
hay muchas otras fuentes de información 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ás indicado es leer uno
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ón sobre Linux
están disponibles principalmente de forma
electrónica. Esto es, deberá tener acceso
a una red, como Internet, USENET o Fidonet, con el fin
de obtener la documentación. 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ón On-Line
Si tiene acceso a Internet, encontrará variada
documentación 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ón existente en la red.
Además,
se suelen distribuir por redes diferentes como Fidonet o
Compuserve. Y si tiene acceso únicamente
al correo en Internet, puede obtener ficheros de
servidores FTP
sin más que usar un servidor de
ftpmail. Vea el apéndice C para más
información.
Hay gran cantidad de servidores FTP
que distribuyen software y documentación de Linux.
En
el apéndice C encontrará una lista con
servidores
conocidos. Con el fin de reducir el tráfico de
red,
debería utilizar el servidor que le quede
más cercano (19) geográficamente.
_________________________________________
(19) N. del T.: Vea el apéndice E.1 para
localizar una lista de ftps españoles
_____________________________________________________________________________________
El apéndice A incluye una lista de algunos de los
documentos sobre Linux que se encuentran
disponibles por FTP anónimo. 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án en /pub/Linux y la documentación
en
/pub/Linux/docs.
Algunos documentos que puede encontrar son las Linux
FAQ, una colección de FAQ sobre Linux;
los documentos HOWTO, dedicados a aspectos
específicos, como la instalación inicial
(Installation
HOWTO) o la configuración de impresoras y
spoolers (Printing HOWTO).
Algunos documentos se envían regularmente a uno o
más grupos USENET
sobre Linux. No deje
de leer la sección 1.9.4 sobre el tema de las
News.
1.9.2 Linux en el WWW
La página inicial de la documentación de
Linux en el Web se encuentra
en la dirección URL
http://sunsite.unc.edu/mdw/linux.html
Desde esta página puede accederse a los HOWTOs y
otros documentos en formato HTML.
También
se encuentran enlaces a otros servidores de interés.
1.9.3 Libros y otras publicaciones
En este momento, hay algunos trabajos publicados sobre
Linux. Principalmente, los libros del
Proyecto de Documentación de Linux (LDP), que se
lleva a cabo mediante Internet para escribir y
distribuir una colección de manuales para
Linux. Estos manuales son
análogos a los que se publican
junto con versiones comerciales de UNIX: tratan la
instalación y puesta en marcha,
programación,
trabajo en red, asuntos del núcleo y muchas cosas
más.
Los manuales del LDP se encuentran disponibles mediante
FTP anónimo en el Internet, así como
por correo a través de algunos comercios. En el
apéndice A se enumeran los manuales disponibles
y
cómo conseguirlos.
No hay muchos más libros que traten el tema
particular de Linux. Sin embargo, sí que hay
numerosos libros sobre UNIX en general que normalmente
son aplicables a Linux, como aquellos
sobre cómo 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ón de
Linux lo encontrará en los libros sobre UNIX.
Encontrará los nombres de algunos de estos libros
en
el apéndice 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én existe un magazine mensual sobre Linux,
el Linux Journal. Se distribuye por todo el
mundo y es una excelente manera de mantenerse al
día en este tema, sobre todo si no se tiene
acceso
a USENET. En el apéndice A encontrará
información sobre cómo suscribirse a esta
publicación.
1.9.4 Grupos de NEWS USENET
"USENET" es un foro mundial de artículos
electrónicos organizado en "grupos", o sea, áreas
de
discusiones relacionadas con cada tema concreto.
Buena parte del desarrollo de Linux ha sido a
través de Internet y USENET, con lo que no es
extraño que existan bastantes grupos que traten
el
tema.
Inicialmente, el grupo sobre Linux era alt.os.linux, y
se creó para tratar aquí las cuestiones
que sobre Linux abundaban ya en comp.os.minix y varias
listas de correo. El tráfico en el grupo
de Linux fue creciendo lo suficiente como para
permitirse el paso a la jerarquía comp, en Febrero
de
1992.
comp.os.linux se ha convertido en un grupo de News muy
conocido, más que cualquiera otro de
comp.os. En Diciembre del 92 se votó la
creación del grupo comp.os.linux.announce para
reducir
el tráfico de comp.os.linux. En Julio de 1993 se
partió este grupo de forma definitiva en la
jerarquía
que hoy existe.
Si no tiene acceso a USENET, pero sí puede usar
el correo electrónico, 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-
antes respecto a Linux (como informes sobre
errores detectados, lanzamiento de
parches, etc). Si quiere leer grupos de Linux, empiece
por éste. Los artículos que
aquí se publican no son reenviados a
ningún otro grupo normalmente. En él se
pueden encontrar además muchos artículos
que se envían periódicamente, incluy-
endo documentos ya mencionados como los
HOWTOs.
Los envíos 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á de enviar el
artículo a los moderadores para que
lo acepten. Sin embargo, si su sistema no está
correctamente configurado, puede
enviarlo directamente a la dirección de correo
linux-announce[arroba]tc.cornell.edu.
Los restantes grupos sobre Linux no están
moderados.
comp.os.linux.help
Es el grupo más popular. Contiene preguntas y
respuestas sobre la instalación o
ejecución de los sistemas Linux. Si tiene
problemas con Linux, puede usar este grupo
y recibirá respuesta de quien pueda ayudarle. Sin
embargo, se recomienda que lea
antes la documentación por si ahí
encuentra la ayuda necesaria.
comp.os.linux.admin
En este grupo se discuten temas relacionados con la
administración del sistema Linux
como entorno multiusuario. Aquí son bienvenidos
los comentarios y preguntas sobre
software de empaquetado, de backups, o sobre la gestión
de cuentas de
usuarios.
comp.os.linux.development
En este grupo se discuten asuntos relacionados con el
desarrollo en el núcleo de
Linux. Por ejemplo, si está escribiendo un driver
nuevo y necesita consejo sobre
algún aspecto, es aquí donde deberá
preguntar. Además, es aquí donde se
discuten
los objetivos en
el desarrollo de Linux, tal y como se dice en la sección
1.6.
Debe observarse que este grupo no está 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í se mantienen debates que no encajen en los
grupos anteriores. Concretamente,
las típicas guerras "Linux
vs. Windows 95" o
cualquier artículo de carácter no
técnico.
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ónico 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
a Internet, gracias a las pasarelas que ofrecen otros
servicios,
como UUCP, FidoNET o CompuServe.
La lista de correo de "Activistas del Linux" (20)
está 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ás "canales" según 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ón
de Linux).
_____________________________________________________________________________________
20N. del T.: Linux Activists
_____________________________________________________________________________________
Para más información sobre esta lista de
correo, envíe un mensaje a
linux-activists[arroba]niksula.hut.fi
Recibirá una lista de canales disponibles e
información de cómo apuntarse o borrarse de
éstos.
Existen otras listas de correo de propósito
especial. El mejor camino para encontrarlas es leer
los
anuncios aparecidos en USENET, y la lista de
"mailing-list" disponible periódicamente en el
grupo
news.answers.
1.10 Cómo obtener ayuda
Indudablemente, necesitará cierta ayuda durante
sus primeras aventuras en el mundo de Linux.
Aquí veremos algunas indicaciones sobre
cómo obtener esa ayuda.
La forma más 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ón 1.9. Si no tiene acceso a Internet,
puede encontrar ayuda en otros servicios
on-line como los BBS's o Compuserve.
También hay ciertas empresas que han empezado a
dar soporte comercial de Linux. Esto le
permitirá pedir ayuda a los técnicos a
cambio del
pago de una cuota. El apéndice B contiene una
lista de comerciantes de Linux, alguno de los cuales
ofrece soporte técnico. Sin embargo, si tiene
acceso a USENET y al correo de Internet, verá que
puede obtener soporte técnico de calidad
y
gratuito.
Lo que sigue son sugerencias que le hacemos para mejorar
su experiencia con Linux y garantizarle
mayor probabilidad de
éxito para encontrar soluciones a
los problemas que se le presenten.
Consultar primero toda la documentación
disponible
Lo primero que debe hacer cuando encuentre un problema
es leerse la documentación que se lista
en la sección 1.9 y el apéndice A. Estos
documentos fueron laboriosamente escritos para gente
como
usted_gente que necesitaba ayuda sobre Linux. Los libros
sobre Unix también se pueden usar para
resolver dudas de Linux.
Frecuentemente, y por difícil 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ácilmente en los
libros pero que tienen frecuente respuesta en los
grupos de USENET o similar. Enviar la pregunta a los
grupos sin leerlos antes puede ser una pérdida
de tiempo.
Aprenda a apreciar las cosas hechas por uno
mismo.
En la mayoría 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 él lo que quiera
(modificarlo, etc). Si aprende a hacerse las cosas por
sí mismo, su experiencia le permitirá llegar
a
ser, tal vez, uno de los famosos "gurús" de
Linux.
Mantenga la calma.
Hay que evitar la desesperación a pesar de todos
los problemas. No se ha oído aun ninguna
historia de alguien que, en un ataque de ira, borrase
todos sus discos de Linux con un fuerte imán.
Los mismos autores se han desahogado a puñetazos
con almohadas o similares en arrebatos de este
tipo. Hay que esperar un poco a que las distribuciones
de Linux se hagan más fáciles aun de
instalar,
aunque ya lo son más 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ún problema, no se vaya de inmediato al
terminal más 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á 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á ahí para ayudarle. La Red no es un
servicio
post-venta. Así
pues, hay que redactar el artículo
de la forma más completa posible.
¿Cómo puede conseguir esto? En primer
lugar, debe incluir toda la información acerca de
su
sistema y el problema que crea relevante. Una escueta
pregunta como "no puedo conseguir que el
correo electrónico funcione" difícilmente
será contestada, a menos que incluya información
acerca de
su sistema, qué software utiliza, qué ha
intentado hacer para resolverlo y qué resultados ha
obtenido.
Además, suele ser interesante añadir
información más general, como qué
versión del sistema utiliza
(del núcleo y distribución), así
como un pequeño 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ónico, y pretende
que directamente le cuenten en la Red cómo se
hace, estará cometiendo un gran error. Hay
muchos
documentos disponibles (vea la sección 1.9)
acerca de cómo iniciar la instalación de paquetes
de
aplicación típicos bajo Linux. La idea es
hacer todo lo que pueda por sí mismo y solo entonces
pedir
ayuda si finalmente la necesita.
Recuerde también 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ón a su problema ya está en la Red
antes de que lo pregunte.
Por último sea conciso, en la medida de lo
posible, a la hora de redactar un artículo. Es
mucho
más efectivo ser breve, directo e informativo al
pedir ayuda. No olvide la educación. Son
frecuentes
las disputas en la Red sin venir demasiado a cuento. La Red
(21) 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úblicas de datos
_____________________________________________________________________________________
Capítulo 2
Obtención e Instalación de
Linux
En este capítulo describiremos cómo
obtener el software de Linux, en forma de una de las
distribu-
ciones ya preparadas, y cómo instalar la
distribución que elija.
Como hemos citado, no hay una única
distribución "oficial" del software de Linux; hay, de
hecho,
muchas distribuciones, cada una de las cuales sirve a un
propósito particular y una serie de objetivos.
Estas distribuciones están disponibles por FTP
anónimo en Internet, en BBS de todo el mundo, y
por correo en disquete, cinta, y CD-ROM.
Aquí presentamos una visión general del
proceso de instalación. Cada distribución tiene
sus
propias instrucciones de instalación
específicas, pero armado con los conceptos presentados
aquí de-
bería ser capaz de sentirse cómodo frente
a cualquier instalación. El Apéndice A lista las
fuentes de
información de instrucciones de
instalación y otra ayuda, por si Ud. está
completamente perdido.
Este libro contiene secciones adicionales detallando la
distribución Slackware de Linux.
2.1 Distribuciones de Linux
Al ser Linux un software de libre distribución,
no hay ninguna organización 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 ésto es que existen muchas
distribuciones de Linux, disponibles a través de
FTP anónimo o pidiéndolo por correo.
Ud. se encuentra ahora con la tarea de decidirse por una
distribución en particular de Linux
que se ajuste a sus necesidades. No todas las
distribuciones son iguales. Muchas de ellas incluyen
prácticamente todo el software que Ud.
necesitaría para poner en marcha un sistema completo_
y
algunas otras distribuciones son "pequeñas"
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ás grandes, como el
Sistema X-Window (En el Capítulo 4 le mostraremos
cómo.)
El Linux Distribution HOWTO (vea el Apéndice A)
contiene una lista de las distribuciones de
Linux disponibles a través de Internet,
así como por correo. El Apéndice B contiene una
lista de
direcciones de contacto de un número de
vendedores de Linux por correo. Si Ud. compró
este
libro impreso, el editor debería poder
proporcionarle una distribución de Linux o decirle
cómo puede
conseguirla.
¿Cómo puede Ud. decidirse entre todas
estas distribuciones? Si tiene acceso a las news de
USENET, u otro sistema de conferencias por ordenador,
podría preguntar allí las opiniones
personales
de la gente que haya instalado Linux. Incluso mejor, si
conoce a alguien que haya instalado el Linux,
pídale consejo y ayuda. Hay muchos factores a
considerar cuando se elije una distribución,
sin
embargo, las necesidades y opiniones de cada uno son
diferentes. En la actualidad, la mayoría de
las distribuciones populares de Linux contienen
aproximadamente el mismo conjunto de software, de
forma que la elección de una distribución
es más o menos arbitraria.
Este libro contiene información sobre la
instalación 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ás
fácil de obtener Linux es a través de FTP
anónimo (1)
El apéndice C contiene una lista con servidores
de archivos por
FTP que poseen software de Linux.
Uno de éstos es sunsite.unc.edu, y puede
encontrar varias distribuciones de Linux en el
directorio:
_________________________________________
(1) Si no tiene acceso directo a Internet, puede obtener
Linux a través del servicio
ftpmail, siempre y cuando tenga capacidad de intercambiar correo
con Internet. Lea el Apéndice C para más
detalle.
_____________________________________________________________________________________
/pub/Linux/distributions
Muchas distribuciones se crean en servidores de FTP
anónimo como un conjunto de imágenes
de
disco. Es decir, la distribución consiste en un
conjunto de ficheros, y cada fichero contiene la
imágen
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).
_____________________________________________________________________________________
(2) Si tiene acceso a una estación de trabajo
UNIX con una disquetera, también puede usar el comando dd
para copiar el fichero imagen
directamente al disquete. Un comando como "dd of=/dev/rfd0 if=foo
bs=18k" hará un "raw write" de los contenidos del fichero
foo a la disquetera en una estación de trabajo SUN.
Consulte con sus administradores de UNIX para mayor
información sobre las disqueteras de su sistema y el uso
del comando dd.
_____________________________________________________________________________________
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ágenes
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á dispuesto a
comenzar. El software se suele instalar directamente
desde los disquetes, aunque algunas distribuciones le
permiten instalarlo desde una partición MS-
DOS de su disco duro. Algunas distribuciones le permiten
instalar desde una red TCP/IP. La
documentación de cada distribución
debería describir estos métodos de
instalación si los tienen
disponibles.
Otras distribuciones de Linux se instalan desde un
conjunto de disquetes con formato MS-DOS.
Por ejemplo, la distribución Slackware de Linux
sólo 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ón de Linux disponible en FTP
anónimo debería incluir un fichero README
de-
scribiendo cómo transferir y preparar los
disquetes para instalación. Asegúrese de leer toda
la
documentación disponible para la versión
que esté usando.
Cuando transfiera el software de Linux, asegúrese
de usar el modo binary para todas sus trans-
ferencias de ficheros ( con la mayoría de
clientes FTP,
el comando "binary" activa este modo).
Lea la Sección 2.1.4, abajo, si necesita
información sobre cómo obtener la
distribución 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ás, muchos sistemas BBS (Bulletin Board
System) también proporcionan el software de
Linux. Podrá ver una lista de BBS de Linux en
el
Apéndice D. No todas las distribuciones de Linux
están disponibles desde estas redes de
ordenadores,
sin embargo_ muchas de ellas, en especial las diversas
distribuciones en CD-ROM, sólo pueden
obtenerse a través 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éndice B lista
un número de estos distribuidores. Muchos de
ellos aceptan tarjetas de crédito, así como pedidos
internacionales, de modo que, si no está Ud. en
Estados Unidos o Canadá, aun debería poder
conseguir Linux de este modo.
Linux es un software de libre distribución,
aunque a los distribuidores se les permite por la GPL
cargar una cantidad por ello. Por ello, pedir Linux por
correo podría costarle entre 30 y 150
dólares
USA, dependiendo de la distribución. Sin embargo,
si Ud. conoce a alguien que ya haya comprado o
se haya transferido una versión de Linux, Ud. es
libre de pedírsela o copiársela para su propio
uso.
A los distribuidores de Linux no se les permite
restringir la licencia o redistribución del
software
en ninguna medida. Si está pensando en instalar
un laboratorio
completo de máquinas Linux, por
ejemplo, solo necesitará comprar una única
copia de una de las distribuciones, la cual puede usar
para instalar todas las máquinas.
2.1.4 Conseguir la Slackware
Slackware es una popular distribución de Linux
mantenida por Patrick Volkerding (3) Es fácil
de
instalar y está bastante completa, y se puede
obtener a través de Internet o también en CD-ROM
a
través de varios vendedores (ver Apéndice
B).
_________________________________________
(3) Se puede contactar con Patrick Volkerding por
Internet en volkerdi[arroba]mhd1.moorhead.msus.edu.
_____________________________________________________________________________________
La distribución 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ás tarde.
La versión de Slackware descrita aquí es
la 2.0.0 del 25 de Junio de 1994. La instalación
de
versiones posteriores de la Slackware debería ser
muy similar a la que se detalla aquí.
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á al menos 7 megabytes para instalar
sólo
las series de discos "A"; una estimación
aproximada del espacio en disco requerido sería de unos
2
ó 2.5 megabytes por disco.
Están 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ándar de sistema de ficheros
(FSSTND).
Estos discos están preparados para caber en
discos de 1.2M, aunque el resto de la
Slackware no. Si sólo tiene una disquetera de
1.2M, aún puede instalar el sistema
base bajándose los otros discos que desee e
instalándolos desde su disco duro.
AP Contienen varias aplicaciones y anexos, como las
páginas 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ías 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ón de FAQs y otros
documentos.
I Páginas de información sobre software
GNU. Documentación para varios programas
que pueden ser leídas con info o
Emacs.
N Redes. TCP/IP, UUCP, mailx, dip, deliver, elm, pine,
smail, cnews, nn, tin,
trn.
OOP Programación
orientada a objetos. GNU Smalltalk 1.1.1, y el interface para
Small-
talk en X (STIX).
Q Fuentes de kernels Alpha e imágenes
(en la actualidad contiene Linux 1.1.18) (4)
_________________________________________
(4) Quizá cuando lea esto ya contenga una
versión mucho más moderna.
_____________________________________________________________________________________
TCL Tcl, Tk, TclX, blt, itcl.
Y Juegos. La
colección de juegos BSD, y
tetris para terminales.
X El sistema base XFree86 2.1.1, y además 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ías X11,
servidor linkkit y soporte para PEX.
XV Xview 3.2 release 5. Librerías XView, y los
gestores de ventanas virtuales y no
virtuales Open Look.
IV Librerías 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ón de desarrolladores en Linux
de acuerdo con los términos ex-
presados en la nota sobre copias que se encuentra en
esas librerías. Hay que tener
en cuenta que esto sólo se aplica con libc-4.4.4,
aunque puede aparecer una nueva
versión una vez que la versión 2.5.9
esté disponible.
T Los sistemas para el formateo de textos TEX y
LATEX
Deberá conseguir el disk set "A"; el resto son
opcionales. Nosotros sugerimos la instalación
de
los disk sets A, AP ,y D, así como el set X si
tiene intención de utilizar el sistema
X-Window.
2.1.4.2 Conseguir la Slackware por Internet
La distribución Slackware de Linux se puede
encontrar en muchos FTP sites a lo largo del mundo.
El Apéndice C lista algunos de los FTP sites que
hay de Linux; le sugerimos que intente encontrar el
software en el FTP site que esté más
cercano a su zona para reducir el tráfico de la red. No
obstante,
dos de los mayores FTP sites sobre Linux son
sunsite.unc.edu y tsx-11.mit.edu.
La distribución Slackware puede encontrarse como
mínimo 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.
2.1.4.2.1 Obtener los ficheros Debería bajarse
los siguientes ficheros usando FTP. Asegúrese
de poner el modo binario antes de comenzar la
transferencia. El Appéndice C contiene un
tutorial
completo sobre el uso de FTP.
o Los diversos ficheros README,y los SLACKWARE_FAQ.
Asegúrese de leer esos ficheros antes de
intentar instalar el software, para ver cualquier
actualización o cambio en
éstos ficheros.
o Una imagen de bootdisk. Este es un fichero que
escribirá 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ólo tiene
drivers para discos duros
del tipo IDE. (Sin
soporte para SCSI, CD-ROM o de red.) Utilice éste
si sólo tiene una controladora IDE y
no va a instalar Linux a través 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ás 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ólo necesita una de las anteriores imágenes
de bootdisk, dependiendo del hardware que tenga
en su sistema.
La cuestión aquí es que algunos drivers
hardware entran en conflicto unos
con otros de formas
extrañas, de modo que a veces, en vez de intentar
arreglar problemas hardware, en su sistema
es más fácil usar una imagen de bootdisk
con sólo ciertos drivers habilitados. La mayor
parte
de las ocasiones los usuarios deberían probar con
el scsi.gz o el bare.gz.
o Una imagen de rootdisk. Este es un fichero que
escribirá en un disquette para crear el disco
de instalación 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ón basado en
menús en color para
disqueteras de 1.44
megabytes. La mayoría de los usuarios
deberían usar este rootdisk.
– umsds144.gz. Una versión del disco color144
para instalar el sistema de ficheros UMS-
DOS, que permite instalar Linux en un sistema de
ficheros MS-DOS. Este método
de
instalación no se trata aquí en detalle,
pero le evitará el tener que reparticionar su
disco
duro. Se ampliará esto más
adelante.
– tty144.gz. El disco de instalación para
disqueteras de 1.44 megabytes en modo terminal
(sin menú en colores). Si el
color144.gz no funciona en su ordenador pruebe con éste
en
su lugar.
– colrlite.gz. El disco de instalación basado en
menús para discos de 1.2 megabytes.
– umsds12.gz. Una versión del disco colrlite para
instalar Linux con el sistema de ficheros
UMSDOS. Ver la descripción sobre el umsds144.gz
un poco más arriba.
– tty12.gz. El disco de instalación en modo
terminal (sin menú 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ólo necesita una de las
imágenes 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ágenes de bootdisk y de rootdisk
(la extensión .gz de sus nombres indica eso).
Se encuentra en el directorio install.
o RAWRITE.EXE. Este es un programa MS-DOS que
escribirá el contenido de un fichero (como los
de las imágenes de boot y de rootdisk)
directamente a un disquette sin importar el formato.
Lo
deberá utilizar para crear los discos de boot y
de root. También se encuentra en el directorio
install.
Solamente necesitará 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ón
UNIX con disquetera, puede crear los discos
desde ahí usando el comando dd. Consulte la
página 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ón
Slackware. Se requerirán más adelante.
Deberá copiar
éstos ficheros a discos MS-DOS para instalarlos
(o también puede instalarlos desde su disco
duro). Por lo tanto, cuando se baje éstos
ficheros, mantengalos en directorios separados; no
mezcle los ficheros del a1 con los del a2,
etc.
Asegúrese también 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é sets de discos esté
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ás
arriba, asegúrese de mantener los ficheros en
directorios separados cuando se los baje.
2.1.4.3 Conseguir la Slackware en CD-ROM
Slackware también se puede obtener en CD-ROM. La
mayoría 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á crear un disco boot y otro root de los
ficheros que hay en el CD-ROM. Ver la
Sección 2.1.4.2.1, más arriba, para la
descripción de las imagenes boot y root
existentes.
Primero, decida qué imagenes boot y root va a
usar. Deberían estar todas en el CD-ROM.
Más
abajo describiremos cómo crear éstos
discos.
2.1.4.4 Métodos de
instalación
Slackware proporciona varias maneras distintas para
instalar el software. La más popular es
instalar
desde una partición 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 él. La
distribución 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ón de ciertas aplicaciones
serámás lenta.
2.1.4.4.1 Creando los disquettes de boot y de
root.
Debe crear disquettes a partir de las imágenes
del bootdisk y del rootdisk que haya obtenido (o que tenga en
CD-ROM), sin importar el tipo de instalación 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á usando la imagen
de bootdisk bare.gz, ejecute el comando MS-DOS:
C:> GZIP -D BARE.GZ
con lo que se descomprimirá bare.gz y
tendrá el fichero bare. Si está 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á usando el
rootdisk color144.gz, ejecute el comando:
C:> GZIP -D COLOR144.GZ
que descomprimirá el fichero y obtendrá el
color144.
Después, deberá 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án ser de 3.5"y de alta
densidad.) y deberá usar RAWRITE.EXE para
escribir las imágenes de boot y de rootdisk a los
discos.
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á el fichero, bloque a bloque,
diréctamente al disco. De la misma forma use
RAWRITE con la imagen del rootdisk. Cuando haya
acabado tendrá dos discos: uno será 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úrese de que esté usando discos nuevos
y libres de errores. No deben tener ningún
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ón de los
discos de boot y de root, y hace más fácil la
instalación
del software (como el poder instalar directamente desde
una partición MS-DOS de su sistema). Si
no está utilizando MS-DOS en su sistema, puede
usar el sistema MS-DOS de otra persona,
sólo 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á una estación
UNIX con disquetera, por supuesto.) Por ejemplo, en
una
estación 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ño de bloque (el argumento obs) en algunas
estaciones (por ejemplo, en las Suns) o, si no, no lo
hará bien. Si tiene problemas, la página
man
sobre dd puede ser de ayuda.
2.1.4.4.2 Preparándose para la instalación
desde disco duro.
Si lo que quiere es instalar la Slackware directamente
desde el disco duro (lo que muchas veces es más
rápido y más fiable que una instalación
desde disquette), necesitará una partición MS-DOS
en el sistema en el que vaya a instalar la Slackware.
Nota: Si va a instalar la Slackware desde una
partición MS-DOS, esta partición NO debe
estar
comprimida con DoubleSpace, Stacker, o cualquier otro
tipo de utilidad de
compresión de disco.
Por el momento Linux no puede leer particiones MS-DOS
comprimidas con DoubleSpace o Stacker
diréctamente. (Aunque se puede acceder a
éstas por medio del Emulador de MS-DOS, ésta no
es
una opción cuando se instala el software
Linux.)
Para preparar la instalación desde disco duro,
simplemente cree un directorio en él para
almacenar
los ficheros de la Slackware. Por ejemplo,
C:> MKDIR SLACKWAR
creará el directorio C:SLACKWAR que
contendrá los ficheros de la Slackware. Bajo este
directorio,
deberá 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án en el directorio SLACKWARA1, y lo
mismo con los demás discos.
2.1.4.4.3 Preparándose para la instalación
desde disquette.
Si desea instalar la Slackware desde disquettes en lugar
de desde disco duro, necesitará 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ólo tiene una disquetera de 5.25",
necesitará 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ón 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á los contenidos del disco A1 a la
disquetera A:. Deberá repetir esto con cada disco que
se
haya bajado.
No necesita modificar o descomprimir los discos de
ninguna forma; sólamente necesita copiarlos
en disquettes MS-DOS. Será el procedimiento de
instalación de la Slackware el que se encargue
de
ello por Ud.
2.1.4.4.4 Preparándose para la instalación
desde CD-ROM.
Si tiene la Slackware en un CD-ROM, ya está
preparado para instalar el software una vez que haya creado los
disquettes de boot y de root. El software se instalará
directamente desde el CD-ROM.
2.2 Preparación para instalar Linux
Una vez que usted ha obtenido una distribución de
Linux, estará preparado para instalar el
sistema.
Esto supone cierto grado de planificación, sobre todo si en su
ordenador se usan actualmente otros
sistemas operativos. En las secciones siguientes
describiremos cómo preparar la instalación de
Linux.
2.2.1 Visión general de la
instalación
A pesar de ser diferente cada distribución de
Linux, el método
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á reparticionar los discos con el fin de
reservar espacio para Linux. Esto se tratará
más
adelante en la Sección 2.2.4.
2. Arranque la instalación de Linux. Cada
distribución de Linux incluye algo para arran-
car inicialmente e instalar el software, usualmente un
diskette de arranque. Arrancando de
esta forma, usted entrará en un programa de
instalación para el resto del software, o bien
le
permitirá seguir instalándolo a
mano.
3. Cree las particiones para Linux. Después 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ón 2.3.3.
4. Cree los sistemas de ficheros y el espacio de
intercambio. En este momento, debe crear
uno o más sistemas de ficheros, utilizados para
guardar sus ficheros, en las particiones recién
creadas. Además, 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és de
esto, lo que queda es fácil_si todo va bien.
Esto se trata el la Sección 2.3.6. Más
adelante, en la Sección 2.5, describiremos qué
hacer si
algo no va bien.
La mayoría de las distribuciones de Linux
proporcionan un programa de instalación que le
guiará en cada paso de la instalación, y
automatiza algunos de esos pasos. Tenga en cuenta que
cualquiera de los siguientes pasos pueden estar
automatizados o no, dependiendo de la
distribución.
La distribución 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ón. Escriba todo lo que haga, todo lo que
escriba
y todo lo que vea y pueda no parecerle normal. La idea
aquí es simple: si usted tiene (<o cuando
tenga!) problemas, usted querrá poder retroceder
sus pasos y encontrar qué hizo mal. Instalar
Linux
no es difícil, pero hay que recordar
continuamente muchos detalles. Usted querrá llevar un
registro
de todos esos detalles para poder probar de otra forma
si algo le va mal. Además, guardando sus
notas sobre su experiencia instalando Linux le
será útil cuando quiera pedir ayuda a otras
personas,
por ejemplo cuando envíe un mensaje a un grupo de
news USENET sobre Linux. Sus notas sobre la
instalación son también algo que
querrá mostrar a sus nietos algún
día.
2.2.2 Conceptos sobre particiones
En general, los discos duros
se encuentran divididos en particiones, donde cada
partición 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ño de
sus particiones con el fin de reservar espacio para
Linux. En el espacio reservado se crearán una o
más particiones para almacenar el software de
Linux y el espacio de intercambio. A este proceso lo
llamamos reparticionar.
La mayoría de los sistemas MS-DOS utilizan una
única partición que ocupa todo el disco.
Para
MS-DOS, esta partición es accedida como C:. Si
usted tiene más de una partición, MS-DOS
las
llamará D:, E:, y así sucesivamente, de
modo que cada partición actúa como si fuera un
disco duro
independiente.
En el primer sector del disco está 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ón acerca
del lugar y el tamaño de cada partición.
Hay tres clases de particiones: primarias, extendidas, y
lógicas. De éstas, las más usadas
son las primarias. Sin embargo, debido al límite
del tamaño de la tabla de particiones, sólo
pueden
tenerse hasta cuatro particiones primarias en un
disco.
La forma de superar este límite de cuatro
particiones es usar particiones extendidas. Una
partición
extendida no tiene datos ella misma;
en su lugar, actúa como "soporte" de particiones
lógicas. Por
lo tanto, se puede crear una partición extendida
que ocupe todo el disco, y dentro crear cualquier
número de particiones lógicas. Sin
embargo, sólo puede tenerse una partición extendida
por disco.
2.2.3 Necesidades de reparticionado en Linux
Antes de que expliquemos cómo reparticionar sus
discos, necesita tener una idea acerca del espacio
que necesita para Linux. Trataremos más adelante
el tema de crear las particiones, en la Sección
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ífica del
árbol de directorios; por ejemplo, en la
mayoría de los sistemas, existe un sistema de ficheros
para
todos los ficheros del directorio /usr, otro para /tmp,
etc. El sistema de ficheros raíz es el
principal, que corresponde con el directorio
raíz, /.
Bajo Linux, cada sistema de ficheros ocupa una
partición 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á
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íz), y una
partición reservada a Linux. La mayoría de
los usuarios de Linux optan por almacenar todos sus
ficheros en el sistema de ficheros raíz, pues en
la mayor parte de los casos es más fácil 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ón de sistemas UNIX sabrán
como usar diferentes sistemas de ficheros
adecuadamente.
En el capítulo 4 discutiremos la
utilización de varias particiones y sistemas de
ficheros.
¿Por qué usar más de un sistema de
ficheros? Lo más habitual es por seguridad; si, por
alguna
razón, uno de sus sistemas de ficheros resulta
dañado, los otros normalmente no resultarán
afectados.
Por otro lado, si usted almacena todos sus ficheros en
el sistema de ficheros raíz, y por alguna
razón
resulta dañado, 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é preocuparse (5).
_________________________________________
(5) El autor utiliza un único sistema de ficheros
de 200 megabytes para todos sus ficheros de Linux, y no ha tenido
ningún problema (hasta ahora).
_____________________________________________________________________________________
Otra razón 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íz 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á repartido entre
los discos, necesitará utilizar varios sistemas de
ficheros
para aprovecharlos.
En resumen, Linux requiere por lo menos una
partición, para el sistema de ficheros raíz. Si
se
desea crear varios sistemas de ficheros, se
necesitará una partición por cada sistema de
ficheros.
Algunas distribuciones de Linux crean particiones y
sistemas de ficheros de forma automática, de
modo que usted no necesita preocuparse demasiado de
estos asuntos.
Otra cuestión 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ón es
crear una partición de intercambio, una
partición reservada exclusivamente como espacio de
swap.
La mayoría de la gente usa una partición
para el intercambio en lugar de un fichero.
Cada fichero o partición de intercambio puede ser
de hasta 16 megabytes. Si se desea tener más
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ón 2.3.4 se ocupa de cómo poner a
punto una partición para el intercambio, mientras
que
lo referente a ficheros de swap se trata en el
Capítulo 4.
Por lo general, se crearán dos particiones para
Linux: una para ser usada como sistema de ficheros
raíz, y la otra como espacio de intercambio. Por
supuesto, hay otras opciones pero esta es la
opción
mínima. El espacio de swap no es obligatorio en
Linux, pero está muy recomendado si posee menos
de 16 megabytes de memoria física.
También necesita conocer el espacio requerido
para cada partición. El tamaño de los
sistemas
de ficheros de su sistema Linux depende en gran parte de
qué software quiera instalar en él y de
la
distribución de Linux que esté utilizando.
Afortunadamente, la documentación de la
distribución le
dará una idea del espacio requerido. Un sistema
pequeño puede utilizar sólo 20 megabytes o
menos;
un sistema grande siempre necesitará 80 a 100
megabytes, o más. Tenga en cuenta que hay que
añadir a esto el espacio extra para los
directorios de usuario, expansiones futuras, etc.
El tamaño de sus particiones de swap (debe
elegirse una para esto) depende de la RAM virtual
que necesite. Lo típico es crear una
partición de intercambio del doble de espacio de su RAM
física;
por ejemplo, si tiene 4 megabytes de RAM, una
partición de 8 megabytes suele bastar. Por
supuesto,
esto es solo una idea la cantidad de espacio de swap que
requiere dependerá del software que quiera
ejecutar. Si usted tiene una gran cantidad de memoria
física (digamos, 16 megabytes o más)
puede
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ás allá
del cilindro 1023. Así pues, cuando se decida el
espacio
para Linux, recuerde que no debe usar una
partición que sobrepase ese cilindro para el sistema
de
ficheros raíz. Linux puede usar perfectamente
particiones con cilindros más allá del 1023, pero
dichas
particiones no servirán para arrancar . Decir
esto aquí puede parecer prematuro, pero es
importante
a la hora de planificar el uso del disco en
Linux.
Si se usara una partición para el sistema de
ficheros raíz más allá del cilindro 1023,
siempre
podrá arrancar Linux con un disco boot. Esto no
es un inconveniente_solo tarda unos segundos
más
que si se arrancara desde el disco duro.
2.2.4 Reparticionado de los discos
En esta sección vamos a describir cómo
cambiar el tamaño de sus particiones actuales (si las
hay)
para reservar espacio para Linux. Si usted está
instalando Linux en un disco duro "limpio", puede
pasar directamente a la Sección 2.3 de más
adelante.
La manera habitual de cambiar el tamaño de una
partición es borrarla (lo que implica borrar
toda la información que contenga) y rehacerla.
Antes de reparticionar sus discos, haga un backup.
Después 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ño de las
particiones de forma no destructiva. Uno de éstos
se conoce como "FIPS", y puede encontrarse en
muchos servidores de FTP de Linux.
Recuerde también que debido a que se
empequeñecen las particiones originales, no se va a
poder
reinstalar todo el software que se tenía antes.
En este caso, hay que borrar el software innecesario
para permitir que el resto quepa en las particiones
más pequeñas.
El programa utilizado para hacer particiones es fdisk.
Cada sistema operativo tiene su propia
versión de este programa; por ejemplo, bajo
MS-DOS, se activa con el comando FDISK. Debe consul-
tarse la documentación de los sistemas operativos
en uso para obtener información sobre este
asunto.
Aquí nos referiremos unicamente a MS-DOS con
FDISK, pero lo que digamos puede ser fácilmente
extrapolado a otros sistemas operativos.
Consulte, por favor , la documentación de sus
sistemas operativos actuales antes de proceder a
reparticionar sus discos. Esta sección pretende
ser sólo una visión 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ón de fdisk correspondiente a ese
sistema; por ejemplo, se crearán las particiones para
Linux
utilizando el programa fdisk que viene con Linux.
Más adelante, en la Sección 2.3.3,
describiremos
cómo crear particiones de Linux, pero por ahora
nos ocuparemos solo de cambiar el tamaño de las
actuales.
Supongamos que usted tiene un solo disco duro en su
sistema, dedicado, por ahora, enteramente
a MS-DOS. Esto es, su disco duro contiene una
partición MS-DOS, conocida habitualmente como
"C:". Puesto que este método de
reparticionado destruirá todos los datos de la
partición, 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ón de MS-DOS. Sin embargo,
si necesita el disco de sistema, formatéelo
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í 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ón de FDISK debería ser
autoexplicativa, pero puede consultarse la documentación
de
MS-DOS para obtener detalles. Cuando comience el
programa FDISK, utilice el menú de opciones
para mostrar la tabla de particiones, y anote la
información que se le muestre. Es importante
guardar
copia de su configuración original en caso de que
quiera detener la instalación de Linux.
Para borrar una partición, seleccione la
opción del menú "Delete an MS-DOS Partition
or
Logical DOS Drive" (Eliminar partición o unidad
lógica
DOS). Especifique el tipo de partición
que desea borrar (primaria, extendida o lógica)
y el número de la partición. Verifique todos
los
avisos que se le presenten.
Para crear una nueva partición para MS-DOS
(más pequeña), seleccione la opción de
FDISK
"1. Crear partición DOS o unidad lógica
DOS". Especifique el tipo de partición
(primaria,
extendida o lógica)
y el tamaño (en megabytes). FDISK deberá crear la
partición.
Después de hacer esto mediante FDISK, debe
abandonar el programa y reformatear las nuevas
particiones. Por ejemplo, si se cambió el
tamaño de la partición C: se tecleará el
comando
FORMAT /s C:
Ahora puede reinstalar el software desde el
backup.
2.3 Instalación del software de Linux
Después de modificar sus particiones para
reservar espacio a Linux, usted está preparado
para
instalar el software. A continuación 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;
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ás) pasos de los
anteriores pueden estar automatizados por los pro-
gramas de instalación, según la
distribución que esté utilizando. Por favor,
consulte la documentación
de su distribución para ver las instrucciones
específicas.
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ño sistema
Linux. Tras arrancar con el floppy, se le presentará
un
menú de instalación de algún tipo
que le guiará en el proceso de instalación. En
otras distribuciones,
se le mostrara un prompt de login cuando arranque.
Aquí se suele entrar como root o install para
comenzar el proceso de instalación.
La documentación que viene con su particular
distribución le explicará qué necesita para
arrancar
Linux.
Si usted está instalando la distribución
de Linux Slackware, lo único requerido es arrancar
con
el disco "boot" que creó en la sección
anterior.
La mayoría de las distribuciones de Linux
utilizan un disquete de arranque que le permite intro-
ducir parámetros de su hardware en tiempo de
arranque, para forzar la detección de sus
dispositivos.
Por ejemplo, si su controladora SCSI no se detecta
durante el arranque, necesitará rearrancar y
especificar los parámetros del hardware (como
direcciones E/S e IRQ) en el prompt de arranque.
Asímismo, las máquinas PS/1, ThinkPad y
ValuePoint de IBM no almacenan la información
de
geometría 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ón Slackware. En otras es necesario
mantener pulsadas las teclas |_shift_|o
|_ctrl_|mientras
se arranca. Si va bien, debería verse el
prompt
boot:
y tal vez otros mensajes.
Para arrancar sin más parámetros
especiales, pulse enter en el prompt del arranque.
Observe los mensajes del arranque. Si tiene una
controladora SCSI, debería ver una lista de
hosts
SCSI detectados. Si observa el mensaje
SCSI: 0 hosts
es porque no se detectó su controladora SCSI, y
tendrá que seguir el siguiente procedimiento.
Además, el sistema le informará de las
particiones y dispositivos detectados. Si cualquier
parte
de esta información es incorrecta (o falta
alguno), tendrá que forzar la detección del
hardware.
Por otro lado, si todo va bien y todo su hardware es
correctamente detectado, puede pasar a la
siguiente sección, la Sección
2.3.2.
Para forzar la detección del hardware, debe
entrar los parámetros adecuados en el prompt de
arranque, utilizando la siguiente sintaxis:
ramdisk <parameters. .>.
Hay cierto número de parámetros
disponibles; aquí mostraremos los más
comunes.
hd=<cylinders>,<heads>,<sectors>
Especifica la geometrá 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érico 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 éstos, debe entrar ramdisk
seguido del parámetro 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í como el documento Linux CD-ROM HOWTO.
Estos documentos describen cuestiones de
compatibilidad de hardware con mucho más
detalle.
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áticamente. 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ón 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ón en su sistema, lo puede acceder a
través 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ómo 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ón primaria 1
/dev/hda1
Primer disco duro, partición primaria 2
/dev/hda2
Primer disco duro, partición primaria 3
/dev/hda3
Primer disco duro, partición primaria 4
/dev/hda4
Primer disco duro, partición lógica
1 /dev/hda5
Primer disco duro, partición lógica 2
/dev/hda6
..
.
Segundo disco duro (todo el disco) /dev/hdb
Segundo disco duro, partición primaria 1
/dev/hdb1
..
.
Primer disco duro SCSI (todo el disco)
/dev/sda
Primer disco duro SCSI, partición primaria 1
/dev/sda1
..
.
Segundo disco duro SCSI (todo el disco)
/dev/sdb
Segundo disco duro SCSI, partición 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:).
Además, los discos duros SCSI se nombran de
manera diferente a otros discos. Los IDE, MFM y
RLL se acceden a través 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í 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ógicas, ambas para ser usadas con Linux. Los
dispositivos quedarían representados con:
Primera partición MS-DOS (C:)
/dev/hda1
Segunda partición MS-DOS (D:)
/dev/hda2
Partición extendida /dev/hda3
Primera partición lógica de
Linux/dev/hda5
Segunda partición lógica de
Linux/dev/hda6
Observe que nos hemos saltado /dev/hda4, ya que
corresponde a la cuarta partición primaria,
que no existe en el ejemplo. Las particiones
lógicas se nombran de forma consecutiva partiendo
de
/dev/hda5.
2.3.3 Creación de las particiones en
Linux
Ahora ya está preparado para crear las
particiones de Linux con el comando fdisk. Como se
explicó en la Sección 2.2.3, va a tener
que crear, en general, una partición para el software de
Linux
propiamente dicho y otra para el área de
intercambio.
Después 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éase 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úa sobre
/dev/hda (el primer disco IDE).
Para crear particiones de Linux en más de un
disco, ejecute fdisk una vez por disco.
# fdisk /dev/hda
Command (m for help):
En este punto, fdisk está 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
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ón. Casi todas las demás 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ón
única en /dev/hda1, con 61693 bloques (unos 60 megabytes)
(6)
Esta partición comienza en el cilindro 1 y
finaliza en el 203. En total el disco tiene 683 cilindros
de
los cuales 480 están libres para crear
particiones de Linux.
_________________________________________
(6) En Linux, un bloque son 1024 bytes.
_____________________________________________________________________________________
Para crear una nueva partición, 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í, fdisk pide el tipo de partición a
crear: extendida o primaria. En nuestro ejemplo elegimos
p
pues solo vamos a crear particiones
primarias.
Partition number (1-4):
fdisk preguntará entonces por el número de
la partición a crear; puesto que la 1 está en uso,
nuestra
primera partición para Linux debe ser la
2.
Partition number (1-4): 2
First cylinder (204-683):
Ahora debe entrar el cilindro de comienzo de la
partición. Dado que actualmente no están en uso
los
cilindros 204 a 683, escogeremos el primero disponible
(204), ya que no hay razón para dejar huecos
entre particiones.
First cylinder (204-683): 204
Last cylinder or +size or +sizeM or +sizeK
(204-683):
Ahora fdisk nos está preguntando acerca del
tamaño de la partición a crear. Podemos hacerlo
espe-
cificando el cilindro de terminación de la
partición o metiendo directamente el tamaño
requerido, en
bytes, kilobytes, o megabytes. Como queremos que la
partición ocupe 80 megabytes, especificaremos
+80M. Cuando se indica el tamaño de esta forma,
fdisk lo redondea a un número 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ían superar los 64 megabytes.
Ahora podemos pasar a crear la segunda partición.
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ás, anote la información que se le
presente_sobre todo los tamaños en bloques de las
nuevas particiones. Necesitará conocerlos
cuando
tenga que crear, más tarde, los sistemas de
ficheros. Además, 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
Como puede ver, ahora en /dev/hda2 tenemos una
partición 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ón
elegida para el intercambio a "Linux swap",
normalmente
con el número 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ón
de intercambio a "Linux swap".
De esta forma, el software de instalación
podrá encontrar automáticamente sus particiones de
swap
en función del tipo. Si el software de
instalación no pudiera reconocer su partición de
intercambio,
deberá repetir la ejecución de fdisk y
utilizar el comando t sobre la partición en
cuestión.
En el ejemplo anterior, los cilindros sobrantes (508 a
683) se quedan sin usar. Puede que se desee
hacerlo así, para más adelante crear
más particiones.
Finalmente, utilizaremos el comando w para escribir los
cambios en el disco y salir.
Command (m for help): w
#
Recuerde que ningún cambio hecho
durante la ejecución de fdisk tendrá efecto hasta
que se
teclee el comando w, por lo que se puede jugar con
diferentes configuraciones y salvarla solo cuando
se esté decidido. Además, se puede usar el
comando q para abandonar fdisk sin hacer ningún
cambio. Recuerde también que las particiones de
otros sistemas operativos no deben tocarse desde
el programa fdisk de Linux.
Asímismo, recuerde que no se puede arrancar Linux
desde una partición que comience más allá
del
cilindro 1023. Por lo tanto, se puede crear la
partición de raíz 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ática esta información en el
núcleo, con lo que no es necesario rearrancar. Lo
más
seguro es volver a arrancar tras crear las
particiones.
2.3.4 Creación del espacio de intercambio
(swap)
Si usted está pensando en usar una
partición de intercambio para obtener RAM virtual, es
ahora el
momento de hacerlo (7) En el Capítulo 4
discutiremos la preparación de un fichero de swap para
el
caso de que no desee usar una partición para
esto.
_________________________________________
(7) De nuevo, algunas distribuciones de Linux preparan
el área de intercambio automáticamente, o bien
mediante un menú de instalación.
_____________________________________________________________________________________
Muchas distribuciones necesitan que se cree y active la
partición de intercambio antes de instalar
el software. Si usted tiene poca RAM física, la
instalación puede no ir bien, a menos que se
active
una cierta cantidad de swap.
La distribución Slackware necesita que se cree el
área de swap antes de la instalación, si se
tienen
4 megabytes o menos. Si este no es el caso, el procedimiento de
instalación de Slackware puede
usarse para preparar la partición de intercambio
automáticamente. Si no esá seguro, siga con
el
procedimiento descrito aquí.
El comando utilizado para preparar una partición
de intercambio es mkswap, tecleándose
mkswap -c <partition> <size>
donde <partition> es el nombre de la
partición de swap y <size> es el tamaño de la
partición, en
bloques (8). Por ejemplo, si su partición de
intercambio es la /dev/hda3 y tiene 10336 bloques,
teclee
el comando
_________________________________________
( 8) Este tamaño es dado por fdisk, utilizando la
opción p. Un bloque en Linux son 1024 bytes.
_____________________________________________________________________________________
# mkswap -c /dev/hda3 10336
La opción -c indica a mkswap que compruebe si hay
bloques erróneos en la partición mientras
la
crea.
Si se usan varias particiones de intercambio, se
necesitará ejecutar el comando mkswap apropiado
para cada partición.
Después de preparar el área de swap, hay
que decirle al sistema que la use. Normalmente, el
sistema comienza a usarla automáticamente 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ón 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ón de un
sistema de ficheros es análoga a formatear una
partición de MS-DOS u otros sistemas operativos.
Ya discutimos los sistemas de ficheros en la
Sección 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ísticas (como
longitud del nombre de los ficheros, tamaño
máximo,
etc). Además, Linux soporta sistemas de ficheros
"de terceros" como el de MS-DOS.
El tipo de sistema de ficheros más usado es el
Sistema de Ficheros Extendido 2, o ext2fs. El
ext2fs es uno de los más eficientes y flexibles
sistemas; permite hasta 256 caracteres en los nombres
de los ficheros y tamaños de éstos de
hasta 4 Terabytes. En el Capítulo 4 veremos los diferentes
tipos
disponibles en Linux. De momento nos conformaremos con
sugerirle el sistema ext2fs.
Si usted está instalando la distribución
Slackware, el propio procedimiento de instalación
descrito
en la próxima sección crea los sistemas de
ficheros de forma automática. Si desea crear sus
propios
sistemas a mano, siga el método que
a continuación describimos.
Para crear un sistema tipo ext2fs utilice el
comando
mke2fs -c <partition> <size>
donde <partition> es el nombre de la
partición, y <size> es el tamaño de la
partición 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á repetir el comando mke2fs por
cada sistema de ficheros.
Si se ha encontrado con algún problema en este
punto, lea la Sección 2.5 al final de este
capítulo.
2.3.6 Instalación del software
Finalmente, ya está preparado para instalar el
software en su sistema. Cada distribución tiene
una
forma distinta de hacerlo. Muchas tienen un programa que
le guía paso a paso en este proceso. En
otras, usted tendrá que montar sus sistemas de
ficheros en un directorio (como /tmp) y copiar el
software a éste a mano. En las distribuciones en
CD-ROM puede seguir la opción 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ón
MS-DOS de su disco duro, en lugar de hacerlo desde los
disquetes. O incluso puede hacerlo a través de
una red TCP/IP mediante FTP o NFS. Consulte la
documentación de la distribución para ver
detalles.
Por ejemplo, la distribución Slackware
sólo 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ón ejecute el programa setup, que le
guía mediante un menú bastante autoexplicativo
en
la instalación del software. La
utilización de setup se describe en detalle
luego.
El método
exacto para instalar el software de Linux difiere en gran parte
según la distribución.
Confiamos en que instalar el software de Linux es
autoexplicativo, como sucede con la mayoría de
las distribuciones.
2.3.6.1 Instalando la Slackware con setup
Si está instalando la Slackware, después
de crear las particiones (y probablemente de crear
espacio
para swap), utilice el comando
# setup
Esto le llevará a un menú que le
dirigirá a través del resto de los pasos de la
instalación.
El procedimiento descrito aquí corresponde con el
que se encuentra en los rootdisks color144 y
colrlite; los otros rootdisks pueden seguir procesos
ligeramente diferentes.
El menú del setup consta de
los_siguientes_elementos._Utilice los cursores para moverse por
las
diferentes opciones, y presione |_enter_|ó
|_spacebar_p|ara seleccionar uno.
Help Para ver el fichero de ayuda del setup.
Keymap Esta opción le permite especificar el mapa
de teclado para
su sistema si no tiene un
teclado USA. Se le presentará una lista de
mapas de teclado;
seleccione el elemento
más 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á recomendado para
la mayoría de las instalaciones
(salvo que haya instalado la Slackware una docena de
veces, en cuyo caso ya se lo
sabrá 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ólo es necesario
para personalizar el procedimiento de
instalación; y no debería preocuparse de
ello.
Addswap Este será el primer punto que la mayor
parte de los usuarios seleccionará para
instalar la Slackware. Se presentará una lista
con las particiones de swap disponibles
(las particiones con tipo "Linux swap" fijadas desde el
fdisk), y podrá especificar
qué particiones desea utilizar para espacio de
swap. Después se le preguntará si
desea ejecutar mkswap en esas particiones.
Si ya ha ejecutado mkswap y swapon (como se
describió en la Sección 2.3.4) en sus
particiones swap, entonces no debería 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án
disponibles una vez que tenga el sistema
instalado.
3 ¡Cuidado! Crear espacio de swap en una
partición destruirá todos los datos de
esa
partición. Asegúrese de que no está
borrando información que quiera conservar.
Si selecciona éste elemento del menú, se
le preguntará automáticamente si desea
seguir con los siguientes pasos. En general, siempre
deberá contestar afirmativa-
mente.
Target Este elemento permite especificar las particiones
en las que se va a instalar Linux.
Se presentará una lista con las particiones
disponibles (aquellas que se especificaron
como de tipo "Linux native" en el fdisk), y se
pedirá que introduzca el nombre
de la partición raiz de Linux, como por ejemplo
/dev/hda2. Después se pregun-
tará por el tipo de sistema de ficheros que desea
crear; nosotros sugerimos utilizar
el tipo de sistema de ficheros ext2fs como se
describió en la Sección 2.3.5. Esto
creará un sistema de ficheros en la
partición nombrada_algo parecido a formatear
una partición bajo MS-DOS.
También se preguntará por cualquier otra
partición que quiera utilizar con Linux.
Por ejemplo, si crea una partición separada para
/usr (mirar Sección 2.2.3),
podrá especificar el nombre de la
partición y la localización donde se vaya a
montar
(como por ejemplo, en /usr o /usr/bin).
3 ¡Precaución! Crear un sistema de ficheros
en una partición destruirá todos los
datos
de esa partición. Asegurese de que no borra datos
que quiera conservar.
Incluso aunque ya haya creado sistemas de ficheros
usando mke2fs (ver
Sección 2.3.5), deberá usar el elemento
del menú Target para especificar las parti-
ciones donde será instalado el Linux.
Source Con ésto se podrá especificar el
lugar desde donde se instalará la Slackware,
sea
disquette, disco duro, o CD-ROM.
Si está instalando desde disco duro, se le
preguntará en qué partición se
encuentran
los archivos de la
Slackware, y el tipo de partición de que se trata. Por
ejemplo, si
tiene los ficheros de la Slackware en una
partición MS-DOS, introduzca el nombre de
la partición (como por ejemplo /dev/hda1) y
seleccione MS-DOS FAT como el tipo.
Después se le preguntará en qué
directorio dentro de esa partición se
encuentran
los ficheros. Por ejemplo, si tiene los ficheros de la
Slackware almacenados en el
directorio C:SLACK en su partición 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á instalando desde CD-ROM, se le
preguntará por el tipo de CD-ROM que
esté 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
ésto ya depende de la edición que
tenga.
Si está instalando Slackware Professional (9), se
utilizan dos directorios del CD-ROM.
slakware se usa para el sistema estándar, que
instalará los ficheros diréctamente
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éctamente desde el CD-ROM. Esto puede
ahorrar espacio de disco, pero el acceso a muchos
ficheros es notablemente más lento.
Otros distribuidores de la Slackware también
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ás bajo.
_________________________________________
( 9) Slackware Professional es una versión de la
Slackware distribuida por Morse Telecommunications.
_____________________________________________________________________________________
Si intenta una instalación desde disco duro o
desde CD-ROM, la Slackware puede
advertirle de que hay un error de mount en éste
punto. Esto generalmente es una
indicación de que ha habido un problema
accediendo al disco duro o al CD-ROM.
Consulte la Sección 2.5.3 para más
información si se encuentra con un mensaje de
este tipo.
Disk sets Esta opción del menú permite
seleccionar los sets de discos que desee instalar.
Como
mínimo 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á antes de instalar los paquetes
marcados como "optional" o "recommended" en el set de
discos.
Install Por fin, esta opción del menú
instalará el software en su sistema. Se le
preguntará por
el modo de preguntas que se le harán. La mayor
parte de los usuarios deberán
seleccionar ñormal". Para cada set de discos que
haya seleccionado, los paquetes
marcados como "required" serán instalados, y se
le preguntará cuando se vayan
a instalar los paquetes marcados "optional" y
"recommended". Si está instalando
desde disquette se le irá preguntando por los
disquettes en sucesión para que los
vaya insertando.
Mientras se esté instalando cada paquete
aparecerá en pantalla una breve
descripción de su contenido. Salvo que tenga
algún conocimiento
de UNIX o de
Linux, muchas de estas descripciones no tendrán
mucho significado para Ud. Tome
nota de que paquetes están 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ás común 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á una
indicación de que los ficheros del disquette
pueden estar corrompidos o incompletos;
o que el disquette en sí está mal.
Cualquier disquette que dé ese error deberá
ser
reemplazado, y deberá reinstalar el set de discos
que contenga esos ficheros. Consulte
la Sección 2.5.3 para más
ayuda.
También es posible que obtenga errores al
intentar acceder al CD-ROM; asegúrese
de que el CD-ROM está limpio, sin marcas de dedos,
etc.
Configure Esta opción realiza algunas
configuraciones post-instalación en el sistema.
Se
tratarán en la siguiente
sección.
2.3.7 Creación del disco de arranque o
instalación del LILO
Cada distribución proporciona mecanismos para
arrancar Linux cuando ya esté instalado en su
sis-
tema. En la mayoría de los casos se creará
un disquete "boot" que contiene el núcleo de Linux
con-
figurado para usar con su recién creado sistema
de ficheros raíz. Para arrancar Linux, deberá
hacerlo
desde ese disquete y tras el arranque se pasará
el control a su disco duro. En otras distribuciones,
el disco de arranque es el propio disquete de
instalación.
La mayoría de las distribuciones le van a dar la
opción de instalar LILO en su disco duro. LILO
es un programa que se instala en el registro maestro
de arranque del disco, y está preparado para
arrancar varios sistemas operativos, entre los que se
incluyen MS-DOS y Linux, permitiéndole elegir
qué sistema quiere arrancar en cada
momento.
En el caso de la distribución Slackware, la
opción Configure del menú setup le permitirá
tanto
crear un disquete de arranque como instalar LILO. Esas
opciones deberían ser suficientemente auto-
explicativas. El menú Configure también
sirve para especificar el módem y el ratón de que
dispone,
así como su zona horaria.
Con el fin de instalar LILO correctamente, necesita
conocer bastante información acerca de la
configuración de su disco por ejemplo, qué
particiones contiene cierto sistema operativo,
cómo
arrancar cada sistema operativo, etc. La mayoría
de las distribuciones, cuando se instala LILO, tratan
de elegir la mejor configuración para
éste. Aunque no es lo habitual, la instalación
automatizada de
LILO puede fallar, dejando el registro de
arranque maestro de su disco inservible (aunque es
difícil
que ésto llegue a hacerle perder datos de su
disco). En concreto, si
utiliza el Boot Manager de OS/2,
usted no deberá instalar LILO mediante el
procedimiento automático para ello, habrá que
seguir
instrucciones especiales que le daremos más
tarde.
En muchos casos, lo mejor es usar un disquete de
arranque, hasta que usted esté en condiciones
de configurar LILO a mano. Si usted es excepcionalmente
confiado, puede seguir adelante con el
procedimiento automático para instalar LILO si
éste forma parte de la distribución.
En el Capítulo 4 comentaremos en detalle
cómo configurar e instalar LILO para su
configuración
particular.
Si todo fue bien, ¡Enhorabuena! Acaba usted de
instalar Linux en su sistema. Tómese una
Coca-Cola Light o algo así_realmente se lo
merece.
En caso de que tuviese algún problema, la
siguiente sección le describirá los puntos
"oscuros"
más habituales en las instalaciones de Linux, y
cómo resolverlos.
2.3.8 Otros procedimientos de
instalación
Algunas distribuciones proporcionan procedimientos de
instalación adicionales, permitiéndole
con-
figurar diversos módulos como el de red TCP/IP,
el sistema X Window, y otros. Si en su
instalación
se encontró con opciones de este tipo, puede que
desee leer capítulos posteriores de este libro
para
obtener más información acerca de
cómo configurar ese software. Si no, puede guardar esas
opciones
de instalación hasta que entienda perfectamente
cómo configurar el software.
Hasta aquí, si algo falla, retroceda y mire a ver
qué puede estar pasando. Es difícil que algo
que
haya hecho mal ahora no pueda ser deshecho
después (toque madera, por si
acaso).
2.4 Procedimientos
post-instalación
Después de haber completado la instalación
de Linux, debería de haber poco más que hacer antes
de
que Ud. pueda comenzar a usar el sistema. En la
mayoría de los casos, Ud. debería poder
arrancar
el sistema, entrar como root, y comenzar a explorar el
sistema. (Cada distribución tiene un
método
ligeramente distinto de hacer esto.)
Llegado este punto es una buena idea explicar
cómo rearrancar y apagar el sistema cuando lo
esté usando. No debería 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| (10). Por supuesto,
tampoco debería desconectar la corriente. Como en
la mayoría 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ño
impredecible.
_________________________________________
_______________
(10) En la mayoría de sistemas Linux, sin
embargo, |_ctrl-alt-del_ |provocará que el sistema se
apague de forma adecuada, como si Ud. hubiera usado el comando
shutdown.
_________________________________________
_______________
La forma más fácil 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á limpiamente su sistema. La
página de manual de shutdown describe el resto de
argu-
mentos disponibles en la línea de comandos
(11)
_________________________________________
(11) Use el comando man shutdown para ver la
página de manual de shutdown.
_____________________________________________________________________________________
Observe, sin embargo, que muchas distribuciones no
proporcionan el comando shutdown en el
software de instalación. Esto significa que la
primera vez que Ud.
rearranque_su_sistema_después
de la instalación, tendrá que hacer uso de
la combinación de teclas |_ctrl-alt-del_.|Después
de esto,
deberá usar siempre el comando
shutdown.
Después de que haya tenido la oportunidad de
explorar y usar el sistema, hay varias opciones
de configuración que debería revisar. La
primera es crear una cuenta de usuario para Ud. mismo
(y, opcionalmente, para el resto de usuarios que
podrían tener acceso al sistema). La creación
de
cuentas de usuario se describe en la Sección 4.4.
Generalmente, todo lo que Ud. tiene que hacer es
entrar como root, y ejecutar el programa adduser
(algunas veces useradd). éste le ayudará
por
medio de varias preguntas a crear una nueva cuenta de
usuario.
Si Ud. creo más de un sistema de archivos para
Linux, o si está usando una partición de
swap,
puede tener que editar el fichero /etc/fstab de forma
que esos sistemas de archivo puedan
estar
disponibles después de rearrancar. (Por ejemplo,
si está utilizando un sistema de archivos
aparte
para /usr, y ninguno de los ficheros que deberían
estar en /usr parecen estar presentes, simplemente
necesita montar ese sistema de archivos). En la
Sección 4.8 se describe este procedimiento.
Observe
que la distribución Slackware de Linux configura
automáticamente sus sistemas de archivo y
espacio
de swap en tiempo de instalación, por lo que esto
no suele ser necesario.
2.5 Resolviendo problemas
Casi todo el mundo se encuentra con algún tipo de
pega o cuelgue cuando intenta instalar Linux
por primera vez. La mayoría de veces el problema
se debe a una simple confusión. Otras veces,
sin
embargo, puede ser algo más serio, como una
equivocación de uno de los desarrolladores, o un
error
del programa.
Esta sección describirá algunos de los
más comunes problemas de instalación, y cómo
resolverlos.
Si su instalación parece haber tenido
éxito, pero recibió mensajes de error inesperados
durante la
misma, también puede encontrarlos descritos
aquí.
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ón. Observe que los siguientes no están
relacion-
ados con el arranque del Linux una vez instalado. Vea la
sección 2.5.4 para obtener información
acerca de estos problemas.
o Se produce un error en el floppy u otro dispositivo
durante el arranque.
El motivo más frecuente de esta clase de
problemas es que el disquete esté corrompido.
Puede
ser que el disquete esté físicamente
dañado, en cuyo caso tendrá 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ó 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ó 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és
de comprobar que éste es el problema.
o El sistema se "cuelga" durante el arranque o
después.
Después de que el disquete arranque, debe ver una
serie de mensajes del núcleo,
indicándole
qué dispositivos está detectando y
configurando. Después de esto, normalmente verá un
prompt
de login, que le permite iniciar la instalación
(en otras distribuciones se entra directamente en
un programa de instalación). 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ún dispositivo del sistema durante
algunos minutos antes de estar seguros de que se
ha bloqueado la máquina.
1. Después del prompt de LILO, el sistema debe
cargar el núcleo desde el floppy. Esto
puede llevar varios segundos; y puede verse que
está sucediendo pues la luz del
floppy
permanecerá encendida.
2. Mientras el núcleo arranca, se probarán
los dispositivos SCSI. Si su sistema tiene SCSI,
el sistema se bloqueará durante unos 15 segundos
mientras se prueban esos dispositivos;
y sucede normalmente después de verse la
línea
lp_init: lp1 exists (0), using polling driver
en su pantalla.
3. Una vez que el núcleo ha terminado de
arrancar, se transfiere el control a los ficheros de
arranque que hay en el disquete. Finalmente, se
verá un prompt de entrada en el sistema,
o bien se entrará en un programa de
instalación. Si se ve un prompt como
Linux login:
deberá entonces entrar (normalmente como root o
install_según la distribución que
utilice). Tras esto, el sistema puede tardar aun 20 o
más segundos mientras el pro-
grama de instalación o el shell se carga desde el
disquete. De nuevo, la luz del floppy
se
mantendrá encendida. No crea que el sistema se ha
bloqueado.
Cualquier cosa de las comentadas más 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ía de los "cuelgues" son las
incompatibilidades del hardware. En la
sección 1.8 del capítulo anterior se
presentó una visión general del hardware que
soporta Linux.
Aunque sus dispositivos estén soportados, puede
tener problemas con configuraciones de éstos
incompatibles que lleven su sistema al bloqueo. Vea la
sección 2.5.2, más adelante, para ver
una discusión 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ón. 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ón. Por ejemplo, toda la imagen del
disquete de
arranque podría ser cargada en el disco RAM, lo
que supone ocupar más de un megaocteto de
memoria.
La solución a este problema es desactivar la
opción de disco RAM durante el arranque. Cada
versión 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ón en la documentación
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ón de las vistas en la
sección anterior, pruebe a desactivar el disco
RAM.
Tenga en cuenta que Linux requiere por sí mismo
un mínimo de 2 megabytes de RAM; y
algunas distribuciones necesitan 4 o
más.
o El sistema muestra un error
como "permission denied" o "file not found" durante
el arranque.
Esto es señal de que su disquete de
instalación está mal. Si intenta arrancar con el
disquete, y
éste es correcto, no deberían 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ón. Si usted creó 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á arran-
cando.
Este error indica que el sistema de ficheros raíz
(que se debe encontrar en el disquete de
arranque), no está. Puede ser que su disquete
esté mal o que no esté arrancando el sistema
de
forma correcta.
Por ejemplo, en muchas distribuciones en CD-ROM, se
necesita que tenga el CD en la unidad
durante el arranque; además la unidad debe estar
encendida y preparada. Es posible también
que el sistema no detecte su CD-ROM durante el arranque;
para más información, vea la
sección 2.5.2.
Si está seguro que ha
seguido correctamente el procedimiento de arranque, puede ser que
su
disquete esté 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ás habitual que surge cuando se
arranca Linux es la incompatibilidad con el hardware.
Aunque todo su hardware esté soportado en Linux,
algún conflicto de
las configuraciones puede
causar extraños 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ómo resolverlos.
2.5.2.1 Aislando los problemas de hardware
Si se encuentra con un problema que cree que está
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ía 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ía 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ón 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ón de la tarjeta
Ethernet al arrancar. Ud. podría suponer que hay
un conflicto o
problema con la tarjeta Ethernet
de su máquina. El modo rápido 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ón 1.8 una lista de tarjetas compatibles), o
bien (b) hay un conflicto de
dirección o de IRQ con
la tarjeta.
"¿Conflicto de
dirección o de IRQ?" ¿Que diablos
significa eso? Todos los dispositivos de su
máquina usan una IRQ, o Interrupt Request Line
(Línea de petición de interrupción), 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ón
pendiente. Si hay más de un dispositivo tirando
de la misma cuerda, el núcleo no podrá
determinar
a que dispositivo debe atender.
Por eso, asegurese de que todos los dispositivos que
tenga instalados estén usando líneas IRQ
únicas. Por lo general la IRQ de un dispositivo
puede establecerse por puentes en la tarjeta; lease
la documentación del dispositivo en particular
para más 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úcleo que le proporciona la
instalación está preconfigurado para usar
una
determinada IRQ para un dispositivo concreto. Por
ejemplo, en algunas distribuciones de Linux, el
núcleo está preconfigurado para usar la
IRQ 5 para la controladora SCSI TMC-950, la controladora
de
CD-ROM Mitsumi, y el driver de ratón tipo bus. Si
Ud. quiere usar dos o más de estos
dispositivos,
necesitará instalar primero Linux con uno solo de
estos dispositivos habilitado, y entonces recompilar
el núcleo para cambiar la IRQ por defecto para
uno de ellos. (Léase el Capítulo 4 para
informarse
sobre como recompilar el núcleo.)
Otro área 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érminos describen mecanismos a
través de los cuales el sistema interactúa con los
dispositivos
hardware. Algunas tarjetas Ethernet, por ejemplo,
utilizan una dirección de memoria compartida a
la vez que una IRQ para interactuar con el sistema. Si
alguna de éstas está en conflicto con
otros
dispositivos, entonces el sistema se puede comportar de
modo inesperado. Ud. debería ser capáz
de cambiar el canal de DMA, dirección de E/S o
memoria compartida en sus diversos dispositivos
con configuraciones de puentes (desafortunadamente,
algunos dispositivos no permiten cambiar estas
configuraciones).
La documentación de sus diversos dispositivos
hardware debería especificar la IRQ, canal DMA,
dirección E/S, o dirección de memoria
compartida que usan los dispositivos, y cómo
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án alguno de estos dispositivos,
asi que Ud. debe evitar poner la IRQ o DMA de otros
dispositivos en conflicto con estos valores.
____________________________________________________________
__Dispositivo_________________Dirección_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
2.5.2.2 Problemas reconociendo discos duros o
controladoras
Cuando arranca Linux, Ud. debería de ver una
serie de mensajes en su pantalla, tales como:
Console: colour EGA+ 80×25, 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á detectando los diversos
dispositivos hardware presentes en su sistema. En
algun momento, debería aparecer la
línea
Partition check:
seguida de una lista de particiones reconocidas, por
ejemplo:
Partition check:
hda: hda1 hda2
hdb: hdb1 hdb2 hdb3
Si, por cualquier razón, sus unidades o
particiones no son reconocidas, entonces no podrá acceder
a
ellas de ningún modo.
Hay varias cosas que pueden provocar que esto
ocurra:
o Disco duro o controladora no soportados. Si Ud.
está usando una controladora de disco
(IDE, SCSI, o cualquier otra) que no esté
soportada por Linux, el kernel no reconocerá
sus
particiones a la hora de arrancar.
o Unidad o controladora mal configurada. A pesar de que
su controladora esté soportada
por Linux, puede no estar configurada correctamente.
(Esto es especialmente problemático con
controladoras SCSI; la mayoria de controladoras que no
son SCSI deberian funcionar bien sin
configuración adicional).
Consulte la documentación 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ón de puentes si van a ser
usados como discos "esclavo" (por ejemplo,
como un segundo disco duro). La manera más
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ón del
hardware.
Vaya a la Sección 2.5.2.1, anterior, para obtener
información sobre cómo resolver posibles
con-
flictos de dispositivos, y la Sección 2.5.2.3,
posterior, para información sobre cómo
configurar
dispositivos SCSI.
o Controladora bien configurada, pero no detectada.
Algunas controladoras SCSI sin
BIOS necesitan que el usuario especifique la
información sobre la controladora a la hora de
arrancar. La Sección 2.5.2.3, posterior, describe
como forzar la detección de hardware para
estas controladoras.
o Geometría
del disco duro no reconocida. Algunos sistemas, como el IBM
PS/ValuePoint,
no almacenan la información de geometría
del disco duro en la memoria
CMOS, donde Linux
espera encontrarla. También, ciertas
controladoras SCSI necesitan que se les diga dónde
en-
contrar la geometría
de la unidad de modo que Linux reconozca el diseño de su
disco.
La mayoria de distribuciones proporcionan una
opción de arranque para especificar la
geometria
del disco. En general, cuando se arranca el software de
instalación, se puede especificar la
geometría 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úmero de cilindros,
cabezas y sectores
por pista para su disco duro.
Después de instalar el software de Linux, Ud.
podrá instalar LILO, permitiendole arrancar
desde el disco duro. En ese momento, puede especificar
la geometría
del disco al procedimiento
de instalación de LILO, haciendo innecesario que
tenga que introducirlo cada vez que arranque.
Lease el Capítulo 4 para mayor información
sobre LILO.
2.5.2.3 Problemas con controladoras y unidades
SCSI
Aquii tiene algunos de los problemas más comunes
con controladoras y unidades SCSI, tales como
CD-ROMs, discos duros, y unidades de cinta. Si
está teniendo problemas haciendo que Linux
reconozca su unidad o controladora, siga
leyendo.
El HOWTO SCSI de Linux (ver Apéndice A) contiene
mucha información útil sobre unidades
SCSI además de la aquí 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ón que la
controladora. Es necesario cambiar la configuración
de
los jumpers de modo que la unidad use una
dirección distinta de la de la propia
controladora.
o Linux reporta errores de detección, incluso
sabiendo que las unidades están 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én que las interrupciones estén
correctamente activadas en su controladora.
o Las controladoras SCSI que utilizan BIOS no son
detectadas. La detección de contro-
ladoras que usan BIOS
fallará si la BIOS está desactivada, o si la
"firma"de su controladora
no es reconocida por el kernel. Lease el Linux SCSI
HOWTO para mayor información 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án 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ón que utilice
cilindros numerados por encima de 1023.
La BIOS limita el número de cilindros a 1024, y
cualquier partición que use cilindros numerados
por encima de éstos no será accesible
desde la BIOS. Por lo que respecta al Linux, esto solo
afecta al arranque; una vez que el sistema ha arrancado,
debería poder acceder a la partición.
Sus opciones son arrancar, bien desde un disquete de
arranque, o bien desde una partición que
utilice los cilindros por debajo del 1024. Lea la
Sección 2.3.7 para obtener información
sobre
cómo crear un disquete de arranque o instalar
LILO.
o La unidad CD-ROM u otras unidades de
información 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ón del hardware
en el momento del arranque. Esto es especialmente
importante para controladoras SCSI sin BIOS.
La mayoría de las distribuciones le permiten
especificar la IRQ de la controladora y la dirección
de
memoria compartida cuando arranca con los discos de
instalación. Por ejemplo, si Ud. está
usando
una controladora TMC-8xx, deberá poder
introducir
boot: linux
tmx8xx=<interrupción>,<dirección-de-memoria>
en el prompt de arranque de LILO, donde
<interrupción> es la IRQ de la controladora, y
<dirección-
de-memoria> es la dirección de memoria
compartida. El que Ud. pueda o no hacer esto depende
de
la distribución de Linux que esté usando;
consulte su documentación para más
detalle.
2.5.3 Problemas con la instalación del
software
Con un poco de suerte, se puede instalar el software de
Linux sin problemas. Los únicos que suelen
aparecer se relacionan con los errores en los disquetes
de instalación o con el espacio disponible en
los sistemas de ficheros. A continuación se
relaciona una lista de estos problemas.
o El sistema muestra errores como "Read error", "file
not found" durante la in-
stalación del software. Esto es indicativo de
problemas en los disquetes o cintas de in-
stalación. Si se instala desde disquetes, tenga
en cuenta que los errores en éstos son
posibles.
Asegúrese de que está utilizando disquetes
nuevos o recién formateados. Muchas distribu-
ciones permiten instalar el software desde una
partición DOS del disco duro. Esto puede ser
más seguro y
más rápido que usar directamente los
disquetes.
Si utiliza un CD-ROM, asegúrese de que el disco
no tiene rayaduras o suciedad que pudieran
ser causa de errores de lectura.
La causa del problema puede estar también en un
formato incorrecto de los disquetes. Nor-
malmente se exige que los disquetes estén en
formato MS-DOS de alta densidad (a
excepción
del disquete de arranque, que suele tener su propio
formato casi siempre). Si todo esto falla,
intente obtener nuevos disquetes, bien sea
pidiéndolos a su distribuidor o construyéndolos
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í los datos contenidos en ellos. Por
ejemplo, un error común 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ón.
Esto es un signo claro de que se está intentando
instalar Linux sin espacio de disco suficiente.
En la mayoría de las distribuciones, no puede
esperarse que el sistema funcione abortando el
proceso de instalación.
La solución habitual es rehacer los sistemas de
ficheros (mediante el comando mke2fs) lo que
borrará el software parcialmente instalado. Ahora
puede reintentar la instalación, 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ón 2.5.2) o
una incorrecta especificación de la geometría
del disco. Si utilizó la opción
hd=<cylinders>,<heads>,<sectors>
en el momento de arrancar para especificar la
geometría de su disco, y lo hizo
incorrectamente,
puede encontrarse con estos problemas. También
puede suceder si la información de la CMOS
acerca de la geometría del disco no es
correcta.
o El sistema da errores como "file not found" o
"permission denied".
Este problema puede suceder si no están
disponibles todos los ficheros necesarios en los dis-
quetes de instalación (vea el párrafo
siguiente) o si hay problemas con los permisos sobre
dichos
ficheros. Por ejemplo, en algunas distribuciones de
Linux existen bugs rápidamente solucion-
ados en posteriores versiones, relacionados con los
permisos. Son errores poco frecuentes. Si
sospecha que su distribución tiene bugs, y
está seguro de no haber hecho nada mal,
contacte
con el fabricante de la distribución para
informarle del bug.
Si usted tiene otros extraños problemas durante
la instalación de Linux (especialmente si el
software lo ha obtenido vía red o módem),
asegúrese de haber obtenido todos los ficheros
necesarios.
Por ejemplo, hay gente que utiliza el comando de
FTP
mget *.*
cuando obtiene el software vía 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á
mget *
La mejor opción es retroceder sobre sus pasos
cuando algo vaya mal. Puede creer haber hecho
todo correctamente, cuando en realidad olvidó
algún paso de apariencia simple pero importante.
En
muchos casos, bastará con volver a instalar (u
obtener) el software para resolver el problema.
También, si Linux bloquea su ordenador durante la
instalación de forma inesperada, puede haber
algún problema con el hardware. Vea la
sección 2.5.2 para más detalle.
2.5.4 Problemas después de instalar
Linux
Usted se ha pasado una tarde instalando Linux. Con el
fin de dejar espacio para éste, redujo las
particiones de MS-DOS u OS/2 y borró con lagrimas
en los ojos sus copias de SimCity y Wing
Commander. Después arrancó el sistema, y
no pasó nada. O, por el contrario, sí pasó
algo, pero no
lo que debería pasar. >Qué hace usted
ahora?
En la sección 2.5.1 hemos cubierto los problemas
que pueden surgir cuando se arranca Linux desde
los disquetes de la distribución_aquí
suelen concentrarse la mayoría de los problemas.
Además,
usted puede ser víctima 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ál es su partición
raíz de
Linux en el momento de arrancar. Esto es especialmente
cierto si utiliza el disquete de instalación
original, y no un disquete personalizado durante la
instalación.
Mientras arranca con el disquete, mantenga pulsadas_ las
teclas |_shift_|o |_ctrl_|. Esto de-
berá presentarle un menú de arranque;
pulse la tecla |_tab_|para ver una lista de opciones
disponibles.
Por ejemplo, en muchas distribuciones se le
permitirá teclear
boot: linux root=<partition>
en el menú de arranque, donde <partition>
es el nombre de la partición raíz de Linux, como
/dev/hda2.
Consulte la documentación de su
distribución para más detalles.
2.5.4.2 Problemas al arrancar Linux desde el disco
duro
Si optó por instalar LILO, en lugar de crear un
disquete de arranque, debe poderse arrancar Linux
desde el disco duro. Sin embargo, el procedimiento
automático de instalación de LILO que
muchas
distribuciones tienen no siempre es perfecto. Puede
tener información incorrecta acerca de su es-
quema de particiones, en cuyo caso puede que tenga que
reinstalar LILO para dejarlo todo correcto.
La instalación de LILO se trata en el
capítulo 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á mal por
alguna causa. Normalmente, el resto de la
información del disco estará intacta. Puede
entonces
suceder:
1. Mientras se hacen las particiones mediante fdisk,
puede haberse borrado la partición
marcada como "activa". MS-DOS y otros sistemas
operativos intentan arrancar desde la
partición "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ón 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á 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á arrancar después Linux desde un
disquete e intentar instalar LILO de nuevo.
2. Si creó particiones para MS-DOS utilizando la
versión 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én a otros
sistemas operativos.) La mejor solución
es empezar desde el principio y reparticionar los discos
correctamente, o simplemente
borrar y rehacer particiones utilizando la
versión apropiada de fdisk.
3. El procedimiento de instalación 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ían
proporcionarse opciones_para_especificar_la_par-
tición raíz de Linux_para arrancar.
Mantenga pulsada la tecla |_shift_|o |_ctrl_|durante
el
arranque y pulse |_tab_|en el menú 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úrese de que
instaló LILO mientras instalaba el software
de Linux. Si no, el sistema arrancará 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ítulo 4).
Por otro lado, si usted instaló LILO, pero el
sistema operativo que arranca automáticamente
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
el prompt de arranque para ver una lista de posibles
sistemas operativos para arrancar; selec-
cione la opción apropiada (normalmente etiquetada
con "Linux") para arrancar este sistema
operativo.
Si desea que Linux sea el sistema que entra por defecto,
necesitará reinstalar LILO. Vea el
capítulo 4.
También es posible que intentara instalar LILO,
pero fallara la instalación por algún
motivo.
Repase lo visto anteriormente.
2.5.4.3 Problemas al entrar en Linux
Después de arrancar Linux, debe verse un prompt
de login, como:
linux login:
En este punto, la documentación de su
distribución le dirá 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ón de su distribución. El nombre
de
usuario y password a utilizar puede estar escondido
ahí. También puede habérsele dado durante
la
instalación o puede estar delante justo del
prompt de login.
Una causa de esto es una incorrecta instalación
de los ficheros de inicialización del sistema.
Si
este es el caso, habrá que reinstalar (al menos
parte de) el software de Linux, o arrancar desde un
disquete de instalación y resolver el problema a
mano_vea el capítulo 4 para más
detalles.
2.5.4.4 Problemas utilizando el sistema
Si consigue entrar en el sistema, deberá ver un
prompt de shell (como "#" o "$") y podrá
navegar
felizmente por su sistema. Sin embargo, existen
todavía algunos posibles problemas.
El más 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én, durante su
sesión 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íz (/). La corrección
sería teclear el comando
# chmod 755 /
desde root. Sin embargo, para poder ejecutar este
comando, puede necesitar arrancar desde el floppy
y montar el sistema de ficheros raíz a mano, lo
que puede ser una difícil tarea para los recién
llegados.
Conforme utilice el sistema, se encontrará
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í. En su lugar, a lo largo
del libro le ayudaremos a resolver muchos de estos
problemas enseñándole cómo encontrar y
corregir
por sí mismo los errores. En el capítulo 1
ya comentamos en parte esta filosofía. En el
capítulo 4, le
daremos consejos para corregir muchos de esos problemas
con la configuración.
Capítulo 3
Tutorial de Linux
3.1 Introducción
Los nuevos usuarios de UNIX y Linux pueden estar un poco
intimidados por el tamaño 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ón al uso de Linux. Mientras el 95% del
uso de Linux es exactamente como cualquier otro
UNIX, la forma más clara de comenzar con su nuevo
sistema es un tutorial a medida para Linux.
He aquí ese tutorial.
Este capítulo no presentará gran cantidad
de detalles o cubrirá temas muy avanzados. Sino
que
está pensado para permitir al nuevo usuario de
Linux comenzar a usar el sistema y situarlo en una
posición en la que él o ella puedan leer
libros más generales sobre UNIX y entender las
diferencias
básicas entre otros sistemas UNIX y
Linux.
Se va a presuponer muy poco, excepto quizá alguna
familiaridad con los ordenadores personales
y MS-DOS. Pero incluso si no es un usuario de MS-DOS,
debería ser capaz de entender cualquier
cosa de las que hablemos. A primera vista, UNIX parece
como MS-DOS (después de todo, partes
de MS-DOS fueron tomadas de CP/M, el cual fué a
su vez inspirado en UNIX). Pero, solo las
características superficiales de UNIX se parecen
a MS-DOS. Incluso si es completamente nuevo en
el mundo de los PC, este tutorial debería serle
de ayuda.
Y, antes de comenzar: No tenga miedo de experimentar. El
sistema no le morderá. 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ñen ficheros esenciales para el
sistema.
Incluso si ocurre el peor de los casos que es que borre
todos sus ficheros, tendrá que volver atrás
y
reinstalar el sistema, pero incluso en ese caso, no hay
nada que perder.
3.2 Conceptos básicos de UNIX
UNIX es un sistema operativo multitarea y multiusuario.
Esto significa que puede haber más 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á 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ás
podrá presentarse en el sistema con su nombre de
usuario.
En los sistemas UNIX tradicionales, el administrador del
sistema asignará 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ón 3.2.1
más adelante. Para el resto de las discusiones,
usaremos el nombre de usuario "larry".
Además, cada sistema UNIX tiene un nombre del
sistema (hostname) asignado. Este "host-
name" le da nombre a la máquina, además de
carácter y encanto. El nombre del sistema es
usado
para identificar máquinas en una red, pero
incluso aunque la máquina no esté en red,
debería tener
su nombre. En la Sección 4.10.2 veremos como
inicializar el nombre de la máquina. En
nuestros
ejemplos, el nombre del sistema será
"mousehouse"
3.2.1 Creación de una cuenta
Antes de poder usar el sistema, deberá
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ía
reservarse para el uso de comandos privilegiados y para
el mantenimiento
del sistema, como se
verá en la Sección 4.1.
Para crear su propia cuenta, necesita entrar en la
cuenta de root y usar las órdenes useradd o
adduser. Ver la Sección 4.4 para
información sobre este procedimiento.
3.2.2 Presentación en el sistema (loggin
in)
En el momento de presentarse en el sistema, verá
la siguiente línea de comandos en la pantalla:
mousehouse login:
Ahora, introduzca su nombre de usuario y pulse
|_Return_|. Nuestro heroe larry, teclearía lo
siguiente:
mousehouse login: larry
Password:
Ahora introduzca la palabra de paso. Esta no será
mostrada en la pantalla conforme se va
tecleeando, por lo que debe teclear cuidadosamente. Si
introduce una palabra de paso incorrecta, se
mostrará el siguiente mensaje
Login incorrect
y deberá intentarlo de nuevo.
Una vez que ha introducido correctamente el nombre de
usuario y la palabra de paso, está 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án la consola). Linux,
como otras versiones de UNIX, porporciona acceso
a consolas virtuales (o VC's), las cuales le
permitirán tener más de una sesión 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ía
ver la pregunta login: de nuevo. Está 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ón.
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ón
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és de todo, solo puede mirar un VC cada
vez),
esto debería darle una idea de las capacidades
multiusuario del sistema. Mientras está
trabajando
en el VC #1, puede conmutar al VC #2 y comenzar a
trabajar en otra cosa.
3.2.4 Intérpretes de comandos y
comandos
En la mayoría de las exploraciones en el mundo de
UNIX, estará hablando con el sistema a través
del
uso de un intérprete de comandos. Un
intérprete de comandos es simplemente un programa
que
toma la entrada del usuario (p.ej. las órdenes
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érprete 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ón y el teclado.
Tan pronto como entra en el sistema, el sistema arranca
un intérprete de comandos y Ud. ya
puede teclear órdenes al sistema. Veamos un
ejemplo rápido. Aquí, Larry entra en el sistema y
es
situado en el intérprete de comandos
mousehouse login: larry
Password: larry's password
Welcome to Mousehouse!
/home/larry#
"/home/larry#" es el "prompt" del intérprete de
comandos, indicando que está listo para recibir
órdenes. 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érprete
de comandos lo ejecuta. (Desafortunadamente, el sistema
no está siendo muy amigable).
Esto nos lleva a una cuestión importante: >Que
son órdenes? >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í, el nombre de la orden es "cp", y los
argumentos son "foo" y "bar".
Cuando teclea una orden, el intérprete 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érprete de comandos sabe ejecutar por si
mismo. Hay bastantes órdenes de ese tipo que
veremos
más adelante). El intérprete de comandos
también comprueba si la orden es un "alias" o
nombre
sustitutorio de otra orden. Si no se cumple ninguno de
estos casos, el intérprete de comandos busca
el programa y lo ejecuta pasándole los argumentos
especificados en la línea de comandos.
En nuestro ejemplo, el intérprete 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érprete de comandos.
¿Qué ocurre si tecleamos una orden y el
intérprete de comandos no puede encontrar el
programa
de ese nombre?. Bien, probémoslo:
/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í "eat"),
se muestra un mensaje de error que debería de ser
autoexplicativo. A menudo verá 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.5 Salida del sistema
Antes de ahondar más, deberíamos ver como
salir del sistema. Desde la línea de ódenes
usaremos la
orden
/home/larry# exit
para salir. Hay otras formas, pero esta es la más
fácil.
3.2.6 Cambiando la palabra de paso
También debe asegurarse de la forma de cambiar su
palabra de paso. La orden passwd le pedirá su
palabra de paso vieja y la nueva. Volverá a pedir
una segunda vez la nueva para validarla. Tenga
cuidado de no olvidar su palabra de paso_ si eso ocurre,
deberá pedirle al administrador del sistema
que la modifique por usted. (Si es el administrador del
sistema, vea la Sección 4.4.)
3.2.7 Ficheros y directorios
Bajo la mayoría de los sistemas operativos (UNIX
incluido), existe el concepto de
fichero, el cual
es un conjunto de información 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ía 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ándad para los nombres
de los ficheros como lo hay en MS-DOS y en otros
sistemas operativos; en general estos pueden
contener cualquier carácter (excepto / _ ver la
discusión sobre "pathnames" (rutas de ficheros)
más
adelante), y están limitados a 256
carácteres de longitud.
Con el concepto de
fichero aparece el concepto de
directorio. Un directorio es simplemente
una colección de ficheros. Puede ser considerado
como una "carpeta" que contiene muchos ficheros
diferentes. Los directorios también tienen nombre
con el que los podemos identificar. Además, los
directorios mantienen una estructura de
árbol; es decir, directorios pueden contener otros
directorios.
Un fichero puede ser referenciado por su nombre con
camino, el cual está 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ón sobre tres de los proyectos
en
los que Larry está 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ácter /. Por esta
razón, los nombres de fichero no pueden contener
este carácter. Los usuarios de MS-DOS
encontrarán
esta convención familiar, aunque en el mundo
MS-DOS se usa el carácter ).
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ía
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í, el directorio
papers es el padre del directorio notes.
3.2.8 El árbol de directorios
La mayoría de los sistemas UNIX tienen una
distribución de ficheros estándard, de forma que
recursos
y ficheros puedan ser fácilmente localizados.
Esta distribución forma el árbol de directorios, el
cual
comienza en el directorio "/", también 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ón del sistema, programas, etc.
En particular, cada usuario tiene un directorio "home".
Este es el directorio en el que el usuario
guardará 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 árbol de
directorio de ejemplo. Este debería darle una idea
de
como está organizado en su sistema el
árbol de directorios.
3.2.9 Directorio de trabajo actual
En cualquier momento, las órdenes que teclee al
intérprete de comandos son dadas en
términos
de su directorio de trabajo actual. Puede pensar en su
directorio actual de trabajo como en
el directorio en el que actualmente está
"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ón 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ía
haberse referido al fichero de forma relativa a su
directorio de trabajo actual. La orden
sería
/home/larry# more papers/history-final
/_______||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ípico árbol de directorios
Unix (resumido).
Por lo tanto, si comienza el nombre de un fichero (como
papers/final) con un carácter distinto
a "/", el sistema supone que se está refiriendo
al fichero con su posición 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.
3.2.10 Refiriendose al directorio home
Bajo tcsh y bash (1) el directorio "home" puede ser
referenciado usando el carácter de la tilde ( ~
).
________________________________________________________________________________________
(1) tcsh y bash son dos intérpretes de comandos
que corren bajo Linux. Un intérprete de comandos es el
programa que lee las órdenes del usuario y las ejecuta; la
mayoría de los sistemas Linux habilitan tcsh o bash para
las nuevas cuentas de
usuario.
________________________________________________________________________________________
Por ejemplo, la orden
/home/larry# more "/papers/history-final
es equivalente a
/home/larry# more
/home/larry/papers/history-final
El carácter "~" es simplemente sustituido por el
intérprete de comandos, con el nombre del
directorio home.
Además, también puede especificar otros
directorios home de usuarios con la tilde. El camino
"~karl/letters" es traducido por el intérprete de
ódenes 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ún
directorio
llamado "~"_es simplemente una ayuda sintáctica
proporcionada por el intérprete 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úsculas
y minúsculas, 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ón de "cambio de
dir-
ectorio". Hay que destacar, que la mayoría de las
órdenes Unix más 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ía usar la
orden
/home/larry# cd papers
/home/larry/papers#
Como se puede ver, la línea de comandos de Larry
cambia para mostrar su directorio actual de
trabajo. Ahora que ya está 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á en el subdirectorio papers, para
volver al directorio padre de este, usará 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í que el
comando
/home/larry/papers# cd .
/home/larry#
nos deja donde estamos.
También 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én, usando cd sin argumentos nos
llevará 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á: >Y bien?. El simple
movimiento por el árbol de directorios es poco
útil, 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
letters
papers
/home/larry#
Aquí 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ón -F de la orden
ls
para obtener más información.
/home/larry# ls -F
Mail/
letters/
papers/
/home/larry#
Por el carácter / añadido a cada nombre
sabemos que las tres entradas son subdirectorios.
La orden ls -F puede también añadir al
final "*", esto indica que es un fichero ejecutable.
Si
ls -F no añade 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ácter "-", como vimos antes con ls -F. La
opción
-F le dice a ls que de más información
sobre el tipo de ficheros_en este caso añadiendo un /
detrás
de cada nombre de un directorio.
Si a ls le pasamos un nombre de directorio,
mostrará el contenido de ese directorio.
/home/larry# ls -F papers
english-lit
history-final
masters-thesis
notes/
/home/larry#
Para ver un listado más 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#
(Para los usuarios de MS-DOS, nótese que los
nombres de los ficheros pueden ser mayores de 8
caracteres y pueden contener puntos en cualquier
posición. Incluso es posible que un fichero
contenga
más de un punto en su nombre.)
Vayamos al directorio raiz con "cd .." y desde
allí vayamos al directorio /usr/bin.
/home/larry# cd ..
/home# cd ..
/# cd usr
/usr# cd bin
/usr/bin#
También podemos movernos dentro de directorios en
múltiples pasos, como en cd /usr/bin.
Trate de moverse por varios directorios usando ls y cd.
En algunos casos podrá 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ás sobre ello en la
Sección 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 él. Como no hay ningún 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
/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ínea de comandos al fichero o directorio pasado
como
último argumento. Nótese 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ótese como termcap ya no existe, en su lugar
está el fichero sells. Esta orden puede usarse
para renombrar ficheros, como acabamos de hacer, pero
también para mover ficheros a directorios
diferentes.
Nota: mv y cp sobreescribirán 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á 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ótese que rm por
defecto no preguntará antes de borrar un
fichero_luego, sea cuidadoso.
Una orden relacionada con rm es rmdir. Esta orden borra
un directorio, pero solo si está vacio.
Si el directorio contiene ficheros o subdirectorios,
rmdir se quejará.
3.3.7 Mirando los ficheros
Las órdenes 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
/home/larry/foo# more shells
Por si está interesado en el contenido de shells,
es una lista de intérpretes de comandos
válidos
disponibles en el sistema. En la mayoría de los
sistemas incluye /bin/sh, /bin/bash y /bin/csh.
Hablaremos sobre los diferentes intérpretes de
comandos más adelante.
Durante la ejecución de more pulse |_Space_|para
avanzar a la página siguiente y |_b_|para
volver_
a la página anterior. Hay otros comandos
disponibles, los citados son solo los más básicos.
|_q_|
finalizará la ejecución de
more.
Salga de more y pruebe cat /etc/termcap. El texto
probablemente pasará demasiado rápido
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á
más adelante.
3.3.8 Obteniendo ayuda en línea
Prácticamente cada sistema UNIX, incluido Linux,
proporciona una utilidad conocida
como "páginas
de manual". Estas páginas contienen
documentación en línea para todas las
órdenes del sistema,
recursos, ficheros de configuración,
etc.
La orden usada para acceder a las páginas de
manual es man. Por ejemplo, si está interesado
en
conocer otras opciones de la orden ls, puede
escribir
/home/larry# man ls
y le será mostrada la página de manual
para ls.
Desafortunadamente la mayoría de las
páginas de manual han sido escritas por gente que
ya
conocía lo que la orden o recurso hacía,
por esto, las páginas de manual usualmente solo
contienen
detalles técnicos de la orden sin ningún
tipo de tutorial de uso. Pese a esto, estas páginas
son
una gran fuente de información que permiten
refrescar la memoria si
olvidamos la sintaxis de un
comando. Igualmente, estas páginas le
darán mucha información sobre órdenes 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á que alguno de los comandos
no tiene página de manual. Esto puede ser
debido a diferentes motivos. En primer lugar, las
páginas no han sido escritas aún (el Proyecto
de
Documentación de Linux es también el
responsable de las páginas de manual). En segundo lugar,
la
órden puede ser interna del intérprete de
comandos, o un alias (como los tratados en la
Sección 3.2.4),
en cuyo caso no tendrán una página propia.
Un ejemplo es la orden cd la cual es interna del
intérprete
de comandos. El propio intérprete de comandos es
quien procesa cd_no hay un programa separado.
3.4 Sumario de Ordenes Básicas
Esta sección introduce algunos de las
órdenes básicas más útiles de un
sistema UNIX, incluidas las
ya cubiertas en las secciones anteriores.
Nótese que las opciones usualmente comienzan con
"-" y en la mayoría de los casos se pueden
añadir múltiples opciones de una letra con
un único "-". 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ás útiles o importantes. De
hecho, la mayoría de las órdenes tienen un gran
número
de opciones (muchas de las cuales nunca usará).
Puede usar man para ver las páginas de manual
de
cada orden, la cual mostrará la lista completa de
opciones disponibles.
Nótese también, que la mayoría de
las órdenes toman una lista de ficheros o directorios
como
argumentos, denotados como "<fichero1> .
.<.ficheroN>". Por ejemplo, la orden cp toma como
argumentos la lista de ficheros a copiar, seguidos del fichero o
directorio destino. Cuando se copia más 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ón 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ás opciones de las que
podría suponer. Las más usadas
comúnmente son: -F (usada para mostrar
información sobre el tipo de fichero),
y -l (da un listado "largo" incluyendo tamaño,
propietario, permisos..etc. Tratare-
mos esto en detalle más adelante.)
Ejemplo: ls -lF /home/larry mostrará 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ótese 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>
Donde <fichero1> a <ficheroN> son los
nombres de los ficheros a borrar.
Opciones: -i pedirá confirmación 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á vacio.
man Muestra la página de manual del comando o
recurso (cualquier utilidad del sistema
que no es un comando, como funciones de
librería) 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én 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ía 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íneas de un fichero dado
que coinciden con un cierto patrón.
Sintaxis: grep <patrón> <fichero1>
<fichero2> . . .<ficheroN>
Donde <patrón> es una expresión
regular y <fichero1> a <ficheroN> son los
ficheros
donde buscar. Ejemplo: grep loomer /etc/hosts
mostrará todas las líneas en el
fichero /etc/hosts que contienen la cadena
"loomer".
3.5 Explorando el Sistema de Ficheros
El sistema de ficheros es la colección de
ficheros y la jerarquía de directorios de su sistema.
Le
prometimos acompañarle por el sistema de
ficheros, y ha llegado el momento.
Tiene el nivel y conocimientos para entender de lo que
estamos hablando, además de una guía de
carreteras. (Figura 3.2.8 en la página
85).
Primero cambie al directorio raiz (cd /) y ejecute ls
-F. Probablemente verá estos directorios (2):
bin, dev, etc, home, install, lib, mnt, proc, root, tmp,
user, usr, y var.
_________________________________________
(2) Puede ver otros o incluso no ver todos. No se
preocupe. Cada versión de Linux difiere en algunos
aspectos.
________________________________________________________________________________
Echemos un vistazo a cada uno de estos
directorios.
/bin /bin es la abreviación 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á ver algunas órdenes que
reconocerá, como cp, ls y mv. Estos son los
programas para estas órdenes. Cuando usa la orden
cp está ejecutando el programa
/bin/cp.
Usando ls -F verá que la mayoría (si no
todos) los ficheros de /bin tienen un
asterisco ("*") añadido al final de sus nombres.
Esto indica que son ficheros ejecut-
ables, como describe la Sección 3.3.2.
/dev El sigiente es /dev. Echémosle 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ón 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á cuenta
de que hay más controladores de dispositivo para
disqueteras de los que hemos
mencionado. Estos representan tipos específicos
de discos. Por ejemplo, fd1H1440
accederá a discos de 3.5"de alta densidad en la
disquetera 1.
Aquí tenemos una lista de algunos de los
controladores de dispositivo más usados.
Nótese que incluso aunque puede que no tenga
alguno de los dispositivos listados,
tendrá 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ón con
un modem.
o Los nombres de dispositivo que comienzan por hd
acceden a discos duros.
/dev/hda hace referencia a la totalidad del primer disco
duro, mientras que
/dev/hda1 hace referencia a la primera partición
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
él mediante /dev/hda, de-
berá acceder a /dev/sda. Las cintas SCSI son
accedidas vía dispositivos st y
los CD-ROM SCSI vía 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é puede ser
útil esto?. Bien, si desea suprimir la
salida por pantalla de una orden, podría enviar
la salida a /dev/null. Hab-
laremos más sobre esto después.
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áquina está
en una red, telnet de
entrada
usará uno de los dispositivos
/dev/pty.
/etc /etc contiene una serie de ficheros de
configuración del sistema. Estos incluyen
/etc/passwd (la base de datos de
usuarios), /etc/rc (guiones de inicialización
del
sistema), etc.
/sbin sbin se usa para almacenar programas esenciales
del sistema, que usará 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á ningún
usuario en este directorio.
/lib /lib contiene las imágenes de las
librerías compartidas. Estos ficheros con-
tienen código que compartirán muchos
programas. En lugar de que cada programa
contenga una copia propia de las rutinas compartidas,
estas son guardadas en un
lugar común, 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ón acerca
de que programas y procesos están
corriendo en un momento dado. Entraremos en más
detalles en la Sección 3.11.1.
/tmp Muchos programas tienen la necesidad de generar
cierta información temporal y
guardarla en un fichero temporal. El lugar habitual para
esos ficheros es en /tmp.
/usr /usr es un directorio muy importante. Contienen una
serie de subdirectorios que
contienen a su vez algunos de los más importantes
y útiles programas y ficheros de
configuración usados en el sistema.
Los directorios descritos arriba son esenciales para que
el sistema esté operativo,
pero la mayoría 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 útil e interesante. Sin /usr, tendría
un sistema aburrido, solo con programas
como cp y ls. usr contiene la mayoría de los
paquetes grandes de programas y sus
ficheros de configuración.
/usr/X386 /usr/X386 contiene el sistema X Window si
usted lo instala. El sistema X Window es
un entorno gráfico grande y potente el cual
proporciona un gran número de utilidades
y programas gráficos, mostrados en "ventanas" en
su pantalla. Si está familiarizado
con los entornos Microsoft Windows o Macintosh, X Window
le será muy familiar.
El directorio /usr/X386 contiene todos los ejecutables
de X Window, ficheros de
configuración y de soporte. Esto será
cubierto con más detalle en la Sección
5.1.
/usr/bin /usr/bin es el almacén
real de programas del sistema UNIX. Contiene la
mayoría
de los programas que no se encuentran en otras partes
como /bin.
/usr/etc Como /etc contiene diferentes ficheros de
configuración y programas del sistema,
/usr/etc contiene incluso más 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ía 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ón de en UNIX a nivel de sistema. Si
está familiarizado con el lenguaje
de programación C, aquí encontrará
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ías
equivalentes "stub" y "static" a los ficheros encon-
trados en /lib. Al compilar un programa, este es
"enlazado" con las librerías que
se encuentran en /usr/lib, las cuales dirigen al
programa a buscar en /lib cuando
necesita el código de la librería.
Además, varios programas guardan ficheros de
configuración 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ás
divertido y excitante. En general,
los programas que se encuentran en /usr/local son
específicos de su sistema_esto
es, el directorio /usr/local difiere bastante entre
sistemas UNIX.
Aquí encontrará 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áginas de
manual. Hay dos subdirectorios para cada
página "sección" de las páginas
(use la orden man man para más detalles). Por
ejem-
plo, /usr/man/man1 contiene los fuentes (es decir, los
originales por formatear) de
las páginas de manual de la sección 1, y
/usr/man/cat1 las páginas ya formateadas
de la sección 1.
/usr/src /usr/src contiene el código fuente
(programas por compilar) de varios programas
de su sistema. El más importante es
/usr/src/linux, el cual contiene el código
fuente del Núcleo de Linux.
/var /var contiene directorios que a menudo cambian su
tamaño 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és
para el administrador del sistema, es-
pecificamente históricos del sistema, los cuales
recogen errores o problemas con el
sistema. Otros ficheros guardan las sesiones de
presentación en el sistema, así como
los intentos fallidos. Esto será cubierto en el
Capítulo 4.
/var/spool /var/spool contiene ficheros van a ser
pasados a otro programa. Por ejemplo,
si su máquina está conectada a una red, el
correo de llegada será almacenado en
/var/spool/mail hasta que lo lea o lo borre.
Artículos nuevos de las ñews" tanto
salientes como entrantes pueden encontrarse en
/var/spool/news, etc.
3.6 Tipos de intérpretes de comandos
Como hemos mencionado anteriormente en numerosas
ocasiones, UNIX es un sistema operativo multitarea y
multiusuario. La multitarea es muy útil, y una vez la haya
probado, la usará continuamente. En poco tiempo
podrá ejecutar programas "de fondo", conmutar entre
múltiples tareas y "entubar" programas unos entre otros
para conseguir resultados complejos con un único
comando.
Muchas de las características que trataremos en
esta sección son proporcionadas por el
intérprete
de comandos. Hay que tener cuidado en no confundir UNIX
(el sistema operativo) con el intérprete
de comandos- este último, es un interface con el
sistema que hay debajo. El intérprete de
comandos
proporciona la funcionalidad sobre el UNIX.
El intérprete de comandos no es solo un
intérprete interactivo de los comandos que
tecleamos,
es también un potente lenguaje de
programación, el cual permite escribir guiones, que
permiten
juntar varias órdenes en un fichero. Los usuarios
de MS-DOS reconoceran esto como los ficheros
"batch". El uso de los guiones del intérprete de
comandos es una herramienta muy potente que le
permitirá automatizar e incrementar el uso de
UNIX. Ver la sección 3.13.1 para más
información.
Hay varios tipos de intérpretes de comandos en el
mundo UNIX. Los dos más importantes son
el "Bourne shell" y el "C shell". El intérprete
de comandos Bourne, usa una sintaxis de comandos
como la usada en los primeros sistemas UNIX, como el
System III. El nombre del intérprete Bourne
en la mayoría de los UNIX es /bin/sh (donde sh
viene de "shell", intérprete de comandos en inglés).
El intérprete C usa una sintaxis diferente, a
veces parecida a la del lenguaje de
programación C, y
en la mayoría de los sistemas UNIX se encuentra
como /bin/csh.
Bajo Linux hay algunas diferencias en los
intérpretes de comandos disponibles. Dos de los
más usados son el "Bourne Again Shell" o "Bash"
(/bin/bash) y Tcsh (/bin/tcsh). Bash es
un equivalente al Bourne con muchas
características avanzadas de la C shell. Como Bash es
un
superconjunto de la sintaxis del Bourne, cualquier
guión escrito para el intérprete de
comandos
Bourne standard funcionará en Bash. Para los que
prefieren el uso del intérprete de comandos C,
Linux tiene el Tcsh, que es una versión extendida
del C original.
El tipo de intérprete de comandos que decida usar
es puramente una cuestión de gustos. Algunas
personas prefieren la sintaxis del Bourne con las
características avanzadas que proporciona Bash,
y
otros prefieren el más estructurado
intérprete de comandos C. En lo que respecta a los
comandos
usuales como cp, ls..etc, es indiferente el tipo de
intérprete de comandos usado, la sintaxis es la
misma. Solo, cuando se escriben guiones para el
intérprete de comandos, o se usan
características
avanzadas aparecen las diferencias entre los diferentes
intérpretes de comandos.
Como estamos discutiendo sobre las diferencias entre los
intérpretes de comandos Bourne y C,
abajo veremos esas diferencias. Para los
propósitos de este manual, la mayoría de las
diferencias son
mínimas. (Si eres realmente curioso a este
respecto, lee las páginas de manual para bash y
tcsh).
3.7 Carácteres comodín
Una característica importante de la
mayoría de los intérpretes de comandos en Unix es
la capacidad
para referirse a más de un fichero usando
carácteres especiales. Estos llamados comodines
le
permiten referirse a, por ejemplo, todos los ficheros
que contienen el carácter ñ".
El comodín "*" hace referencia cualquier
carácter o cadena de carácteres en el fichero.
Por
ejemplo, cuando usa el carácter "*" en el nombre
de un fichero, el intérprete 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ápido. 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 órden
/home/larry# ls *o*
frog joe
/home/larry#
Como puede ver, el comodín "*" 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ácteres
coinciden con el comodín.
/home/larry# ls *
frog joe stuff
/home/larry#
Veamos unos pocos ejemplos más.
/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ón de "*" en nombres de
ficheros es llamado expansión de comodines
y es efectuado por el intérprete de comandos.
Esto es importante: las órdenes individuales,
como
ls, nunca ven el "*" en su lista de parámetros.
Es el intérprete 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ácter
comodín "*". El uso de este comodín NO
cuadrará con
nombres de ficheros que comiencen con un punto (".").
Estos ficheros son tratados como
"ocultos"_
aunque no están realmente ocultos, simplemente no
son mostrados en un listado normal de ls y no
son afectados por el uso del comodín
"*".
He aquí 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án.
/home/larry# ls
frog joe stuff
/home/larry#
Si usa el parámetro -a con ls podrá 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í 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ás información sobre
esto en la Sección 3.13.3.
Note que cuando usamos el comodín "*", no se
muestra ninguno de los nombres de fichero que
comienzan por ".".
/home/larry# ls *
frog joe stuff
/home/larry#
Esto es una característica de seguridad: si "*"
coincidiera con ficheros que comienzan por "."
actuaría sobre "." y "..". Esto puede ser
peligroso con ciertas órdenes.
Otro carácter comodín es "?". Este
carácter comodín solo expande un único
carácter. Luego
"ls ?" mostrará todos los nombres de ficheros con
un carácter de longitud, y "ls termca?"
mostrará "termcap" pero no "termcap.backup".
Aquí 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ácteres comodín le
permiten referirse a más de un fichero a la vez. En
el
resumen de órdenes en la Sección 3.4
dijimos que cp y mv pueden copiar o mover múltiples
ficheros de una vez. Por ejemplo,
/home/larry# cp /etc/s* /home/larry
copiará 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>
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éntica
sintaxis.
Notese que si está copiando o moviendo más
de un fichero, <destino> debe ser un directorio.
Solo
puede copiar o mover un único fichero a otro
fichero.
3.8 Fontanería 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érprete 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ínea de comandos y envía estos datos
directamente a la salida estandard. Luego, usando el
comando
/home/larry/papers# cat history-final
masters-thesis
mostrará por pantalla el contenido del fichero
history-final seguido por masters-thesis.
Si no se le pasan nombres de ficheros a cat como
parámetros, leerá datos de stdin y los
enviará 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ínea que el usuario
teclea (impresa en itálica) es inmediatamente
reenviada al monitor por cat. Cuando se está
leyendo de la entrada estandard, los comandos
reconocen el fin de la entrada de datos
cuando_reciben_el carácter EOT (end-of-text, fin de
texto).
Normalmente es generado con la combinación
|_ctrl-D_|.
Veamos otro ejemplo. El comando sort toma como entrada
líneas de texto (de nuevo leerá desde
stdin si no se le proporcionan nombres de ficheros en la
línea de comandos), y devuelve la salida
ordenada a stdout. Pruebe lo siguiente:
/home/larry/papers# sort
bananas
carrots
apples
|_ctrl-D_|
apples
bananas
carrots
/home/larry/papers#
Podemos ordenar alfabéticamente la lista de la
compra… >no es útil 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érprete de comandos nos
permite redireccionar la salida estándard a un
fichero usando el símbolo ">". 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ás
guardarla.
Supongamos ahora que teníamos guardada nuestra
lista de compra desordenada original en el
fichero items. Una forma de ordenar la
información y salvarla en un fichero podría 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én
puede
ser redireccionada la entrada estandard usando el
símbolo "<".
/home/larry/papers# sort < items
apples
bananas
carrots
/home/larry/papers#
Técnicamente, 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érprete 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á 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ón la entrada estandard y/o
salida estandard pueden ser referenciadas desde
ficheros. sort es un filtro simple: ordena los datos de
entrada y envía el resultado a la salida
estandard. cat es incluso más simple, no hace
nada con los datos de entrada, simplemente envía
a
la salida cualquier cosa que le llega.
3.8.3 Uso de tuberías (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é pasa si los datos que queremos
ordenar provienen de la salida de otro comando, como ls?.
Por
ejemplo, usando la opción -r con sort ordenaremos
los datos en orden inverso. Si queremos listar
los ficheros en el directorio actual en orden inverso,
una forma podría 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í, 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.
La solución es usar las pipes (3). El uso de
pipes es otra característica del intérprete 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í sucesivamente. Queremos conectar
la salida de ls con la entrada de sort. Para crear un pipe se usa
el símbolo "|":
_________________________________________
(3) N. del T.: tuberías
________________________________________________________________________________
/home/larry/papers# ls | sort -r
notes
masters-thesis
history-final
english-list
/home/larry/papers#
Esta forma es más corta y obviamente más
fácil de escribir.
Otro ejemplo útil_ usando el comando
/home/larry/papers# ls /usr/bin
mostrará una lista larga de los ficheros, la
mayoría de los cuales pasará rápidamente
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ágina a página
comodamente.
¡Pero la diversión no termina aquí!.
Podemos "entubar" más de dos comandos a la vez.
El
comando head es un filtro que muestra la primeras
líneas del canal de entrada (aquí la entrada
desde
una pipe). Si queremos ver el último fichero del
directorio actual en orden alfabético,
usaremos:
/home/larry/papers# ls | sort -r | head -1
notes
/home/larry/papers#
Donde head -1 simplemente muestra la primera
línea de la entrada que recibe en este caso, el
flujo
de datos ordenados inversamente provenientes de
ls).
3.8.4 Redirección 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ímbolo ">>", la
salida
será añadida al final del fichero
nombrado, en lugar de ser sobreescrito.
/home/larry/papers# ls >> file-list
añadirá la salida de ls al final de
file-list.
Es conveniente tener en cuenta que la redirección
y el uso de pipes son características
proporcion-
adas por el intérprete 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ón 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ó ficheros en su
directorio "home", Larry es el propietario de esos ficheros y
tiene acceso a ellos.
UNIX también permite que los ficheros sean
compartidos entre usuarios y grupos de usuarios.
Si Larry lo desea, podría restringir el acceso a
sus ficheros de forma que ningún otro usuario
tenga
acceso. De cualquier modo, en la mayoría 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én 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ás de un grupo.
Los grupos usualmente son definidos por el tipo de
ususarios que acceden a la máquina. Por
ejemplo, en un sistema UNIX de una universidad, los
usuarios pueden ser divididos en los grupos
estudiantes, dirección, profesores e invitados.
Hay también 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án divididos en tres tipos:
lectura,
escritura y
ejecución. 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 último, el
permiso de ejecución permite a un usuario ejecutar el
fichero si es un programa o guión del intérprete de
comandos. Para directorios, el permiso de ejecución
permite al usuario cambiar al directorio en cuestión con
cd.
3.9.2 Interpretando los permisos de ficheros
Veamos un ejemplo del uso de premisos de ficheros.
Usando el comando ls con la opciónn -l se
mostrará 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 último campo es el nombre del
fichero (stuff), y los demás campos los
trataremos
más 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ácter 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á el permiso de
"ejecución", 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ún tipo. Por supuesto, como el fichero es de
Larry, puede darse a si mismo permiso de ejecución si lo
desea. Esto será cubierto en breve.
Los siguientes tres carácteres, 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 últimos tres carácteres,
también 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á presente el "r", los demás usuarios
pueden leer el fichero, pero no escribir en él o
ejecutarlo.
Aquí 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ás 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.3 Dependencias
Es importante darse cuenta de que los permisos de un
fichero también dependen de los permisos del
directorio en el que residen. Por ejemplo, aunque un
fichero tenga los permisos -rwxrwxrwx, otros
usuarios no podrán acceder a él a menos
que también tengan permiso de lectura y ejecución
para el
directorio en el cual se encuentra el fichero. Si Larry
quiere restringir el acceso a todos sus ficheros,
podría simplemente poner los permisos de su
directorio "home" /home/larry a -rwx——. De esta
forma ningún usuario podrá 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ón de todos los
directorios a lo largo del camino de acceso al fichero,
además de permiso de lectura (o ejecución) 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ás 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ás 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 ningún otro usuario acceder al
fichero.
Igualmente, poniendo los permisos del directorio a
-rwx—— no se permitirá a los demás
usuarios
acceder al directorio en cuestión.
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án añadiendo permisos (+) o
quitándolos (-). 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ón a todos los usuarios
excepto al propietario.
chmod u+rwx stuff
Permite al propietario leer, escribir y ejecutar el
fichero.
chmod o-rwx stuff
Quita permisos de lectura, escritura y ejecución
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 único fichero
múltiples nombres. Los ficheros son identificados por el
sistema por su número de inodo, el cual es el único
identificador del fichero para el sistema
de ficheros (4). Un directorio es una lista de
números de inodo con sus correspondientes nombres
de
fichero. Cada nombre de fichero en un directorio es un
enlace a un inodo particular.
_________________________________________
(4) La orden ls -i mostrará los números de
inodo.
________________________________________________________________________________
3.10.1 Enlaces duros (Hard links)
La orden ln es usada para crear múltiples enlaces
para un fichero. Por ejemplo, supongamos que
tiene un fichero foo en un directorio. Usando ls -i,
veremos el número de inodo para el fichero.
# ls -i foo
22192 foo
#
Aqui, el fichero foo tiene el número 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én serán 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ólicos (ver más adelante) no tienen esta
restricción.
Cuando borra un fichero con rm, está solamente
borrando un enlace a un fichero. Si usa el
comando
# rm foo
solo el enlace de nombre foo es borrado; bar
todavía existirá. Un fichero es solo
definitivamente
borrado del sistema cuando no quedan enlaces a
él. Usualmente, los ficheros tienen un único
enlace,
por lo que el uso de rm los borra. Pero si el fichero
tiene múltiples enlaces, el uso de rm solo borrará
un
único enlace; para borrar el fichero,
deberá borrar todos los enlaces del fichero.
La orden ls -l muestra el número de enlaces a un
fichero (entre otra información).
# 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úmero de enlaces al fichero.
Así resulta que un directorio no es más
que un fichero que contiene información sobre la
translación enlace a inodo. También, cada
directorio tiene al menos dos enlaces duros en él: "." (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ólicos
Los enlaces simbólicos son otro tipo de enlace,
que es diferente al enlace duro. Un enlace
simbólico
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ólico a un
fichero. Por ejemplo, si usamos la orden
# ln -s foo bar
crearemos un enlace simbólico 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ólico 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ólico no se
usan (siempre aparecen como rwxrwxrwx). En
su lugar, los permisos del enlace simbólico son
determinados por los permisos del fichero "apuntado"
por el enlace (en nuestro ejemplo, el fichero
foo).
Funcionalmente, los enlaces duros y simbólicos
son similares, pero hay algunas diferencias. Por
una parte, puede crear un enlace simbólico a un
fichero que no existe; lo mismo no es cierto para
enlaces duros. Los enlaces simbólicos son
procesados por el núcleo de forma diferente a los
duros,
lo cual es solo una diferencia técnica, pero a
veces importante. Los enlaces simbólicos son de
ayuda
puesto que identifican al fichero al que apuntan; con
enlaces duros no hay forma fácil de saber que
fichero está enlazado al mismo inodo.
Los enlaces se usan en muchas partes del sistema Linux.
Los enlaces simbólicos son especialmente importantes para
las imágenes de las librerías compartidas en /lib.
Ver la Sección 4.7.2 para más
información.
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án
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 última columna COMMAND, es el nombre del proceso que se
está ejecutando. Ahora solo estamos viendo los procesos
que está ejecutando Larry (5). Vemos que hay dos procesos,
bash (Que es el shell o intérprete 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ó ps cuando Larry tecleó el comando. Cuando
ps termina de ejecutarse (después de mostrar la tabla de
procesos), el control retorna al proceso bash, que muestra el
prompt, indicando que está listo para recibir otro
comando.
_________________________________________
(5) Hay muchos más procesos aparte de estos
corriendo en el sistema, para verlos todos, teclearemos el
comando "ps -aux".
________________________________________________________________________________
Un proceso que esta corriendo se denomina tarea para el
shell. Los términos proceso y tarea,
son intercambiables. Sin embargo, se suele denominar
"tarea" a un proceso, cuando es usado en
conjunción con control de tareas, que es un rasgo
del shell que permite cambiar entre distintas
tareas.
En muchos casos, los usuarios solo ejecutan un trabajo
cada vez, que es el último comando que
ellos teclearon desde el shell. Sin embargo, usando el
control de tareas, usted podrá ejecutar diferentes tareas
al mismo tiempo, cambiando entre cada uno de ellos conforme lo
necesite. >Cuán beneficioso puede llegar a ser esto?.
Supongamos que está usted con su procesador de
textos, y de repente necesita parar y realizar otra tarea,
con el control de tareas, usted podrá 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ácticos 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á en primer plano, es el que interactua con
usted_recibe entradas de teclado, y envía las
salidas al monitor. (Salvo, por supuesto, que haya
redirigido la entrada o la salida, como se describe en
la Sección 3.8). El proceso en segundo plano,
no recibe ninguna señal desde el teclado_por lo
general, se ejecutan en silencio sin necesidad de
interacción.
Algunos programas necesitan mucho tiempo para terminar,
y no hacen nada interesante mientras
tanto. Compilar programas es una de estas tareas,
así 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á ejecutando
actualmente, sino que está temporalmente parado.
Después de suspender una tarea, puede indicar a
la misma que continúe, en primer plano o en
segundo, según necesite. Retomar una tarea suspendida no
cambia en nada el estado de
la misma_la tarea continuará ejecutandose justo donde se
dejó.
Tenga en cuenta que suspender un trabajo no es lo
mismo_que_interrumpirlo._ Cuando usted
interrumpe un proceso (generalmente con la
pulsación 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á ser lanzado otra vez para volver a
realizar sus tareas. También_se_puede dar el caso de que
algunos programas capturan la interrupción, de modo que
pulsando |_ctrl-C_|no se para inmediatamente. Esto se hace para
permitir al programa realizar operaciones
necesarias de limpieza antes de terminar (7). De hecho, algunos
programas simplemente no se dejan matar por ninguna
interrupción.
_________________________________________
- La tecla de interrupción puede definirse
usando el comando stty. Por defecto, en la mayoría de
sistemas es |_ctrl-C_|
(7) pero no se puede garantizar que sea la misma en su
sistema.
Tiempo necesario para guardar algunos registros,
etc.
________________________________________________________________________________
3.11.3 Envío a segundo plano y eliminación
procesos
Empecemos con un ejemplo sencillo. El comando yes es un
comando aparentemente inútil que envía una serie
interminable de y-es a la salida estándard. (Realmente es
muy útil. Si se utiliza una tubería (o "pipe") para
unir la salida de yes con otro comando que haga preguntas del
tipo si/no, la serie de y-es confirmará todas las
preguntas.)
Pruebe con esto.
/home/larry# yes
y
y
y
y
y
La serie de y-es continuará_hasta_el infinito, a
no ser que usted la elimine, pulsando la tecla de
interrupción, generalmente |_ctrl-C_|.
También puede deshacerse de esta serie de y-es
redigiriendo la salida estándard de yes hacia /dev/null,
que como recordará es una especie de "agujero negro"
o
papelera para los datos. Todo lo que usted envíe
allí, desaparecerá.
/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útiles y-es a /dev/null. Para recuperarlo,
pulse
la tecla de interrupción.
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á ejecutarlo, pero sin necesidad
de interacción.
Una forma de mandar procesos a segundo plano es
añadiendo un carácter "&" al final de
cada
comando.
/home/larry# yes > /dev/null &
[1] 164
/home/larry#
Como podrá ver, ha regresado a la shell. >Pero
que es eso de "[1] 164"?, >se está
ejecutando
realmente el comando yes?
"[1]" representa el número de tarea del proceso
yes. La shell asigna un número a cada tarea
que se esté ejecutando. Como yes es el
único comando que se está ejecutando, se le asigna
el número de tarea 1. El número "164" es el
número de identificación del proceso, o PID, que es
el número que el sistema le asigna al proceso. Ambos
números pueden usarse para referirse a la tarea como
veremos después.
Ahora usted tiene el proceso yes corriendo en segundo
plano, y enviando constantemente la señal
y hacia el dispositivo /dev/null.Para chequear el estado del
proceso, utilice el comando interno de
la shell jobs:
/home/larry# jobs
[1]+ Running yes >/dev/null &
/home/larry#
¡Ahí está!. También 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úmero
de tarea o un número de ID de un proceso. Esta
era la tarea 1, así que usando el comando
/home/larry# kill %1
matará la tarea. Cuando se identifica la tarea
con el número de tarea, se debe preceder el
número
con el carácter 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á, en efecto, muerta, y si usa el
comando jobs de nuevo, no mostrará nada.
También podrá matar la tarea usando el
número 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í 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és 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és
relanzarlo en segundo plano.
Primero, lance el proceso yes en primer plano como lo
haría normalmente:
/home/larry# yes > /dev/null
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á 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á ejecutandose donde se
dejó.
Para relanzar la tarea en primer plano, use el comando
fg (del inglés
"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á que el comando siga ejecutandose igual que si lo
hubiese hecho desde el principio con "&" como en la
sección anterior.
/home/larry# bg
[1]+ yes >/dev/null &
/home/larry#
Y tenemos de nuevo el prompt. El comando jobs
debería decirnos que yes se está ejecutando,
y
podemos matar la tarea con kill tal y como lo hicimos
antes.
¿Cómo podemos parar la tarea de nuevo? Si
pulsa |_ctrl-Z_|no funcionará, ya que el
proceso
está 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á
usar fg tanto con tareas detenidas, como con
las que estén 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á ejecutando, es decir,
que no usa tiempo de CPU, y que no
está haciendo ningún trabajo (la tarea aun ocupa un
lugar en memoria, aunque puede ser volcada a disco). Una tarea en
segundo plano, se está ejecutando, y usando memoria, a la
vez que completando alguna acción 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á intentando hacer otra cosa. Por ejemplo, si usted
usó el comando
/home/larry# yes &
sin redirigir stdout a /dev/null, una cadena de y-es se
mostrarán 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ía que
usar el comando fg para pasar la tarea a primer
plano, y entonces usar |_ctrl-C_|para
matarla.
Otra observación. Normalmente, los comandos "fg"
y "bg" actuan sobre el último proceso parado
(indicado por un "+" junto al número de tarea
cuando usa el comando jobs). Si usted tiene varios
procesos corriendo a la vez, podrá 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úmero 2),
o
/home/larry# bg %3
(para la tarea de segundo plano número 3). No se
pueden usar los ID de proceso con fg o bg.
Además de esto,si usa el número 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ún
motivo usted utiliza una shell que no soporta control
de
tareas, no espere disponer de estos comandos.
Y además, hay algunos aspectos del control de
tareas que difieren entre Bash y Tcsh. De hecho,
algunas shells no proporcionan ningún control de
tareas sin embargo, la mayoría 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ón de ficheros que contienen
texto, como una carta, un
programa en C, o un fichero de configuración del sistema.
Mientras que
hay muchos editores de texto disponibles en Linux, el
único editor que está garantizado
encontrar
en cualquier sistema UNIX es vi el "visual editor". vi
no es el editor más fácil de usar, ni es
muy
autoexplicativo. De cualquier forma, como es tan
común en el mundo UNIX y es posible que alguna vez
necesite usarlo, aquí encontrará algo de
documentación.
La elección de un editor es principalmente una
cuestión de gusto personal y estilo. Muchos
usuarios prefieren el barroco,
autoexplicativo y potente Emacs_un editor con más
características
que cualquier otro programa único en el mundo
UNIX. Por ejemplo, Emacs tiene integrado su propio
dialecto del lenguaje de
programación 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 él en muchos sistemas. vi, por
otra parte, es pequeño y potente, pero más
difícil de usar. De cualquier modo, una vez conozca la
forma de funcionamiento de vi, es muy fácil usarlo.
Simplemente la curva de aprendizaje es
bastante pronunciada al comienzo.
Esta sección es una introducción coherente
a vi_no discutiremos todas sus características,
solo
aquellas necesarias para que sepa como comenzar. Puede
dirigirse a la página de manual de vi si
está interesado en aprender más acerca de
las características de este editor, o puede leer el
libro
Learning the vi Editor de O'Reilly and Associates. Vea
el Apéndice A para información.
3.12.1 Conceptos
Mientras se usa vi, en cualquier momento estará
en uno de tres posibles modos de operación.
Estos
modos son conocidos como modo órdenes, modo
inserción y modo última línea.
Cuando inicia vi, está en el modo órdenes.
Este modo le permite usar ciertas órdenes para
editar
ficheros o cambiar a otros modos. Por ejemplo, tecleando
"x" mientras está en el modo órdenes,
borra el carácter que hay debajo del cursor. Las
teclas del cursor mueven este por el fichero que
estamos editando. Generalmente, las órdenes
usadas en este modo son solo de uno o dos
carácteres
de longitud.
Habitualmente insertará o editará texto
desde el modo inserción. Usando vi,
probablemente
dedicará la mayor parte del tiempo en este modo.
Inicia el modo de inserción al usar una orden
como "i" (para "insertar") desde el modo de
órdenes. Una vez en el modo de inserción,
irá insertando texto en el documento desde_la
posición actual del cursor. Para salir del modo de
inserción y volver al de órdenes, pulse
|_esc_|.
Modo última línea es un modo especial
usado para proporcionar ciertas órdenes extendidas a
vi.
Al usar esos comandos, aparecen en la última
línea de la pantalla (de ahí el nombre). Por
ejemplo,
cuando teclea ":" desde el modo de ódenes,
entrará en el modo última línea, y
podrá usar órdenes
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 última línea es
habitualmente usado por órdenes vi mayores_de_un
carácter.
En el modo de última línea, introduce una
orden de una sola línea 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íneas de texto, como si la pantalla tuviese
solo seis líneas 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
/home/larry# vi test
lo que editará el fichero test.
Debería ver algo como
_____________________________________________________________________________||
| ~_ |
| ~ |
| |
| ~ |
| |
| ~ |
| ~ |
| |
| ~ |
| |
|_"test"[New_file]_______________________________________________________________
|
La columna de carácteres "~" indica que
está al final del fichero.
3.12.3 Insertando texto
Está ahora en modo órdenes; para poder
insertar texto en el fichero, pulse |_i_|(lo que le hará
entrar
en modo inserción), 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íneas como desee (pulsando |_return_|después de
cada una, por supuesto), y puede corregir los errores con la
tecla de borrado de carácter.
Para salir del modo de inserción y volver al modo
de órdenes, pulse |_esc_|.
Mientras esté en modo órdenes, puede usar
las teclas del cursor para moverse por el fichero. En
nuestro ejemplo, como solo tenemos una línea, el
tratar de usar las teclas de línea arriba o
abajo,
probablemente hará 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ás de la posición actual
del cursor, en lugar de la posición 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ón,
teclee "wo" y pulse |_esc_| para volver al modo de
ódenes.
______________________________________________________________________________
| Now is the time for all good women to come to the aid
of the party. |
| __ |
| ~ |
| |
| ~ |
| ~ |
| |
| ~ |
| |
|_~___________________________________________________________________________
|
Para_comenzar a insertar texto en la línea de
debajo de la actual, use la orden "o". Por ejemplo,
pulse |_o_|y teclee otra línea 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á en
modo de órdenes (donde órdenes_como i, a o
o
son válidas, o en modo de inserción
(cuando esté insertando texto, pulse |_esc_|para volver al
modo
de órdenes), o en modo de última
línea (donde puede introducir comandos extendidos, como
veremos más adelante).
3.12.4 Borrando texto
Desde el modo de órdenes, la orden x borra el
carácter debajo del cursor. Si pulsa |_x_|cinco
veces,
terminará 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íneas enteras usando la orden dd
(es decir, pulse |_d_|dos veces en una fila). Si el
cursor está en la segunda línea y teclea
dd,
________________________________________________________________________________
| 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 órdenes i y a, pero R sobreescribe
texto en lugar de insertarlo.
La orden r sustituye un único carácter
situado debajo del cursor. Por ejemplo, situe el cursor
al
comienzo de la palabra ñow" y escriba r seguido
de C. Obtendrá:
______________________________________________________________________________||
| C_ow is the time for all women to come to the aid of
the hungry. |
| ~ |
| |
| ~ |
| ~ |
| |
| ~ |
| |
|_~___________________________________________________________________________
|
La orden "~" cambia de mayúsculas a
minúsculas 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á:
________________________________________________________________________________
| 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ás, puede usar las
órdenes h, j, k y l para mover el cursor a la
izquierda, abajo, arriba y derecha respectivamente.
Esto es muy cómodo cuando (por alguna
razón) 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ínea actual, y la orden $ lo lleva al final de
la línea.
Al editar ficheros grandes, querrá_moverse_hacia
adelante y atrás 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ás.
Para llevar el cursor al final del fichero, pulse G.
Puede también desplazarse a una línea arbitraria;
por ejemplo, pulsando la orden 10G llevará el cursor a la
línea 10 del fichero. Para desplazarse al comienzo, use
1G.
Puede asociar órdenes de desplazamiento con otras
órdenes como es el borrado. Por ejemplo,
la orden d$ borrará todo desde la posición
del cursor al final de la línea; dG borrará todo
desde la
posición 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
la
última línea de la pantalla; está
en modo última línea.
______________________________________________________________________________||
| COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF
THE HUNGRY. |
| ~ |
| |
| ~ |
| ~ |
| |
| ~ |
| |
| ~ |
| : |
|_____________________________________________________________________________
|
En el modo de última línea hay disponibles
una serie de órdenes 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 órdenes, sin ":") es
equivalente a :wq. Recuerde que debe pulsar |_enter_|
después de introducir la orden para que esta se ejecute en
el modo última línea.
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á
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á editando. Por
ejemplo
:r foo.txt
insertaría el contenido del fichero foo.txt en el
texto en la posición actual de cursor.
3.12.10 Ejecutando comandos del
intérprete
Puede también ejecutar comandos del
intérprete 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ón
actual del cursor. Por ejemplo, si usa la
orden
:r! ls -F
obtendrá
______________________________________________________________________________||
| COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF
THE HUNGRY. |
| letters/ |
| |
| misc/ |
| papers/ |
| __ |
| ~ |
| |
|_~___________________________________________________________________________
|
También puede salir a un intérprete 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á ejecutada, y los resultados
mostrados en la pantalla, pero no insertados en el
fichero en edición. Si usa la orden
:shell
vi iniciará una instancia del intérprete
de comandos, permitiendole temporalmente dejar a vi
"parado" mientras ejecuta otras órdenes.
Simplemente salga del intérprete 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ía de los programas UNIX no lo
hacen), pero siempre puede leer la página de
manual para vi. vi es un "front-end" visual para el
editor ex: es decir, es ex quien maneja la
mayoría de las órdenes en el modo última
línea. Luego
además de leer la página de vi, consulte
la de ex también.
3.13 Personalizando su entorno
El intérprete de comandos proporciona muchos
mecanismos para personalizar su entorno de trabajo.
Como hemos mencionado antes, el intérprete de
comandos es más que un mero intérprete_es
también un poderoso lenguaje de
programación. Aunque escribir guiones del
intérprete de comandos es una tarea extensa, nos
gustaría introducirle algunas formas en las que puede
simplificar su trabajo en un sistema UNIX mediante el uso de
características avanzadas del
intérprete.
Como mencionamos antes, diferentes intérpretes
usan diferentes sintaxis para la ejecución de
guiones. Por ejemplo, Tcsh usa una notación al
estilo C, mientras que Bourne usa otro tipo de
sintaxis. En esta sección no nos fijaremos en las
diferencias entre los dos y supondremos que los
guiones son escritos con la sintaxis del
intérprete de comandos Bourne.
3.13.1 Guiones del intérprete de
comandos
Supongamos que usa una serie de comandos a menudo, y le
gustaría acortar el tiempo requerido
para teclear agrupándolos en una única
"orden". Por ejemplo, las órdenes
/home/larry# cat chapter1 chapter2 chapter3 >
book
/home/larry# wc -l book
/home/larry# lp book
concatenarán los ficheros chapter1, chapter2 y
chapter3 y guardará el resultado en el fichero
book.
Entonces, se mostrará el recuento del
número de líneas del fichero book y finalmente se
imprimirá con el comando lp.
En lugar de teclear todos esos comandos, podría
agruparlos en un guión del intérprete de
comandos. Describimos los guiones brevemente en la
Sección 3.13.1. El guión usado para
ejecutar
todas las órdenes sería
#!/bin/sh
# A shell script to create and print the book
cat chapter1 chapter2 chapter3 > book
wc -l book
lp book
Si el guión se salva en el fichero makebook,
podría simplemente usar la orden
/home/larry# makebook
para ejecutar todas las órdenes del guión.
Los guiones son simples ficheros de texto; puede
crearlos
con un editor como emacs o vi (8)
_________________________________________
(8) vi se describe en la Sección 3.12.
________________________________________________________________________________
Veamos este guión. La primera línea
"#!/bin/sh", identifica el fichero como un guión y le dice
al
intérprete de comandos como ejecutarlo. Instruye
al intérprete a pasarle el guión a /bin/sh para
la
ejecución, donde /bin/sh es el programa del
intérprete. >Por que es esto importante? En la
mayoría
de los sistemas UNIX /bin/sh es un intérprete de
comandos Bourne, como Bash. Forzando al guión
a ejecutarse usando /bin/sh nos estamos asegurando de
que será interpretado según la sintaxis
de
Bourne. Esto hará que el guión se ejecute
usando la sintaxis Bourne aunque esté usando Tcsh
como
intérprete de comandos.
La segunda línea es un comentario. Estos
comienzan con el carácter "#" y continuan hasta
el
final de la línea. Los comentarios son ignorados
por el intérprete de comandos_son habitualmente
usados para identificar el guión con el
programador.
El resto de las líneas del guión son
simplemente órdenes como las que podría teclear
directamente. En efecto, el intérprete de comandos lee
cada línea del guión y ejecuta la línea como
si hubiese sido tecleada en la línea de
comandos.
Los permisos son importantes para los guiones. Si crea
un guión, debe asegurarse de que tiene permisos de
ejecución para poder ejecutarlo (9). La orden
____________________
(9) Cuando crea ficheros de texto, los permisos por
defecto usualmente no incluyen los de
ejecución.
________________________________________________________________________________
/home/larry# chmod u+x makebook
puede ser usada para dar permisos de ejecución al
guión makebook.
3.13.2 Variables del
intérprete de comandos y el entorno
El intérprete de comandos le permite definir
variables como
la mayoría de los lenguajes de pro-
gramación. Una variable es simplemente un trozo
de datos al que se le da un nombre.
____________________
3 Notese que Tcsh, así como otros
intérpretes del estilo C, usan un mecanismo diferente
para
inicializar variables del descrito aquí. Esta
discusión supondrá el uso del intérprete
Bourne, como es Bash (el cual probablemente está usando).
Vea la página de manual de Tcsh para más
detalles.
Cuando asigna un valor a una
variable (usando el operador "="), puede acceder a la variable
añadiendo a su nombre "$", como se ve a
continuación.
/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és 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érprete. Esto
significa que solo éste podrá acceder a las
variables. Esto puede ser útil en los guiones; si necesita
mantener, por ejemplo, el nombre de un fichero, puede almacenarlo
en una variable. Usando la orden set mostrará una lista de
todas las variables definidas en el intérprete de
comandos.
De cualquier modo, el intérprete de comandos
permite exportar variables al entorno. El entorno es el conjunto
de variables a las cuales tienen acceso todas las órdenes
que ejecute. Una vez que se define una variable en el
intérprete, exportarla hace que se convierta
también en parte del entorno.
La orden export es usada para exportar variables al
entorno.
De nuevo, hemos de diferenciar entre Bash y Tcsh. Si
está usando Tcsh, deberá usar una sintaxis
diferente para las variables de entorno (se usa la orden setenv).
Diríjase a la página de manual de Tcsh para
más información.
_________________________________________
El entorno es muy importante en un sistema UNIX. Le
permite configurar ciertas órdenes sim-
plemente inicializando variables con las órdenes
ya conocidas.
Veamos un ejemplo rápido. La variable de entorno
PAGER es usada por la orden man. Especifica
la orden que se usará para mostrar las
páginas del manual una a una. Si inicializa PAGER con
el
nombre del programa, se usará este para mostrar
las páginas de manual en lugar de more (el cual
es
usado por defecto).
Inicialice PAGER a "cat". Esto hará que la salida
de man sea mostrada de una, sin pausas entre
páginas.
/home/larry# PAGER="cat"
Ahora exportamos PAGER al entorno.
/home/larry# export PAGER
Puebe la orden man ls. La página debería
volar por su pantalla sin detenerse entre
páginas.
Ahora, si inicializa PAGER a "more", se usará la
orden more para mostrar las páginas del manual.
/home/larry# PAGER="more"
Nótese que no hemos de usar la orden export
después del cambio de la variable PAGER. Solo hemos de
exportar las variables una vez; cuaquier cambio efectuado con
posterioridad será automáticamente propagado al
entorno.
Las páginas de manual para una orden en
particular, le informarán acerca del uso de
alguna
variable de entorno por parte de esa orden; por ejemplo,
la página de manual de man explica que
PAGER es usado para especificar la orden de
paginado.
Algunas órdenes comparten variables de entorno;
por ejemplo, muchas órdenes usan la variable
EDITOR para especificar el editor por defecto para usar
si es necesario.
El entorno es también usado para guardar
información importante acerca de la sesión 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á el
intérprete. 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ímbolo "#"),
Your command, please: PS1="w# "
/home/larry#
La página 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érprete el programa ejecutable ls?. De hecho, ls
se
encuentra en /bin/ls en la mayoría de los
sistemas. El intérprete usa la variable de entorno
PATH
para localizar los ficheros ejecutables u órdenes
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érprere debe buscar. Cada directorio está
separado
por un ":". Cuando usa la orden ls, el intérprete
primero busca /bin/ls, luego /usr/bin/ls y
así hasta que lo localice o acabe la
lista.
Nótese que PATH no interviene en la
localización de ficheros regulares. Por ejemplo, si usa
la
orden
/home/larry# cp foo bar
El intérprete no usará PATH para localizar
los ficheros foo y bar_esos nombres se suponen completos. Solo se
usará PATH para localizar el programa ejecutable
cp.
Esto le permitirá ahorrar mucho tiempo; significa
que no deberá recordar donde son guarda-
das las ódenes. 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áticamente.
Nótese 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á en su PATH, entonces el intérprete
no
buscará en él ordenes para ejecutar_esto
incluye al directorio de trabajo.
3.13.3 Guiones de inicialización del
intérprete
A parte de los guiones que puede crear, hay un
número de estos que usa el intérprete de
coman-
dos para ciertos propósitos. Los más
importantes son sus guiones de inicialización,
guiones
automáticamente ejecutados por el
intérprete al abrir una sesión.
Los guiones de inicialización son eso, simples
guiones como los descritos arriba. De cualquier
modo, son muy útiles para la
inicialización de su entorno al ejecutarse
automáticamente. Por ejemplo, si siempre usa la orden mail
para comprobar si tiene correo al iniciar una sesión,
incluya en su guión de inicialización dicha orden y
será ejecutada automáticamente.
Tanto Bash como Tcsh distinguen entre un
intérprete de presentación y otras
invocaciones
del intérprete. Un intérprete de
presentación es el que se ejecuta en el momento de la
presentación
al sistema (login). Es el único que usará.
De cualquier modo, si ejecuta una opción de salir a
un
intérprete desde algún programa, como vi,
inicializa otra instancia del intérprete de comandos,
el
cual no es su intérprete de presentación.
Además, en cualquier momento que ejecuta un
guión,
automáticamente está arrancando otro
intérprete que va a ser el encargado de ejecutar el
guión.
Los ficheros de inicialización 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ón al
sistema), $HOME/.bash_profile (ejecutado por una
sesión de presentación Bash) y
$HOME/.bashrc
(ejecutadas por todas las sesiones Bash que no son de
presentación). Si .bash_profile no
está presente, se usa en su lugar
.profile
Tcsh usa los siguientes guiones de
inicialización: /etc/csh.login (ejecutado por todos
los
usuarios de Tcsh en el momento de la presentación
al sistema), $ HOME/.tcshrc (ejecutado en la
presentación al sistema por todas las instancias
nuevas de Tcsh) y $HOME/.login (ejecutado en la
presentación al sistema, seguido .tcshrc). Si
.tcshrc no está presente, .cshrc se usa en su
lugar.
Para entender completamente la función de estos
ficheros, necesitará aprender más acerca
del
intérprete de comandos. La programación de
guiones es una materia
complicada, más allá del alcance de este libro. Lea
las páginas de manual de bash y/o tcsh para aprender
más sobre la configuración de su
entorno.
3.14 ¿Quieres seguir por tu cuenta?
Esperamos haberle proporcionado suficiente
información para darle una idea básica de como usar
el
sistema, teniendo en cuenta que la mayoría de los
aspectos más importantes e interesantes de
Linux
no están cubiertos aquí_ esto es muy
básico. Con esta base, en poco tiempo estará
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áginas del manual.
Aunque muchas de las páginas pueden parecer
confusas al principio, si se profundiza hay gran
cantidad de información en ellas.
También es interesante leer un libro sobre la
utilización de un sistema UNIX. Hay mucho más
en
UNIX de lo que pueda parecer a simple vista-
desafortunadamente, la mayoría de ello queda
fuera
del alcance de este libro. En el apéndice A
encontrarás una lista de algunos buenos libros
sobre
UNIX.
Capítulo 4
Administración del Sistema
Este capítulo es una visión general de la
administración de un sistema Linux, incluyendo un
número
de posibilidades avanzadas que no son, necesariamente,
sólo para administradores de sistemas. Igual que cada
perro tiene su día, 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 único usuario en
el sistema.
Hemos intentado cubrir aquí los elementos
más importantes acerca de la administración de
sistemas que se necesitan conocer cuando se use Linux, en
suficiente detalle para empezar confortablemente.
Para mantenerlo corto y agradable, sólo hemos
cubierto los niveles más básicos 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 comprender
mejor como funcionan las cosas y como se en-
samblan juntas. Al menos hojéelo para que pueda
conocer qué contiene y qué tipo de ayuda
puede
esperar de él.
4.1 Acerca de Raíces, Sombreros y la
Sensación de Poder
Como sabe, UNIX distingue entre diferentes usuarios para
que lo que hagan a los demás y al sistema pueda ser
regulado (uno no desearía 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ás de las cuentas dadas a
personas reales, existen cuentas
especiales, definidas por el sistema, que tienen privilegios
especiales. La más importante de éstas es la cuenta
raíz, con el nombre de usuario root.
4.1.1 La cuenta root
Los usuarios normales están restringidos
normalmente para que no puedan dañar a nadie más en
el
sistema, sólo a ellos mismos. Los permisos de los
ficheros en el sistema están preparados para
que
los usuarios normales no tengan permitido borrar o
modificar ficheros en directorios compartidos
por todos los usuarios (como son /bin y /usr/bin. Muchos
usuarios también protegen sus propios
ficheros con los permisos adecuados para que otros
usuarios no puedan acceder o modificar éstos
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 programas
especiales, como pueden ser los que particionan un disco o crean
sistemas de ficheros. La idea básica 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ácil cometer errores que tengan consecuencias
catastróficas 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ía. Sin
embargo, como usuario root, el sistema no diría nada.
Es
muy simple el dañar el sistema utilizando root.
La mejor forma de evitar accidentes
es:
o Pensárselo dos veces antes de apretar
|_return_|en un comando_que_pueda causar daño.
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ás
confortable se encuentre uno trabajando con
el usuario root, más seguro que se
confundirán los privilegios con los de un usuario
nor-
mal. Por ejemplo, puede uno pensar que se está
conectado como larry, cuando realmente se
está 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érprete a algo distinto del marcador de
usuario
normal. Por ejemplo, mucha gente utiliza el
carácter "$" como marcador para los usuarios
normales, y reserva el carácter "#" como marcador
para el usuario root.
o Conectarse como root sólo cuando sea
absolutamente necesario. Y desconectarse tan pronto
como se haya terminado el trabajo.
Cuanto menos se use la cuenta root, menos
posibilidades
habrá de dañar el sistema.
Por supuesto, existe una variante de hackers de UNIX que
utilizan root para prácticamente todo.
Pero cada uno de ellos ha cometido, en algún
momento, algún 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é cómodo 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ó accidentalmente
una vez el árbol de directorios completo del
núcleo de su sistema. Horas de trabajo se
perdieron
para siempre. Afortunadamente, sin embargo, gracias a su
conocimiento
del código del sistema de
ficheros, fue capaz de reiniciar el sistema y
reconstruir el árbol de directorios del disco a
mano.
Pongámoslo de otra forma, si se imagina la
utilización de la cuenta root como la utilización
de
un sombrero mágico 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
las manos. Puesto que es fácil mover la mano de
manera destructiva por accidente, no es una buena
idea el llevar el sombrero mágico cuando no es
necesario, a pesar de la maravillosa sensación.
4.1.2 Abusando del sistema
Junto con el sentimiento de poder llega la tendencia a
hacer daño. Este es uno de los puntos oscuros
de la administración de sistemas UNIX, pero todo
el mundo pasa por ello en algún 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ón. Se monta mucho
jaleo con la conexión como root; está visto como un
sabio y a la vez espantoso poder, dado sólo 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ños 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á diseñada _para ejecutar el sistema. Existe
un
código de honor no hablado entre el administrador
y los usuarios del sistema. Como se sentiría
si su administrador de sistemas leyese su correo
electrónico o mirase sus ficheros? Aún no
hay
ningún precedente legal firme acerca de la
intimidad electrónica 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ón 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ño.
La seguridad del sistema fue un pensamiento
posterior _el sistema se desarrolló originalmente
en un entorno donde las intrusiones de un usuario
en otro eran algo inaudito. Por esto, incluso con
medidas de seguridad, aún existe la posibilidad
de
que usuarios normales hagan daño.
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ás daño
que el que previene. Una de mis citas favoritas es,
ñunca 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ño real al sistema. El
90% del tiempo, cuando un usuario causa problemas en el sistema
(por ejemplo, rellenando la partición de usuarios con
grandes ficheros, o ejecutando
múltiples instancias de un gran programa), el
usuario simplemente desconoce que lo que está 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álida. Es mejor
una simple charla con el usuario, preguntándole
acerca del problema, en lugar de causar una con-
frontación. Lo último que se desea es
estar entre los malos desde el punto de vista del
usuario.
Esto levantaría un montón 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ón en la que quisiera
estar.
Si encontrase que un usuario ha estado
intentando "romper" el sistema, o ha estado
haciendo
daño 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ñando al sistema
_avísele. Dígale que no lo vuelva a repetir. Sin
embargo, si le vuelve a cazar haciendo daño, entonces
puede estar absolutamente seguro de que es intencionado. Ni
siquiera puedo empezar a describir la cantidad de veces que
parecía que había un usuario causando problemas al
sistema, cuando de hecho, era o un accidente o un fallo
mío.
4.1.4 Fijando las reglas
La mejor forma de administrar un sistema no es con un
puño de hierro.
Así puede ser como se
haga lo militar, pero UNIX no fue diseñado 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á de romperlas.
Incluso si sus reglas para utilizar el sistema son
perfectamente razonables y claras, siempre habrá
momentos en que los usuarios romperán dichas
reglas sin pretenderlo. Esto es especialmente cierto en
el caso de usuarios UNIX nuevos, que están
aprendiendo los entresijos del sistema. No esta
suficientemente claro, por ejemplo, que uno no debe
bajarse un gigabyte de ficheros y enviárselo por
correo a todos los usuarios del sistema. Los usuarios necesitan
comprender las reglas y por que están
establecidas.
Si especifica reglas de uso para su sistema,
asegúrese de que el motivo detrás de cada
regla
particular esté claro. Si no lo hace, los
usuarios encontrarán toda clase de formas creativas
de
saltársela y no saber que en realidad la
están rompiendo.
4.1.5 Lo que todo esto significa
No podemos decirle como ejecutar su sistema al
último detalle. Mucha de la filosofía 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 único usuario del
sistema. Sin embargo, siempre es una buena idea _en
cualquier situación_ 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 normales" que saben
más acerca de UNIX que lo que cualquier administrador de
sistemas. También, ser el administrador de sistemas no le
permite el utilizar la malicia contra sus usuarios. Aunque el
sistema le dé el privilegio de enredar en los ficheros de
los usuarios, no significa que se tenga ningún derecho a
hacerlo.
Por último, ser el administrador del sistema no
es realmente una gran cosa. No importa si sus
sistema es un pequeño 386 o un super ordenador
Cray. La ejecución del sistema es la misma. El
saber la clave de root no significa ganar dinero o fama.
Tan solo le permitirá 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úcleo
de Linux. Este núcleo tiene la partición
raíz de Linux codificada en él, para que sepa donde
buscar
en el disco duro el sistema de ficheros raíz. (El
comando rdev puede ser utilizado para poner la
partición raíz en la imagen del
núcleo; ver más adelante.) Por ejemplo, este es el
tipo de disquete
creado por Slackware durante la
instalación.
Para crear su propio disquete de arranque, localice en
primer lugar la imagen del núcleo en su
disco duro. Debe estar en el fichero /Image o
/etc/Image. Algunas instalaciones utilizan el fichero
/vmlinux para el núcleo.
En su lugar, puede que tenga un núcleo
comprimido. Un núcleo comprimido se descomprime
a símismo en memoria en tiempo de arranque, y
utiliza mucho menos espacio en el disco duro. Si
se tiene un núcleo comprimido, puede encontrarse
en el fichero /zImage o /etc/zImage. Algunas
instalaciones utilizan el fichero /vmlinuz para el
núcleo comprimido.
Una vez que se sabe donde está el núcleo,
hay que poner el nombre de la partición raíz de
un
dispositivo raíz en la imagen del núcleo,
utilizando el comando rdev. El formato de este comando
es
rdev <nombre-de-núcleo>
<dispositivo-raíz>
donde <nombre-del-núcleo> es el nombre de
la imagen del núcleo, y <dispositivo-raíz> es
el nombre de la partición raíz de Linux. Por
ejemplo, para hacer que el dispositivo raíz en el
núcleo /etc/Image sea /dev/hda2, utilice el
comando
# rdev /etc/Image /dev/hda2
rdev también puede poner otras opciones en el
núcleo, como puede ser el modo SVGA por defecto a utilizar
en tiempo de arranque. Tan sólo utilice "rdev -h" para
obtener un mensaje de ayuda.
Una vez puesto el dispositivo raíz, tan
sólo hay que copiar la imagen del núcleo al
disquete.
Siempre que se copia datos a un disquete, es una buena
idea formatear previamente el disquete en
MS-DOS. Esto establece la información de pista y
sector en el disquete con la que puede detectarse
como de alta o baja densidad.
Por ejemplo, para copiar el núcleo 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étodo 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áticamente Linux desde una
imagen de núcleo almacenada en el propio disco
duro.
LILO puede utilizarse también como una primera
etapa de carga de varios sistemas operativos,
permitiendo seleccionar en tiempo de arranque qué
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á 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á una
lista de los sistemas operativos disponibles.
La forma más simple de instalar LILO es editar el
fichero de configuración, /etc/lilo.conf, y
ejecutar el comando
# /sbin/lilo
El fichero de configuración 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ón LILO. El
ejemplo siguiente es para un sistema que tiene una
partición raíz Linux en /dev/hda1 y una
partición 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.
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ú del fichero de configuración será el
sistema
operativo que arrancará LILO por defecto. Se
puede seleccionar otro sistema operativo en el indicador de
arranque de LILO, tal y como se indicó
anteriormente.
Recuerde que cada vez que actualice la imagen del
núcleo en disco, se debe reejecutar /sbin/lilo
para que los cambios queden reflejados en el sector de
arranque de su unidad.
También tenga en cuenta que si utiliza la
línea "root =", no hay motivo para utilizar rdev
para
poner la partición raíz en la imagen del
núcleo. LILO se encarga de ponerlo en tiempo de
arranque.
Las FAQ (Preguntas frecuentemente formuladas) (ver
Apéndice A) dan más información
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ón de reset mientras el sistema esté
ejecutándose. El núcleo sigue la pista de la
entrada/salida
a disco en buffers de memoria. Si se reinicializa el
sistema sin darle al núcleo la oportunidad de
escribir sus buffers a disco, puede corromper sus
sistemas de ficheros.
En tiempo de cierre se toman también otras
precauciones. Todos los procesos reciben una
señal
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én puede alertar
a los usuarios de que se está cerrando y darles
la posibilidad de desconectarse.
La forma más 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ámetro <tiempo> como ñow", para cerrar
inmediatamente. Se le puede suministrar la opción -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
# shutdown -r 20:00
El comando halt puede utilizarse para forzar un cierre
inmediato, sin ningún mensaje de aviso
ni periodo de gracia. halt se utiliza si se es el
único usuario del sistema y se quiere cerrar el sistema 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á el pulsar
|_ctrl-alt-del_,|que causará un shutdown; en otros
sistemas, sin embargo, el utilizar el "Apretón de Cuello
de Vulcano" reinicializará el sistema inmediatamente y
puede causar un desastre.
__________________
4.4 Gestión
de Usuarios
Independientemente de que tenga muchos usuarios o no en
su sistema, es importante comprender los aspectos de la
gestión de usuarios bajo Linux. Incluso si se es el
único 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ólo es un problema de seguridad, sino que las cuentas se
utilizan para identificar unívocamente a los usuarios al
sistema. Se necesita ser capaz de saber quién está
haciendo qué.
4.4.1 Conceptos de gestión de usuarios
El sistema mantiene una cierta cantidad de
información acerca de cada usuario. Dicha
información se resume a continuación.
nombre de usuario
El nombre de usuario es el identificador único
dado a cada usuario del sistema.
Ejemplos de nombres de usuario son larry, karl y mdw. Se
pueden utilizar letras
y dígitos 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úmero
único dado a cada usuario del sistema. El
sistema
normalmente mantiene la pista de la información
por UID, no por nombre de usuario.
group ID El group ID, o GID, es la identificación
del grupo del usuario por defecto. En la
sección 3.9 discutimos los permisos de grupo;
cada usuario pertenece a uno o más
grupos definidos por el administrador del sistema.
Más sobre ésto más adelante.
clave El sistema también almacena la clave
encriptada del usuario. El comando passwd
se utiliza para poner y cambiar las claves de los
usuarios.
nombre completo
El ñombre real" o ñombre 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ón. Cada usuario debe tener su
propio directorio inicial, normal-
mente situado bajo /home.
intérprete de inicio
El intérprete de inicio del usuario es el
intérprete de comandos que es arrancado para
el usuario en tiempo de conexión. Ejemplos pueden
ser /bin/bash y /bin/tcsh.
El fichero /etc/passwd contiene la información
anterior acerca de los usuarios. Cada línea del
fichero contiene información acerca de un
único usuario; el formato de cada línea
es
nombre:clave encriptada:UID:GID:nombre
completo:dir.inicio:intérprete
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ún formato legible por el hombre. Las
claves se encriptan utilizándose a
símismas
como clave secreta. En otras palabras, sólo si se
conoce la clave, ésta puede ser desencriptada.
Esta
forma de encriptación es bastante
segura.
Algunos sistemas utilizan "claves en sombra" en la que
la información 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 éste
no lo es. Las claves en sombra suministran algunas
otras funciones como puede ser la expiración de
claves; no entraremos a detallar éstas funciones
aquí.
El tercer campo "102", es el UID. Este debe ser
único para cada usuario. El cuarto campo,
"100", es el GID. Este usuario pertenece al grupo
numerado 100. La información de grupos, como
la información de usuarios, se almacena en el
fichero /etc/group. Véase la sección 4.4.5 para
más
información.
El quinto campo es el nombre completo del usuario.
"Laura Poole". Los dos últimos campos son
el directorio inicial del usuario (/home/kiwi) y el
intérprete de conexión (/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.
4.4.2 Añadiendo usuarios
Cuando se añade un usuario hay varios pasos a
seguir. Primero, se le debe crear una entrada en
/etc/passwd, con un nombre de usuario y UID
únicos. Se debe especificar el GID, nombre
completo
y resto de información. Se debe crear el
directorio inicial, y poner los permisos en el directorio
para
que el usuario sea el dueño. Se deben suministrar
ficheros de comandos de inicialización en el nuevo
directorio y se debe hacer alguna otra configuración del
sistema (por ejemplo, preparar un buzón para el correo
electrónico entrante para el nuevo usuario).
Aunque no es difícil el añadir usuarios a
mano (yo lo hago), cuando se está ejecutando un
sistema con muchos usuarios, es fácil el
olvidarse de algo. La manera más simple de añadir
usuarios
es utilizar un programa interactivo que vaya preguntando
por la información necesaria y actualice
todos los ficheros del sistema automáticamente.
El nombre de este programa es useradd o adduser
dependiendo del software que esté instalado. Las
páginas man para estos comandos deberían
ser
suficientemente autoexplicatorias.
4.4.3 Borrando usuarios
De forma parecida, borrar usuarios puede hacerse con los
comandos userdel o deluser dependiendo
de qué 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ínea de /etc/passwd
correspondiente a kiwi a
kiwi:*Xv8Q981g71oKK:102:100:Laura
Poole:/home/kiwi:/bin/bash
evitará que kiwi se conecte.
4.4.4 Poniendo atributos de usuario
Después de que haya creado un usuario, puede
necesitar cambiar algún atributo de dicho
usuario,
como puede ser el directorio inicial o la clave. La
forma más simple de hacer ésto es cambiar
los
valores directamente en /etc/passwd. Para poner clave a
un usuario, utilice el comando passwd.
Por ejemplo,
# passwd larry
cambiará la clave de larry. Sólo root
puede cambiar la clave de otro usuario de ésta forma.
Los
usuarios pueden cambiar su propia clave con passwd
también.
En algunos sistemas, los comandos chfn y chsh
están disponibles, permitiendo a los usuari-
os el cambiar sus atributos de nombre completo e
intérprete de conexión. Si no, deben pedir
al
administrador de sistemas que los cambie por
ellos.
4.4.5 Grupos
Como hemos citado anteriormente, cada usuario pertenece
a uno o más grupos. La única importancia real de
las relaciones de grupo es la perteneciente a los permisos de
ficheros, como dijimos en la sección 3.9, cada fichero
tiene un "grupo propietario" y un conjunto de permisos de grupo
que define de qué 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ón acerca
de los grupos. El formato de cada línea 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érdese que en
/etc/passwd cada usuario tiene un GID por defecto. Sin
embargo, los usuarios pueden pertenecer a mas de un
grupo, añadiendo sus nombres de usuario a
otras líneas de grupo en /etc/group. El comando
groups lista a qué grupos se tiene acceso.
El tercer grupo, invitados, es para usuarios invitados,
y otros es para "otros" usuarios. El
usuario kiwi tiene acceso a éste
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ñadir grupos a su sistema. Nor-
malmente es más sencillo añadir
líneas a /etc/group uno mismo, puesto que no se necesitan
más
configuraciones para añadir un grupo. Para borrar
un grupo, sólo 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.
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ñadir o extraer del archivo.
Por ejemplo, el comando
# tar cvf backup.tar /etc
empaquetará 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ón
"v" fuerza a tar
en el modo detallado _imprimiendo los nombres de los ficheros
según se archivan.
La opción "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ñadir al archivo.
El comando
# tar xvf backup.tar
extraerá 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ónde 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ó el
comando
# tar cvf backup.tar /etc/hosts /etc/group
/etc/passwd
el nombre de directorio /etc se añadió al
principio de cada nombre de fichero. Para poder
extraer
los ficheros en la localización correcta, se
necesitará 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 ésto se necesitará hacer
"cd
/etc" antes de extraer los ficheros. Como se puede ver,
el cómo haya sido creado un fichero tar
marca una gran diferencia en cómo se extrae. Se
puede usar el comando
# tar tvf backup.tar
para mostrar un "índice" del fichero tar antes de
desempaquetarlo. De esta forma se puede ver que
directorio se utilizó como origen de los nombres
de los ficheros, y se puede extraer el archivo desde
la localización correcta.
4.5.2 gzip y compress
A diferencia de los programas de archivo para MS-DOS,
tar no comprime automáticamente los
ficheros según los archiva. Por ello, si se
están archivando dos ficheros de un megabyte, el fichero
tar resultante tendrá 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á backup.tar y le dejará con
backup.tar.gz, que es la versión comprimida del
fichero.
La opción -9 le dice a gzip que utilice el mayor
factor de compresión.
El comando gunzip puede ser utilizado para descomprimir
un fichero comprimido con gzip.
Equivaléntemente, se puede utilizar "gzip
-d".
gzip es una herramienta relativamente nueva en la
comunidad UNIX. Durante muchos años,
se utilizó en su lugar el comando compress. Sin
embargo, debido a varios factores (1), compress se
está volviendo desfasado.
_________________________________________
(1) Estos factores incluyen una disputa por una patente
software contra el algoritmo de
compress y el hecho de que gzip es mucho más eficiente que
compress.
_________________________________________
Los ficheros comprimidos con compress terminan en la
extensión .Z. Por ejemplo, backup.tar.Z
es la versión comprimida con compress de
backup.tar, mientras que backup.tar.gz es la
versión
comprimida con gzip (2). El comando uncompress se
utiliza para expandir un fichero comprimido con
compress; gunzip sabe también como tratar los
ficheros comprimidos con compress.
_________________________________________
(2) Para añadir más confusión,
durante algún tiempo la extensión .z ("z"
minúscula) fué utilizada para los ficheros
comprimidos con gzip. La extensión oficial de los ficheros
gzip ahora es .gz.
_________________________________________
4.5.3 Juntándolo 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á backup.tar.gz. Para
desempaquetar este fichero, se usan los comandos
contrarios:
# gunzip backup.tar.gz
# tar xvf backup.tar
Por supuesto, asegúrese siempre de que
está en el directorio correcto antes de desempaquetar
un
fichero tar.
Se pueden utilizar algunas mañas UNIX para hacer
todo esto en una sola línea de comando, como
por ejemplo:
# tar cvf – /etc | gzip -9c >
backup.tar.gz
Aquí estamos enviando el fichero tar a "-", que
representa la salida estándar 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ón -c de gzip le dice que envíe su
salida hacia la salida estándar, que es redirigida
a
backup.tar.gz.
Un comando único para desempaquetar este archivo
sería:
# gunzip -c backup.tar.gz | tar xvf –
De nuevo, gunzip descomprime el contenido de
backup.tar.gz y envía el fichero tar resultante
hacia
la salida estándar. Esta es redirigida hacia tar,
que lee de "-", refiriéndose ésta vez a la
entrada
estándar de tar.
Felizmente, el comando tar también incluye la
opción z para comprimir/descomprimir
automáticamente los ficheros al vuelo, utilizando
el algoritmo de
compresión 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ítase a las páginas man para obtener
mas información 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ás lentos y
ligéramente menos seguros).
También puede utilizar disquetes para contener
sistemas de ficheros individuales _de ésta
forma,
se puede montar mount el disquete para acceder a los
datos contenidos en él.
4.6.1 Utilizando disquetes para copias de
seguridad
La forma más simple de hacer una copia de
seguridad es con tar. El comando
# tar cvfzM /dev/fd0 /
hará una copia de seguridad completa de su
sistema utilizando el disquete /dev/fd0. La opción
"M"
de tar permite que la copia de seguridad sea una copia
multi-volumen; esto es,
cuando un disquete
está lleno, tar pedirá el siguiente. El
comando
# tar xvfzM /dev/fd0
puede ser utilizado para recuperar la copia de seguridad
completa. Este método puede ser utilizado
también 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
útil.
Hacer una copia de seguridad completa del sistema puede
ser costoso en tiempo y recursos.
Muchos administradores de sistemas utilizan una política de copias de
seguridad incrementales, en
la que cada mes se hace una copia de seguridad completa,
y cada semana sólo 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ólo tiene que restaurar la
última copia de seguridad mensual completa y,
después, las últimas copias semanales según
el caso.
El comando find puede ser útil 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ía en una partición de un
disco
duro. Por ejemplo,
# mke2fs /dev/fd0 1440
crea un sistema de ficheros en el disquete en /dev/fd0.
El tamaño del sistema de ficheros debe
corresponder al tamaño del disquete. Los
disquetes de alta densidad de 3.5"tienen un tamaño
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
montará el disquete en /dev/fd0 en el directorio
/mnt. Ahora todos los ficheros del disquete aparecerán
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á especificárselo al
comando mount.
El "punto de montaje" (el directorio donde está
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ás información sobre sistemas de
ficheros, montaje y puntos de montaje, ver sección
4.8.
_____________________
Nota 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úcleo 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, desmonte umount el primero
y monte mount el siguiente.
_____________________
4.7 Actualizando e Instalando Nuevo Software
Otra tarea del administrador de sistemas es la
actualización e instalación de nuevo
software.
La comunidad Linux es muy dinámica. Las versiones nuevas del
núcleo 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ólo ésto no es necesario,
sino que es una pérdida de tiempo. Para mantenerse
al
día de todos los cambios del mundo Linux,
debería utilizar todo su tiempo actualizando en vez
de
usando su sistema.
Pero entonces, cuándo se debe actualizar?. Alguna
gente piensa que se debe actualizar cuando se libera una nueva
versión de distribución _por ejemplo, cuando
Slackware presenta una nueva versión. Muchos usuarios
Linux reinstalan completamente sus sistemas con la nueva
versión Slackware, cada vez. Esto, también, es una
pérdida de tiempo. En general, los cambios de las
versiones Slackware son pequeños. Bajarse y reinstalar 30
discos cuando sólo ha cambiado un 10% del software es, por
supuesto, inútil.
La mejor forma de actualizar su sistema es
haciéndolo a mano: actualizando solo aquellos paquetes de
software que sepa que hay que actualizar. Esto asusta a un
montón de gente: quieren saber qué actualizar y
cómo, y qué se romperá si no actualizan.
Para tener éxito con Linux, es importante superar los
temores del "hágalo 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ón de una nueva versión no dudará
en limpiar toda la configuración y todo estará
roto
otra vez, igual que la primera vez que instaló su
sistema. Volver atrás de ésta forma no es
necesario
todo lo que se necesita es algún conocimiento
acerca de cómo actualizar el sistema y de
cómo
hacerlo bien.
Se encontrará con que cuando actualice un
componente de su sistema, no tienen por que fallar los
demás. Por ejemplo, la mayor parte del software
de mi sistema se quedó en una instalación
antigua
basada en el nivel 0.96 MCC Interim. Ciertamente,
utilizo la versión más reciente del núcleo y
de las librerías con éste software sin problemas.
Realmente, la actualización insensata para "mantenerse en
la ola" no es tan importante. Esto no es MS-DOS o Microsoft
Windows. No hay ninguna razón importante para ejecutar la
versión más reciente de todo el software. Si
encuentra que desea o necesita funciones de una versión
nueva, entonces actualice. Si no, no lo haga. En otras palabras,
actualice sólo lo que tenga que hacerlo y cuando tenga que
hacerlo. No actualice sólo por el mero hecho de
actualizar. Hacerlo sólo gastaría un montón
de tiempo y esfuerzo intentando mantenerse al
día.
El software más importante para actualizar en su
sistema es el núcleo, las librerías 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ódicamente.
4.7.1 Actualizando el núcleo
Actualizar el núcleo es simplemente asunto de
coger los fuentes y compilarlos uno mismo. Debe compilar el
núcleo por si mismo para poder activar o desactivar
ciertas funciones, además de asegurarse de que el
núcleo estará optimizado para correr en su
máquina. El proceso es casi indoloro.
Los fuentes del núcleo pueden obtenerse de
cualquiera de los servidores FTP de Linux (para una
lista, véase Apéndice C). En
sunsite.unc.edu, por ejemplo, los fuentes del núcleo se
encuentran
en /pub/Linux/kernel. Las versiones del núcleo se
numeran utilizando un número de versión y
un
nivel de "parche". Por ejemplo, la versión de
núcleo 0.99, nivel de parche 11 es nombrada
como
0.99.pl11, o simplemente 0.99.11.
Los fuentes del núcleo se presentan en un fichero
tar comprimido con gzip (3). Por ejemplo, el
fichero conteniendo los fuentes del núcleo
0.99.pl11 es linux-0.99.11.tar.gz.
_________________________________________
(3) A menudo, se suministra un fichero de parches para
la versión actual del núcleo, que permite parchear
los fuentes actuales desde el nivel anterior al actual
(utilizando el programa patch). En muchos casos, sin embargo, es
normalmente más sencillo el instalar la nueva
versión de los fuentes del núcleo
completa.
_________________________________________
Se desempaqueta este fichero tar desde el directorio
/usr/src; esto crea el directorio
/usr/src/linux que contiene los fuentes del
núcleo. Se debe borrar o cambiar de nombre el
dir-
ectorio /usr/src/linux existente antes de desempaquetar
la nueva versión.
Una vez que se han desempaquetado los fuentes, es
necesario asegurarse que dos enlaces simbóli-
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ón para crearlos de nuevo cuando se instale
la
siguiente versión de los fuentes del
núcleo. (Véase sección 3.10 para más
información sobre enlaces
simbólicos.)
Hay que advertir, que para poder compilar el
núcleo, se debe tener gcc y g++, compiladores C
y
C++, instalados en el sistema. Puede necesitar tener la
versión más reciente de estos compiladores:
ver sección 4.7.3, más adelante, para
más información.
Para compilar el núcleo, primero cambie de
directorio usando cd a /usr/src/linux. Ejecute
el comando make config. Este comando le irá
preguntando por un número de opciones de
config-
uración, como puede ser qué tipos de
sistemas de ficheros se desea incluir en el nuevo
núcleo.
Después, edite /usr/src/linux/Makefile.
Asegúrese que la definición para ROOT_DEV sea
cor-
recta _define el dispositivo utilizado como sistema de
ficheros raíz en tiempo de arranque. La
definición normal es
ROOT_DEV = CURRENT
A menos que esté cambiando el dispositivo
raíz del sistema de ficheros, no hay razón para
cambiar esto.
Después, ejecute el comando make dep para
asegurar que se cumplen todas las dependencias del
fuente. Este es un paso muy importante.
Finalmente, se está listo para compilar el
núcleo. El comando make Image compilará el
núcleo
y dejará la nueva imagen del núcleo en el
fichero /usr/src/linux/Image. Alternativamente, el
comando make zImage compilará una imagen
comprimida del núcleo, que se descomprime a símisma
en tiempo de arranque y utiliza menos espacio en el
disco.
Una vez que está el núcleo 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ón 4.2.2 para más
información.
4.7.2 Actualizando las librerías
Como se mencionó antes, la mayor parte del
software del sistema está compilado para que utilice las
librerías 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ón de las
librerías
que el programa requiere. Las librerías son
compatible-ascendentes; esto es, un programa compilado para
utilizar una versión antigua de las librerías, debe
trabajar con la nueva versión de las librerías
instalada. Sin embargo, lo contrario no es cierto.
La última versión de las librerías
se puede encontrar en los servidores FTP de Linux. En
sunsite.unc.edu, están disponibles en
/pub/Linux/GCC. Los ficheros de "versión" que se
encuen-
tran ahí deben explicar qué ficheros se
necesita obtener y cómo instalarlos. Rápidamente,
se deben
coger los ficheros image-versión.tar.gz y
inc-versión.tar.gz donde versión es la
versión de las
librerías a instalar, por ejemplo 4.4.1. Son
ficheros tar comprimidos con gzip; el fichero image
contiene las imágenes de las librerías a
instalar en /lib y /usr/lib. El fichero inc contiene los ficheros
de inclusión a instalar en /usr/include.
El fichero release-versión.tar.gz debe explicar
el método de instalación detalladamente
(las
instrucciones exactas varían para cada
versión). En general, se necesita instalar los ficheros
de
librerías .a y .sa en /usr/lib. Estas son las
librerías utilizadas en tiempo de
compilación.
Además, los ficheros imagen de las
librerías compartidas libc.so.versión se instalan
en /lib.
Estas son las imágenes de las librerías
compartidas que son cargadas en tiempo de ejecución por
los programas que utilizan las librerías. Cada
librería tiene un enlace simbólico utilizando el
número de versión mayor de la librería en
/lib
Por ejemplo, la versión 4.4.1 de la
librería libc tiene un número de versión
mayor de 4. El fichero que contiene la librería es
libc.so.4.4.1. Existe un enlace simbólico 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ólico para apuntar
a la nueva versión.
3 Es muy importante que se cambie el enlace
simbólico en un solo paso, como se indica más
abajo.
Si de alguna forma borrase el enlace simbólico
libc.so.4, los programas que dependen del enlace
(incluyendo utilidades básicas como ls y cat)
dejarán de funcionar. Utilice el siguiente
comando
para actualizar el enlace simbólico 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én cambiar el enlace
simbólico libm.so.versión de la misma forma. Si se
está actualizando a una versión diferente de las
librerías, sustituya lo anterior con los nombres
adecuados.
La nota de la versión de la librería debe
explicar los detalles. (Ver sección 3.10 para más
información
acerca de los enlaces simbólicos).
4.7.3 Actualizando gcc
El compilador de C y C++ gcc se utiliza para compilar
software en su sistema, siendo el más
importante el núcleo. La versión
más 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ías). Debe
existir un fichero release para la distribución
gcc detallando qué ficheros se necesitan obtener
y
como instalarlos.
4.7.4 Actualizando otro software
La actualización de otro software sólo
suele consistir en obtener los ficheros apropiados e instalarlos.
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ón,
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 versiones de software es la mejor
manera de enterarse de la aparición de nuevo software.
Siempre que
busque software en un servidor FTP bájese el
fichero de índice ls-lR del servidor FTP y
utilice
grep para encontrar los ficheros en cuestión, es
la forma más simple de localizar software. Si
tiene
la posibilidad de utilizar archie, éste 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éase
Apéndice A para más detalles.
Una fuente útil de software para Linux, son las
imágenes de los discos de la distribución
Slackware. Cada disco contiene varios ficheros .tgz que son
simples ficheros tar comprimidos con gzip. En vez de bajarse los
discos, puede bajar sólo los ficheros .tgz deseados de los
directorios Slackware del servidor FTP e instalarlos
directamente. Si puede ejecutar la distribución Slackware,
puede utilizar el comando setup para cargar e instalar
automáticamente una serie completa de discos.
Insistimos, normalmente no es una buena idea el
actualizar reinstalando desde cero la versión
más reciente de Slackware, u otra
distribución. Si se reinstala de esta forma, no lo dude,
arruinará su
instalación 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ón,
actualícelo. Si no, no se moleste. Regla práctica:
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 éste
trabajo se basa en comprobaciones periódicas del
sistema de ficheros en busca de ficheros
dañados
o corrompidos; muchos sistemas comprueban
automáticamente 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ún directorio. Por
ejemplo, si se tiene un sistema de ficheros en un disquete, se
debe montar bajo algún directorio, digamos /mnt, para
poder acceder a los ficheros que contiene (véase la
sección 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á vacío.
Lo mismo es válido para los sistemas de ficheros
del disco duro. El sistema monta automática-
mente los sistemas de ficheros del disco duro en tiempo
de arranque. El así llamado "sistema de
ficheros raíz" es montado en el directorio /. Si
se tiene un sistema de ficheros separado para /usr,
por ejemplo, se monta en /usr. Si sólo se tiene
un sistema de ficheros raíz, 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ón del sistema, ejecutado en tiempo de
arranque; véase la sección 4.10.1). El comando
mount -av obtiene información 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ón 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
éstos tipos de sistemas de ficheros estén
disponibles en su sistema; el núcleo debe tener soporte
para ellos compilado en él. Véase sección
4.7 para información sobre cómo construir un
núcleo.
_________________________________________
(4) Esta tabla es válida a la versión de
núcleo 1.1.37.
________________________________________________________________________________
__Sistema_de_ficheros__________Nombre_de_tipo____Comentarios_______________________
Second Extended Filesystem ext2 Sistema de ficheros mas
común 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ón MS-DOS.
MS-DOS Filesystem msdos Utilizado para acceder a
ficheros MS-DOS.
/proc Filesystem proc Suministra información 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 último campo del fichero fstab contiene las
opciones del comando mount _normalmente,
está puesto a "defaults" (defecto).
Como se puede ver, las particiones de intercambio
están incluidas en /etc/fstab también.
Tienen
un punto de montaje de none y tipo swap. El comando
swapon -a, que se ejecuta también 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ó en la sección 3.11.1, el
sistema de ficheros /proc se utiliza para almacenar
información
acerca de los procesos del sistema, memoria disponible,
y otros datos del mismo tipo. Si /proc no
está montado, no funcionarán comandos como
ps.
3 El comando mount sólo puede ser utilizado por
root. Esto es así para garantizar la seguridad del
sistema; no es deseable que usuarios normales estén
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 ficheros raíz (en la
tabla anterior, /dev/hda2). El sistema de ficheros raíz es
montado automáticamente en tiempo de arranque por el
núcleo.
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ñados o corrompidos. Algunos sistemas comprueban
automáticamente 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ón. Para sistemas de ficheros
ext2fs (el tipo más utilizado normalmente), el comando es
e2fsck. Por ejemplo, el comando
# e2fsck -av /dev/hda2
comprobará el sistema de ficheros ext2fs de
/dev/hda2 y corregirá automáticamente cualquier
error.
Normalmente es una buena idea el desmontar un sistema de
ficheros antes de comprobarlo. Por ejemplo, el comando
# umount /dev/hda2
desmontará el sistema de ficheros en /dev/hda2,
tras lo cual podrá ser comprobado. La
única
excepción es que no se puede desmontar el sistema
de ficheros raíz. Para poder comprobar el
sistema de ficheros raíz cuando está
desmontado, se debe utilizar un disquete de
arranque/raíz
(véase la sección 4.11.1). Tampoco se
puede desmontar un sistema de ficheros si alguno de
sus
ficheros está "ocupado" _esto es, siendo
utilizado por un proceso en ejecución. Por ejemplo, no se
puede desmontar un sistema de ficheros si el directorio de
trabajo de algún usuario está en ese sistema de
ficheros. Se recibirá un error "Device busy" (dispositivo
ocupado) si se intenta desmontar un sistema de ficheros que
esté en uso.
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és de comprobar un sistema de ficheros
montado, si es que se hizo alguna corrección al sistema de
ficheros. (Sin embargo, en general, no se deben comprobar
sistemas de ficheros que estén montados.) Por ejemplo, si
e2fsck informa que ha corregido algún error en el sistema
de ficheros, se debe apagar el sistema con shutdown –r para
rearrancarlo. Esto permite al sistema resincronizar su
información 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úcleo.
4.9 Utilizando un fichero de intercambio
En vez de reservar una partición individual para
espacio de intercambio, se puede usar un fichero. Sin embargo,
hay que instalar todo Linux y hacer todas las tareas de
configuración 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ón vamos a crear un fichero de intecambio de
8208 bloques de tamaño (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ño del fichero de
intercambio en bloques.
# mkswap /swap 8208
Este comando inicializará el fichero de
intercambio swap; como antes, se debe cambiar el nombre y
tamaño 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íamos creado como fichero de
intercambio.
El principal inconveniente de utilizar un fichero de
intercambio de ésta forma es que todos los
accesos al fichero de intercambio se realizan a
través 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ón de intercambio, en la que los bloques
están
siempre contiguos y las peticiones de entrada/salida se
hacen directamente al dispositivo.
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á la posibilidad de que esto llegue a
ocurrir.
La utilización de un fichero de intercambio puede
ser muy útil si se tiene una necesidad temporal de
más espacio de intercambio. Por ejemplo, si se está
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érde que cada fichero de intercambio (o
partición) 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úmero de tareas
domésticas para el administrador de sistemas que no caen
en
ninguna categoría principal.
4.10.1 Ficheros de arranque del sistema
Cuando el sistema arranca, se ejecutan
automáticamente una serie de ficheros de comandos
(scripts)
en el sistema, antes de que ningún usuario entre.
Aquí tenemos una descripción de lo que
ocurre:
En tiempo de arranque, el núcleo arranca el
proceso /etc/init. init es un programa que lee
su fichero de configuración, /etc/inittab, y
arranca otros procesos basados en el contenido de este
fichero. Uno de los procesos más 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á conectar nadie a
ella.
Otro proceso ejecutado desde /etc/inittab es /etc/rc, el
fichero de inicialización principal
del sistema. Este fichero es simplemente un fichero de
comandos que ejecuta cualquier comando
de inicialización necesario en tiempo de
arranque, como es montar los sistemas de ficheros
(véase
sección 4.8) e inicializar el espacio de
intercambio (memoria
virtual).
Su sistema puede ejecutar otros ficheros de comandos de
inicialización también, como puede ser
/etc/rc.local. /etc/rc.local contiene normalmente
comandos de inicialización específicos de
su
sistema, como puede ser el establecimiento del nombre
del ordenador (véase la siguiente
sección).
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ívocamente una
máquina
particular, mientras que en un entorno autónomo,
el nombre del ordenador da a la máquina person-
alidad y encanto. Es como darle nombre a un animal
doméstico: siempre puede dirigirse a su perro
como "El perro", pero es mucho más 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á en una red,
su nombre debe ser el nombre completo de su
máquina, por ejemplo, goober.norelco.com. Si no
se está en una red de ningún 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ón IP a cada ordenador.
Incluso si su ordenador no está en una red, se
debe
incluir el nombre del ordenador en
/etc/hosts.
Por ejemplo, si no se está en una red TCP/IP, y
el nombre del ordenador es floof.org, incluya
la línea siguiente en /etc/hosts:
127.0.0.1 floof.org localhost
Esto asigna el nombre del ordenador, floof.org, a la
dirección de bucle 127.0.0.1 (utilizada si no
se
está en una red). El alias localhost se asigna
también a dicha dirección.
Si se está en una red TCP/IP, sin embargo, su
dirección y nombre de ordenador real deben
aparecer en /etc/hosts. Por ejemplo, si su nombre de
ordenador es goober.norelco.com y su
dirección IP es 128.253.154.32, añada la
siguiente línea a /etc/hosts:
128.253.154.32 goober.norelco.com
Si el nombre de su ordenador no aparece en /etc/hosts no
será 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ón del sistema, como puede ser
/etc/rc
ó /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á al nuevo
valor.
4.11 Qué 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íz, o el
enfrentarse
con sistemas de ficheros dañados. El mejor
consejo es, obrar sin pánico. Todo el mundo
comete
errores estúpidos _ésta es la mejor forma
de aprender sobre administración de sistemas: la
forma
difícil.
Linux no es una versión 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én 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ómo funcionan las cosas.
Demasiadas veces, un administrador de sistemas pon-
drá un mensaje desesperado rogando ayuda antes de
investigar el problema. Muchas de las veces,
encontrará que arreglar problemas por uno mismo
es realmente muy fácil. Este es el camino que
debe seguir para convertirse en un
gurú.
Hay pocos casos en los que sea necesario reinstalar el
sistema desde cero. Muchos nuevos usuarios borran accidentalmente
algún fichero esencial del sistema, e inmediatamente
acuden a los discos de instalación. Esta no es una buena
idea. Antes de tomar medidas drásticas como esa,
investigar el problema y preguntar a otros ayudará a
solucionar las cosas. En prácticamente todos los casos,
podrá recuperar el sistema desde un disquete de mantenimiento.
4.11.1 Recuperación utilizando un disquete de
mantenimiento
Una herramienta indispensable para el administrador de
sistemas es el llamado "disco arranque/raíz" ("boot/root
disk") _un disquete desde el que se puede arrancar un sistema
Linux completo, independiente del disco duro. Los discos de
arranque/raíz son realmente muy simples _se crea un
sistema de ficheros raíz en el disquete, se ponen todas
las utilidades necesarias en él y se instala LILO y un
núcleo arrancable en el disquete. Otra técnica es
usar un disquete para el núcleo y otro para el sistema de
ficheros raíz. En cualquier caso, el resultado es el
mismo: Ejecutar un sistema Linux completamente desde
disquete.
El ejemplo más claro de un disco de
arranque/raíz son los discos de arranque Slackware (5).
Estos
disquetes contienen un núcleo arrancable y un
sistema de ficheros raíz, todo en disquete.
Están
diseñados para usarse en la instalación de
la distribución Slackware, pero vienen muy bien
cuando
hay que hacer mantenimiento
del sistema.
_________________________________________
(5) Véase la sección 2.1.1 para la
información sobre cómo obtener ésta desde
Internet. Para este procedimiento, no se necesita obtener la
versión completa de Slackware _solo los disquetes de
arranque y raíz.
________________________________________________________________________________
El disco de arranque/raíz 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ón de un disco
de arranque/raíz prefabricado es mucho más
simple y probablemente será más
completo.
La utilización de un disco de
arranque/raíz es muy simple. Tan sólo arranque el
sistema con el
disco, y haga login como root (normalmente sin
password). Para poder acceder a los ficheros del
disco duro, se necesitará montar el sistema de
ficheros a mano. Por ejemplo, el comando
# mount -t ext2 /dev/hda2 /mnt
montará un sistema de ficheros ext2fs existente
en /dev/hda2 bajo /mnt. Recuerde que / es ahora
el propio disco de arranque/raíz; se
necesitará montar los sistemas de ficheros de su disco
duro bajo
algún 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ó el
sistema de ficheros raíz bajo /mnt.
4.11.2 Arreglando la password de root
Si se olvida de la password de root, no hay problema.
Sólo hay que arrancar del disco de ar-
ranque/raíz, montar su sistema de ficheros
raíz 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ía ser capaz de hacer login
como root y poner la password que desee utilizando
passwd.
No le gustó el haber aprendido a utilizar vi? En
su disco de arranque/raíz probablemente no
estarán disponibles otros editores como pueda ser
Emacs, pero vi debería 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ñado en el
sistema de ficheros. Otros tipos de sistemas de ficheros
utilizan diferentes formas de comando fsck;
véase la Sección 4.8 para más
detalles.
Cuando se comprueba el sistema de ficheros desde
disquete, es mejor que no esté montado.
Una causa común de daño en un sistema de
ficheros es la corrupción
del super bloque. El
super bloque es la "cabecera" del sistema de ficheros
que contiene información acerca del estado
del
sistema de ficheros, tamaño, bloques libres, y
demás. Si se corrompe el super bloque (por
ejemplo,
escribiendo accidentalmente datos directamente a la
partición del sistema de ficheros), el sistema
no
puede reconocer nada del sistema de ficheros. Cualquier
intento de montar el sistema de ficheros
fallará y e2fsck no será capaz de arreglar
el problema.
Felizmente, el tipo de sistema de ficheros ext2fs salva
copias del super bloque en los límites 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ón>
donde <partición> es la partición en
la que reside el sistema de ficheros. La opción -b 8193 le
dice
al e2fsck que utilice la copia del super bloque
almacenada en el bloque 8193 del sistema de ficheros.
4.11.4 Recuperando ficheros perdidos
Si accidentalmente se borrasen ficheros importantes del
sistema no habría 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íz, monte el sistema
de ficheros raíz en /mnt, y use el comando
# cp -a /bin/login /mnt/bin/login
La opción -a le dice a cp que conserve los
permisos en los ficheros que se están copiando.
Por supuesto, si los ficheros que se borraron no fueses
ficheros esenciales del sistema que tengan
contrapartidas en el disquete de arranque/raíz,
se habrá acabado la suerte. Si se hicieron copias
de
seguridad, siempre se podrá recuperar de
ellas.
4.11.5 Arreglando librerías
corrompidas
Si accidentalmente se llegasen a corromper las
librerías de enlaces simbólicos en /lib, es
más que
seguro que comandos que dependan de estas
librerías no vuelvan a funcionar (Véase la
sección 4.7.2). La solución más simple es
arrancar del disquete de arranque/raíz, montar el sistema
de ficheros raíz y arreglar las librerías en
/mnt/lib.
Capítulo 5
Características avanzadas
En este capítulo nos introduciremos en ciertas
características avanzadas, pero interesantes de
Linux.
Se asume que ya se tiene cierta experiencia en Unix, y
se entiende la información contenida en los
capítulos precedentes.
El aspecto más importante que distingue a Linux
de otras implementaciones de Unix es su diseño
abierto a nuevas ideas y su filosofía. Linux no
fue desarrollado por un pequeño 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ían 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áfico para
sistemas Unix, potente y también complejo.
Origin-
almente fue desarrollado por el MIT, y desde entonces
los desarrolladores de sistemas comerciales
han convertido a las X en un estándar de las
plataformas Unix. Prácticamente 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ón gratuita de las X Windows versión
11, release 6 (X11R6) para sistemas Unix con 80386/80486/Pentium. Esta
implementación, 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ías 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éndice A para más información sobre el
libro.
En esta sección, le daremos una
descripción de cómo instalar y configurar paso a
paso XFree86 en
Linux, pero necesitará completar la
información con otra disponible en la documentación
propia de
_________________________________________
(1) Se puede contactar con David en Internet mediante la
dirección dwex[arroba]XFree86.org
(2) XFree86 es marca registrada
de The XFree86 Project, Inc.
_________________________________________
XFree86 (documentación que comentaremos
más adelante). Otra fuente interesante de
información
es la XFree86 HOWTO.
5.1.1 Requisitos de hardware
Al igual que la versión XFree86 3.1 de Septiembre
de 1994, están soportados los siguientes "chipsets". La
documentación que se incluye con su adaptador de video
debería especificar cuál es el "chipset" que
utiliza. Si está a punto de comprarse una nueva tarjeta
gráfica, conviene pedir al vendedor el modelo exacto
de tarjeta y "chipset" de video. Esto
supondrá, casi siempre, recurrir al servicio
técnico, pero normalmente los vendedores no pondrán
inconvenientes. La mayor parte de los vendedores de PCs se
limitan a decir que sus ordenadores tienen tarjetas
gráficas "SVGA estándar" que "tiene que funcionar"
en su sistema. Explíqueles que su software (nombrando a
Linux y XFree86, por supuesto) no soporta todos los "chipsets" y
que usted necesita por eso información más
detallada.
De todas formas, puede determinar su "chipset"
ejecutando el programa SuperProbe incluído
con la distribución de XFree86. De esto hablamos
más abajo.
Están 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én están soportados los siguientes,
con acelerador:
o 8514/A (y clónicos)
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áficas que usan estos
"chipsets" están soportadas, incluso para bus
local
Vesa o PCI.
El soporte incluye los modos monocromáticos y de
256 colores, con la
excepcion de Avance Logic, MX y Video 7, que están
soportadas solo en 256 colores. Si su
tarjeta gráfica tiene suficiente memoria DRAM, la mayor
parte de los "chipsets" anteriores también están
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ático también soporta
las tarjetas VGA genéricas, la Hercules, la
Hyundai
HGC1280, Sigma LaserView y Apollo. Para la Compaq AVGA,
solo están soportadas 64Kb de
memoria de vídeo en el servidor
monocromático, y la GVGA no ha sido probada con más
de 64 Kb.
Indudablemente, esta lista seguirá creciendo
conforme pase el tiempo. Las notas que encon-
trará junto a la versión actual de XFree86
contendrán 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áficas utilizan
mecanismos no estándares para determinar las frecuencias
de
reloj a usar en la tarjeta. Algunos de esos fabricante
tampoco editan especificaciones que describan
cómo programar la tarjeta, o exigen a los
desarrolladores que firmen un documento de no divulgación
para poder obtener la información. Esto, obviamente,
dificulta la libre distribución del software de XFree86.
Durante mucho tiempo esto ha impedido trabajar con las tarjetas
Diamond, pero desde la versión 3.1 de XFree86, Diamond ya
ha comenzado a colaborar con el equipo de desarrollo para la
realización de drivers para esas tarjetas.
La configuración que se sugiere para ejecutar
XFree86 con Linux es una máquina 486 con 8
megabytes de RAM por lo menos, y una tarjeta
gráfica con un "chipset" de los listados antes.
Para obtener un rendimiento óptimo, se sugiere
utilizar una tarjeta acelerada, como las basadas en el
"chipset" S3. Usted debe comprobar sobre la
documentación de XFree86 que su tarjeta está
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ódicamente a
los grupos de news USENET comp.windows.x.i386unix y
comp.os.linux.misc.
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ás rápido que el Sparc IPX (para el
curioso, XFree86-3.1 bajo Linux, con esta tarjeta gráfica,
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á mucho más
rendimiento que el que se encuentra en estaciones de trabajo Unix
comerciales (que suelen emplear solo "framebuffers").
Su máquina necesitará al menos 4 megabytes
de memoria física en RAM y 16 de memoria
virtual
(por ejemplo, 8 megabytes en RAM y otros 8 en swap).
Recuerde que cuanta más RAM tenga,
menos tendrá 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ás es necesario si quiere correr
XFree86 de forma confortable. Un sistema con 4 megabytes
de RAM correrá mucho más lento (hasta 10 veces) que
uno con 8 megabytes o más.
5.1.2 Instalación de XFree86
La distribución 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ón era la 3.1; aunque
periodicamente aparecen nuevas versiones).
Es común que usted haya obtenido XFree86 como
parte de una distribución de Linux, en cuyo
caso no necesitará obtener el software del
servidor anterior.
Si en cambio los obtiene por esta vía, la
siguiente tabla le informará de los ficheros de los
que
consta la distribución XFree86-3.1.
Se requiere uno de los siguientes servidores:
______________________________________________________________________
__Fichero____________________Descripción_____________________________
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ás, son necesarios todos los ficheros
siguientes:
________________________________________________________________________
__Fichero________________Descripción___________________________________
XF86-3.1-bin.tar.gz Binarios de X11R6.
XF86-3.1-cfg.tar.gz Ficheros de configuración
para xdm, xinit y fs.
XF86-3.1-doc.tar.gz Documentación y
páginas de manual.
XF86-3.1-inc.tar.gz Ficheros include.
XF86-3.1-lib.tar.gz Ficheros de soporte y
librerías compartidas.
__XF86-3.1-fnt.tar.gz____Fuentes_básicas.______________________________
Los siguientes ficheros son opcionales:
____________________________________________________________________
__Fichero_____________________Descripción__________________________
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ón 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áginas de manual.
XF86-3.1-pex.tar.gz Binarios PEX y
librerías.
XF86-3.1-slib.tar.gz Librerías estáticas
de X.
XF86-3.1-usrbin.tar.gz Daemons que residen en
/usr/bin.
__XF86-3.1-xdmshdw.tar.gz_____Versión_de_xdm_para_shadow_password._
El directorio de XFree86 debería contener los
ficheros README y otras notas acerca de la instalación de
la versión 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és de desempaquetar los ficheros,
necesitará 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 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á seguro de qué servidor debe
usar, o no conoce el "chipset" de su tarjeta
gráfica,
puede ejecutar SuperProbe, un programa del directorio
/usr/X11R6/bin (incluído en el fichero
XF86-3.1-bin), que intentará 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ún
qué shell utilice). O simplemente puede
añadir
el directorio a su path personal modificando su propio
.bashrc o .cshrc.
Además, hay que asegurarse que /usr/X11R6/lib es
localizable por ld.so, el enlazador dinámico.
Para ello, añada la línea
/usr/X11R6/lib
al fichero /etc/ld.so.conf, y ejecute /sbin/ldconfig,
como root.
5.1.3 Configuración de XFree86
Poner a punto XFree86 no suele ser difícil. Sin
embargo, si va a usar manejadores de "chipsets"
aun en desarrollo o desea obtener el mejor rendimiento o
resolución de una tarjeta aceleradora, en
configurar a la perfección XFree86 puede tardar
bastante.
En esta sección vamos a describir cómo
crear y editar el fichero XF86Config, que configura al
servidor. En muchos casos lo mejor es comenzar con una
configuración "básica", de baja resolución,
como 640×480 puntos, que es soportada por todas las tarjetas y
monitores. Una
vez comprobado su funcionamiento a baja resolución, puede
pasar a modificar la configuración para explotar toda la
capacidad de su tarjeta de
video.
Además de la información que nosotros le
damos, debería leerse la siguiente
documentación:
o La documentación propia de XFree86 en
/usr/X11R6/lib/X11/doc (viene con el paquete
XFree86-3.1-doc). Debe prestar especial atención
al fichero README.Config, que es un tu-
torial sobre la configuración de
XWindows.
o Diferentes "chipsets" de video tendrán sus
propios ficheros README en el directorio anterior
(por ejemplo, README.Cirrus). Léase el que le
corresponda.
o Las páginas de manual para XFree86.
o Las páginas de manual para
XF86Config.
o Las páginas de manual para el servidor concreto
que utilice (como XF86_SVGA o XF86_S3).
El fichero de configuración principal debe ser
/usr/X11R6/lib/X11/XF86Config. Este fichero
contiene información acerca del ratón,
parámetros de la tarjeta gráfica, etc. El fichero
XF86Config.ed es un ejemplo que incluye la distribución.
Copie este fichero como XF86Config y modifíquelo para su
sistema.
Las páginas de manual para XF86Config explican el
formato del fichero con detalles. Lea ahora
esas páginas si aun no lo ha hecho.
Le vamos a presentar un ejemplo de XF86Config. No tiene
por qué coincidir con el ejemplo que
incluye la distribución, pero en todo caso
tendrán estructura
parecida.
3 Observe que el formato del fichero puede cambiar algo
entre versiones de XFree86. La información que le damos
solo vale para la versión 3.1.
3 Además, no debe limitarse a copiar este fichero
e intentar probarlo en su sistema. Si lo hace, y, por error,
envía a su monitor una frecuencia demasiado alta para
él puede producir una avería. No sería el
primer caso. Esto ha ocurrido especialmente con monitores de
frecuencia fija. En definitiva, asegúrese de que su
fichero XF86Config se corresponde con su hardware antes de
intentar utilizarlo.
Cada sección del siguiente ejemplo de XF86Config
se enmarca en un par de líneas Section
<section-name>. .E.ndSection. La primera parte del
fichero es la sección de Ficheros, que tendrá 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ínea RgbPath pone la ruta de acceso a la
base de datos
de colores RGB para X11R6, y cada línea FontPath pone
rutas de acceso a directorios con fuentes X11. Por lo general no
tendrá que modificar estas líneas. Tan sólo
debe comprobar que en los directorios correspondientes se
encuentran los ficheros implicados (fuentes, etc).
La siguiente sección es ServerFlags, que
especifica algunos "flags" generales para el servidor.
Por lo general la sección suele ir
vacía.
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ón 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.
La siguiente sección es Pointer, y especifica los
parámetros para el ratón.
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ón (no se trata de su marca o modelo). Bajo
Linux los protocolos
válidos 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ón Logitech en
bus. Observar que los ratones antiguos de Logitech usan Logitech
pero los más 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á el
ratón. 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é en /dev.
La siguiente sección es Monitor, que especifica
las características de su pantalla TRC. La
sección
Monitor de XF86Config puede no ser única, como
sucede con otras secciones. Es útil 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á una sección Monitor.
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 "640×480" 25 640 664 760 800 480 491 493
525
ModeLine "800×600" 36 800 824 896 1024 600 601 603
625
ModeLine "1024×768" 65 1024 1088 1200 1328 768 783 789
818
EndSection
La línea Identifier se usa para dar a la
sección un nombre. Puede ser cualquier cadena
de
caracteres y se usará después para
referirse a ese monitor.
HorizSync es el valor de frecuencia de sincronismo
horizontal válida, 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á 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ía incluir estos
datos en las especificaciones técnicas. Si no tiene
esta
información, contacte con el vendedor o
fabricante para obtenerla. Por supuesto, hay otras
fuentes
de información.
VertRefresh especifica las frecuencias de refresco
vertical válidas (o sincronismo vertical), en
Hz. Como HorizSync puede ser uno o más rangos o
valores
discretos. También deben indicarse en
su manual.
Los dos parámetros anteriores solo se utilizan
para comprobar que los modos gráficos 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ío de pixels
al monitor para esa resolución.
<valores-horiz> y <valores-vert> son cuatro
números que especifican
cuándo el haz de electrones del monitor debe
dispararse y cuándo se envían los pulsos de
sincronismo.
Se preguntará cómo determinar esos valores
para su monitor. El fichero Videomodes.doc,
incluído
en la distribución de XFree86 describe en detalle
cómo obtener los valores
requeridos. En primer
lugar, <reloj> debe corresponderse con un valor de
los que pueda producir su tarjeta de video.
Por
lo tanto solo usará modos con valores de reloj
soportados.
En la distribución 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ía comenzar con valores para el
estándar VESA, que la mayor parte de los
monitores
soportan. Estos valores están incluídos en
modeDB.txt. En este fichero encontrará entradas
como
# 640×480@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
"640×480" 25.175 640 664 760 800 480 491 493
525
Esta es una temporización estándar VESA
para modo 640×480. 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ía la línea
ModeLine "640×480"25.175 640 664 760 800 480 491 493
525
Observe que el argumento <nombre> (en este caso,
"640×480") es una cadena de caracteres arbitraria, aunque se
suele seguir la convención de indicar la resolución
del modo.
Para cada Modeline indicado, el servidor
comprobará que sus valores caen dentro de los
rangos
permitidos de frecuencias (especificados antes),
anulando el modo si no ocurre así. 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ándares en VESA no le funcionan
correctamente (lo sabrá cuando después
los
pruebe) mire los ficheros modeDB.txt y Monitors, que
incluyen valores específicos para muchos
modelos de monitores.
Puede crear entradas Modeline a partir de lo que vea en estos
ficheros.
Asegúrese de que solo usa valores válidos
en su monitor. Vea que muchos monitores de
14 o 15
pulgadas no soportan modos de alta resolución
como 1024×768 con señales de reloj lentas. Esto
significa que si no encuentra modos de alta
resolución para su monitor en esos ficheros, no
podrá usar dicha resolución.
Si se encuentra perdido, y no encuentra ningún
modo que funcione en su monitor, puede seguir
las instrucciones de VideoModes.doc, que le
ayudarán 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én otros aspectos del
servidor de XFree86 como el formato de la
directiva ModeLine.
Por último, 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ás, utilice también los
propios controles del monitor.
Muchas veces es necesario ajustarlos después de
cambiar de modo gráfico. Tener esos controles en la parte
frontal del monitor le hará la vida más
fácil.
3 Nunca debe usar valores de tiempo o de Modeline
pensados para monitores diferentes al suyo. Si lo intenta hacer,
y envía al monitor una frecuencia para la que no
fué diseñado, puede producirle una
avería.
La siguiente sección del fichero XF86Config es
Device, que especifica los parámetros de su tarjeta
gráfica. Por ejemplo,
Section "Device"
Identifier "#9 GXE 64"
# Todavia nada; a~nadiremos los valores
después.
EndSection
Esta sección establece las propiedades de su
tarjeta gráfica. Identifier es una cadena de caracteres
usada para identificar su tarjeta, cadena que usará para
referirse a las características que en esta sección
se detallen.
Inicialmente no necesita incluir nada más a la
sección Device que la identificación de la
tarjeta.
Esto es así pues usaremos el servidor X para
probar las propiedades de su tarjeta, para incluirlas
luego en esta sección. 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ón es Screen, que especifica qué
combinación monitor/tarjeta usar para un servidor
concreto.
Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024×768" "800×600" "640×480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
La línea Driver indica qué servidor X
utiliza. Los valores
válidos 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;
o VGA2: Para el servidor XF86_Mono;
o Mono: Para manejadores monocromáticos 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ólico al servidor que va a usar.
La línea Device especifica el valor Identifier de
la sección Device que corresponda a la tarjeta
de video que se va a usar con este servidor. Antes,
hemos creado una sección Device con la
línea
Identifier "#9 GXE 64"
Así pues, utilizaremos "#9 GXE 64" en la
línea Device de aquí.
De forma parecida, la línea Monitor especifica el
nombre de la sección Monitor que se va a
usar en este servidor. Aquí, "CTX 5468 NI" es el
identificador Identifier utilizado en la
sección
Monitor vista antes.
Subsection "Display" define distintas
características del XFree86 con su particular
combinación
de monitor y tarjeta gráfica. El fichero
XF86Config describe todas las opciones en detalle. La
mayoría no son necesarias para que el sistema
funcione.
Las opciones que debería conocer son:
o Depth. Define el número de bits por pixel (o
planos de color), que
normalmente valdrá 8 (supone
256 colores). Para el servidor VGA16 se usará 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és.
o Modes. Es la lista de modos de video que
estarán entre los definidos con ModeLine para
su
monitor. Los nombres usados antes para identificarlos (
"1024×768", etc) se usarán ahora para
expresar los modos de la siguiente manera:
Modes "1024×768" "800×600" "640×480"
De esta forma, XFree86
intentará_arrancar_en_el_primero_de_los_modos.
Una_vez_que_ha__
arrancado, con las teclas |_ctrl_|-|_alt_|-|_numeric_+_
|y |_ctrl_|-|_alt_|-|_numeric_-_ |podrá cambiar a otro
modo.
La mejor forma de empezar, cuando se está
configurando XFree86, es usar modos de baja res-
olución (como 640×480) que suelen funcionar
siempre. Una vez que se tenga una configuración
básica que va bien, puede pasarse a modificar
XF86Config para soportar resoluciones mayores.
o Virtual. Pone el tamaño del área de
trabajo virtual. XFree86 es capaz de usar la memoria
sobrante de su tarjeta gráfica para extender el
tamaño de su área de trabajo. Cuando
mueve
el ratón a extremos de la pantalla, verá
como la pantalla se desplaza, accediendo así a todo
el
área virtual. Así pues, si usted trabaja
con una resolución inferior, como 800×600 y pone
un
área de 1024×768 (propia para 1 Mbyte de DRAM y 8
bits por pixel) podrá usar un área de
trabajo más grande que la que cabe en
pantalla.
El mecanismo Virtual resulta interesante para aprovechar
toda la memoria de
la tarjeta
gráfica, pero es limitado. Si quiere usar un
área de trabajo virtual, el autor recomienda
usar
las facilidades que al respecto dan gestores de ventanas
como fvwm. El mecanismo aquí se
implementa a base de ocultar ventanas, etc. en lugar de
ocupar toda la memoria de la tarjeta.
Para más detalle, vea las páginas de
manual de fvwm, gestor de ventanas que suelen traer
los
sistemas Linux por defecto.
o ViewPort. Si usted utiliza la opción Virtual
descrita antes, puede usar ViewPort para indicar
en qué coordenadas virtuales comenzar XFree86. Se
suele usar ViewPort 0 0 que pone el área
de trabajo en la esquina superior izquierda. Pero si no
se indica se pondrá centrado, algo que
quizás le interese más.
Hay muchas otras opciones en esta sección; vea
las páginas de manual para XF86Config para
más detalle. En la práctica no son
necesarias esas otras opciones para que funcione el
sistema.
5.1.4 Introducción de los datos de la tarjeta
gráfica
Su fichero XF86Config está ya casi listo para
usar, aunque aun falta la información de su
tarjeta
gráfica. Lo que vamos a hacer ahora es usar el
servidor X para obtener la información que falta,
e
introducirla en XF86Config.
A veces se puede encontrar esa información en los
ficheros modeDB.txt, AccelCards y Devices,
que se encuentran en /usr/X11R6/lib/X11/doc.
Además, 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ón correspondiente de XF86Config. Si falta
alguna información puede intentar obtenerla con
el procedimiento siguiente.
En estos ejemplos vamos a ver cómo
configuraríamos 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én hay que conocer el nombre con
el que el servidor X conoce a ese "chipset". Para
conseguir esto último, ejecutar:
X -showconfig
Esto le dará los nombres de "chipsets" que conoce
el servidor X (esto también se encuentra en las
páginas 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
Así pues los nombres de "chipsets" que este
servidor tiene son mmio_928 y s3_generic. En la
página de manual para XF86_S3 encontrará
la descripción de estos "chipsets" junto a algunas
tarjetas que los utilizan. Para la #9 GXE 64 el "chipset" es
mmio_928.
Si no conoce qué "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én los valores para los relojes y si el
sistema
está cargado se calcularán
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íneas borradas . . .
(–) S3: card type: 386/486 localbus
(–) S3: chipset: 864 rev. 0
(–) S3: chipset driver: mmio_928
Aquí vemos los dos "chipsets" válidos
(mmio_928 y s3_generic) del servidor. Este probó ambos
y
determinó que la tarjeta usa el "chipset"
mmio_928.
En la sección Device del fichero XF86Config,
añada una línea 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 éstas es simplemente la frecuencia con la que la
tarjeta puede enviar píxeles al monitor. Como ya sabemos,
estas frecuencias dependen de la resolución
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án listados.
En su caso verá una lista de 8 ó 16 valores,
todos
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
"1024×768"
Como vemos, los relojes son 25, 28, 38, 36, 40, 45, 32 y
0 MHz.
En la sección Devices del fichero XF86Config debe
añadir una línea Clocks como la
siguiente
(para nuestro ejemplo):
Clocks 25 28 38 36 40 45 32 0
Esto estará en la sección Devices,
después 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én
los puede intentar averiguar. Con el comando ya visto X
-probeonly obtendrá una línea como la
siguiente:
(–) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32
32.00 00.00
Con esta línea podemos hacer la línea
Clocks en XF86Config. Si hay muchos valores y no caben
en
una línea puede crear más líneas
Clock, pero respete el orden de todas formas.
Asegúrese de que no hay ninguna línea
Clocks en la sección Devices cuando use el comando
X
-probeonly puesto que en este caso no hará
pruebas reales
de los relojes, sino que probará solo los
valores que haya en el fichero XF86Config.
Observe que algunas tarjetas aceleradas tienen chip de
reloj programable (vea las páginas de
manual de XF86_Accel para más 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é relojes usar. Si este es el caso,
no
debe haber una lista de valores válidos de reloj
en el fichero XF86Config. Si no, la lista de valores
de reloj que devuelve X -probeonly contendrá solo
uno o dos valores discretos de reloj, dejando el
resto copiados de los primeros o a cero.
Para placas con reloj programable, deberá usar
una línea ClockChip en lugar de Clocks. Esta
línea da el nombre del chip correspondiente a la
tarjeta. Esos nombres se encuentran en las
páginas
de manual. Por ejemplo, en el fichero README.S3, veremos
que diversas tarjetas S3-864 utilizan un chip "ICD2061A", y
deberá existir la línea
ClockChip "icd2061a"
en lugar de la línea Clocks en el fichero
XF86Config. Como sucede con Clocks, la línea
formará parte de la sección Devices e irá a
continuación de Chipset.
De manera similar, algunas tarjetas aceleradas requieren
que se especifique el tipo de chip RAM-
DAC del fichero XF86Config, con una línea Ramdac.
Esta opción se describe en XF86_Accel. Normalmente, el
servidor X ya se ocupa de tomar un valor correcto para el
RAMDAC.
Algunas tarjetas gráficas necesitan que se
especifiquen diversas opciones en la sección
Devices.
Estas opciones se describen en ficheros como
README.cirrus o páginas de manual, y se
integran
en una línea Option del fichero XF86Config. Por
ejemplo, una tarjeta #9 GXE 64 necesita dos
opciones:
Option ñumber_nine"
Option "dac_8_bit"
Normalmente, el servidor X funcionará 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í pues, cuando haya acabado, tendrá una
sección Devices como la siguiente:
Section "Device"
# Solo valida para la tarjeta #9 GXE 64 !
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option ñumber_nine"
Option "dac_8_bit"
EndSection
Observe que en muchos casos se requiere una línea
Clocks en lugar de Clockchip, etc. Lo anterior
es sólo un ejemplo.
Hay otras opciones para la sección Devices. Los
detalles los verá en las páginas 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á 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á el servidor X y
ejecutará 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á un equivalente en
/usr/X11R6/lib/X11/xinit/xinitrc.
Un típico .xinitrc sería el
siguiente:
#!/bin/sh
xterm -fn 7x13bold -geometry 80×32+10+50
&
xterm -fn 9x15bold -geometry 80×34+30-10
&
oclock -geometry 70×70-7+7 &
xsetroot -solid midnightblue &
exec twm
Este script arrancará dos clientes xterm y
un oclock, y pondrá el fondo (root window) en
color
midnightblue. Entonces arrancará el gestor de
ventanas twm. Observe que twm se ejecuta con la
sentencia exec. Esto quiere decir que el proceso de
xinit será reemplazado por twm. Por lo tanto,
al ordenar la terminación de twm desde los
menús el servidor X también terminará. Para
hacerlo
pulse el botón 1 del ratón sobre el fondo
de la pantalla (no en las ventanas) y verá un menú
con la
opción de terminar twm entre otras.
Asegúrese que el último comando de
.xinitrc se arranca con exec, y no se le pone en
background
(con el "&"). Si no, el servidor X terminará
tan pronto se arranquen los clientes de
.xinitrc.
Otra forma de salir de X es pulsando a la vez
|_ctrl_|-|_alt_|-|_backspace_.|Esto detendrá el
servidor
X y se saldrá del sistema XWindows.
Lo anterior es una configuración 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í se tratan los temas de X
Windows en profundidad, que se completarán con
las páginas de manual para xterm, twm,
etc.
5.1.6 Ejecución con problemas
No siempre le saldrá 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án 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í como otras opciones de la sección Device de
XF86Config. Compruebe también que el nombre
/usr/X11R6/bin/X es un enlace simbólico 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ón puede matar el servidor X (con la
combinación de teclas |_ctrl_|-|_alt_|-|_backspace_)| y
ver el contenido del fichero /tmp/x.out, en el que el servidor X
habrá puesto todo tipo de avisos y errores, como los
correspondientes a valores de reloj no encontrados en la tarjeta,
etc.
El fichero VideoModes.doc incluído en la
distribución 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áxima
resolución no sale bien, es porque alguna parte del
fichero XF86Config se ha puesto mal.
Compruebe también los mandos de tamaño de
imagen del monitor. Muchas veces hay que re-
tocarlos cuando se entra en X. Por ejemplo, si la
pantalla se ve desplazada, actúe sobre el mando
correspondiente.
El el grupo de news USENET comp.windows.x.i386unix
encontrará más ayuda sobre la util-
ización 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ña razón, necesitara
acceder a ficheros MS-DOS, es fácil de hacer en
Linux.
La forma habitual de acceder a los ficheros MS-DOS es
montar una partición o disquete con un
sistema MSDOS, permitiéndole así que
acceda a los ficheros a través 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á en /mnt. Vea la sección 4.6.2
para más información acerca del montaje de
disquetes.
También puede montar una partición del
disco duro con MS-DOS. Si se encuentra en /dev/hda1,
el comando
# mount -t msdos /dev/hda1 /mnt
lo montará. Asegúrese de desmontar
(umount) la partición o el disquete cuando ya no los
necesite.
También puede pedir a Linux que monte las
particiones DOS durante el arranque, para lo que se
usa /etc/fstab. Vea la sección 4.8 para
más detalle. Por ejemplo, la siguiente línea de
/etc/fstab
provocará el montaje de la partición de
DOS en el directorio /dos:
/dev/hda1 /dos msdos defaults
Las Mtools pueden usarse también para acceder a
ficheros DOS en disquetes, con comandos mcd, mdir, mcopy, etc.
Vea las páginas 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ácilmente 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á limitada.
Además, se está trabajando en un emulador
de Microsoft Windows para funcionar en X Windows. Vea los grupos
de news y servidores de FTP para más
información.
5.3 Redes con TCP/IP
Linux soporta una implementación 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ón entre ordenadores de todo el mundo. Con
Linux y una tarjeta Ethernet podrá introducir
su
máquina en una red local o (si se tienen las
conexiones apropiadas) a la InterNet, la red TCP/IP de
ámbito mundial.
Poner en marcha una pequeña red local de
máquinas Unix es fácil. Sólo requiere una
tarjeta
Ethernet en cada máquina y los cables adecuados
así como hardware accesorio (terminadores,
etc).
Y si su universidad o
empresa tiene
acceso a la InterNet, podrá insertar su máquina
Linux en esta
red.
La implementación actual de TCP/IP y los
protocolos relacionados para Linux se llama NET-
2. No tiene que ver con la versión NET-2 para
BSD. En realidad, se refiere a que es la segunda
implementación que se hace para Linux.
NET-2 de Linux soporta también SLIP (Serial Line
Internet Protocol). SLIP le permitirá acceder
a la InterNet con un módem. Si su universidad o
empresa
proporciona accesos por SLIP, podrá llamar desde su casa
al servidor SLIP y conectarse así a la Red.
Recíprocamente, si posee en Linux una tarjeta de Red y
un módem podrá configurar un servidor SLIP en
él.
Para obtener más información de
configuración de TCP/IP en Linux, le animamos a que
lea
el documento NET-2 HOWTO, disponible mediante FTP
anónimo en sunsite.unc.edu. Se trata
de una guía completa de configuración, que
incluye conexiones mediante Ethernet y SLIP. Otro
documento relacionado es el Ethernet HOWTO, que se
centra en cómo configurar diversos modelos
de tarjetas Ethernet. Además, en el Proyecto de
Documentación de Linux, al que pertenece este
libro, se ha desarrollado otro sobre este tema, Linux
Network Administrator's Guide. Vea, para más
información el apéndice A.
Encontrará más ayuda en el libro TCP/IP
Network Administration, de Craig Hunt. Contiene
información completa acerca del uso y la
configuración de TCP/IP en máquinas
Unix.
5.3.1 Hardware requerido
Puede utilizar el TCP/IP para Linux sin hardware de red.
Así podrá 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á 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én funcionan las
siguientes tarjetas clónicas: Clónicas de
WD-80×3:
LANNET LEC-45; clónicas 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á más
información en el documento Ethernet HOWTO.
Linux también funciona con SLIP, que permite
acceder a la red InterNet por teléfono. En este
caso, necesitará un módem compatible con
el servidor SLIP. Muchos servidores requieren modems
de alta velocidad, a
14400 bits por segundo (norma V.32bis).
5.3.2 Configuración de TCP/IP
En esta sección intentaremos explicar cómo
configurar una conexión TCP/IP con Ethernet.
Notese
que este método funcionará en muchos
sistemas, pero no siempre. Nuestra explicación
debería ser
suficiente para aclararle el camino en la
configuración de red en su máquina, pero hay
además otros
detalles que no mencionaremos aquí por su
extensión. Le aconsejamos que consulte los
documentos
Linux Network Administrators'Guide y NET-2 HOWTO para
más información (3)
_________________________________________
(3) Algunas de las cosas que aquí se exponen
proceden del documento NET-2 HOWTO de Terry Dawson y Matt
Welsh.
________________________________________________________________________________
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ón como ifconfig y
route
(que suelen estar en /etc) y ficheros de
configuración de red, como /etc/hosts. Los
documentos
adicionales que hemos mencionado explican cómo
instalar todo ese software si aun no lo ha hecho.
También vamos a suponer que el núcleo
está compilado con el soporte TCP/IP. Vea la
sección 4.7 para informarse de cómo recompilar el
núcleo. Para incluir el soporte de red, tendrá que
contestar afirmativamente a la pregunta correspondiente que se le
hará durante el comando make config.
Una vez hecho esto, se deben modificar los ficheros de
configuración 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án también 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éase esta sección para ir entendiendo los
conceptos y luego vea las instrucciones específicas
para
SLIP.
5.3.2.1 La configuración de red
Antes de configurar su sistema con TCP/IP necesita
conocer cierta información sobre la red. En
muchos casos, el administrador local se la
proporcionará.
o Dirección IP. Es la dirección
única de cada máquina, formada por números
separados por
puntos. Por ejemplo, 128.253.153.54. El administrador de
red le dará este número.
Si está configurando el modo "loopback"
únicamente (esto es, no tiene conexión a la
red
mediante SLIP o Ethernet) su dirección IP
será la 127.0.0.1.
o Máscara de red (ñetmask"). Es un
número similar a la dirección IP, que determina
qué parte
de la dirección IP determina el número de
sub-red, y qué parte especifica el host en la
sub-red
(si todo esto no lo comprende bien, le sugerimos que lea
documentos sobre administración de
red).
La máscara de red es un patrón de bits,
que al ser superpuesto a una dirección de la red,
le
dirá en qué sub-red se encuentra esa
dirección. 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áscara.
Los administradores de la sub-red habrán
seleccionado las máscaras en tiempo de diseño de
la
red, y serán quienes deban darle esa
información. Muchas sub-redes son de "clase C" y usan
la
máscara 255.255.255.0. Otras sub-redes de "clase
B" usan la 255.255.0.0. El código de NET-2
seleccionará automáticamente una
máscara que asume que no hay subred.
Todo esto debe aplicarse también a la
configuración "loopback". Dado que la dirección
"loop-
back" es siempre la 127.0.0.1, las máscara
será la 255.0.0.0. Puede especificarla de forma
explícita o dejar que el sistema la ponga por
defecto.
o Dirección de red. Es el resultado de la
operación lógica AND entre su dirección IP
y la máscara.
Por ejemplo, si su dirección IP es la
128.253.154.32 y la máscara es 255.255.255.0, su
dirección
de red será la 128.253.154.0. Con una
máscara 255.255.0.0, la dirección sería
128.253.0.0. Si
utiliza solo la configuración en "loopback", la
dirección de red no existe.
o Dirección de "broadcast". Se utiliza para
lanzar paquetes que deben recibir todas las
máquinas
de la subred. Así pues, si el número de
host de la subred se obtiene mediante el último
octeto
de la dirección IP (o sea, la máscara es
la 255.255.255.0), su dirección de "broadcast" será
su
dirección de red operado en OR con
0.0.0.255.
Por ejemplo, si su número IP es el
128.253.154.32, y la máscara es la 255.255.255.0, la
dirección de "broadcast" sería la
128.253.154.255.
Observe que por motivos históricos, algunas
subredes están configuradas para usar la
dirección
de red como dirección de "broadcast". Si tiene
dudas, consulte con el administrador de la red.
En muchos casos, bastará con copiar la
configuración que tengan otras máquinas de la
subred
y cambiar únicamente el valor IP, por
supuesto.
La dirección "broadcast" tampoco tiene utilidad
en una configuración en "loopback".
o Dirección de pasarela. Se trata de la
dirección de la máquina que va a ser su pasarela a
otras
máquinas que no estén en su misma subred.
Muchas veces es una dirección IP como la suya,
solo que terminada en ".1". Por ejemplo, si si
dirección IP es la 128.253.154.32, la de la
pasarela
podría ser la 128.253.154.1. El administrador se
la dirá en cualquier caso.
En ocasiones puede tener varias pasarelas. Una pasarela
o gateway es simplemente una máquina
que se encuentra a la vez en dos subredes (tiene una
dirección 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á aislada de otras, o su
máquina se encuentra en configuración "loopback",
no
necesitará dirección de
pasarela.
o Dirección del servidor de nombres. Suele
existir un servidor que traduce nombres de
máquinas
a direcciones IP. El administrador le facilitará
su dirección. Puede usted mismo ejecutar en
su máquina un servidor de nombres, el programa
named, en cuyo caso su dirección será la
127.0.0.1. A menos que realmente lo necesite, le
recomendamos que procure siempre usar
otra máquina distinta. La configuración de
named es otro tema; y lo primordial aquí es que
comunique con la red. Puede tratar estos asuntos
más tarde.
En una configuración "loopback" no es necesario
este dato.
Nota para usuarios de SLIP: La información
anterior puede necesitarla o no. Cuando use SLIP
su dirección IP será determinada de dos
formas: bien "estática",
lo que significa que será siempre
la misma, o bien "dinámica", lo que indica que le será
asignada una de las disponibles cada vez que
conecte con el servidor SLIP. En la sección sobre
SLIP ampliaremos el tema.
NET-2 implementa rutado completo, múltiples
rutas, subredes… Lo anterior describe las con-
figuraciones más básicas. Pero la suya
puede ser diferente: cuando tenga alguna duda, consulte
al
administrador de la red, y eche un vistazo a las
páginas del manual para route e ifconfig. La
configuración completa de redes TCP/IP supera
ampliamente las intenciones de este libro, y con lo
anterior sólo 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ásicos como sendmail o cron
y además configuran parámetros de la red
como la dirección IP y el nombre del host. Estos
scripts
se suelen encontrar en /etc/rc.d o en /etc.
Lo que vamos a hacer aquí es describir los
ficheros rc que configuran TCP/IP. En Linux son dos:
rc.inet1 y rc.inet2. El primero configura
parámetros básicos como direcciones IP e
información
de rutado. El segundo lanza los demonios TCP/IP,
principalmente inetd, quien se encargará de
lanzar cuando haga falta los telnetd y
demás.
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íficas en el fichero inittab. En el peor
caso tendría usted que crear las entradas para
rc.inet1 y rc.inet2 en dicho fichero.
Como hemos dicho, rc.inet1 configura los
parámetros básicos de red. Esto incluye el
número IP
y dirección de red, y la tabla de rutado. Estas
tablas se usan para rutar los datagramas entrantes y
salientes de otras máquinas. Lo más simple
es tener tres rutas: una para enviar paquetes a su
propia
máquina, otra para enviarlos a otra
máquina de la subred y una tercera para enviarlos a
máquinas
de otras subredes (a través 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ámetros que
necesita,
como la dirección IP, la máscara,
dirección 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á poner sus propias direcciones IP y
demás.
#!/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ás tenga que estudiarse un poco más el
tema para su instalación particular, aunque en
la
mayor parte de los casos el fichero anterior será
suficiente.
rc.inet2 arranca servidores usados por TCP/IP. El
más importante es inetd, que queda en
segundo plano y escucha por varios puertos de la red.
Cuando una máquina intenta conectarse por
uno de ellos (por ejemplo, por el de telnet), inetd
envía una copia del servidor correspondiente
(en este caso, in.telnetd) para que controle el puerto
afectado. Esto es mejor que mantener en
ejecución todos los servidores de red necesarios
(múltiples copias de in.telnetd, in.ftpd y
demás).
inetd los arranca conforme se van
necesitando.
Pero en rc.inet2 se arrancan también otros
demonios. syslogd se ocupa de acumular
los mensajes generados por el núcleo y diversas
aplicaciones y tratarlos según diga el fichero
/etc/syslogd.conf (guardarlos en ficheros, sacarlos por consola,.
.).. routed se ocupa de la in-
formación de rutado dinámica. Cuando su sistema intenta enviar
paquetes a otra red, puede requerir
nuevas entradas en las tablas de rutado, que routed
trata sin necesidad de intervención del
usuario.
El ejemplo siguiente solo arranca un número
mínimo de servidores. Existen otros que pueden
interesarle, como el NFS. Cuando instale TCP/IP en su
sistema, es mejor empezar con una config-
uración sencilla y luego complicarla según
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á 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á arrancar
named. Su configuración es más compleja y requiere
cierto cuidado y planificación, por lo que le recomendamos
consultar bibliografía específica. 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áquinas que les corresponden. En
general, /etc/hosts solo contiene entradas para su
máquina y quizás alguna otra
"importante",
como servidores de nombres o pasarelas. Su servidor de
nombres local proporciona a otras máquinas
traducción automática del nombre de su host a su
dirección IP.
Por ejemplo, si su máquina es loomer.vpizza.com
con la dirección IP 128.253.154.32, su
/etc/hosts sería como este:
127.0.0.1 localhost
128.253.154.32 loomer.vpizza.com loomer
Si solo usa el "loopback", la única línea
necesaria es la que tiene el número 127.0.0.1,
añadiendo tras localhost el nombre de su
máquina.
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ñadir 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ómo resolver los
nombres de los hosts. Debe contener dos líneas:
order hosts,bind
multi on
Estas líneas indican a los mecanismos de
resolución 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áquina haya varias direcciones IP en
/etc/hosts.
5.3.2.6 /etc/resolv.conf
En este fichero se configura el mecanismo de
resolución, especificando la dirección del servidor
de
nombres y el nombre del dominio de su
máquina. El dominio es como
un nombre de host "mutilado".
Por ejemplo, si su máquina se llama
loomer.vpizza.com, el dominio será vpizza.com.
Como fichero /etc/resolv.conf
de ejemplo, veremos el caso de la máquina
goober.norelco.com cuyo servidor de nombres es el
127.253.154.5:
domain norelco.com
nameserver 127.253.154.5
Con líneas nameserver adicionales podrá
especificar la existencia de varios servidores de
nombres.
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ído).
5.3.2.8 Problemas con la configuración
Una vez que haya preparado los ficheros anteriores,
habrá que reiniciar Linux para que reconozca
las nuevas configuraciones. Luego tendrá que
hacer pruebas, para
las que lo más indicado es probar
aspectos individuales de la red y no tratar de empezar,
por ejemplo, lanzando un proceso Mosaic
con una conexión X.
Con el comando netstat puede ver las tablas de rutado.
Esta suele ser la principal fuente de
problemas. En la página del manual para este
comando encontrará la sintaxis adecuada. Para
comprobar que funciona su conexión, le sugerimos
probar un cliente como
telnet para ver si puede
conectarse a máquinas de su subred y de otras
redes. Esto puede ponerle sobre la pista del problema. Por
ejemplo, si puede conectarse a máquinas de otras subredes
pero no de la suya propia, puede tratarse de un problema con la
máscara de red o las tablas de rutado. Ejecutando route
como root podrá jugar directamente con las entradas de la
tabla.
Para hacer estas pruebas de
conectividad, utilice direcciones IP y no nombres. Así, si
tiene
problemas para ejecutar
$ telnet shoop.vpizza.com
la causa puede ser una configuración incorrecta
del servidor de nombres. Si funciona usando la
dirección IP, se puede casi asegurar que el resto
de la configuración está bien hecha. Solo falta
que
funcione bien el servicio de
nombres (probablemente haya que especificar correctamente la
dirección del servidor de nombres).
La depuración de configuraciones de red puede ser
tarea difícil, y no podemos tratarla aquí.
Le
sugerimos, si no consigue otra ayuda, que consulte el
libro Linux Network Administrators'Guide de
esta misma serie.
5.3.3 Configuración de SLIP
Con SLIP (Serial Line Internet Protocol) usted puede
conectarse a una red TCP/IP mediante una
línea serie, como puede ser un módem o una
línea dedicada asíncrona. 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ón SLIP y por lo tanto son
necesarios. No es suficiente con llamar al servidor SLIP con
programas como kermit y después 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és iniciar la conexión SLIP. Por su
lado,
slattach se limita prácticamente a modificar la
línea serie para SLIP, por lo que está
indicado
para líneas dedicadas que no requieren
interacción con el módem o similar. Casi todo el
mundo, sin
embargo, usa dip.
Con dip también puede configurar su sistema como
servidor SLIP, permitiendo a otras máquinas
conectarse a la red a través de su módem y
su conexión Ethernet. Vea los manuales en línea de
dip
para más información.
A SLIP se le llama conexión "punto a punto"
(point-to-point) pues a ambos lados de la línea
existen sólo las dos máquinas involucradas
(no como sucede en una ethernet). Esta idea se generaliza y
mejora con el protocolo PPP
(point-to-point protocol) que también se ha portado a
Linux.
Cuando inicia una conexión al servidor SLIP, se
le asignará una dirección IP, bien de
forma
"estática"
(su dirección IP es siempre la misma) o "dinámica" (su dirección puede ser
diferente de
un día para otro). Por lo general, los valores de
la dirección y pasarela asignados serán
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ón SLIP es
como configurar la conexión en "loopback" o con ethernet.
En las siguientes líneas le mostramos las diferencias. Es
importante que vea lo que hemos explicado antes sobre
configuración en general, y aplique ahora las
modificaciones que le vamos a contar.
5.3.3.1 Conexiones SLIP con asignación de IP
estática usando dip
Si su servidor SLIP le permite tener la dirección
IP estática,
lo más adecuado es insertar la dirección
y el nombre del host en el fichero /etc/hosts.
Además, debe configurar los ficheros rc.inet2,
hosts.conf y resolv.conf como se ha dicho
antes.
En el fichero rc.inet1 también tendrá que
introducir cambios, ejecutando ifconfig y route
solo para el dispositivo "loopback", puesto que dip
hará lo propio con el dispositivo SLIP. Pero si
usa slattach sí tendrá que incluir
comandos ifconfig/route en rc.inet1 para el dispositivo
SLIP
(en breve veremos cómo).
El programa dip debería configurar sus tablas de
rutado para la conexión SLIP. Sin embargo,
puede no hacerlo bien, y tendrá que corregirlo
ejecutando por su cuenta ifconfig o route cuando se
haya conectado. Quizás le convenga entonces
escribirse un shell script para hacerlo
automática-
mente. En muchos casos, la pasarela es el propio
servidor SLIP. De todas formas, el comando dip
puede deducirlo de la información que
envía 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ón del servidor SLIP es
128.253.154.2 y la suya es 128.253.154.32, el comando a ejecutar
(como root) podría ser:
ifconfig sl0 128.253.154.32 pointopoint
128.253.154.2
tras conectar con dip. La documentación en
línea de este comando le será
útil.
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ón posterior 5.3.4 le explicaremos
cómo configurar dip para conectarse a un
servidor
SLIP.
5.3.3.2 Conexiones SLIP con asignación de IP
estática usando slattach
Si tiene una línea dedicada o un cable conectado
directamente al servidor SLIP, no necesitará
usar
dip para iniciar la conexión. 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ínea serie especificada.
Observe que el primer parámetro de slattach es el
protocolo SLIP a utilizar. Actualmente
solo valen slip y cslip. El segundo es un SLIP que
incluye compresión de las cabeceras de los
datagramas. Por ello su elección habitual
será cslip a menos que tenga algún problema con
la
conexión.
Si hay más de un dispositivo SLIP tendrá
que considerar algunas cosas respecto al rutado. Tiene
que decidir qué rutas añadir, y esto debe
hacerse en función de la configuración de la red a
la que se
conecte. Le serán de ayuda los libros sobre
configuración de TCP/IP, la documentación en
línea del
comando route, etc.
5.3.3.3 Conexiones SLIP con asignación de IP
dinámica usando dip
Si el servidor SLIP le asigna dinámicamente las
direcciones IP, no sabrá, evidentemente, su
dir-
ección IP antes de conectarse, con lo que no
puede incluir esa información en /etc/hosts
(aunque
sí incluirá la información de
"loopback", 127.0.0.1).
Muchos servidores SLIP envían al terminal la
dirección IP y la del propio servidor. Por
ejemplo,
un servidor SLIP podría decirle esto al
conectarse:
Your IP address is 128.253.154.44.
Server address is 128.253.154.2.
dip puede capturar ese texto y configurar así el
sistema.
Vea la sección 5.3.3.1 para informarse sobre la
configuración de los ficheros de TCP/IP con
SLIP.
Ahora le indicaremos cómo se configura SLIP para
conectarse al servidor SLIP.
5.3.4 Utilización de dip
dip puede facilitar el proceso de conexión a un
servidor SLIP, pues se ocupará de entrar en el sistema
remoto y configurar el dispositivo SLIP según la
información recibida del servidor. Este programa es el
más indicado a menos que su línea sea
dedicada.
Para utilizar dip tendrá que escribir un "script"
que contendrá comandos para comunicar con el
servidor SLIP durante la entrada en el sistema remoto.
Por ejemplo, incluirá envío automático
de
usuario y password al servidor así como lo
necesario para asignar la dirección IP.
Lo que sigue es un ejemplo de script para
asignación dinámica de dirección IP. Para
asignación
estática 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ás información.
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=7r
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.
login:
sleep 3
send rnrn
# Esperar el 'prompt' de entrada (login).
wait login: 10
if $errlvl != 0 goto error
# Enviar su nombre de usuario.
send USERNAMEn
# Esperar el 'prompt' de password.
wait ord: 5
if $errlvl != 0 goto error
# Enviar su password.
send PASSWORDn
# 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 slipn
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:
dip ejecuta automáticamente los programas
ifconfig y route según los valores asignados a
$local y $remote. Aquí, esas variables son
asignadas con el comando get. .r.emote, que obtiene el
texto de la dirección 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ón
-v
de dip le dará información para
depuración generada durante la conexión y le
ayudará a averiguar
la(s) causa(s) del problema(s).
Ahora, para probar dip y abrir la conexión 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ón le
deberían 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ón
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ón entre sis-
temas Unix. Mediante UUCP, los sistemas Unix se
comunican con otros (vía módem),
transfiriendo
mensajes de correo, news, ficheros y demás. 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ún
servidor InterNet cercano, puede recibir correo en su
sistema de esa red mediante UUCP.
El libro Linux Network Administrator's Guide le
dará información completa para configurar
y
utilizar UUCP en Linux. También encontrará
información en el documento UUCP-HOWTO, que
puede obtener por FTP anónimo de sunsite.unc.edu.
Otra fuente de información sobre UUCP es
el libro Managing UUCP and USENET, de Tim O'Reilly y
Grace Todino. Vea el apéndice A para
más información.
5.5 Correo Electrónico
Como casi todos los UNIX, Linux dispone de paquetes de
software para tener correo electrónico.
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í 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ás. El usuario nunca
interactúa directamente con este programa, sino que
lo
hace a través del agente de usuario. Sin embargo,
el administrador del sistema debe conocer cómo
funciona el programa de transporte,
con el fin de configurarlo según sus
necesidades.
En Linux, el más conocido de los programas de
transporte es
Smail. Es fácil de configurar y
capaz de enviar tanto correo local como remoto
vía UUCP o TCP/IP. En otros sistemas Unix se
suele usar con más frecuencia el programa
sendmail, que es bastante más complicado de
configurar,
por lo que no se suele usar en Linux.
En el documento Linux Mail HOWTO se expone más
información sobre el software disponible
para correo y cómo configurarlo. Si pretende
tener correo remoto, necesitará entender los
conceptos
de TCP/IP o UUCP (según la red utilizada) (vea
las secciones 5.3 y 5.4). Los documentos de UUCP
y TCP/IP indicados en el apéndice A
también le ayudarán.
Casi todo el software de correo para Linux puede
obtenerse mediante FTP anónimo de
sunsite.unc.edu en el directorio
/pub/Linux/system/Mail.
5.6 News y USENET
Linux proporciona también todo lo necesario para
tratar las news. Puede elegir configurar un servidor
de news local, que permitirá a los usuarios poner
"artículos" a los diversos "grupos" del sistema, en cierto
modo, es una forma de discutir. Sin embargo, si tiene acceso a
una red UUCP o TCP/IP,
podrá participar realmente en USENET, una red de
news de ámbito 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ículos a otras máquinas (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ículos.
Hay varios tipos de servidores de news para Linux. Todos
siguen un diseño y esquema de
protocolos parecido. Principalmente, tenemos los
servidores "C News" e "INN". En cuanto a clientes, destacamos rn
y tin. La selección del cliente es
cuestión de gustos, y, por supuesto, es independiente del
servidor elegido.
Si solo pretende leer y escribir artículos
localmente (no como parte de USENET), necesitará
un
servidor que corra en su sistema, así como el
lector para los usuarios. El servidor guardará
los
artículos en un directorio como /usr/spool/news,
y el lector se compilará para buscar los
artículos
en ese directorio.
Sin embargo, si desea tener news en red, tendrá
ahora varias opciones más. Para redes basadas
en TCP/IP se usa el protocolo NNTP (Network News
Transmision Protocol). NNTP permite al
cliente leer los artículos a través de la
red, desde una máquina remota. NNTP también permite
a
los servidores enviarse artículos por la red. En
esto se basa USENET. Casi todas las empresas y
universidades conectadas cuentan con uno o más
servidores NNTP para controlar todas las news
USENET en ese lugar. Cualquier otra máquina de
esa empresa o universidad tendrá un lector de
news que accederá al servidor con NNTP. Por ello,
solo el servidor NNTP guarda artículos en
disco.
Los clientes no lo hacen, y siempre tienen que conectar
con el servidor para leerlos.
A continuación mostramos algunas situaciones
típicas de configuración.
o News locales. No hay conexión a red o no se
desea tener news en red. En este caso, hay que
ejecutar C News o INN en su máquina, e instalar
el lector para leer las news locales.
o Con acceso a red TCP/IP y servidor NNTP. Si existe un
servidor NNTP ya configurado, puede
leer y escribir artículos desde su máquina
Linux instalando un lector basado en NNTP (casi
todos los lectores tienen opciones de
configuración para leer news en NNTP). Por lo
tanto,
no necesita preocuparse de instalar el servidor o
guardar artículos en su sistema. El lector se
ocupará de enviarlos a la red. Por supuesto,
necesitará configurar TCP/IP y tener acceso a
la
red (vea la sección 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ás, puede
instalarlo para comunicarse con otros servidores
NNTP para intercambiar artículos.
o Desea transferir news con UUCP. Si tiene acceso a UUCP
(ver la sección 5.4), puede parti-
cipar en USENET de la misma forma. Necesitará
instalar un servidor de news y un lector.
Además necesitará configurar su software
UUCP para transferir los artículos
periódicamente
a otra máquina con UUCP. En UUCP no se usa el
protocolo NNTP, sino que posee su propio
mecanismo para transferir artículos.
El único inconveniente de muchos clientes y
servidores de news es que deben ser compilados a
mano, es decir, no usan ficheros de
configuración, sino que se configuran en el momento de
compil-
arlos.
Muchos programas de news "estándares"
(disponibles por FTP anónimo en ftp.uu.net,
dir-
ectorio /news) podrían no compilarse en Linux.
Los parches que hagan falta se encuentran en
sunsite.unc.edu, directorio /pub/Linux/system/Mail
(aquí se encuentra también todo el soft-
ware de correo para Linux). Pueden encontrarse
también versiones ya compiladas.
Para más información, léase el
documento Linux News HOWTO que encontrará en
sunsite.unc.edu. También encontrará ayuda
en el manual Linux Network Administrator's Guide
de la misma serie de este libro. También puede
consultar el libro Managing UUCP and Usenet, de
Tim O'Reilly y Grace Todino. Una última
posibilidad es el documento "How to become a USENET
site", disponible en ftp.uu.net, directorio
/usenet/news.announce.newusers.
Apéndice A
Fuentes de Información de Linux
Este apéndice contiene información sobre
algunas fuentes de información de Linux, tales como
documentos en línea, libros, y demás. Muchos de
estos documentos estan disponibles en formato impreso, o
electrónicamente desde Internet o sistemas BBS.
También muchas de las distribuciones de Linux incluyen
esta documentación 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ínea
Estos documentos deberían estar disponibles en
cualquiera de los FTP sites de Linux (vea el Apéndice C
donde tendrá una lista). Si no tiene acceso directo a FTP,
es posible que localice estos documentos en otros servicios en
línea (tales como CompuServe, BBSs locales, etc.). Si
dispone de acceso a correo Internet, podrá usar el
servicio
ftpmail para recibir estos documentos. Vea el Apéndice C
para más información.
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óximo a Ud., éste es
un buen lugar en el que intentarlo.
También puede acceder a los ficheros de Linux y
la documentación usando gopher. Solo tiene que
indicar a su cliente gopher que acceda al puerto 70 de
sunsite.unc.edu, y siga los menús hasta los
archivos Linux. Esta es una buena forma de hojear la
documentación 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ón general sobre Linux, problemas
comunes y soluciones, y
una lista
de otras fuentes de información. Todos los nuevos
usuarios de Linux deberian leer
este documento. Está a disposición en
varios formatos, incluyendo ASCII
puro,
PostScript, y formato Lout typesetter. El Linux FAQ lo
mantiene Ian Jackson,
ijackson[arroba]nyx.cs.du.edu.
El Linux META-FAQ
El META-FAQ es una colección de "metapreguntas"
sobre Linux; es decir, fuentes de
información sobre el sistema Linux, y otros
tópicos generales. Es un buen comienzo
para el usuario de Internet que desea encontrar
más información sobre el sistema.
Lo mantiene Michael K. Johnson,
johnsonm[arroba]sunsite.unc.edu.
El Linux INFO-SHEET
El Linux INFO-SHEET es una presentación
técnica del sistema Linux. Ofrece una
visión de las características del sistema
y el software disponible, y proporciona una
lista de otras fuentes de información de Linux.
El formato y contenido es similar en
naturaleza al META-FAQ; casualmente también 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ás. Está lejos de ser una lista
completa_compilar una lista completa de software de
Linux sería prácticamente
imposible. Sin embargo, incluye muchos de los paquetes
más populares de software
de Linux. Si no consigue encontrar una aplicación
en particular, que se adapte a
sus necesidades, el LSM es un buen lugar por el que
comenzar. Lo mantiene Lars
Wirzenius, lars.wirzenius[arroba]helsinki.fi.
El Indice de HOWTOs de Linux
Los HOWTOs de Linux son una colección de
documentos "How to" (1), cada uno de
ellos describiendo un aspecto concreto del sistema
Linux. Los mantiene al dia Matt
Welsh, mdw[arroba]sunsite.unc.edu. Los Indices de HOWTOs
listan los documentos
HOWTO que están disponibles (algunos de los
cuales se listan aquí abajo).
_________________________________________
(1) N. del T.: del inglés
"Cómo" o "Cómo se hace"
________________________________________________________________________________
El HOWTO de Instalación de Linux (Linux
Installation HOWTO)
El HOWTO de Instalación de Linux describe como
obtener e instalar una dis-
tribución de Linux, similar a la
información presentada en el Capítulo 2.
El HOWTO de Distribuciónes de Linux (Distribution
HOWTO)
Este documento es una lista de las distribuciones de
Linux disponibles a través
de pedido por correo y FTP anónimo.
También incluye información sobre otras
bondades y servicios relacionados con Linux. El
Apéndice B contiene una lista
de vendedores de Linux, la mayoría de los cuales
están 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ón "5.1" para mayor
información acerca del Sistema
X Window.
Los HOWTOs de Mail, News y UUCP de Linux
Estos tres documentos HOWTO describen la
configuración y puesta a punto del
correo electrónico, news y comunicaciones UUCP en
un sistema Linux. Dado que
estos tres temas están 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á completa,
debería 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ía completa de la
configuración 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ón,
puesta a punto y configuración
del software TCP/IP ñET-2" bajo Linux, incluyendo
SLIP. Si desea usar TCP/IP
en su sitema Linux, debería 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ón de Linux (Linux Printing
HOWTO)
En este documento se describe como configurar el
software de impresión bajo Linux,
como por ejemplo lpr. La configuración de las
impresoras y
el software de impresión
bajo UNIX puede resultar a veces confuso; este documento
siembra algo de luz en
la materia.
Otros documentos en-línea
Si hojea el directorio docs de cualquier FTP site de
Linux, podrá ver otros muchos
documentos que no están aquí listados: Una
pila de FAQs, trucos de interés, y otra
información importante. Esta miscelánea es
difícil de clasificar aquí; si no puede
ver en la lista de abajo lo que esté buscando,
eche un vistazo en los sites de archivos
Linux listados en el Apéndice C.
A.2 Manuales del Proyecto de Documentación de
Linux
El Proyecto de Documentación de Linux (LDP)
está trabajando en el desarrollo de una serie
de
manuales y otra documentación para Linux,
incluyendo las páginas de manual. Estos manuales
se
encuentran en diversos estados de desarrollo, y
cualquier ayuda de revisión y puesta al dia de
los
mismos es apreciada enormemente. Si tiene preguntas
acerca del LDP, por favor contacte con Matt
Welsh(mdw[arroba]sunsite.unc.edu).
Estos libros están disponibles a través de
FTP anónimo desde un montón de servidores
de
archivos Linux, incluyendo sunsite.unc.edu en el
directorio /pub/Linux/docs/LDP. Unos cuan-
tos distribuidores comerciales están vendiendo
copias impresas de estos libros; en el futuro, Ud.
podrá encontrar los manuales del LDP en las
estanterías de su librería más
próxima.
Linux Installation and Getting Started, de Matt
Welsh
Una nueva guía 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ía completa para poner en marcha y
configurar un sistema Linux. Hay
muchos temas relacionados con la administración
de sistemas que son específicas de
Linux, tales como lo necesario para soportar una
comunidad de usuarios, manteni-
miento del sistema de ficheros, backups, y demás.
Esta guía los cubre a todos.
The Linux Network Administrators'Guide, de Olaf
Kirch
Una extensa y completa guía de redes bajo Linux,
que incluye TCP/IP, UUCP,
SLIP, y más. Este libro es de lectura
recomendable; contiene gran cantidad de
información sobre muchos temas, y clarifica la
gran cantidad de aspectos confusos
de la configuración en red.
The Linux Kernel Hackers'Guide, de Michael
Johnson
Hasta los más pequeños detalles del
núcleo por dentro y del desarrollo bajo Linux.
Linux es único en poner a disposición los
fuentes del núcleo al completo. Este libro
abre las puertas a desarrolladores que desean
añadir o modificar características
dentro del núcleo. Esta guía
también da una amplia covertura a los conceptos
del
núcleo 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ámica 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ño en los
Estados Unidos, US$27 en Canada, y US$32
en el resto. Para subscribirse, o para ampliar in-
formación, escriba a Linux Journal, PO Box 85867,
Seattle, WA, 98145-1867, USA, o llame al +1
206 527-3385. El número de FAX es +1 206
527-2806, y la dirección e-mail es
linux[arroba]ssc.com.
También podrá encontrar un Linux Journal
FAQ y algunos artículos de muestra vía FTP
anónimo
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 concretamente. Sin embargo, si Ud.
es nuevo en el mundo de UNIX, o desea más
información de la que se presenta aquí, le
sugerimos que eche un vistazo a los siguientes libros que
podrá encontrar.
A.3.1 Usando UNIX
Título: Learning the UNIX Operating
System
Autor:
Editorial: O'Reilly and Associates, 1987
ISBN: 0-937175-16-1, $9.00
Un buen libro de introducción al aprendizaje del
sistema operativo UNIX. La mayoría
de la información se debería de poder
aplicar también a Linux. Le sugeriría leer este
libro
si Ud. es nuevo en UNIX y realmente quiere iniciarse en
el uso de este nuevo sistema.
Título: Learning the vi Editor