|
| |
Linux: Instalación y Primeros Pasos
Resumen: Prefacio. Audiencia. Organización del Libro. Reconocimientos. Distribuciones de Linux. Conseguir Linux desde Internet. Conseguir Linux desde otras fuentes online. Conseguir Linux por correo. Conseguir la Slackware. La traducción. Créditos y aspectos Legales. Notación usada en el documento. Programas de comunicaciones y BBS. Enlazando con MS-DOS. Diseño y filosofía de Linux. Consejos para novatos en UNIX. Consejos para los gurús. Diferencias Entre Linux y Otros Sistemas Operativos. ¿Por qué usar Linux?. Otras implementaciones de UNIX. Requerimientos de Hardware. Requisitos de Placa Base y de CPU, de memoria y de espacio en disco. Tarjetas de Red.
Publicación enviada por Smaug Harkonnen
Linux: Instalación y Primeros Pasos
____________________________________________________________________________
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@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@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@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@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).
Usado para marcar meta-variables en el texto, especialmente en representaciones
de la línea de comandos. Por ejemplo,
ls -l
donde "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@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 soport |