Lipp5

Capítulo 5



Características avanzadas

Características avanzadas
Anterior- Siguiente - Índice

En este capitulo nos introduciremos en ciertas características avanzadas, pero interesantes de Linux. Se asume que ya se tiene cierta experiencia en Unix, y se entiende la información contenida en los capítulos precedentes.
El aspecto más importante que distingue a Linux de otras implementaciones de Unix es su diseño abierto a nuevas ideas y su filosofía. Linux no fue desarrollado por un pequeño equipo de programadores liderado por una empresa con un objetivo comercial. Fue desarrollado por un grupo creciente de "hackers" quienes aportaban todo lo que sabían en desarrollo de Unix. Por ello, es enorme la cantidad de software adicional disponible.

5.1 El sistema X Window
Anterior- Siguiente - Índice

X Windows es un enorme entorno gráfico para sistemas Unix, potente y también complejo. Originalmente fue desarrollado por el MIT, y desde entonces los desarrolladores de sistemas comerciales han convertido a las X en un estándar de las plataformas Unix. Prácticamente todas las estaciones de trabajo Unix del mundo utilizan X Window en alguna de sus variantes.
Existe, desarrollada por un equipo de programadores inicialmente liderados por David Wexelblat1, una implementación gratuita de las X Windows versión 11, release 6 (X11R6) para sistemas Unix con 80386/80486/Pentium. Esta implementación, llamada XFree862, se encuentra disponible en Unix x86 como System V/386, 386BSD y por supuesto Linux. Incluye todos los binarios necesarios, ficheros de soporte, librerías y utilidades.
Configurar y utilizar a fondo las X Windows se sale de los objetivos de este libro. Le animamos a leer The X Window System: A User's Guide, vea el apéndice A para mas información sobre el libro.
En esta sección, le daremos una descripción de como instalar y configurar paso a paso XFree86 en Linux, pero necesitara completar la información con otra disponible en la documentación propia de XFree86 (documentación que comentaremos mas adelante). Otra fuente interesante de información es la XFree86 HOWTO.

_____________________________________________
1 Se puede contactar con David en Internet mediante la dirección dwex@XFree86.org
2 XFree86 es marca registrada de The XFree86 Project, Inc.

5.1.1 Requisitos de hardware
Anterior- Siguiente - Índice

Al igual que la versión XFree86 3.1 de Septiembre de 1994, están soportados los siguientes "chipsets".
La documentación que se incluye con su adaptador de vídeo debería especificar cual es el "chipset" que utiliza. Si esta a punto de comprarse una nueva tarjeta gráfica, conviene pedir al vendedor el modelo exacto de tarjeta y "chipset" de vídeo. Esto supondrá, casi siempre, recurrir al servicio técnico, pero normalmente los vendedores no pondrán inconvenientes. La mayor parte de los vendedores de PCs se limitan a decir que sus ordenadores tienen tarjetas gráficas "SVGA estándar" que "tiene que funcionar" en su sistema. Explíqueles que su software (nombrando a Linux y XFree86, por supuesto) no soporta todos los "chipsets" y que usted necesita por eso información mas detallada.
De todas formas, puede determinar su "chipset" ejecutando el programa SuperProbe incluido con la distribución de XFree86. De esto hablamos mas abajo.
Están soportados los siguientes "chipsets" SVGA:

o Tseng ET3000, ET4000AX, ET4000/W32
o Western Digital/Paradise PVGA1
o Western Digital WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31, WD90C33
o Genoa GVGA
o Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420
o ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800
o NCR 77C22, 77C22E, 77C22E+
o Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6420
o Compaq AVGA
o OAK OTI067, OTI077
o Avance Logic AL2101
o MX MX68000, MX680010
o Vídeo 7/Headland Technologies HT216-32

También están soportados los siguientes, con acelerador:

o 8514/A (y clonicos)
o ATI Mach8, Mach32
o Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235
o S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964
o Western Digital WD90C31, WD90C33
o Weitek P9000
o IIT AGX-014, AGX-015, AGX-016
o Tseng ET4000/W32, ET4000/W32i, ET4000/W32p

Todas las tarjetas gráficas que usan estos "chipsets" están soportadas, incluso para bus local Vesa o PCI.
El soporte incluye los modos monocromáticos y de 256 colores, con la excepción de Avance Logic, MX y Vídeo 7, que están soportadas solo en 256 colores. Si su tarjeta gráfica tiene suficiente memoria DRAM, la mayor parte de los "chipsets" anteriores también están soportados para los modos de 16 y 32 bits por pixel (en concreto, algunas Mach32, P9000, S3 y Cirrus). Lo habitual, sin embargo, es usar 8 bits por pixel, es decir, 256 colores.
El servidor monocromático también soporta las tarjetas VGA genéricas, la Hercules, la Hyundai HGC1280, Sigma LaserView y Apollo. Para la Compaq AVGA, solo están soportadas 64Kb de memoria de vídeo en el servidor monocromático, y la GVGA no ha sido probada con mas de 64 Kb.
Indudablemente, esta lista seguirá creciendo conforme pase el tiempo. Las notas que encontrara junto a la versión actual de XFree86 contendrán probablemente una completa lista de "chipsets" soportados en ese momento.
Un problema que se encuentran con frecuencia los desarrolladores de XFree86 es que algunos fabricantes de tarjetas gráficas utilizan mecanismos no estándares para determinar las frecuencias de reloj a usar en la tarjeta. Algunos de esos fabricante tampoco editan especificaciones que describan como programar la tarjeta, o exigen a los desarrolladores que firmen un documento de no divulgación para poder obtener la información. Esto, obviamente, dificulta la libre distribución del software de XFree86. Durante mucho tiempo esto ha impedido trabajar con las tarjetas Diamond, pero desde la versión 3.1 de XFree86, Diamond ya ha comenzado a colaborar con el equipo de desarrollo para la realización de drivers para esas tarjetas.
La configuración que se sugiere para ejecutar XFree86 con Linux es una máquina 486 con 8 megabytes de RAM por lo menos, y una tarjeta gráfica con un "chipset" de los listados antes.
Para obtener un rendimiento óptimo, se sugiere utilizar una tarjeta acelerada, como las basadas en el "chipset" S3. Usted debe comprobar sobre la documentación de XFree86 que su tarjeta está soportada antes de proceder al gasto que supone el nuevo hardware. Se han comparado rendimientos de diversos modelos de tarjetas, y sus resultados son enviados periódicamente a los grupos de news USENET comp.windows.x.i386unix y comp.os.linux.misc.
Como nota adicional, mi sistema personal con Linux es un 486DX2-66 con 20 megabytes de RAM y equipado con una tarjeta BLV con el "chipset" S3-864 y 2 megabytes de DRAM. He tenido rendimientos en X superiores a los de una Sun Sparc IPX. El sistema Linux resulta unas siete veces más rápido que el Sparc IPX (para el curioso, XFree86-3.1 bajo Linux, con esta tarjeta gráfica, consigue unos 171,000 xstones mientras que la Sparc IPX consigue solo 24,000). En general, XFree86 en un sistema Linux con una tarjeta SVGA acelerada le dará mucho más rendimiento que el que se encuentra en estaciones de trabajo Unix comerciales (que suelen emplear solo "framebuffers").
Su máquina necesitara al menos 4 megabytes de memoria física en RAM y 16 de memoria virtual (por ejemplo, 8 megabytes en RAM y otros 8 en swap). Recuerde que cuanta más RAM tenga, menos tendrá el sistema que acudir al disco duro cuando no hay memoria suficiente. Dado que el swapping es inherentemente lento, tener 8 megabytes de RAM o más es necesario si quiere correr XFree86 de forma confortable. Un sistema con 4 megabytes de RAM correrá mucho mas lento (hasta 10 veces) que uno con 8 megabytes o más.

5.1.2 Instalación de XFree86
Anterior- Siguiente - Índice

La distribución en binario de XFree86 para Linux puede encontrarse en muchos servidores de FTP. En sunsite.unc.edu se encuentra en el directorio /pub/Linux/X11. (En el momento de escribir este libro, la versión era la 3.1; aunque periódicamente aparecen nuevas versiones).
Es común que usted haya obtenido XFree86 como parte de una distribución de Linux, en cuyo caso no necesitara obtener el software del servidor anterior.
Si en cambio los obtiene por esta vía, la siguiente tabla le informara de los ficheros de los que consta la distribución XFree86-3.1.
Se requiere uno de los siguientes servidores:

Fichero

Descripción

XF86-3.1-8514.tar.gz

Servidor para tarjetas tipo 8514.

XF86-3.1-AGX.tar.gz

Servidor para tarjetas tipo AGX.

XF86-3.1-Mach32.tar.gz

Servidor para tarjetas tipo Mach32.

XF86-3.1-Mach8.tar.gz

Servidor para tarjetas tipo Mach8.

XF86-3.1-Mono.tar.gz

Servidor monocromo.

XF86-3.1-P9000.tar.gz

Servidor para tarjetas tipo P9000.

XF86-3.1-S3.tar.gz

Servidor para tarjetas tipo S3.

XF86-3.1-SVGA.tar.gz

Servidor para tarjetas SVGA.

XF86-3.1-VGA16.tar.gz

Servidor para VGA en 16 colores.

XF86-3.1-W32.tar.gz

Servidor para tarjetas tipo ET4000/W32.

Además, son necesarios todos los ficheros siguientes:

Fichero

Descripción

XF86-3.1-bin.tar.gz

Binarios de X11R6.

XF86-3.1-cfg.tar.gz

Ficheros de configuración para xdm, xinit y fs.

XF86-3.1-doc.tar.gz

Documentación y páginas de manual.

XF86-3.1-inc.tar.gz

Ficheros include.

XF86-3.1-lib.tar.gz

Ficheros de soporte y librerías compartidas.

XF86-3.1-fnt.tar.gz

Fuentes básicas. 

Los siguientes ficheros son opcionales:

Fichero

Descripción

XF86-3.1-ctrb.tar.gz

Diversas contribuciones.

XF86-3.1-extra.tar.gz

Otros servidores y binarios.

XF86-3.1-lkit.tar.gz

Kit para personalización de servidores.

XF86-3.1-fnt75.tar.gz

Fuentes de 75 ppp.

XF86-3.1-fnt100.tar.gz

Fuentes de 100 ppp.

XF86-3.1-fntbig.tar.gz

Otras fuentes (Kanji...).

XF86-3.1-fntscl.tar.gz

Fuentes escalables (Speedo, Type1).

XF86-3.1-man.tar.gz

Páginas de manual.

XF86-3.1-pex.tar.gz

Binarios PEX y librerías.

XF86-3.1-slib.tar.gz

Librerías estáticas de X.

XF86-3.1-usrbin.tar.gz

Daemons que residen en /usr/bin.

XF86-3.1-xdmshdw.tar.gz

Versión de xdm para shadow password. 

El directorio de XFree86 debería contener los ficheros README y otras notas acerca de la instalación de la versión actual.
Todo lo que se necesita para instalar XFree86 es obtener los ficheros anteriores, crear el directorio /usr/X11R6 (como root), y desempaquetar los ficheros desde ese directorio con un comando como el siguiente:

# gzip -dc XF86-3.1-bin.tar.gz | tar xfB -

Recuerde que esos ficheros tar se empaquetan con directorios relativos a /usr/X11R6, con lo que es imprescindible desempaquetarlos en el lugar indicado.
Después de desempaquetar los ficheros, necesitara hacer un enlace del nombre /usr/X11R6/bin/X al servidor que vaya a utilizar. Por ejemplo, si desea usar el servidor SVGA color, /usr/bin/X11/X debe ser un enlace a /usr/X11R6/bin/XF86_SVGA. Si desea utilizar el servidor monocromo en su lugar, el enlace apuntara a XF86_MONO con el comando

# ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X

El mecanismo es similar para cualquier otro servidor que quiera usar.
Si no esta seguro de que servidor debe usar, o no conoce el "chipset" de su tarjeta gráfica, puede ejecutar SuperProbe, un programa del directorio /usr/X11R6/bin (incluido en el fichero XF86-3.1-bin), que intentara identificar su "chipset" y otras informaciones. Anote su salida para posterior referencia.
Necesita asegurarse de que /usr/X11R6/bin se encuentra en el path. Esto puede hacerse editando el fichero /etc/profile o /etc/csh.login (según que shell utilice). O simplemente puede añadir el directorio a su path personal modificando su propio .bashrc o .cshrc.
Además, hay que asegurarse que /usr/X11R6/lib es localizable por ld.so, el enlazador dinámico. Para ello, añada la línea

/usr/X11R6/lib

al fichero /etc/ld.so.conf, y ejecute /sbin/ldconfig, como root.

5.1.3 Configuración de XFree86
Anterior- Siguiente - Índice


Poner a punto XFree86 no suele ser difícil. Sin embargo, si va a usar manejadores de "chipsets" aun en desarrollo o desea obtener el mejor rendimiento o resolución de una tarjeta aceleradora, en configurar a la perfección XFree86 puede tardar bastante.
En esta sección vamos a describir como crear y editar el fichero XF86Config, que configura al servidor. En muchos casos lo mejor es comenzar con una configuración "básica", de baja resolución, como 640x480 puntos, que es soportada por todas las tarjetas y monitores. Una vez comprobado su funcionamiento a baja resolución, puede pasar a modificar la configuración para explotar toda la capacidad de su tarjeta de vídeo.
Además de la información que nosotros le damos, debería leerse la siguiente documentación:

o La documentación propia de XFree86 en /usr/X11R6/lib/X11/doc (viene con el paquete XFree86-3.1-doc). Debe prestar especial atención al fichero README.Config, que es un tutorial sobre la configuración de XWindows.
o Diferentes "chipsets" de vídeo tendrán sus propios ficheros README en el directorio anterior (por ejemplo, README.Cirrus). Léase el que le corresponda.
o Las páginas de manual para XFree86.
o Las páginas de manual para XF86Config.
o Las páginas de manual para el servidor concreto que utilice (como XF86_SVGA o XF86_S3).

El fichero de configuración principal debe ser /usr/X11R6/lib/X11/XF86Config. Este fichero contiene información acerca del ratón, parámetros de la tarjeta gráfica, etc. El fichero XF86Config.ed es un ejemplo que incluye la distribución. Copie este fichero como XF86Config y modifíquelo para su sistema.
Las páginas de manual para XF86Config explican el formato del fichero con detalles. Lea ahora esas páginas si aun no lo ha hecho.
Le vamos a presentar un ejemplo de XF86Config. No tiene por que coincidir con el ejemplo que incluye la distribución, pero en todo caso tendrán estructura parecida.
3 Observe que el formato del fichero puede cambiar algo entre versiones de XFree86. La información que le damos solo vale para la versión 3.1.
3 Además, no debe limitarse a copiar este fichero e intentar probarlo en su sistema. Si lo hace, y, por error, envía a su monitor una frecuencia demasiado alta para él puede producir una avería. No seria el primer caso. Esto ha ocurrido especialmente con monitores de frecuencia fija. En definitiva, asegúrese de que su fichero XF86Config se corresponde con su hardware antes de intentar utilizarlo.
Cada sección del siguiente ejemplo de XF86Config se enmarca en un par de líneas Section <section-name>. . . EndSection. La primera parte del fichero es la sección de Ficheros, que tendrá el siguiente aspecto:

Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection

La línea RgbPath pone la ruta de acceso a la base de datos de colores RGB para X11R6, y cada línea FontPath pone rutas de acceso a directorios con fuentes X11. Por lo general no tendrá que modificar estas líneas. Tan solo debe comprobar que en los directorios correspondientes se encuentran los ficheros implicados (fuentes, etc.).
La siguiente sección es ServerFlags, que especifica algunos "flags" generales para el servidor. Por lo general la sección suele ir vacía.

Section "ServerFlags"
# Si quita el comentario siguiente, la llegada de una señal al
# provocara el volcado de su memoria. Esto puede dejar la consola en
# un estado inutilizable pero el volcado puede servirle en la depuración.
# NoTrapSignals

# Quitando este comentario se desactiva la secuencia <Crtl><Alt><BS>
# DontZap
EndSection

La siguiente sección es Keyboard. Su significado es claro.

Section "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
ServerNumLock
EndSection

Existen otras opciones. Vea su fichero XF86Config si desea modificar las opciones de teclado. Las que trae por defecto suelen funcionar bien en casi todos los sistemas.
La siguiente sección es Pointer, y especifica los parámetros para el ratón.

Section "Pointer"

Protocol "MouseSystems"
Device "/dev/mouse"

# Los dos parámetros siguientes solo son necesarios en algunos Logitech.
# BaudRate 9600
# SampleRate 150

# La siguiente opción es útil para ratones Microsoft de dos botones.
# Emulate3Buttons

# La siguiente opción es útil para algunos ratones con tres botones Logitech.
# ChordMiddle

EndSection

Le pueden interesar las opciones Protocol y Device. Protocol especifica el protocolo que utiliza su ratón (no se trata de su marca o modelo). Bajo Linux los protocolos validos son:

o BusMouse
o Logitech
o Microsoft
o MMSeries
o Mouseman
o MouseSystems
o PS/2
o MMHitTab

BusMouse es el que se usa para ratón Logitech en bus. Observar que los ratones antiguos de Logitech usan Logitech pero los más modernos usan Microsoft o Mouseman. Este es un caso en el que el protocolo no coincide con la marca.
Device especifica el dispositivo donde esta el ratón. En muchos sistemas Linux se encuentra en /dev/mouse, que suele ser un enlace al dispositivo verdadero (puerto serie como /dev/cua0, etc.). Por supuesto, debe asegurarse de que el dispositivo que corresponda este en /dev.La siguiente sección es Monitor, que especifica las características de su pantalla TRC. La sección Monitor de XF86Config puede no ser única, como sucede con otras secciones. Es útil si hay varios monitores conectados al sistema, o si se quiere usar el mismo XF86Config en diferentes configuraciones hardware. Por lo general, sin embargo, solo necesitara una sección Monitor.

Section "Monitor"
Identifier "CTX 5468 NI"

# !! Estos valores son validos solo para un monitor "CTX 5468 NI"
# No intente usarlo en su monitor si no es este mismo.

Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90

# Modos: Nombre reloj horiz vert

ModeLine "640x480" 25 640 664 760 800 480 491 493 525
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
EndSection

La línea Identifier se usa para dar a la sección un nombre. Puede ser cualquier cadena de caracteres y se usara después para referirse a ese monitor.
HorizSync es el valor de frecuencia de sincronismo horizontal valida, en KHz. Si tiene un monitor "multisync", puede tratarse de un rango (o diversos rangos separados por comas). Si se trata de un monitor de frecuencia fija, será un conjunto discreto de valores como el siguiente:

HorizSync 31.5, 35.2, 37.9, 35.5, 48.95

El manual de su monitor debería incluir estos datos en las especificaciones técnicas. Si no tiene esta información, contacte con el vendedor o fabricante para obtenerla. Por supuesto, hay otras fuentes de información.
VertRefresh especifica las frecuencias de refresco vertical validas (o sincronismo vertical), en Hz. Como HorizSync puede ser uno o más rangos o valores discretos. También deben indicarse en su manual.
Los dos parámetros anteriores solo se utilizan para comprobar que los modos gráficos pedidos van a ser tolerados por su monitor. Esos modos se especifican en las entradas Modeline que tienen el formato siguiente:

ModeLine <nombre> <reloj> <valores-horiz> <valores-vert>

<nombre> es un nombre cualquiera que le damos al modo. <reloj> es la frecuencia de reloj o "dot clock" asociada al modo. Se suele especificar siempre en Mhz, y es la frecuencia de envío de pixels al monitor para esa resolución. <valores-horiz> y <valores-vert> son cuatro números que especifican cuando el haz de electrones del monitor debe dispararse y cuando se envían los pulsos de sincronismo.
Se preguntara como determinar esos valores para su monitor. El fichero Videomodes.doc, incluido en la distribución de XFree86 describe en detalle como obtener los valores requeridos. En primer lugar, <reloj> debe corresponderse con un valor de los que pueda producir su tarjeta de vídeo. Por lo tanto solo usara modos con valores de reloj soportados.
En la distribución se incluyen dos ficheros que pueden darle los datos para Modeline de su monitor. Estos ficheros son modeDB.txt y Monitors, ambos en /usr/X11R6/lib/X11/doc.
Debería comenzar con valores para el estándar VESA, que la mayor parte de los monitores soportan. Estos valores están incluidos en modeDB.txt. En este fichero encontrara entradas como  

# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name clock horizontal timing vertical timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525

Esta es una temporización estándar VESA para modo 640x480. Utiliza un reloj de 25.175, que debe ser soportado por la tarjeta (esto lo veremos luego). Para incluir esta entrada en el fichero XF86Config usaría la línea

ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525

Observe que el argumento <nombre> (en este caso, "640x480") es una cadena de caracteres arbitraria, aunque se suele seguir la convención de indicar la resolución del modo.
Para cada Modeline indicado, el servidor comprobara que sus valores caen dentro de los rangos permitidos de frecuencias (especificados antes), anulando el modo si no ocurre así. Principalmente, el valor de reloj no debe ser mayor que el indicado en Bandwidth. Sin embargo, usar valores ligeramente superiores no suele dar problemas.
Si los tiempos estándares en VESA no le funcionan correctamente (lo sabrá cuando después los pruebe) mire los ficheros modeDB.txt y Monitors, que incluyen valores específicos para muchos modelos de monitores. Puede crear entradas Modeline a partir de lo que vea en estos ficheros.
Asegúrese de que solo usa valores validos en su monitor. Vea que muchos monitores de 14 o 15 pulgadas no soportan modos de alta resolución como 1024x768 con señales de reloj lentas. Esto significa que si no encuentra modos de alta resolución para su monitor en esos ficheros, no podrá usar dicha resolución.
Si se encuentra perdido, y no encuentra ningún modo que funcione en su monitor, puede seguir las instrucciones de VideoModes.doc, que le ayudaran a calcular las entradas ModeLine adecuadas a partir de las especificaciones que se digan en el manual de su monitor. El mismo fichero VideoModes.doc explica también otros aspectos del servidor de XFree86 como el formato de la directiva ModeLine.
Por ultimo, si obtiene valores para ModeLine que son aceptables pero no del todo correcto, puede modificarlos ligeramente para obtener el resultado deseado. Por ejemplo, si cuando ejecuta XFree86 la imagen se desplaza ligeramente, o parece girar, puede seguir las instrucciones de VideoModes.doc para intentar corregir esas deficiencias. Además, utilice también los propios controles del monitor.
Muchas veces es necesario ajustarlos después de cambiar de modo gráfico. Tener esos controles en la parte frontal del monitor le hará la vida más fácil.
3 Nunca debe usar valores de tiempo o de Modeline pensados para monitores diferentes al suyo. Si lo intenta hacer, y envía al monitor una frecuencia para la que no fue diseñado, puede producirle una avería.
La siguiente sección del fichero XF86Config es Device, que especifica los parámetros de su tarjeta gráfica. Por ejemplo,  

Section "Device"
Identifier "#9 GXE 64"

# Todavía nada; añadiremos los valores después.

EndSection

Esta sección establece las propiedades de su tarjeta gráfica. Identifier es una cadena de caracteres usada para identificar su tarjeta, cadena que usara para referirse a las características que en esta sección se detallen.
Inicialmente no necesita incluir nada mas a la sección Device que la identificación de la tarjeta. Esto es así pues usaremos el servidor X para probar las propiedades de su tarjeta, para incluirlas luego en esta sección. El servidor X es capaz de obtener el "chipset", "RAMDAC" y memoria RAM de su tarjeta.
Antes de hacer esto, sin embargo, necesitamos terminar el fichero XF86Config. La siguiente sección es Screen, que especifica que combinación monitor/tarjeta usar para un servidor concreto.

Section "Screen"
Driver "Accel"
Device "#9 GXE 64"
Monitor "CTX 5468 NI"
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection

La línea Driver indica que servidor X utiliza. Los valores validos son:

o Accel: Para servidores XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, y XF86_W32;
o SVGA: Para el servidor XF86_SVGA;
o VGA16: Para el servidor XF86_VGA16;
o VGA2: Para el servidor XF86_Mono;
o Mono: Para manejadores monocromáticos no VGA que se encuentran en los servidores XF86_Mono y XF86_VGA16.

Debe asegurarse de que /usr/X11R6/bin/X es un enlace simbólico al servidor que va a usar. La línea Device especifica el valor Identifier de la sección Device que corresponda a la tarjeta de vídeo que se va a usar con este servidor. Antes, hemos creado una sección Device con la línea  

Identifier "#9 GXE 64"

Así pues, utilizaremos "#9 GXE 64" en la línea Device de aquí.
De forma parecida, la línea Monitor especifica el nombre de la sección Monitor que se va a usar en este servidor. Aquí, "CTX 5468 NI" es el identificador Identifier utilizado en la sección Monitor vista antes.
Subsection "Display" define distintas características del XFree86 con su particular combinación de monitor y tarjeta gráfica. El fichero XF86Config describe todas las opciones en detalle. La mayoría no son necesarias para que el sistema funcione.
Las opciones que debería conocer son:

o Depth. Define el número de bits por pixel (o planos de color), que normalmente valdrá 8 (supone 256 colores). Para el servidor VGA16 se usara una profundidad de 4, y para el monocromo, una profundidad de 1. Si se utiliza una tarjeta acelerada con suficiente memoria, se puede subir la profundidad a 16, 24 o 32. Si le da problemas, vuelva a profundidad 8 e intente corregir el problema después.
o Modes. Es la lista de modos de vídeo que estarán entre los definidos con ModeLine para su monitor. Los nombres usados antes para identificarlos ("1024x768", etc.) se usaran ahora para expresar los modos de la siguiente manera:

Modes "1024x768" "800x600" "640x480"

De esta forma, XFree86 intentara arrancar en el primero de los modos. Una vez que ha arrancado, con las teclas |_ctrl_|-|_alt_|-|_numeric_+_| y |_ctrl_|-|_alt_|-|_numeric_-_| podrá cambiar a otro modo.
La mejor forma de empezar, cuando se esta configurando XFree86, es usar modos de baja resolución (como 640x480) que suelen funcionar siempre. Una vez que se tenga una configuración básica que va bien, puede pasarse a modificar XF86Config para soportar resoluciones mayores.
o Virtual. Pone el tamaño del área de trabajo virtual. XFree86 es capaz de usar la memoria sobrante de su tarjeta gráfica para extender el tamaño de su área de trabajo. Cuando mueve el ratón a extremos de la pantalla, vera como la pantalla se desplaza, accediendo así a toda el área virtual. Así pues, si usted trabaja con una resolución inferior, como 800x600 y pone un área de 1024x768 (propia para 1 Mbyte de DRAM y 8 bits por pixel) podrá usar un área de trabajo mas grande que la que cabe en pantalla.
El mecanismo Virtual resulta interesante para aprovechar toda la memoria de la tarjeta gráfica, pero es limitado. Si quiere usar un área de trabajo virtual, el autor recomienda usar las facilidades que al respecto dan gestores de ventanas como fvwm. El mecanismo aquí se implementa a base de ocultar ventanas, etc. en lugar de ocupar toda la memoria de la tarjeta.
Para mas detalle, vea las páginas de manual de fvwm, gestor de ventanas que suelen traer los sistemas Linux por defecto.
o ViewPort. Si usted utiliza la opción Virtual descrita antes, puede usar ViewPort para indicar en que coordenadas virtuales comenzar XFree86. Se suele usar ViewPort 0 0 que pone el área de trabajo en la esquina superior izquierda. Pero si no se indica se pondrá centrado, algo que quizás le interese mas.

Hay muchas otras opciones en esta sección; vea las páginas de manual para XF86Config para mas detalle. En la practica no son necesarias esas otras opciones para que funcione el sistema.

5.1.4 Introducción de los datos de la tarjeta gráfica
Anterior- Siguiente - Índice


Su fichero XF86Config esta ya casi listo para usar, aunque aun falta la información de su tarjeta gráfica. Lo que vamos a hacer ahora es usar el servidor X para obtener la información que falta, e introducirla en XF86Config.
A veces se puede encontrar esa información en los ficheros modeDB.txt, AccelCards y Devices, que se encuentran en /usr/X11R6/lib/X11/doc. Además, existen numerosos ficheros README para algunos "chipsets". Debe mirar esos ficheros para buscar su tarjeta y usar los valores que aparezcan en ellos (de reloj, tipo de "chipset" y otros) en la sección correspondiente de XF86Config. Si falta alguna información puede intentar obtenerla con el procedimiento siguiente.
En estos ejemplos vamos a ver como configuraríamos el sistema para una tarjeta #9 GXE 64, que usa el servidor XF86_S3. Es la tarjeta que utiliza el autor, aunque el procedimiento es igualmente aplicable a cualquier otra.
Lo primero que debe hacerse es determinar el "chipset" que lleva la tarjeta. Ejecutando /usr/X11R6/bin/SuperProbe lo averiguaremos, aunque también hay que conocer el nombre con el que el servidor X conoce a ese "chipset". Para conseguir esto último, ejecutar:

X -showconfig

Esto le dará los nombres de "chipsets" que conoce el servidor X (esto también se encuentra en las páginas de manual). Por ejemplo, con el servidor XF86_S3 obtendremos:

XFree86 Versión 3.1 / X Window System
(protocol Versión 11, revisión 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic

Así pues los nombres de "chipsets" que este servidor tiene son mmio_928 y s3_generic. En la página de manual para XF86_S3 encontrara la descripción de estos "chipsets" junto a algunas tarjetas que los utilizan. Para la #9 GXE 64 el "chipset" es mmio_928.
Si no conoce que "chipset" usar, el servidor X puede intentar averiguarlo. Para ello, ejecutar  

X -probeonly > /tmp/x.out 2>&1

si usa bash como shell. Si usa csh, intente:

X -probeonly &> /tmp/x.out

El comando anterior debe ejecutarse solo cuando no hay otras actividades en el sistema (otros usuarios, procesos, etc.) Este comando obtiene también los valores para los relojes y si el sistema esta cargado se calcularan incorrectamente.
Por ejemplo, esto es lo que sale para la tarjeta del autor:

XFree86 Versión 3.1 / X Window System
(protocol Versión 11, revisión 0, vendor release 6000)
Operating System: Linux
Configured drivers:
S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
mmio_928, s3_generic
algunas líneas borradas . . .
(--) S3: card type: 386/486 localbus
(--) S3: chipset: 864 rev. 0
(--) S3: chipset driver: mmio_928

Aquí vemos los dos "chipsets" validos (mmio_928 y s3_generic) del servidor. Este probo ambos y determino que la tarjeta usa el "chipset" mmio_928.
En la sección Device del fichero XF86Config, añada una línea Chipset con el nombre obtenido antes. Por ejemplo,

Section "Device"
# Este es el identificador que le pusimos...
Identifier "#9 GXE 64"
# Añadimos esta línea:
Chipset "mmio_928"
EndSection

Ahora hay que determinar las frecuencias de reloj. Cada una de estas es simplemente la frecuencia con la que la tarjeta puede enviar pixeles al monitor. Como ya sabemos, estas frecuencias dependen de la resolución usada.
En primer lugar debe echar un vistazo a los ficheros mencionados antes (como modeDB.txt) y ver si los relojes de su tarjeta están listados. En su caso vera una lista de 8o 16 valores, todos ellos dados en Mhz. Por ejemplo, en modeDB.txt encontramos lo siguiente para la tarjeta Cardinal ET4000:

# chip ram virtual clocks default-mode flags
ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"

Como vemos, los relojes son 25, 28, 38, 36, 40, 45, 32 y 0 MHz.
En la sección Devices del fichero XF86Config debe añadir una línea Clocks como la siguiente (para nuestro ejemplo):

Clocks 25 28 38 36 40 45 32 0

Esto estará en la sección Devices, después de Chipset. Observe la importancia del orden de los relojes. No los cambie.
Si no encuentra las frecuencias de reloj para su tarjeta en los ficheros, el servidor X también los puede intentar averiguar. Con el comando ya visto X -probeonly obtendrá una línea como la siguiente:

(--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00

Con esta línea podemos hacer la línea Clocks en XF86Config. Si hay muchos valores y no caben en una línea puede crear mas líneas Clock, pero respete el orden de todas formas.
Asegúrese de que no hay ninguna línea Clocks en la sección Devices cuando use el comando X -probeonly puesto que en este caso no hará pruebas reales de los relojes, sino que probara solo los valores que haya en el fichero XF86Config.
Observe que algunas tarjetas aceleradas tienen chip de reloj programable (vea las páginas de manual de XF86_Accel para mas detalle. Estas son aplicables a las tarjetas S3, AGX y XGA-2).
Este chip viene a permitir que el servidor X diga a la tarjeta que relojes usar. Si este es el caso, no debe haber una lista de valores validos de reloj en el fichero XF86Config. Si no, la lista de valores de reloj que devuelve X -probeonly contendrá solo uno o dos valores discretos de reloj, dejando el resto copiados de los primeros o a cero.
Para placas con reloj programable, deberá usar una línea ClockChip en lugar de Clocks. Esta línea da el nombre del chip correspondiente a la tarjeta. Esos nombres se encuentran en las páginas de manual. Por ejemplo, en el fichero README.S3, veremos que diversas tarjetas S3-864 utilizan un chip "ICD2061A", y deberá existir la línea

ClockChip "icd2061a"

en lugar de la línea Clocks en el fichero XF86Config. Como sucede con Clocks, la línea formara parte de la sección Devices e ira a continuación de Chipset.
De manera similar, algunas tarjetas aceleradas requieren que se especifique el tipo de chip RAM-DAC del fichero XF86Config, con una línea Ramdac. Esta opción se describe en XF86_Accel. Normalmente, el servidor X ya se ocupa de tomar un valor correcto para el RAMDAC.
Algunas tarjetas gráficas necesitan que se especifiquen diversas opciones en la sección Devices. Estas opciones se describen en ficheros como README.cirrus o páginas de manual, y se integran en una línea Option del fichero XF86Config. Por ejemplo, una tarjeta #9 GXE 64 necesita dos opciones:

Option "number_nine"
Option "dac_8_bit"

Normalmente, el servidor X funcionara sin las opciones, pero conviene ponerlas para aumentar el rendimiento de la tarjeta. Hay muchas opciones y muchas particulares de cada tarjeta. Para utilizarlas, mire los ficheros del directorio /usr/X11R6/lib/X11/doc.
Así pues, cuando haya acabado, tendrá una sección Devices como la siguiente:

Section "Device"
# Solo valida para la tarjeta #9 GXE 64 !
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option "number_nine"
Option "dac_8_bit"
EndSection

Observe que en muchos casos se requiere una línea Clocks en lugar de Clockchip, etc. Lo anterior es solo un ejemplo.
Hay otras opciones para la sección Devices. Los detalles los vera en las páginas de manual correspondientes.

5.1.5 Funcionamiento de XFree86
Anterior- Siguiente - Índice


Con el fichero XF86Config terminado, puede probar ya el servidor X. En primer lugar, debe asegurarse de que /usr/X11R6/bin esta en el path.
El comando para iniciar XFree86 es

startx

Que es un programa que llama a xinit (en el caso de que usted haya usado xinit para iniciar XWindows en otros sistemas).
Este comando arrancara el servidor X y ejecutara los comandos encontrados en el fichero
.xinitrc de su directorio home. .xinitrc es un shell-script que contiene los clientes a ejecutar. Si no existe se buscara un equivalente en /usr/X11R6/lib/X11/xinit/xinitrc. Un típico .xinitrc seria el siguiente:

#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec twm

Este script arrancara dos clientes xterm y un oclock, y pondrá el fondo (root window) en color midnightblue. Entonces arrancara el gestor de ventanas twm. Observe que twm se ejecuta con la sentencia exec. Esto quiere decir que el proceso de xinit será reemplazado por twm. Por lo tanto, al ordenar la terminación de twm desde los menús el servidor X también terminara. Para hacerlo pulse el botón 1 del ratón sobre el fondo de la pantalla (no en las ventanas) y vera un menú con la opción de terminar twm entre otras.
Asegúrese que el ultimo comando de .xinitrc se arranca con exec, y no se le pone en background (con el "&"). Si no, el servidor X terminara tan pronto se arranquen los clientes de .xinitrc.
Otra forma de salir de X es pulsando a la vez |_ctrl_-||_alt_|-|_backspace_|. Esto detendrá el servidor X y se saldrá del sistema XWindows.
Lo anterior es una configuración de desktop muy sencilla. Hay otros muchos programas X disponibles que pueden especificarse en el fichero .xinitrc. Por ejemplo, puede usar fvwm en lugar de twm, para obtener un desktop virtual, posibilidad de personalizar colores, fuentes, ventanas...
En principio puede parecer muy simple el sistema X Windows, aunque con las personalizaciones se descubre lo potente que es. Si usted es nuevo en X Windows, le sugerimos que consulte libros como "The X Window System: A User's Guide." Aquí se tratan los temas de X Windows en profundidad, que se completaran con las páginas de manual para xterm, twm, etc.

5.1.6 Ejecución con problemas
Anterior- Siguiente - Índice


No siempre le saldrá perfecta la primera prueba con el servidor X. Suele venir causado por un error en el fichero XF86Config. Normalmente, los valores de reloj del monitor o de la tarjeta han sido mal puestos. Si su pantalla "gira" o los lados están difusos, se trata de un error en los valores para los relojes del monitor. Otra fuente de problemas es especificar mal el "chipset" de la tarjeta de vídeo así como otras opciones de la sección Device de XF86Config. Compruebe también que el nombre /usr/X11R6/bin/X es un enlace simbólico al servidor X que quiera usar.
Si todo lo anterior no le sirve, prueba a iniciar X en modo "bare", o sea, con el comando:

X > /tmp/x.out 2>&1

A continuación puede matar el servidor X (con la combinación de teclas |_ctrl_-||_alt_|-|_backspace_| y ver el contenido del fichero /tmp/x.out, en el que el servidor X habrá puesto todo tipo de avisos y errores, como los correspondientes a valores de reloj no encontrados en la tarjeta, etc.
El fichero VideoModes.doc incluido en la distribución contiene muchas ayudas para calcular los valores para su fichero XF86Config.
Recuerde que puede conmutar entre modos de vídeo con las combinaciones de teclas |_ctrl_|-|_alt_|-|_numeric_+_| y |_ctrl_|-|_alt_|-|_numeric_-_|. Si la máxima resolución no sale bien, es porque alguna parte del fichero XF86Config se ha puesto mal.
Compruebe también los mandos de tamaño de imagen del monitor. Muchas veces hay que retocarlos cuando se entra en X. Por ejemplo, si la pantalla se ve desplazada, actúe sobre el mando correspondiente.
En el grupo de news USENET comp.windows.x.i386unix encontrara mas ayuda sobre la utilización de XFree86. Puede ser una buena idea comprobar si en el grupo alguien ha enviado mensajes con configuraciones para un sistema similar al suyo.

5.2 Acceso a ficheros MS-DOS
Anterior- Siguiente - Índice

Si, por alguna extraña razón, necesitara acceder a ficheros MS-DOS, es fácil de hacer en Linux. La forma habitual de acceder a los ficheros MS-DOS es montar una partición o disquete con un sistema MSDOS, permitiéndole así que acceda a los ficheros a través del sistema de ficheros de Linux. Por ejemplo, si tiene un disquete MSDOS en /dev/fd0, el comando

# mount -t msdos /dev/fd0 /mnt

lo montara en /mnt. Vea la sección 4.6.2 para mas información acerca del montaje de disquetes.
También puede montar una partición del disco duro con MS-DOS. Si se encuentra en /dev/hda1, el comando

# mount -t msdos /dev/hda1 /mnt

lo montara. Asegúrese de desmontar (umount) la partición o el disquete cuando ya no los necesite.
También puede pedir a Linux que monte las particiones DOS durante el arranque, para lo que se usa /etc/fstab. Vea la sección 4.8 para mas detalle. Por ejemplo, la siguiente línea de /etc/fstab provocara el montaje de la partición de DOS en el directorio /dos:

/dev/hda1 /dos msdos defaults

Las Mtools pueden usarse también para acceder a ficheros DOS en disquetes, con comandos mcd, mdir, mcopy, etc. Vea las páginas de manual correspondientes.
Una cosa es acceder a ficheros MS-DOS. Otra es ejecutarlos en Linux. Existe un emulador de DOS bajo Linux en desarrollo, que se puede encontrar fácilmente incluso en algunas distribuciones como SLS. El emulador se porta bien para bastantes aplicaciones, incluyendo Wordperfect. Pero dado lo diferentes que son Linux y MS-DOS, la potencia del emulador siempre estará limitada.
Además, se esta trabajando en un emulador de Microsoft Windows para funcionar en X Windows. Vea los grupos de news y servidores de FTP para mas información.

5.3 Redes con TCP/IP
Anterior- Siguiente - Índice

Linux soporta una implementación completa de los protocolos de red TCP/IP (Transport Control Protocol/Internet Protocol). TCP/IP ha resultado ser hasta ahora el mejor mecanismo de comunicación entre ordenadores de todo el mundo. Con Linux y una tarjeta Ethernet podrá introducir su máquina en una red local o (si se tienen las conexiones apropiadas) a InterNet, la red TCP/IP de ámbito mundial.
Poner en marcha una pequeña red local de maquinas Unix es fácil. Solo requiere una tarjeta Ethernet en cada máquina y los cables adecuados así como hardware accesorio (terminadores, etc). Y si su universidad o empresa tiene acceso a InterNet, podrá insertar su máquina Linux en esta red.
La implementación actual de TCP/IP y los protocolos relacionados para Linux se llama "NET-2". No tiene que ver con la versión NET-2 para BSD. En realidad, se refiere a que es la segunda implementación que se hace para Linux.
NET-2 de Linux soporta también SLIP (Serial Line Internet Protocol). SLIP le permitirá acceder a InterNet con un módem. Si su universidad o empresa proporciona accesos por SLIP, podrá llamar desde su casa al servidor SLIP y conectarse así a la Red. Recíprocamente, si posee en Linux una tarjeta de Red y un módem podrá configurar un servidor SLIP en el.
Para obtener mas información de configuración de TCP/IP en Linux, le animamos a que lea el documento NET-2 HOWTO, disponible mediante FTP anónimo en sunsite.unc.edu. Se trata de una guía completa de configuración, que incluye conexiones mediante Ethernet y SLIP. Otro documento relacionado es el Ethernet HOWTO, que se centra en como configurar diversos modelos de tarjetas Ethernet. Además, en el Proyecto de Documentación de Linux, al que pertenece este libro, se ha desarrollado otro sobre este tema, Linux Network Administrator's Guide. Vea, para mas información el apéndice A.
Encontrara mas ayuda en el libro TCP/IP Network Administration, de Craig Hunt. Contiene información completa acerca del uso y la configuración de TCP/IP en maquinas Unix.

5.3.1 Hardware requerido
Anterior- Siguiente - Índice

Puede utilizar el TCP/IP para Linux sin hardware de red. Así podrá usar el dispositivo "loopback" para conectarse con usted mismo. Aunque parezca poco serio, hay algunos programas que necesitan conexiones de red "loopback" para funcionar.
Sin embargo, si quiere usar Linux en una red TCP/IP Ethernet, necesitara una de las tarjetas soportadas: 3com 3c503, 3c503/16; Novell NE1000, NE2000; Western Digital WD8003, WD8013; Hewlett Packard HP27245, HP27247, HP27250.
Se ha comprobado que también funcionan las siguientes tarjetas clónicas:
Clonicas de WD-80x3:
LANNET LEC-45; clonicas de NE2000: Alta Combo, Artisoft LANtastic AE-2, Asante Etherpak 2001/2003, D-Link Ethernet II, LTC E-NET/16 P/N 8300-200-002, Network Solutions HE-203, SVEC 4 Dimension Ethernet, 4-Dimension FD0490 EtherBoard 16, D-Link DE-600 y SMC Elite 16.
Sobre este tema encontrara mas información en el documento Ethernet HOWTO.
Linux también funciona con SLIP, que permite acceder a la red InterNet por teléfono. En este caso, necesitara un módem compatible con el servidor SLIP. Muchos servidores requieren módems de alta velocidad, a 14400 bits por segundo (norma V.32bis).

5.3.2 Configuración de TCP/IP
Anterior- Siguiente - Índice

En esta sección intentaremos explicar como configurar una conexión TCP/IP con Ethernet. Nótese que este método funcionara en muchos sistemas, pero no siempre. Nuestra explicación debería ser suficiente para aclararle el camino en la configuración de red en su máquina, pero hay además otros detalles que no mencionaremos aquí por su extensión. Le aconsejamos que consulte los documentos Linux Network Administrator's Guide y NET-2 HOWTO para mas informacion.3
En primer lugar, vamos a asumir que su sistema Linux ha sido instalado con el software TCP/IP. Esto incluye clientes como telnet y ftp, comandos de administración como ifconfig y route (que suelen estar en /etc) y ficheros de configuración de red, como /etc/hosts. Los documentos adicionales que hemos mencionado explican como instalar todo ese software si aun no lo ha hecho.
También vamos a suponer que el núcleo esta compilado con el soporte TCP/IP. Vea la sección 4.7 para informarse de como recompilar el núcleo. Para incluir el soporte de red, tendrá que contestar afirmativamente a la pregunta correspondiente que se le hará durante el comando make config.
Una vez hecho esto, se deben modificar los ficheros de configuración que usa NET-2. Esta parte suele ser bastante simple, pero suele haber bastante desacuerdo entre las diferentes distribuciones de Linux. Los ficheros pueden estar en /etc o en /usr/etc o incluso /usr/etc/inet. En el peor caso puede usar el comando find para localizar los ficheros. A veces los ficheros están también repartidos por varios directorios y no en uno solo.
Lo siguiente es fundamentalmente aplicable a conexiones Ethernet. Si lo que va a usar es SLIP, léase esta sección para ir entendiendo los conceptos y luego vea las instrucciones especificas para SLIP.

5.3.2.1 La configuración de red

Antes de configurar su sistema con TCP/IP necesita conocer cierta información sobre la red. En muchos casos, el administrador local se la proporcionara.

o Dirección IP. Es la dirección única de cada máquina, formada por números separados por puntos. Por ejemplo, 128.253.153.54. El administrador de red le dará este número. Si esta configurando el modo "loopback" únicamente (esto es, no tiene conexión a la red mediante SLIP o Ethernet) su dirección IP será la 127.0.0.1.
o Mascara de red ("netmask"). Es un número similar a la dirección IP, que determina que parte de la dirección IP determina el número de subred, y que parte especifica el host en la subred (si todo esto no lo comprende bien, le sugerimos que lea documentos sobre administración de red).
La mascara de red es un patrón de bits, que al ser superpuesto a una dirección de la red, le dirá en que subred se encuentra esa dirección. Esto es muy importante para el rutado y, si usted nota que puede comunicar con gente de redes externas pero no con gente de su misma red, es un buen motivo para pensar que tiene mal puesta la mascara.

_____________________________________________
3 Algunas de las cosas que aquí se exponen proceden del documento NET-2 HOWTO de Terry Dawson y Matt Welsh.

Los administradores de la subred habrán seleccionado las mascaras en tiempo de diseño de la red, y serán quienes deban darle esa información. Muchas subredes son de "clase C" y usan la mascara 255.255.255.0. Otras subredes de "clase B" usan la 255.255.0.0. El código de NET-2 seleccionara automaticamente una mascara que asume que no hay subred.
Todo esto debe aplicarse también a la configuración "loopback". Dado que la dirección "loop-back" es siempre la 127.0.0.1, las mascara será la 255.0.0.0. Puede especificarla de forma explícita o dejar que el sistema la ponga por defecto.
o Dirección de red. Es el resultado de la operación lógica AND entre su dirección IP y la mascara. Por ejemplo, si su dirección IP es la 128.253.154.32 y la mascara es 255.255.255.0, su dirección de red será la 128.253.154.0. Con una mascara 255.255.0.0, la dirección seria 128.253.0.0. Si utiliza solo la configuración en "loopback", la dirección de red no existe.
o Dirección de "broadcast". Se utiliza para lanzar paquetes que deben recibir todas las maquinas de la subred. Así pues, si el número de host de la subred se obtiene mediante el último octeto de la dirección IP (o sea, la mascara es la 255.255.255.0), su dirección de "broadcast" será su dirección de red operado en OR con 0.0.0.255.
Por ejemplo, si su número IP es el 128.253.154.32, y la mascara es la 255.255.255.0, la dirección de "broadcast" seria la 128.253.154.255.
Observe que por motivos históricos, algunas subredes están configuradas para usar la dirección de red como dirección de "broadcast". Si tiene dudas, consulte con el administrador de la red.
En muchos casos, bastara con copiar la configuración que tengan otras maquinas de la subred y cambiar únicamente el valor IP, por supuesto.
La dirección "broadcast" tampoco tiene utilidad en una configuración en "loopback".
o Dirección de pasarela. Se trata de la dirección de la máquina que va a ser su pasarela a otras maquinas que no estén en su misma subred. Muchas veces es una dirección IP como la suya, solo que terminada en ".1". Por ejemplo, si su dirección IP es la 128.253.154.32, la de la pasarela podría ser la 128.253.154.1. El administrador se la dirá en cualquier caso.
En ocasiones puede tener varias pasarelas. Una pasarela o gateway es simplemente una máquina que se encuentra a la vez en dos subredes (tiene una dirección IP por cada una), y reparte los paquetes entre ellas. En muchas subredes existe una sola pasarela para comunicarse con las redes externas, pero en otras hay varias, una para cada subred adicional.
Si su red esta aislada de otras, o su máquina se encuentra en configuración "loopback", no necesitara dirección de pasarela.
o Dirección del servidor de nombres. Suele existir un servidor que traduce nombres de maquinas a direcciones IP. El administrador le facilitara su dirección. Puede usted mismo ejecutar en su máquina un servidor de nombres, el programa named, en cuyo caso su dirección será la 127.0.0.1. A menos que realmente lo necesite, le recomendamos que procure siempre usar otra máquina distinta. La configuración de named es otro tema; y lo primordial aquí es que comunique con la red. Puede tratar estos asuntos mas tarde.
En una configuración "loopback" no es necesario este dato.
Nota para usuarios de SLIP: La información anterior puede necesitarla o no. Cuando use SLIP su dirección IP será determinada de dos formas: bien "estática", lo que significa que será siempre la misma, o bien "dinámica", lo que indica que le será asignada una de las disponibles cada vez que conecte con el servidor SLIP. En la sección sobre SLIP ampliaremos el tema.
NET-2 implementa rutado completo, múltiples rutas, subredes... Lo anterior describe las configuraciones mas básicas. Pero la suya puede ser diferente: cuando tenga alguna duda, consulte al administrador de la red, y eche un vistazo a las páginas del manual para route e ifconfig. La configuración completa de redes TCP/IP supera ampliamente las intenciones de este libro, y con lo anterior solo pretendemos posibilitar que todo el mundo pueda poner en marcha su sistema en una red ya configurada.

5.3.2.2 Los ficheros de inicio rc para trabajo en redes

Los ficheros rc son shell scripts que se ejecutan durante el arranque del sistema para configurarlo.
Son ejecutados por el proceso init, y ponen en marcha los demonios basicos como sendmail o cron y además configuran parámetros de la red como la dirección IP y el nombre del host. Estos scripts se suelen encontrar en /etc/rc.d o en /etc.
Lo que vamos a hacer aquí es describir los ficheros rc que configuran TCP/IP. En Linux son dos: rc.inet1 y rc.inet2. El primero configura parámetros basicos como direcciones IP e información de rutado. El segundo lanza los demonios TCP/IP, principalmente inetd, quien se encargara de lanzar cuando haga falta los telnetd y demas.
En muchos sistemas se juntan los dos ficheros en uno, el rc.inet o rc.net. No tiene importancia el nombre, siempre que se ejecuten en el momento adecuado durante el arranque. Para conseguirlo, init tiene que saberlo, y para ello existen entradas especificas en el fichero inittab. En el peor caso tendria usted que crear las entradas para rc.inet1 y rc.inet2 en dicho fichero.
Como hemos dicho, rc.inet1 configura los parámetros basicos de red. Esto incluye el número IP y dirección de red, y la tabla de rutado. Estas tablas se usan para rutar los datagramas entrantes y salientes de otras maquinas. Lo mas simple es tener tres rutas: una para enviar paquetes a su propia máquina, otra para enviarlos a otra máquina de la subred y una tercera para enviarlos a maquinas de otras subredes (a través de una pasarela). Para configurar esto se usan los programas ifconfig y route, programas que suelen estar en /etc.
ifconfig se utiliza para configurar el dispositivo interfaz de red con los parametros que necesita, como la dirección IP, la mascara, dirección de broadcast y otros. route, por su lado, se utiliza para crear o modificar entradas de la tabla de rutado.
Para muchas configuraciones, el siguiente rc.inet1 puede valer, aunque, por supuesto, necesitara poner sus propias direcciones IP y demas.

#!/bin/sh
# /etc/rc.d/rc.inet1 -- Configuracion de TCP/IP

# Configuracion del dispositivo 'loopback'
HOSTNAME=`hostname`

/etc/ifconfig lo 127.0.0.1 # utiliza por defecto la mascara 255.0.0.0
/etc/route add 127.0.0.1 # una ruta apunta al dispositivo 'loopback'

# Configuracion del dispositivo ethernet. Si solo se usa el 'loopback',
# comentar las lineas siguientes.

# EDITELO con sus propios datos.
IPADDR="128.253.154.32" # PONGA aqui su dirección IP
NETMASK="255.255.255.0" # PONGA aqui su mascara de red
NETWORK="128.253.154.0" # PONGA aqui su dirección de red
BROADCAST="128.253.154.255" # PONGA aqui su dirección 'broadcast' si
# la tiene. Si no, elimine la linea.
GATEWAY="128.253.154.1" # PONGA aqui su dirección de pasarela

/etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}

# Si no tiene dirección de 'broadcast', ponga la anterior linea asi:
# /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK}

/etc/route add ${NETWORK}

# Lo que sigue solo hace falta si hay pasarela, o sea, si su subred esta
# conectada a otra red.
/etc/route add default gw ${GATEWAY} metric 1

# Fin de la configuracion de ethernet

Quizas tenga que estudiarse un poco mas el tema para su instalacion particular, aunque en la mayor parte de los casos el fichero anterior sera suficiente.
rc.inet2 arranca servidores usados por TCP/IP. El mas importante es inetd, que queda en segundo plano y escucha por varios puertos de la red. Cuando una máquina intenta conectarse por uno de ellos (por ejemplo, por el de telnet), inetd envia una copia del servidor correspondiente (en este caso, in.telnetd) para que controle el puerto afectado. Esto es mejor que mantener en ejecucion todos los servidores de red necesarios (multiples copias de in.telnetd, in.ftpd y demas).
inetd los arranca conforme se van necesitando.
Pero en rc.inet2 se arrancan también otros demonios. syslogd se ocupa de acumular los mensajes generados por el nucleo y diversas aplicaciones y tratarlos segun diga el fichero /etc/syslogd.conf (guardarlos en ficheros, sacarlos por consola,. . . ). routed se ocupa de la información de rutado dinamica. Cuando su sistema intenta enviar paquetes a otra red, puede requerir nuevas entradas en las tablas de rutado, que routed trata sin necesidad de intervencion del usuario.
El ejemplo siguiente solo arranca un número minimo de servidores. Existen otros que pueden interesarle, como el NFS. Cuando instale TCP/IP en su sistema, es mejor empezar con una configuracion sencilla y luego complicarla segun sus necesidades.
Observe que en el fichero siguiente se asume que los servidores de red se encuentran en /etc, pero pueden estar en otro sitio (en /sbin, por ejemplo).

#! /bin/sh
# Ejemplo de /etc/rc.d/rc.inet2

# Arrancar syslogd
if [ -f /etc/syslogd ]
then
/etc/syslogd
fi

# Arrancar inetd
if [ -f /etc/inetd ]
then
/etc/inetd
fi

# Arrancar routed
if [ -f /etc/routed ]
then
/etc/routed -q
fi

# Hecho!

Otro servidor que puede interesarle es named, servidor de nombres, que traducira nombres (locales) a direcciones IP y viceversa. Si no hay servidor de nombres en su subred o quiere proporcionar nombres nuevos a la misma, necesitara arrancar named. Su configuracion es mas compleja y requiere cierto cuidado y planificacion, por lo que le recomendamos consultar bibliografia especifica. Sin embargo, no es habitual tener que instalar un servidor de nombres en su sistema.

5.3.2.3 /etc/hosts

/etc/hosts lleva una lista de direcciones IP y nombres de maquinas que les corresponden. En general, /etc/hosts solo contiene entradas para su máquina y quizas alguna otra "importante", como servidores de nombres o pasarelas. Su servidor de nombres local proporciona a otras maquinas traduccion automatica del nombre de su host a su dirección IP.
Por ejemplo, si su máquina es loomer.vpizza.com con la dirección IP 128.253.154.32, su /etc/hosts seria como este:

127.0.0.1 localhost
128.253.154.32 loomer.vpizza.com loomer

Si solo usa el "loopback", la unica linea necesaria es la que tiene el número 127.0.0.1, añadiendo tras localhost el nombre de su máquina.

5.3.2.4 /etc/networks

El fichero /etc/networks tiene direcciones de su red y otras, y es usado por el comando route. Permite dar nombre a las redes.
Cada subred que quiera añadir a route debe aparecer en /etc/networks.
Por ejemplo,

default 0.0.0.0 # rutado por defecto - obligatorio
loopnet 127.0.0.0 # red de 'loopback' - obligatorio
mynet 128.253.154.0 # Ponga aqui su dirección de red

5.3.2.5 /etc/host.conf

Este fichero dice a su sistema como resolver los nombres de los hosts. Debe contener dos lineas:

order hosts,bind
multi on

Estas lineas indican a los mecanismos de resolucion que empiezen buscando en el fichero /etc/hosts y luego pregunten al servidor de nombres, si existe. La entrada multi permite que para un nombre de máquina haya varias direcciones IP en /etc/hosts.

5.3.2.6 /etc/resolv.conf

En este fichero se configura el mecanismo de resolucion, especificando la dirección del servidor de nombres y el nombre del dominio de su máquina. El dominio es como un nombre de host "mutilado".
Por ejemplo, si su máquina se llama loomer.vpizza.com, el dominio sera vpizza.com. Como fichero /etc/resolv.conf de ejemplo, veremos el caso de la máquina goober.norelco.com cuyo servidor de nombres es el 127.253.154.5:

domain norelco.com
nameserver 127.253.154.5

Con lineas nameserver adicionales podra especificar la existencia de varios servidores de nombres.

5.3.2.7 Ajuste del nombre de su host

Para activar el nombre de su host debe usar el comando hostname. Esto suele hacerse en un fichero como /etc/rc.local. Busque en sus ficheros rc y busque una llamada a hostname como la siguiente:

/bin/hostname loomer.vpizza.com

Vea que hay que especificar el nombre completo (dominio incluido).

5.3.2.8 Problemas con la configuracion

Una vez que haya preparado los ficheros anteriores, habra que reiniciar Linux para que reconozca las nuevas configuraciones. Luego tendra que hacer pruebas, para las que lo mas indicado es probar aspectos individuales de la red y no tratar de empezar, por ejemplo, lanzando un proceso Mosaic con una conexion X.
Con el comando netstat puede ver las tablas de rutado. Esta suele ser la principal fuente de problemas. En la página del manual para este comando encontrara la sintaxis adecuada. Para comprobar que funciona su conexión, le sugerimos probar un cliente como telnet para ver si puede conectarse a maquinas de su subred y de otras redes. Esto puede ponerle sobre la pista del problema.
Por ejemplo, si puede conectarse a maquinas de otras subredes pero no de la suya propia, puede tratarse de un problema con la mascara de red o las tablas de rutado. Ejecutando route como root podrá jugar directamente con las entradas de la tabla.
Para hacer estas pruebas de conectividad, utilice direcciones IP y no nombres. Así, si tiene problemas para ejecutar

$ telnet shoop.vpizza.com

la causa puede ser una configuración incorrecta del servidor de nombres. Si funciona usando la dirección IP, se puede casi asegurar que el resto de la configuración esta bien hecha. Solo falta que funcione bien el servicio de nombres (probablemente haya que especificar correctamente la dirección del servidor de nombres).
La depuración de configuraciones de red puede ser tarea difícil, y no podemos tratarla aquí. Le sugerimos, si no consigue otra ayuda, que consulte el libro Linux Network Administrator's Guide de esta misma serie.

5.3.3 Configuración de SLIP
Anterior- Siguiente - Índice

Con SLIP (Serial Line Internet Protocol) usted puede conectarse a una red TCP/IP mediante una línea serie, como puede ser un módem o una línea dedicada asíncrona. Por supuesto, para usar SLIP tiene que tener acceso a un servidor SLIP. Muchas empresas y universidades proporcionan acceso por poco dinero.
Podemos destacar dos programas relacionados con SLIP: dip y slattach. Ambos se usan para iniciar una conexión SLIP y por lo tanto son necesarios. No es suficiente con llamar al servidor SLIP con programas como kermit y después usar los comandos ifconfig y route. Esto se debe a que dip y slattach realizan una llamada especial ioctl() para convertir el control de un dispositivo serie a la interfaz de SLIP.
Con dip puede llamarse a un servidor SLIP, hacer ciertas negociaciones de entrada con el mismo (intercambio de usuario y password, por ejemplo) y después iniciar la conexión SLIP. Por su lado, slattach se limita prácticamente a modificar la línea serie para SLIP, por lo que esta indicado para líneas dedicadas que no requieren interacción con el módem o similar. Casi todo el mundo, sin embargo, usa dip.
Con dip también puede configurar su sistema como servidor SLIP, permitiendo a otras maquinas conectarse a la red a través de su módem y su conexión Ethernet. Vea los manuales en línea de dip para mas información.
A SLIP se le llama conexión "punto a punto" (point-to-point) pues a ambos lados de la línea existen solo las dos maquinas involucradas (no como sucede en una ethernet). Esta idea se generaliza y mejora con el protocolo PPP (point-to-point protocol) que también se ha portado a Linux. Cuando inicia una conexión al servidor SLIP, se le asignara una dirección IP, bien de forma "estática" (su dirección IP es siempre la misma) o "dinámica" (su dirección puede ser diferente de un día para otro). Por lo general, los valores de la dirección y pasarela asignados serán impresos por el servidor SLIP al conectarse. El programa dip es capaz de capturar esos valores y configurar su sistema para adaptarse a ellos.
Esencialmente, configurar una conexión SLIP es como configurar la conexión en "loopback" o con ethernet. En las siguientes líneas le mostramos las diferencias. Es importante que vea lo que hemos explicado antes sobre configuración en general, y aplique ahora las modificaciones que le vamos a contar.

5.3.3.1 Conexiones SLIP con asignación de IP estática usando dip

Si su servidor SLIP le permite tener la dirección IP estática, lo mas adecuado es insertar la dirección y el nombre del host en el fichero /etc/hosts. Además, debe configurar los ficheros rc.inet2, hosts.conf y resolv.conf como se ha dicho antes.
En el fichero rc.inet1 también tendrá que introducir cambios, ejecutando ifconfig y route
solo para el dispositivo "loopback", puesto que dip hará lo propio con el dispositivo SLIP. Pero si usa slattach si tendrá que incluir comandos ifconfig/route en rc.inet1 para el dispositivo SLIP (en breve veremos como).
El programa dip debería configurar sus tablas de rutado para la conexión SLIP. Sin embargo, puede no hacerlo bien, y tendrá que corregirlo ejecutando por su cuenta ifconfig o route cuando se haya conectado. Quizás le convenga entonces escribirse un shell script para hacerlo automáticamente. En muchos casos, la pasarela es el propio servidor SLIP. De todas formas, el comando dip puede deducirlo de la información que envía el servidor al conectarse.
Puede que necesite el argumento pointopoint en ifconfig si ve que dip no lo configura bien. Por ejemplo, si la dirección del servidor SLIP es 128.253.154.2 y la suya es 128.253.154.32, el comando a ejecutar (como root) podría ser:

ifconfig sl0 128.253.154.32 pointopoint 128.253.154.2

tras conectar con dip. La documentación en línea de este comando le será útil.
Observe que los dispositivos SLIP que se usan en ifconfig y route son sl0, sl1, etc. (y no como en ethernet, que es eth0, eth1, etc.)
En la sección posterior 5.3.4 le explicaremos como configurar dip para conectarse a un servidor SLIP.

5.3.3.2 Conexiones SLIP con asignación de IP estática usando slattach

Si tiene una línea dedicada o un cable conectado directamente al servidor SLIP, no necesitara usar dip para iniciar la conexión. En su lugar puede usar slattach.
En este caso, el fichero /etc/rc.inet1 puede quedar como sigue:

#!/bin/sh
IPADDR="128.253.154.32" # Ponga aquí su dirección IP
REMADDR="128.253.154.2" # Ponga aquí la del servidor de SLIP

# Modifique lo siguiente para su dispositivo serie
slattach -p cslip -s 19200 /dev/ttyS0
/etc/ifconfig sl0 $IPADDR pointopoint $REMADDR up
/etc/route add default gw $REMADDR

slattach asigna el primer dispositivo SLIP disponible (sl0, etc.) a la línea serie especificada.
Observe que el primer parámetro de slattach es el protocolo SLIP a utilizar. Actualmente solo valen slip y cslip. El segundo es un SLIP que incluye compresión de las cabeceras de los datagramas. Por ello su elección habitual será cslip a menos que tenga algún problema con la conexión.
Si hay mas de un dispositivo SLIP tendrá que considerar algunas cosas respecto al rutado. Tiene que decidir que rutas añadir, y esto debe hacerse en función de la configuración de la red a la que se conecte. Le serán de ayuda los libros sobre configuración de TCP/IP, la documentación en línea del comando route, etc.

5.3.3.3 Conexiones SLIP con asignación de IP dinámica usando dip

Si el servidor SLIP le asigna dinámicamente las direcciones IP, no sabrá, evidentemente, su dirección IP antes de conectarse, con lo que no puede incluir esa información en /etc/hosts (aunque si incluirá la información de "loopback", 127.0.0.1).
Muchos servidores SLIP envían al terminal la dirección IP y la del propio servidor. Por ejemplo, un servidor SLIP podría decirle esto al conectarse: 

Your IP address is 128.253.154.44.
Server address is 128.253.154.2.

dip puede capturar ese texto y configurar así el sistema.
Vea la sección 5.3.3.1 para informarse sobre la configuración de los ficheros de TCP/IP con SLIP. Ahora le indicaremos como se configura SLIP para conectarse al servidor SLIP.

5.3.4 Utilización de dip
Anterior- Siguiente - Índice

dip puede facilitar el proceso de conexión a un servidor SLIP, pues se ocupara de entrar en el sistema remoto y configurar el dispositivo SLIP según la información recibida del servidor. Este programa es el mas indicado a menos que su línea sea dedicada.
Para utilizar dip tendrá que escribir un "script" que contendrá comandos para comunicar con el servidor SLIP durante la entrada en el sistema remoto. Por ejemplo, incluirá envío automático de usuario y password al servidor así como lo necesario para asignar la dirección IP.
Lo que sigue es un ejemplo de script para asignación dinámica de dirección IP. Para asignación estática puede poner al principio del script los valores fijos a $local y $remote (direcciones IP local y remota, respectivamente). Vea los manuales de dip para mas información.

main:
# MTU es 'Maximum Transfer Unit' o tamaño maximo de los paquetes
# transmitidos por el dispositivo SLIP. En muchos servidores este
# valor debe ser 1500 o 1506. Hable con el administrador de la red
# si no esta seguro.
get $mtu 1500

# Hacer que el rutado de SLIP sea el de su sistema por defecto.
default

# Elegir puerto serie y velocidad.
port cua03
speed 38400

# Reiniciar el modem y la linea del terminal. Si le da problemas,
# comente la linea.
reset

# Ponga aqui su cadena de inicio del modem.
send ATT&C1&D2\\N3&Q5%M3%C1N1W1L1S48=7\r
wait OK 2
if $errlvl != 0 goto error
# Llamar al servidor SLIP (ponga aqui el telefono).
dial 2546000
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error

# En este punto estaremos conectados. Entrar en el sistema.
login:
sleep 3
send \r\n\r\n
# Esperar el 'prompt' de entrada (login).
wait login: 10
if $errlvl != 0 goto error

# Enviar su nombre de usuario.
send USERNAME\n

# Esperar el 'prompt' de password.
wait ord: 5
if $errlvl != 0 goto error

# Enviar su password.
send PASSWORD\n

# Esperar el 'prompt' del servidor que indica que esta preparado.
wait annex: 30
if $errlvl != 0 goto error

# Enviar un comando al servidor para empezar la conexion.
send slip\n
wait Annex 30

# Obtener la direccion IP desde el servidor. El comando 'get...remote'
# lee un texto de la forma xxx.xxx.xxx.xxx y lo asigna a la variable
# dada como segundo argumento (aqui es $remote).
get $remote remote
if $errlvl != 0 goto error
wait Your 30

# Obtener la direccion local IP desde el servidor y asignarla a $local.
get $local remote
if $errlvl != 0 goto error

# Establecer la conexion SLIP.
done:
print CONNECTED to $remote at $rmtip
print GATEWAY address $rmtip
print LOCAL address $local
mode SLIP
goto exit
error:
print SLIP to $remote failed.

exit:

dip ejecuta automáticamente los programas ifconfig y route según los valores asignados a $local y $remote. Aquí, esas variables son asignadas con el comando get...remote, que obtiene el texto de la dirección del servidor SLIP y lo asigna a la variable.
Si los comandos ifconfig y route que dip ejecuta no funcionan, siempre puede llamarlos por su cuenta desde un shell script tras ejecutar dip o modificar las fuentes del propio dip. La opción -v de dip le dará información para depuración generada durante la conexión y le ayudara a averiguar la(s) causa(s) del problema(s).
Ahora, para probar dip y abrir la conexión SLIP, escriba un comando como:

/etc/dip/dip -v /etc/dip/mychat 2>&1

Estando los ficheros de dip, incluyendo el script mychat.dip en /etc/dip.
Las explicaciones de esta sección le deberían haber permitido conectarse a la red, bien sea por Ethernet o por SLIP. De nuevo le volvemos a recomendar que consulte un libro sobre configuración de redes TCP/IP, en especial si en la red hay configuraciones especiales de rutado o similar.

5.4 Red con UUCP
Anterior- Siguiente - Índice

UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo usado para transferir información entre sistemas Unix. Mediante UUCP, los sistemas Unix se comunican con otros (vía módem), transfiriendo mensajes de correo, news, ficheros y demás. Si no tiene acceso TCP/IP o SLIP, puede usar UUCP para comunicarse con el mundo. Casi todo el software de correo puede ser configurado para usar transferencias UUCP. De hecho, si tiene algún servidor InterNet cercano, puede recibir correo en su sistema de esa red mediante UUCP.
El libro Linux Network Administrator's Guide le dará información completa para configurar y utilizar UUCP en Linux. También encontrara información en el documento UUCP-HOWTO, que puede obtener por FTP anónimo de sunsite.unc.edu. Otra fuente de información sobre UUCP es el libro Managing UUCP and USENET, de Tim O'Reilly y Grace Todino. Vea el apéndice A para mas información.

5.5 Correo Electrónico
Anterior- Siguiente - Índice

Como casi todos los UNIX, Linux dispone de paquetes de software para tener correo electrónico. Este puede ser tanto local (entre usuarios de su sistema) como remoto (mediante una red TCP/IP o UUCP). El software de E-Mail consta normalmente de dos partes: un agente de usuario o mailer y un programa de transporte. El agente de usuario es el software que el usuario utiliza para crear mensajes, leerlos, etc. Podemos destacar aquí los programas elm, pine y mailx. El programa de transporte es quien se ocupa de entregar correo tanto remoto como local, conociendo protocolos de comunicaciones y demás. El usuario nunca interactúa directamente con este programa, sino que lo hace a través del agente de usuario. Sin embargo, el administrador del sistema debe conocer como funciona el programa de transporte, con el fin de configurarlo según sus necesidades.
En Linux, el mas conocido de los programas de transporte es Smail. Es fácil de configurar y capaz de enviar tanto correo local como remoto vía UUCP o TCP/IP. En otros sistemas Unix se suele usar con mas frecuencia el programa sendmail, que es bastante mas complicado de configurar, por lo que no se suele usar en Linux.
En el documento Linux Mail HOWTO se expone mas información sobre el software disponible para correo y como configurarlo. Si pretende tener correo remoto, necesitara entender los conceptos de TCP/IP o UUCP (según la red utilizada) (vea las secciones 5.3 y 5.4). Los documentos de UUCP y TCP/IP indicados en el apéndice A también le ayudaran.
Casi todo el software de correo para Linux puede obtenerse mediante FTP anónimo de sunsite.unc.edu en el directorio /pub/Linux/system/Mail.

5.6 News y USENET
Anterior- Siguiente - Índice

Linux proporciona también todo lo necesario para tratar las news. Puede elegir configurar un servidor de news local, que permitirá a los usuarios poner "artículos" a los diversos "grupos" del sistema. . . en cierto modo, es una forma de discutir. Sin embargo, si tiene acceso a una red UUCP o TCP/IP, podrá participar realmente en USENET, una red de news de ámbito mundial.
En el software de news hay dos partes, el servidor y el cliente. El servidor de news es el software que controla los grupos de news y se ocupa de enviar los artículos a otras maquinas (si estamos en una red). El cliente, o lector de news, es el software que conecta al servidor para permitir que los usuarios lean y escriban artículos.
Hay varios tipos de servidores de news para Linux. Todos siguen un diseño y esquema de protocolos parecido. Principalmente, tenemos los servidores "C News" e "INN". En cuanto a clientes, destacamos rn y tin. La selección del cliente es cuestión de gustos, y, por supuesto, es independiente del servidor elegido.
Si solo pretende leer y escribir artículos localmente (no como parte de USENET), necesitara
un servidor que corra en su sistema, así como el lector para los usuarios. El servidor guardara los artículos en un directorio como /usr/spool/news, y el lector se compilara para buscar los artículos en ese directorio.
Sin embargo, si desea tener news en red, tendrá ahora varias opciones mas. Para redes basadas en TCP/IP se usa el protocolo NNTP (Network News Transmission Protocol). NNTP permite al cliente leer los artículos a través de la red, desde una máquina remota. NNTP también permite a los servidores enviarse artículos por la red. En esto se basa USENET. Casi todas las empresas y universidades conectadas cuentan con uno o mas servidores NNTP para controlar todas las news USENET en ese lugar. Cualquier otra máquina de esa empresa o universidad tendrá un lector de news que accederá al servidor con NNTP. Por ello, solo el servidor NNTP guarda artículos en disco.
Los clientes no lo hacen, y siempre tienen que conectar con el servidor para leerlos. A continuación mostramos algunas situaciones típicas de configuración.

o News locales. No hay conexión a red o no se desea tener news en red. En este caso, hay que ejecutar C News o INN en su máquina, e instalar el lector para leer las news locales.
o Con acceso a red TCP/IP y servidor NNTP. Si existe un servidor NNTP ya configurado, puede leer y escribir artículos desde su máquina Linux instalando un lector basado en NNTP (casi todos los lectores tienen opciones de configuración para leer news en NNTP). Por lo tanto, no necesita preocuparse de instalar el servidor o guardar artículos en su sistema. El lector se ocupara de enviarlos a la red. Por supuesto, necesitara configurar TCP/IP y tener acceso a la red (vea la sección 5.3).
o Tiene acceso a la red TCP/IP pero no hay un servidor NNTP. En este caso, puede instalar un servidor NNTP en su sistema. Además, puede instalarlo para comunicarse con otros servidores NNTP para intercambiar artículos.
o Desea transferir news con UUCP. Si tiene acceso a UUCP (ver la sección 5.4), puede participar en USENET de la misma forma. Necesitara instalar un servidor de news y un lector.

Además necesitara configurar su software UUCP para transferir los artículos periódicamente a otra máquina con UUCP. En UUCP no se usa el protocolo NNTP, sino que posee su propio mecanismo para transferir artículos.
El único inconveniente de muchos clientes y servidores de news es que deben ser compilados a mano, es decir, no usan ficheros de configuración, sino que se configuran en el momento de compilarlos.
Muchos programas de news "estándares" (disponibles por FTP anónimo en ftp.uu.net, directorio /news) podrían no compilarse en Linux. Los parches que hagan falta se encuentran en sunsite.unc.edu, directorio /pub/Linux/system/Mail (aquí se encuentra también todo el software de correo para Linux). Pueden encontrarse también versiones ya compiladas.
Para mas información, léase el documento Linux News HOWTO que encontrara en sunsite.unc.edu. También encontrara ayuda en el manual Linux Network Administrator's Guide de la misma serie de este libro. También puede consultar el libro Managing UUCP and Usenet, de Tim O'Reilly y Grace Todino. Una última posibilidad es el documento "How to become a USENET site", disponible en ftp.uu.net, directorio /usenet/news.announce.newusers.