La Guía del enROOTador para Linux

Eric Dumas, Eric.Dumas@Linux.EU.Org, Eric.Dumas@freenix.org

Versión 2.8, 21 Septiembre 1998

1. Advertencia del traductor

Este documento es la traducción no adaptada, del "Guide du ROOTard pour Linux v2.8" de Eric Dumas. Aqui encontrarás mucha información sobre Linux orientada al Francés, aunque todo puede ser adaptado al Español (ya veremos despues ;-)). Por el momento si la solución francesa no te conviene, explota las pistas que te da Eric. Pero mira antes la Infosheet y el Spanish HOWTO en los capitulos 4 y 22 de este documento. Tambien puedes consultar los documentos que encontraras en :

Tambien puedes inscribirte a la lista Linux l-linux@cic.teleco.ulpgc.es Para suscribiros, tendreis que enviar un mensaje a majordomo@cic.teleco.ulpgc.es con el siguiente contenido: subscribe l-linux No olvides que puedes buscar los articulos enviados a los news en: http://www.dejanews.com/dnq.html Y que puedes buscar el sitio ftp, que contenga un archivo X, más cercano a tu casa en : http://ftpsearch.ntnu.no/ftpsearch Si quieres comprar una distribucion de linux puedes hacerlo en : Si tienes alguna sugerencia sobre la traducción escribe a : caliman@magic.fr o a pjleon@arrakis.es (Revisión 2.8)

2. Preámbulo

Bienvenido a la versión 2.8 de la Guia del enROOTador.

2.1 Historia de esta guía

La primera versión de esta guía ha sido realizada por Julien Simon (Julien.Simon@freenix.org) Encontrareis al final de la guía un capítulo con los nombres de los distintos colaboradores de este documento. Con el transcurso de las versiones esta lista se va alargando : es buena señal.

2.2 Presentación del contenido

Esta guía tiene por objetivo dar respuestas muy claras y concretas a los problemas que puede poner la instalación de Linux. Reagrupa los trucos y astucias dadas por los usuarios, leídas más frecuentemente en los grupos de noticias fr.comp.os.linux (f.c.o.l), fr.comp.os.linux.moderated (f.c.o.l.m) o en las Howto, documentos que indican como instalar, configurar o mejorar un elemento software o hardware dado. Doy las gracias a aquellos que me envían correciones, puestas al día o incluso párrafos enteros. Esto es muy amable de su parte y es la forma correcta de hacer evolucionar esta guía.

2.3 Plataforma

Linux ha sido desarrollado inicialmente para funcionar sobre las plataformas tipo PC (cualquiera que sea el procesador que tengan: Intel, AMD, Cyrix, ...). Linux funciona muy bien hoy en día sobre otras plataformas tales como Sparc, Alpha, Silicon, Atari, Amiga, PowerPc, Macintosh...

Este documento está más particularmente dedicado a plataformas ix86, aunque encontrará de todas formas algunas informaciones sobre plataformas Alpha.

2.4 Que hay de nuevo ?

Esta versión de La Guia del enROOTador (2.8) posee varias novedades :

Las distribuciones descritas son aquellas que se pueden encontrar en los servidores ftp a 2 de Agosto de 1998.

2.5 Copyrigth

Advertencia importante : entre la versión 2.6 y la versión 2.7, he intentado hacer evolucionar el contenido de la licencia para que al menos la difusión en CD-ROM esté autorizada. Resulta que no he recibido la conformidad necesaria del creador original de esta guía así como de algunos colaboradores. Por tanto, esta guía continúa siendo difundida con esta licencia restrictiva...

La guía del enROOTador es freeware y le animo vivamente a distribuirla tal cual y gratuitamente. Sin embargo no puede modificarla o venderla. Insisto particularmente sobre el hecho de que no puede obtener beneficio financiero de este documento.

Ninguna publicación es autorizada sin el acuerdo previo del autor y de los colaboradores, y esto es válido asimismo para la grabación en CD-ROM, etc. Envíeme un mensaje para cualquier pregunta particular.

2.6 Mejoras de este documento

Si desea mejorar este documento agregando párrafos o simplemente correciones acertadas, puede enviarme un parche (utilizar el programa diff con la opción -u) a partir del archivo con formato sgml original.

2.7 Traducciones

Esta guía ha sido siempre escrita en lengua francesa, pero si desea hacer una traducción, tiene usted mi bendición.

Señalemos la existencia de la versión en español, traducida por la asociación de Científicos para el desarrollo de las Ciencias y Tecnologías de Colombia (ACASTC). La "Guia_del_enROOTador" puede obtenerse via ftp en : sunsite.uniandes.edu.co, ftp.infor.es y ftp.lip6.fr, así como en sus numerosas réplicas respectivas. (nr: también puede encontrar la versión española en LuCAS)

¿Para cuándo una versión inglesa ;-) ?

2.8 Sitios oficiales de distribución

Sólo existen dos sitios oficiales :

Esta guía tiene un número de réplicas especialmente importante. Si desea realizar una réplica, asegúrese de que sea puesta al día regularmente. Si usted hace referencia a esta guía en una distribución, le agradeceré que indique los dos sitios de referencia.

He aquí una lista de sitios réplica :

(Nota: si olvido alguno, contáctenme !).

Está disponible en varios formatos:

2.9 Evolucion del formato de esta guia

Desde que retomé la GRL (Guia del enROOTador para Linux), hace algo más de tres años, la convertí al formato SGML. Los Howto's y la documentación Linux emplean también este estándar a partir del cual una herramienta llamada "sgml-tools" http://www.sgmltools.org/ genera documentos en formatos tan variados como HTML, texto, DVI, etc. La versión utilizada para esta versión es la versión 1.0.7. Se trata de la versión original de esta herramienta, sin ningún parche (se trata de la primera versión de la guía que utiliza esta versión).

Te aconsejo leer, si no has instalado nada por el momento, la version estrictamente textual, a pesar de su muy reducida legibilidad ftp://ftp.lip6.fr/pub/linux/french/docs/GRL, o la versión en línea que se encuentra en la Web.

3. Introducción

Si encuentra errores (siempre e hestao peleao con la horrografia :-)), tienes comentarios, cosas para poner o simplemente para decirme que esta guía es práctica, no dudes en enviarme un e-mail a la siguiente dirección : Eric.Dumas@freenix.org (gracias de antemano por utilizar el código fuente SGML para efectuar las correcciones...).

Los diferentes grupos de noticias Usenet donde se pueden enviar mensajes han sufrido numerosas modificaciones : fr.comp.os.linux debería ser destruído dentro de poco. Deberá entonces tener acceso a los siguientes grupos :

NR: Estos son los grupos de noticias españoles sobre linux:

NR: También existen en la jerarquía esp.* (dedicada a toda la comunidad hispanohablante a nivel internacional) varios grupos dedicados a linux:

Piense en leer los archivos de los diferentes grupos, sus FAQs si existen (estudiar las Documentaciones Usenet fr) así como los últimos mensajes enviados antes de publicar un artículo. (Nt : es.comp.os.linux o la lista l-linux@cic-teleco.es ver Lucas y Slug)

Los consejos que se prodigan en este documento comprometen a aquellos que los siguen : Evidentemente, si rompe su máquina o su pantalla explota.... ¡la culpa es suya, no mía!

Todas las observaciones y precisiones citadas pertenecen a su propietario (como dice Juju, "¡muy profundo eso!") y no se usan si uno no las utiliza.

Evidentemente toda sugerencia que permita hacer evolucionar esta guia o mejorar su difusion, es bienvenida. No dudes en contactarme : es siempre un placer.

4. Linux Information Sheet : Hoja de Información Linux (v2.153, 1 Agosto1998)

4.1 Resumen

Este documento proporciona información básica sobre el sistema operativo Linux, incluyendo una explicación de Linux, una lista de sus características y sus requerimientos y algunos enlaces a información complementaria.

4.2 Introducción a Linux

Linux es una implementación libre completamente gratuita de las especificaciones POSIX, con extensiones de System V y Berkeley (lo cual significa que parece Unix, pero no proviene en absoluto de las mismas fuentes), que está disponible tanto en su versión fuente como ya compilada. Es propiedad de Linus B. Torvalds (torvalds@transmeta.com) y otros colaboradores, y es libremente redistribuible bajo las condiciones de la "GNU Public License".

Linux no es de dominio público, ni es shareware. Es software gratuito, usualmente denominado freeware, y puede proporcionar copias a otros pero también debe suministrar el código fuente correspondiente o al menos hacer posible su obtención de la misma forma. Si hace modificaciones y las distribuye, está legalmente obligado a proporcionar el código fuente de éstas. Véase la "GNU Public License" (GPL) para más detalles. Se incluye una copia en los fuentes de Linux (un fichero llamado "COPYING") o puedes obtenerla vía ftp de prep.ai.mit.edu.

Linux es gratuito y seguirá siéndolo en el futuro. Debido a la naturaleza del copyright de GNU que protege a este sistema, querer de golpe y porrazo cambiar este estado de cosas sería ilegal. No obstante es importante saber que es perfectamente legal cobrar por distribuir Linux, siempre que se incluya el código fuente y no se restrinjan los derechos del comprador; para ampliar este punto remítase a la GPL; no hemos hecho otra cosa que resumir las líneas maestras de esta licencia.

Linux se ejecuta en máquinas 386/486/Pentium con bus ISA, EISA o PCI.

MCA (bus propietario de IBM) no está actualmente soportado debido a la falta de documentación sobre este dinosaurio y el poco interés que suscita entre los desarrolladores Linux, aunque hay algunos "parches" disponibles para ciertas máquinas. Si está interesado, vea:

http://www.undergrad.math.uwaterloo.ca/~cpbeaure/mca-linux.html

Actualmente se está portando a distintas plataformas Motorola 680x0 (los Amigas y Ataris), y por ahora funciona bastante bien. Se requiere un 68020 con un gestor de memoria externa (MMU), un 68030, un 68040, o un 68060, así como un coprocesador matemático. El software de red y X están incluídos.

Linux funciona igualmente bien en los procesadores Alpha de DEC/Compaq.

Linux está siendo rápidamente portado a Sun Sparc. Linux funciona en la mayoría de las arquitecturas Sparc, y la distribución Red Hat 4.0 incluye una versión Sparc (además de las versiones x86 y AXP).

Versiones para otras máquinas, incluyendo MIPS, PowerPC y PowerMAC están en curso y en estados diversos. No sea demasiado impaciente, pero si está interesado y puede contribuir, puede encontrar otros desarrolladores que querrían trabajar con usted.

Para PowerMac, Apple y OSF han portado Linux sobre el micro-núcleo Mach. El resultado, llamado Mklinux, está aún en fase beta, pero ya puede ser utilizado.

A partir de la versión 1.0 que data de Marzo de 1994, Linux ya no es una versión de prueba (una beta). Aún hay errores en el sistema y nuevos errores irán apareciendo y serán solucionados con el tiempo. Como Linux sigue un modelo de desarrollo abierto, todas las nuevas versiones que vayan apareciendo estarán disponibles para el público, sean o no consideradas suficientemente estables. Sin embargo, para ayudar a la gente a discernir si una versión es o no considerada estable, se ha acordado una convención de numeración especial: Las versiones x.y.z en las que 'y' sea par son versiones estables y el incremento de z implica la corrección de algún error. Por ejemplo, de la versión 1.2.2 a la 1.2.3 sólo hay corrección de errores, pero ninguna característica nueva. Las versiones x.y.z con 'y' impar son betas únicamente para desarrolladores, pudiendo ser inestables y hasta colgarse, y están siendo ampliadas continuamente con nuevas características. De vez en cuando, cuando el desarrollo del núcleo se estabiliza, interviene una "congelación" para proporcionar una nueva versión "estable" (par), y el desarrollo continúa con una nueva versión (impar). La versión estable actual es la 2.0.x (donde x cambia conforme se integran nuevas correcciones en el núcleo), y el desarrollo debería continuar pronto sobre núcleos experimentales, numerados 2.1.x. Si la versión 2.0.x es demasiado reciente para usted, puede continuar utilizando la 1.2.13 (versión estable anterior).

El núcleo es estable desde hace tiempo y la mayoría de versiones recientes puede ser usada durante las 24H durante meses sin ningúna reinicialización, cuelgue o error fatal. Ciertos sitios no reinicializan sus máquinas Linux hasta que se produce un cambio de gran envergadura en el núcleo. Algo a tener en cuenta es que Linux es desarrollado siguiendo un modelo abierto y distribuido, en lugar de uno cerrado y centralizado como en la mayor parte del software. Esto significa que la versión actualmente en desarrollo es siempre pública (con un retraso de una o dos semanas) para que cualquiera pueda usarla. El resultado es que en cualquier momento que se añada una nueva funcionalidad y salga a la luz la nueva versión, ésta casi siempre tendrá errores, pero serán detectados y corregidos rápidamente, a menudo en cuestión de horas, ya que mucha gente trabaja en ello. Por tanto es fácil para un usuario final evitar estas versiones.

En contraste, el modelo centralizado y cerrado significa que hay sólo una persona o un equipo trabajando en el proyecto, y sólo publican software cuando piensan que funciona bien. A menudo esto conlleva largos periodos de tiempo entre versiones, largas esperas para la corrección de errores y un desarrollo más lento. Por supuesto, la última versión de este tipo de software es a menudo de buena calidad , pero la velocidad de desarrollo es normalmente mucho más lenta.

A 1 de Agosto de 1998, la versión estable de Linux es la 2.0.35, y la versión de desarrollo es la 2.1.113.

La versión 2.0 es la referencia estable destinada a servir de plataforma fiable para el desarrollo de la versión 2.1, que permitirá añadir nuevas posibilidades y ensayar soluciones audaces y modernas en el corazón de Linux (IP v6 entre otras). Las versiones 1.0 y 1.2 están ahora obsoletas. Una vez que llegue a la madurez, esta versión 2.1 dara lugar a Linux 2.2 o 3.0, y el juego continuará cada vez más.

4.3 Características de Linux

4.4 Hardware

Configuración mínima

La siguiente es posiblemente la mínima configuración sobre la que Linux puede trabajar: 386SX/16, 2 Mb RAM, disquetera de 1.44 Mb o de 1.2 Mb y cualquier tarjeta gráfica soportada (más teclado, monitor y demás, por supuesto). Esto debería permitirte arrancar el sistema y comprobar si Linux funciona en su ordenador, pero no serás capaz de hacer nada útil. ([NDR] : Son prácticamente indispensables 4 Mb).

Para hacer algo, necesitarás además algo de espacio en disco duro también: de 5 a 10 Mb deberían ser suficientes para una configuración minimísima (con sólo los comandos más importantes y quizás una o dos pequeñas aplicaciones instaladas, como por ejemplo un programa de emulación de terminal). Esto es aún muy, muy limitado, y muy incómodo, ya que no deja espacio suficiente para casi nada, a menos que tus aplicaciones sean realmente minúsculas. Esto no es recomendable para nada salvo para probar si el núcleo funciona y por supuesto para poder alardear de los pocos recursos hardware requeridos.

Configuración recomendada

Si va a ejecutar programas de computación intensiva, como gcc, X y TeX, probablemente querrá un procesador más rápido que el 386SX/16, pero incluso eso sería suficiente si fuera usted paciente.

En la práctica necesitas al menos 4 Mb de RAM si no usas X, y al menos 8 Mb en caso contrario. Además, si quiere tener muchos usuarios al mismo tiempo o ejecutar muchos programas grandes (compiladores por ejemplo) al mismo tiempo también, querrá más de 4 Mb de memoria RAM. Puede trabajar con menor cantidad de memoria (debería de hacerlo incluso con 2 Mb), pero Linux usaría entonces la memoria virtual (usando el disco duro como una memoria lenta) y eso sería tan lento como para calificarlo de inútil.

La cantidad de disco duro necesaria depende del software que piense instalar. El conjunto de utilidades base, shells y programas de administración ocupan menos de 10 Mb, con un poco de espacio libre para ficheros de usuario. Para un sistema más completo, lo normal son valores del orden de 20/30 Mb si no utiliza X Window, o 40 Mb si lo hace (hablamos sólo de binarios, incluir los fuentes requiere de mucho más espacio). Añada el espacio que desee reservar para los archivos de usuario a estos totales. Con los precios de los discos duros en la actualidad, si va a comprar un nuevo sistema no tiene sentido comprar una unidad demasiado pequeña. Adquiera al menos 1 Gb, y no se arrepentirá.

Añada más memoria, más disco duro, un procesador más rápido y otras cosas según sus necesidades, deseos y presupuesto para ir más allá de un sistema apenas utilizable. En general, la gran diferencia frente a DOS es que con Linux, añadir memoria supone una grandísima diferencia de rendimiento, mientras que con DOS más memoria no supone tanta mejora. Esto por supuesto tiene algo que ver con los 640 Kb que pone por límite MS-DOS, hecho que no se da en absoluto bajo Linux.

Si encuentra su sistema demasiado lento, AÑADA MEMORIA antes de gastar una suma excesiva en un procesador más potente. En un 386, pasar de 4 a 8 Mb de memoria puede multiplicar la velocidad de ejecución por un factor de 10 o 20...

Hardware soportado

CPU:

Cualquiera que pueda ejecutar programas en modo protegido del 386 (todos los modelos de 386, 486, 586 y 686) deberían valer. Los procesadores 286 e inferiores podrán quizás un día ser utilizados por un núcleo más pequeño llamado ELKS (Embeddable Linux Kernel Subset), pero en ese caso no espere disponer de las mismas funcionalidades. Además, una versión para los procesadores 680x0 (para x=2 con MMU externa, 3 y 4) implementada para Amiga y Atari puede ser encontrada en el directorio 680x0 de los sites Linux. Muchas arquitecturas Alphas son compatibles con Linux, así como ciertas máquinas Sparc. Se está portando a PowerPC, ARM y a arquitecturas MIPS.

Architecturas:

Buses ISA o EISA. El soporte para MCA (el de los PS/2) está incompleto (ver más arriba). Los buses locales (VLB y PCI) funcionan. Linux utiliza el Hardware de forma más eficiente que MS-DOS, MS-Windows, y otros sistemas operativos en general. Esto significa que cierto Hardware marginal apto para otros sistemas operativos pueden no ser fiables bajo Linux. Linux es, entre otras cosas, un excelente verificador de memoria...

RAM:

Teóricamente hasta 1 Gb; más en plataformas de 64 bits, aunque jamás ha sido probado hasta este extremo. Atención: Algunas personas (incluido Linus Torvalds) han señalado que añadir memoria sin incrementar la caché al mismo tiempo puede ralentizar la máquina extremadamente. Por encima de 64Mb de ram se requiere un parámetro de arranque, ya que la BIOS de los PC no puede detectar más que 64 Mb por su implementación.

Almacenamiento de datos:

Las unidades de disco tipo AT (IDE, controladores de disco duro de 16 bits con MFM o RLL) son soportadas, como también lo son los discos duros SCSI y los CD-ROM con adaptador SCSI adecuado. Las cotroladoras tipo XT (controladoras de 8 bits con MFM o RLL) necesitan un controlador especial integrado en la distribución estándar del núcleo. Adaptadores SCSI soportados: Adaptec 1542, 1522, 1740 y las series 27xx y 29xx, controladoras Buslogic (excepto "Flashpoint"), controladoras basadas en NCR53c810, controladoras DPT, Seagate ST-01 y ST-02, de Future Domain la serie TMC-88x (o cualquier placa basada en el chip TMC950) y TMC1660/1680, Ultrastor 14F, 24F y 34F, Western Digital wd7000 y otras. Las unidades de cinta SCSI, QIC-02 y algunas QIC-80 también son soportadas. Bastantes unidades de CD-ROM tienen soporte también, incluyendo Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI (EIDE) y lectores SCSI. Para las referencias exactas de los modelos soportados consulta el "HOWTO de compatibilidad de hardware".

Video:

VGA, EGA, CGA y Hercules (y compatibles) trabajan en modo texto. Para gráficos y X hay soporte para Hercules, EGA, VGA normal, algunas tarjetas super-VGA (la mayoría de las basadas en ET3000, ET4000, Paradise y Trident), numerosas tarjetas S3, asi como 8514/A, ATI MACH8, ATI MACH32. Linux usa XFree86 como servidor X y éste es quien determina qué tarjetas son soportadas. El rendimiento de algunas tarjetas aceleradoras es impresionante.

Ponga atención si adquiere una tarjeta de vídeo marca Matrox: Este fabricante a rehusado durante largo tiempo proporcionar las especificaciones necesarias para la programación de un controlador gratuito y sus fuentes, que permita utilizarlas bajo Linux. Por el momento sólo son soportadas eficazmente por versiones comerciales de X Window ("Metro-X" o "Xinside"). Existe un controlador para las tarjetas Matrox Millenium a partir de XFree86 3.2 y para la Matrox Mystique a partir de XFree86 3.3, pero es aún mínimo (no aprovecha todas las características), y está considerado como una versión beta.

Redes:

Western Digital 80x3, ne1000, ne2000, 3com503, 3com509, 3com589 PCMCIA, Allied Telliesis AT1500, la mayorías de las placas LANCE, adaptadores de bolsillo d-link, PPP, SLIP, CSLIP, PLIP (IP sobre puertos paralelos) y muchos más. Nuevos controladores aparecen regularmente.

Puertos Serie:

La mayoría de las tarjetas basadas en UART 16450 y 16550, incluyendo AST Fourport, la Usenet Serial Card II y otras. Las tarjetas serie inteligentes soportadas incluyen la gama Cyclades Cyclom, Comtrol Rocketport, y Stallion (todas las gamas con soporte por parte del fabricante) y Digi (algunos modelos). Ciertos equipos RNIS, frame relay y de línea alquilada, son igualmente soportados.

Otro hardware:

SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, la mayoría de las demás tarjetas de sonido, varios tipos de ratón de bus (Microsoft, Logitech, PS/2).

4.5 Una lista incompleta de Programas disponibles

La mayor parte de las herramientas y programas clásicos de Unix han sido portados a Linux, lo cual incluye casi todo el material de GNU y muchos clientes X de varias fuentes. Portar es una palabra un poco exagerada ya que muchas aplicaciones compilan sin ninguna modificación o sólo con unas pocas ya que Linux se ajusta a POSIX casi totalmente. Desafortunadamente, no hay muchas aplicaciones para usuarios finales por el momento, pero esto ha empezado ya a cambiar. Aquí hay una lista incompleta de software que se sabe que corre bajo Linux.

Comandos básicos Unix :

ls, tr, sed, awk y más (cualquiera que se te ocurra, Linux probablemente lo tiene).

Herramientas de desarrollo:

gcc, gdb, make, bison, flex, perl, rcs, cvs, prof.

Lenguajes y Entornos:

C, C++, Objective C, Modula-3, Modula-2, Oberon, Ada95, Pascal, Fortran, ML, scheme, Tcl/tk, Perl, Python, Common Lisp y muchos más.

Entornos gráficos:

X11R5 (XFree86 2.x), X11R6 (XFree863.x), MGR.

Editores:

GNU Emacs, XEmacs, MicroEmacs, jove, ez, epoch, elvis (GNU vi), vim (clónico vi), vile, joe, pico, jed y más.

Shells:

Bash (Bourne-shell compatible POSIX), zsh (incluye modo de compatibilidad con ksh), pdksh, tcsh, csh, rc, es, ash (Bourne-shell usado por BSD) y muchas más.

Telecomunicaciones:

Taylor (BNU-compatible) UUCP, SLIP, CSLIP, PPP, kermit, szrz (Zmodem), minicom, pcomm, xcomm, term/slap (ejecuta multiples shells, redirecciona la actividad de la red y permite X remoto, todo sobre una línea de modem), Seyon (popular programa de comunicaciones bajo X) y diversos paquetes de fax y correo de voz están disponibles. Por supuesto, los logins remotos vía línea serie son soportados de forma estándar.

News y correo electrónico:

C-news, INN, trn, nn, tin, sendmail, smail, elm, mh, pine, etc.

Procesamiento de textos:

TeX, LaTeX, groff, doc, ez, Linuxdoc-SGML, etc.

Juegos:

Nethack, numerosos juegos sobre X11, como DOOM. Uno de los juegos más apasionantes consiste en buscar todos los juegos disponibles en los sites que distribuyen Linux.

Todos estos programas (y esto no es ni una centésima parte de los disponibles) son gratuitos. El software comercial está empezando a surgir. Pregunte al distribuidor de su programa favorito si está disponible para Linux.

([NDR: N.A.]: Hay disponible una lista de programas portados a Linux. Está contenida en el fichero LSM*.*, o Linux Software Map)

4.6 ¿Quién usa Linux?

Linux está disponible gratuitamente, y a nadie se le pide que registre sus copias ante ninguna autoridad, por lo tanto es difícil conocer cuánta gente usa Linux. Diversos negocios están actualmente dedicados únicamente a la venta y soporte de Linux (lo cual no está prohibido), pero su clientela no constituye más que una minoría de los usuarios de Linux.

Los grupos de noticias de Linux son de los más leídos en Internet, por ello el número de usuarios o personas interesadas debe ser del orden de varios cientos de miles.

De todas formas, un alma brava, Harald T. Alvestrand, ha decidido intentar contar lo mejor que pueda los usuarios de Linux. Pide que se le envíe un mensaje a linux-counter@uninett.no, con una de las frases siguientes en el ASUNTO del mensaje : "I use Linux at home" (uso Linux en casa), "I use Linux at work" (uso Linux en el trabajo), o "I use Linux at home and at work" (uso Linux en casa y en el trabajo). También está contando de paso votos del tipo "I don't use Linux" (no uso Linux). Difunde periódicamente sus estadísticas en comp.os.linux.misc. Es posible rellenar un formulario más detallado, para registrar a amigos que no tengan la posibilidad de mandar correo electrónico.

Este contador es, inevitablemente, bastante pesimista. En la conferencia Linux de Berlin de 1995, fue anunciada una estimación de más de un millón de usuarios activos en todo el mundo; sin más precisiones acerca del método de determinación de ese número.

4.7 Documentación

Matt Welsh a escrito una guía de más de 300 páginas que describe cómo instalar y configurar Linux. Está disponible en los principales sites de distribución del sistema, bajo la forma de fuentes LaTex así como DVI, PostScript y ASCII. (Esta obra ha sido traducida al francés. La encontrará en los lugares que distribuyen Linux en francés como fuentes LaTex, formato DVI y PostScript bajo el nombre install-guide-french-2.2.2.*.

(NR: En español en la sección Manuales de LuCAS)

Es también vendida por ciertas personas u organismos bajo forma impresa. Igualmente, el proyecto de documentación Linux (Linux Doc Project, LDP), difunde muchas otras obras cuyo estado de progreso es más o menos completo. Lea el grupo de noticias comp.os.linux.announce; Linux ha pasado a estar tan bien documentado como sus equivalentes comerciales... Y gratis, por supuesto.

Comercialmente, hay que señalar la aparición de dos obras en versión francesa de O'Reilly: "Le système Linux", guía de más de 600 páginas por Matt Welsh, y "Administration Réseau sous Linux", por Olaf Kirch. Los títulos originales de estos libros son respectivamente "Running Linux" y "Linux Network Administration Guide". Este último esta igualmente disponible gratuitamente en la red en forma de código fuente LaTex (el archivo se llama nag.french.eoit-1.0.tar.gz).

(NR: El titulo en castellano de las obras referidas son respectivamente "El sistema Linux" y "Administración de redes bajo Linux")

La serie de documentos HOWTO's, y la Guía del enROOTador, disponibles gratuitamente, son casi indispensables. Consulte la sección "cómo empezar" par más detalles al respecto.

4.8 Obtener Linux

Por Internet

Si usted tiene la suerte de poder acceder a una máquina conectada a Internet, puede obtener Linux fácilmente en cualquiera de estos sitios:

Nombre textual                 Direccion IP     Directorio linux
=============================  ===============  ================
ftp.lip6.fr         (FRANCIA)  195.83.118.1     /pub/linux
ftp.calvacom.fr     (FRANCIA)  194.2.168.3      /pub/linux/slackware
ftp.change-espace.fr(FRANCIA)  195.6.132.1      /pub/Linux
ftp.ese-metz.fr     (FRANCIA)  193.48.224.106   /pub/Linux
ftp.info.iut-tlse3.fr          192.134.157.5    /pub/debian
ftp.iut-bm.univ-fcomte.fr      193.52.61.33     /pub/linux
ftp.loria.fr        (FRANCIA)  152.81.10.10     /pub/linux
ftp.univ-angers.fr  (FRANCIA)  193.49.144.10    /pub/Linux
lirftp.insa-rouen.fr(FRANCIA)  193.49.9.163     /pub/linux
stef.u-picardie.fr  (FRANCIA)  193.49.184.23    /pub/linux
tsx-11.mit.edu                 18.172.1.2       /pub/linux
sunsite.unc.edu                152.2.22.81      /pub/Linux
ftp.funet.fi                   128.214.248.6    /pub/Linux
net.tamu.edu                   128.194.177.1    /pub/linux
ftp.mcc.ac.uk                  130.88.203.12    /pub/linux
sunsite.doc.ic.ac.uk           146.169.2.1      /packages/linux
fgb1.fgb.mw.tu-muenchen.de     129.187.200.1    /pub/linux
ftp.informatik.tu-muenchen.de  131.159.0.110    /pub/comp/os/linux
ftp.dfv.rwth-aachen.de         137.226.4.111    /pub/linux
ftp.informatik.rwth-aachen.de  137.226.225.3    /pub/Linux
ftp.Germany.EU.net             192.76.144.75    /pub/os/Linux
ftp.uu.net                     137.39.1.9       /systems/unix/linux
wuarchive.wustl.edu            128.252.135.4    /mirrors/linux
ftp.win.tue.nl                 131.155.70.100   /pub/linux
ftp.stack.urc.tue.nl           131.155.2.71     /pub/linux
srawgw.sra.co.jp               133.137.4.3      /pub/os/linux
cair.kaist.ac.kr                                /pub/Linux
ftp.denet.dk                   129.142.6.74     /pub/OS/linux
NCTUCCCA.edu.tw                140.111.1.10     /Operating-Systems/Linux
sunsite.cnlab-switch.ch        195.176.255.9    /mirror/linux
cnuce_arch.cnr.it              131.114.1.10     /pub/Linux
ftp.monash.edu.au              130.194.11.8     /pub/linux
ftp.dstc.edu.au                130.102.181.31   /pub/linux
ftp.sydutech.usyd.edu.au       129.78.192.2     /pub/linux

Otras formas de obtener Linux

Hay muchas BBS que tienen ficheros para Linux. Una lista de ellas es ocasionalmente enviada a comp.os.linux.announce. Pregunta a amigos y a grupos de usuarios, o pide una de las distribuciones comerciales. Una lista de ellas está contenida en el "linux distribution HOWTO", disponible como sunsite.unc.edu:/pub/linux/docs/HOWTO/distribution-HOWTO y enviado regularmente al newsgroup comp.os.linux.announce. ]]

Por Teléfono

Si sólo posee un modem (de al menos 9600 bps, hay que ser razonable y estar al día) puede descargar Linux sin restricción de acceso en diferentes BBS o máquinas UNIX o Linux de particulares que ponen su sistema a disposición de todos como servicio:

   brasil       01 44 67 08 44          Bulletin Board System
   polux        01 43 45 80 40          Site Linux uucp/PPP/shell
   gyptis       04 91 60 43 61
   shagshag     01 40 30 04 68          Site Linux
   stdin BBS    04 72 34 54 37          Bulletin Board System
   Le Lien      04 72 08 98 79          Bulletin Board System
   Suptel Nancy 03 83 53 16 17          Bulletin Board System
                03 83 53 20 21
   MtelTls      05 61 37 11 62          Bulletin Board System (Toulouse)
                05 61 37 07 52
   cygnux BBS   01 39 94 95 76          Bulletin Board System
                01 39 94 29 47
   zenux        04 78 36 10 01 (VF 24k) Pasarela Internet Dedal.
                                          Site Linux uucp/SLIP/PPP/shell
                                          RadioAm TCP/IP y AX25
   afflynn      01 45 65 09 21
   Viking       04 76 93 13 48          (Acceso PPP en 33 600 - Grenoble)
                3 lineas agrupadas      (Info http://www.voiron.com/viking/)

   alphanet     +41 (0) 32 8414081      V34        Acceso BBS (guest),
                +41 (0) 32 8414037      ISDN X.75  o nuucp (~/archives/README,
                +41 (0) 32 8414004      V32bis     ~/archives/ls-laR.gz)

Algunas máquinas pertenecen a particulares y no están en servicio las 24H. Hay otras BBS francesas que poseen archivos Linux, pero no son puestas al día automáticamente (o regularmente) como lo son las aquí citadas.

Si ni siquiera tiene modem, empiece a mirar precios, es un periférico muy útil en nuestros días. Puede también obtener Linux> en CD-ROM vendido por diferentes distribuidores de sharewarefreeware. No obstante, debe saber que las demoras de fabricación no permiten tener estos soportes actualizados. Algunos son perfectamente utilizables y muy completos pero otros están totalmente desfasados.

En CD-ROM por correo

Ciertos proveedores venden CD-ROMs con Linux, algunos de los cuales serán pronto citados en este documento; por el momento, remítase a sus anuncios en las News Usenet.

4.9 Empezando

Como se ha mencionado al principio, Linux no tiene una administración centralizada. Por ello no hay una "distribución oficial" (aunque algunos están trabajando en ello) que nadie pueda señalar y decir "Eso es Linux". Al contrario, hay varias "distribuciones", que son colecciones más o menos completas de software configurado y empaquetado de tal forma que pueden ser usadas para instalar un sistema Linux.

La primera cosa que debería hacer es obtener y leer la lista de "preguntas más frecuentes" o "Frequently Asked Questions" (FAQ) de uno de los sites de FTP citados, o usando los archivos FAQ de Usenet (por ejemplo rtfm.mit.edu). Este documento contiene numerosas instrucciones de qué hacer para empezar, qué ficheros son necesarios y cómo resolver la mayor parte de los problemas comunes (durante la instalación o en otro momento).

La lectura de la "Guía del EnROOTador", creada por Julien Simon y mantenida desde ahora por Eric Dumas es calurosamente recomendada, sobre todo si no sabe leer bien en inglés. Este fichero reune la traducción de consideraciones esenciales sobre Linux, así como numerosos trucos y astucias explicadas cotidianamente en los grupos de noticias o conferencias dedicadas a Linux. Está disponible (en francés) en la mayoría de sites franceses que distribuyen Linux, siendo su fuente oficial ftp.lip6.fr, directorio /pub/linux/french/docs/GRL.

Está igualmente disponible en la Web en la URL http://www.freenix.org/linux/Guide. La versión en español se puede conseguir en http://lucas.hispalinux.es.

Los "HOWTO>", pequeñas guías que tratan cada una sobre un área de Linux, son una lectura indispensable. La mayoría de ellas está disponible en versión española en www.insflug.org

Si tiene acceso a la Web puede encontrar valiosas referencias en las siguientes URL:

Si el mundo UNIX es completamante nuevo para usted, y Linux es su primer contacto con este apasionante mundo, siga al pie de la letra los consejos siguientes:

4.10 Los grupos de noticias Usenet dedicados a Linux

Linux es objeto de 13 grupos de noticias en lengua inglesa, tres en francés, difundidos al menos en Francia, Suiza, Bélgica y Canada, y 10 en español.

El primer grupo destinado a los francófonos es fr.comp.os.linux. Recoge las discusiones sobre Linux y es difundido, fuera de Usenet, por ciertas BBS, como conferencia "Linux>" o "Linux.fr", lo cual explica el formato a veces inusual de estos artículos. Existe un grupo eqiuivalente para hispano-hablantes llamado es.comp.os.linux (para España) y otro llamado esp.comp.os.linux para la comunidad hispano-hablante internacional).

Los artículos enviados a fr.comp.os.linux son archivados regularmente en ftp.lip6.fr en el directorio /pub/linux/french/fr.comp.os.linux. Otro grupo de noticias destinados a los francófonos es fr.comp.os.linux.annonces. Es moderado por Nat Makarévitch y François Pétillon y recoge los anuncios destinados a la comunidad Linux francófona, así como las versiones francesas de la documentación Linux. Los artículos de este grupo se archivan igualmente en ftp.lip6.fr.

El grupo comp.os.linux.announce está moderado por Lars Wirzenius. Contiene los anuncios sobre Linux (nuevos programas, correción de errores, etc). La dirección a la cual se deben enviar las suscripciones es linux-announce@news.ornl.gov.

Las diversas documentaciones son enviadas regularmente al grupo moderado comp.os.linux.answers.

El grupo no moderado comp.os.linux.setup está previsto para las discusiones sobre la puesta en marcha y la administración de sistemas Linux.

El grupo no moderado comp.os.linux.development.system está pensado para las discusiones sobre desarrollo del núcleo Linux. Las cuestiones sobre el desarrollo de aplicaciones deben dirigirse a comp.os.linux.development.apps o a un grupo sobre Unix.

El grupo no moderado comp.os.linux.development.apps está pensado para discusiones sobre el desarrollo de aplicaciones específicas de Linux. No está pensado para solicitar aplicaciones para Linux.

El grupo no moderado comp.os.linux.hardware se utiliza para cuestiones sobre los aspectos hardware específicos de Linux.

Los grupos no moderados comp.os.linux.alpha, comp.os.linux.m68k y comp.os.linux.powerpc están pensados para la discusión de aspectos específicos de Linux sobre arquitecturas basadas en procesadores Alpha, 680x0 y PowerPC.

El grupo no moderado comp.os.linux.networking se usa para discutir sobre el desarrollo y la configuración de las herramientas de administración de red bajo Linux.

El grupo no moderado comp.os.linux.x está previsto para las discusioines específicas de X-window en Linux.

El grupo no moderado comp.os.linux.advocacy está previsto para los fanáticos deseosos de ensalzar su sistema preferido. Es aconsejable evitarlo ya que contiene principalmente disputas estériles de todo género.

El grupo no moderado comp.os.linux.misc contiene todas las discusiones y cuestiones que no corresponden a ninguno de los temas de otros grupos.

En general, no envie mensajes a la vez a varios grupos Linux. El único caso en que esto se tolera es aquel en el que un artículo es enviado a comp.os.linux.announce y otro grupo. El objetivo de la división del grupo original comp.os.linux en variois grupos fue reducir el tráfico en cada grupo. Aquellos que no respeten esta regla corren el riesgo de ser insultados sin piedad... Attention : Antes de intervenir en un grupo Usenet, asegúrese de conocer las reglas de comportamiento de Usenet, la famosa "Netiqueta". Consulte en especial la URL http://www.fdn.fr/fdn/doc-misc

Además, cuando decida enviar una pregunta a un grupo Usenet para exponer un problema concreto, ponga cuidado en incluir el máximo de información sobre su pregunta: versión del núcleo (orden "uname -a"), de la biblioteca C (como root, orden "/sbin/ldconfig -v"), de los programas que causan el problema, ficheros de configuración utilizados, distribución Linux instalada, trazas de ejecución, extractos de ficheros de registro (situados en los directorios /var/adm/ y/o /var/log), etc.

Por último, cuando posea la respuesta a una pregunta enviada a un grupo de discusión, examine el hilo de discusión correspondiente con objeto de determinar si la respuesta no ha sido ya enviada por alguien. Es, en efecto, poco agradable ver hilos de discusión compuestos por una pregunta y varios artículos repitiendo la misma respuesta.

4.11 Otros grupos de noticias Usenet

No suponga que por el hecho de utilizar Linux tiene que enviar sus preguntas a los grupos Linux. Hay numerosas cuestiones lo suficientemente generales y poco relacionadas con Linux como para ser enviadas a otros grupos donde llegarán a una audiencia mayor o más experimentada.

La jerarquía francófona contiene varios grupos de noticias que pueden utilizarse para cuestiones generales, especialmente los siguientes:

La jerarquía anglófona contiene igualmente grupos generales :

4.12 The Linux Journal

Una revista redactada en inglés y llamada Linux Journal fue lanzada en 1994, por iniciativa de los usuarios que trabajaban en la prensa informática en EEUU.

Contiene artículos para lectores de distintos niveles y está hecha de forma que resulte útil a todos los usuarios de Linux.

Se vende al precio de 32 dólares por una suscripción anual (12 números) o 54 dólares por dos años de suscripción.

Se puede solicitar desde Francia por correo electrónico a la dirección:

sales@ssc.com

Preguntas y comentarios deben dirigirse (en inglés) a linux@ssc.com.

Dirección postal :

                           Linux Journal  P.O Box 85867
                           Seattle, WA 98145-1867
                           Fax: +1 206-526-0803
                           Tel: +1 206-524-8338

Linux Journal se vende en París en la librería "Le monde en Tique" ( http://www.lmet.fr/ .

4.13 Status legal de Linux

Aunque Linux es suministrado con el código fuente completo, es software con copyright, no de dominio público. Sin embargo está disponible gratuitamente bajo la "GNU Public License" (GPL). Ver la GPL para más información (en pocas palabras, esta licencia asegura que nadie podrá retirar ciertos derechos del usuario del software libre, como por ejemplo el acceso gratuito a su código fuente. Pero no prohibe de ninguna forma la venta de los programas a los cuales se aplica).

Los programas que corren en Linux tienen cada uno su propio copyright, aunque muchos de ellos usen la GPL también. X usa el "copyright de MIT X" y hay algunas utilidades bajo copyright de BSD. En cualquier caso todo el software disponible en los site Linux se puede distribuir gratuitamente (y si no, no debería estar allí).

4.14 Este documento

Este documento era en principio una adaptación francesa de Julien Simon retocada por René Cougnenc de la "Linux INFO-SHEET" mantenida por Michael K. Johnson (Johnsonm@Sunsite.unc.edu). Esta hoja de información es mantenida desde ahora por Rémy Card.

Este documento es, por supuesto, del dominio público. De todas formas, sea asaz cortés de no apropiarse su autoría si lo distribuye... Tenga igualmente la amabilidad de avisarnos si va a utilizar este documento en una distribución comercial de Linux.

Ha evolucionado poco a poco alejándose del documento original (sin olvidar las modificaciones en la versión original que son periódicamente integradas en este documento), y es realizado e ahora en adelante en SGML según el mismo método que los HOWTOs Linux, lo que permite tenerlo disponible tanto en ASCII ordinario como en formatos más agradables como PostScript, DVI e hipertexto HTML.

Dirigir críticas y alabanzas a :

Rémy Card                    <Remy.Card@linux.org>
René Cougnenc
Éric Dumas                   <Eric.Dumas@freenix.org>
Julien Simon                 <Julien.Simon@freenix.org>

De la traducción al español:

Andrés Ramirez                                   <caliman@magic.fr>
Pedro J. Ponce de León (rev. 2.8)                <pjleon@arrakis.es>

4.15 Legalidad

Las marcas registradas pertenecen a sus propietarios. No hay garantía sobre la información en este documento. Usalo y distribúyelo a tu libre albedrío. El contenido de este documento es de dominio público, pero por favor, se educado y proporciona información sobre cualquier cita.

5. Introdución a la instalación

Antes de comenzar, se deben precisar dos o tres pequeñas cosas sobre la manera de hacer una instalación de Linux en la máquina.

5.1 Recuperación

La recuperación de las distribuciones Linux puede hacerse de varias maneras :

  1. Tienes acceso a Internet, o tienes un modem : mira la Hoja de informaciones mas arriba;
  2. Tienes un amigo que tiene los disquetes o los CD-ROM y se los pides prestados ;-) ;
  3. Si no tienes ni lo uno ni lo otro, te desaconcejo telecargarlo a no ser que seas accionista de Telefónica :-). Yo te aconsejaria los CD's de Infomagic (6 CD's por + o - U$24) o Yggdrasil (8 CD por + o - lo mismo). Un buen numero de comercios proponen distribuciones de CD's mucho mas caras y mas viejas. Para tener los mejores precios (yo no soy socio de ninguno de ellos y caliman menos, ver la advertencia del traductor (capitulo uno).

5.2 Las diferentes posibilidades de instalacion

Existen varias posibilidades para instalar Linux... He aqui un corto resumen:

5.3 Consejos de instalación

A ciertas personas les gusta mucho la siguiente solución. Es la solución de la prudencia... Pero es usted libre de hacer lo que mejor le parezca.

Le aconsejo tener particiones separadas para /usr, /var, y /home. Esto le permitirá tener una partición root bastante pequeña (típicamente menos de 40-50Mb) y de conservar una copia. Configure lilo (el gestor de arranque ("boot loader")) para poder arrancar en la partición root normal, y en caso necesario, la partición root de emergencia. Seguidamente, piense en actualizar la partición root de emergencia regularmente (con cron eventualmente).

Esto permite arrancar en prácticamente cualquier circunstancia, sin disco de arranque de emergencia. Es también muy práctico para recuperar un fichero de configuración que se ha perdido/modificado, sobre todo si utiliza Red Hat/Debian donde todos los ficheros de configuración se encuentran en /etc.

Le aconsejo igualmente instalar y configurar loadlin. Esto permite arrancar desde MS-DOS y utilizar un núcleo especial o una partición diferente (después de un desplazamiento después de una reparticionado). Es también muy práctico si por ejemplo su tarjeta SCSI le deja en la estacada e instala una diferente: sólo tiene que recuperar un núcleo precompilado, y ejecutarlo con loadlin. Otra solución si lilo ha desaparecido, tiene loadlin, pero el núcleo está en la partición linux/ext2 a la cual no tiene acceso: utilice EXT2 Tools ftp://login.dknet.dk/pub/ct/ext2tool.zip para copiar el núcleo que está en la partición EXT2 a su partición DOS.

Si utiliza lilo, intente ejecutarlo desde otro cargador, como el de OS/2 (o quizás el de NT, no probado). De esta forma, si lilo se cuelga al cargarse, siempre puede utilizar el cargador primario para ejecutar DOS, y luego utilizar loadlin para arrancar y resolver el problema.

Bueno despues de estos preliminares pasemos a las distribuciones.

6. Distribuciones

6.1 Definición y cómo elegir una distribución

El resto de sistemas operativos (MS-DOS, MS-Windows, Mac-OS, los Unix comerciales, incluso FreeBSD) son distribuídos bajo la forma de un conjunto que comprende el sistema operativo propiamente dicho (un "Unixero" lo llamaría "el núcleo") más todas las aplicaciones que sirven para hacer algo, como /bin/ls, /usr/bin/gcc, /usr/games/tetris más el eventual interfaz gráfico, etc. Siempre podemos añadir o (a veces) quitar cosas, pero a menudo es poco práctico.

Linux, por el contrario, se aprovecha de la modularidad de Unix: el nombre Linux, en sentido estricto, sólo se refiere al núcleo. Cada uno es libre de coger el núcleo y empaquetarlo adecuadamente con otras aplicaciones, formando así una distribución. Una distribución es el núcleo (el mismo para todas) más ciertas aplicaciones (todas las distribuciones Linux utilizan aplicaciones GNU para las órdenes básicas como ls, grep ou tar y todas utilizan X11 para los gráficos) más un programa de instalación, más un sistema de gestión de aplicaciones, para añadir o quitar de forma limpia y fácil.

Los dos primeros elementos (el núcleo y las aplicaciones básicas) son comunes a todas las distribuciones. La competencia tiene lugar en el programa de instalación y la gestión de paquetes (un paquete es un conjunto coherente de aplicaciones, es la unidad de instalación, desinstalación o configuración).

La Slackware no proporciona prácticamente nada para la instalación y nada de nada para la desinstalación. Una vez instalada, todo se hace a mano. Las actualizaciones son penosas (por ejemplo, no respeta los ficheros de configuración ya instalados). Sin embargo, es la distribución ideal si desea gestionar y actualizar usted mismo los diferentes productos (recompilándolos).

La Debian fue, salvo error, la,primera en tener un sistema de paquetes y la primera en tener un sistema de dependencias entre paquetes (del tipo "gimp necesita gtk").

La REdHat tiene un interfaz gráfico de configuración de paquetes y gestiona igualmente las dependencias.

Despues de elegir Linux, hay que elegir una distribución en particular. Recomendamos el documento Linux : elegir una distribución (en francés). Este documento puede ayudarle a hacer su elección. No dude en consultarlo.

6.2 Introducción

Llamamos "distribución" a un conjunto de soportes (disquetes, CD-ROM ...) que contienen lo necesario para instalar un programa en una máquina. Ver, a este propósito, la sección "cómo empezar" de la hoja de informaciones Linux reproducida más arriba. No existe una distribución oficial de Linux. Solo las distribuciones circulan. En esta guía sólo se describen en detalle la Slackware y la Red Hat. De todas formas, he aquí las principales :

6.3 Discos de arranque

Ya sea con Red Hat o con Slackware, debes utilizar un disco de arranque (y uno de root con Slackware). La manera de copiar estos ficheros en un disquete es la misma en las dos distribuciones. Digamos que Red Hat ofrece un medio, compatible con la mayoría de sistemas, de instalar a partir de MS-DOS sin disquete o a partir de un CD-ROM arrancable (a condición de que la BIOS de la máquina lo permita).

Después de haber seleccionado la o las imágenes a copiar en el disquete para permitir el arranque de la máquina, es necesario copiarla en el disquete. Para hacer esto hay varias soluciones :

  1. copiar el fichero en el disquete con cat imagen > /dev/fd0 (/dev/fd0 corresponde al dispositivo lector de disquetes). Es posible que antes se deba descomprimir el archivo.Para hacer esto utiliza el programa gunzip : gunzip bare.i.gz
  2. Si está en MS-DOS, debe utilizar el programa RAWRITE. Para ello: Descomprimir el fichero, si es necesario (el nombre termina con ".gz"), con GZIP.EXE (orden: gzip -d NOMBRE_DEL_FICHERO.gz), formatee un disquete que no debe tener ni el mas mínimo defecto de superficie("sectores defectuosos ") y luego utilice RAWRITE para escribir el o los ficheros en los disquetes.

6.4 Slackware : descripción

En esta parte, se supone que posee la versión 3.4 de Slackware. He aquí una breve descripción de los disquetes (en resumen , todo lo que va a encontrar, para evitar la instalación de cosas no necesarias).

Disquetes Boot y Root

Dos disquetes fundamentales para instalar Linux con la Slackware : el disquete de boot y el disquete de root. Linux se instala, en efecto ... bajo Linux, de manera que es necesario lanzarlo "a partir de un disquete" antes de comenzar la instalación. El disquete boot contiene un núcleo Linux y el disquete root proporciona al Linux así lanzado algunos ficheros absolutamente necesarios para su buen funcionamiento. Varios tipos de disquetes boot y root existen, hay que escoger en función del material empleado. El contenido de cada disquete es dado en forma de un archivo de tipo image, que guarda el contenido de todos los sectores físicos de un disquete.

He aquí un resumen de las etapas necesarias para una instalación :

Existe un numero elevado de ficheros boot. He aquí una tabla recapitulativa que debería permitirle escoger el que más le conviene.

----------------\          Controlador de Disco :
Las fuentes      \
están en :        \  IDE              SCSI                       MFM
-------------------+----------------+--------------------------+--------------
 Disco duro        | bare.i         | Utilizar un disquete     | xt.i
                   |                | SCSI de la lista         |
                   |                | aquí abajo.              |
-------------------+----------------+--------------------------+--------------
 CD-ROM SCSI       | Utilizar un    | idem                     |
                   | disquete SCSI  |                          |
-------------------+----------------+--------------------------+--------------
 CD-ROM IDE/ATAPI  | bare.i         | ídem                     |
-------------------+----------------+--------------------------+--------------
 Aztech, Orchid,   | aztech.i       | aztech.s                 |
 Okano, Wearnes,   |                |                          |
 Conrad, CyCDROM   |                |                          |
 CD-ROM no-IDE     |                |                          |
-------------------+----------------+--------------------------+--------------
 Sony CDU31a,      | cdu31a.i       | cdu31a.s                 |
 Sony CDU33a CD-ROM|                |                          |
-------------------+----------------+--------------------------+--------------
 Sony CDU531,      | cdu535.i       | cdu535.s                 |
 Sony CDU535 CD-ROM|                |                          |
-------------------+----------------+--------------------------+--------------
 Philips/LMS cm206 | cm206.i        | cm206.s                  |
 CD-ROM            |                |                          |
-------------------+----------------+--------------------------+--------------
 Goldstar R420     | goldstar.i     | goldstar.s               |
 CD-ROM            |                |                          |
-------------------+----------------+--------------------------+--------------
 Mitsumi non-IDE   | mcdx.i         | mcdx.s                   |
 CD-ROM            | mcd.i          | mcd.i                    |
-------------------+----------------+--------------------------+--------------
 Optics Storage    | optics.i       | optics.s                 |
 8000 AT CD-ROM    |                |                          |
 (Dolphin)         |                |                          |
-------------------+----------------+--------------------------+--------------
 Sanyo CDR-H94A    | sanyo.i        | sanyo.s                  |
 CD-ROM            |                |                          |
-------------------+----------------+--------------------------+--------------
 Matsushita,       | sbpcd.i        | sbpcd.s                  |
 Kotobuki,         |                |                          |
 Panasonic,        |                |                          |
 CreativeLabs      |                |                          |
 (Sound Blaster),  |                |                          |
 Longshine y       |                |                          |
 Teac no-IDE       |                |                          |
 CD-ROM            |                |                          |
-------------------+----------------+--------------------------+--------------
 NFS               | net.i          | scsinet.s                |
-------------------+----------------+--------------------------+--------------
 Tape              | bare.i (para   | Utilizar un disquete     | xt.i (para
                   | lector de      | SCSI de la lista         | lector de
                   | cartuchos)     | aquí abajo.              | cartuchos)
                   | Si no utilizar |                          |
                   | un disquete    |                          |
                   | SCSI - ver     |                          |
                   | aquí abajo.    |                          |
                   |                |                          |
-------------------+----------------+---------------------------------------

Controladores SCSI : 7000fast.s, advansys.s, aha152x.s, aha1542.s, aha1740.s, aha2x4x.s, am53c974.s, buslogic.s, dtc3280.s, eata_dma.s, eata_isa.s, eata_pio.s, fdomain.s, in2000.s, iomega.s, n53c406a.s, n_5380.s, n_53c7xx.s, pas16.s, qlog_fas.s, qlog_isp.s, seagate.s, trantor.s, ultrastr.s y ustor14f.s

Si no sabe cual es la tarjeta SCSI instalada en su máquina, pruebe entonces el disquete de arranque genérico scsi.s. Su nombre aparecerá en la pantalla durante el arranque. A continuación, utilice el disquete correspondiente (puesto que el disquete scsi.s utiliza mucha memoria).

Pasemos a continuación al disquete de root. El fichero correspondiente debe ser copiado en su forma comprimida : Linux lo descomprime él solito como un machote. Existen 4 disquetes root posibles :

ATENCION :¡¡ El disquete Root no debe ser descomprimido !!

La distribución

Bueno, hemos visto los dos primeros disquetes. Aquí esta la descripción de la distribución. Como es largo, esto es un resumen. Entre paréntesis, el numero de directorios.

¡Atención! La Slackware era hasta ahora la distribución que podía ser instalada via disquetes. Ya no es así. Solo los paquetes de las series A y N (base y red) pueden copiarse en disquete. En realidad esto es suficiente, ya que se puede telecargar el resto:

En la lista, vas a encontrar tres campos :

¡Allá vamos :-) !

Ya esta, se acabo !!

Fallos de la Slackware

La Slackware, como toda distribución, posee un cierto número de fallos. Existe una lista, que se puede consultar en la siguiente dirección : http://www.cuug.ab.ca:8001/~barkers/slackware-fixes/.

La ponen al día frecuentemente y no la detallaremos aquí.

6.5 RedHat : descripción

Disquete de inicio

La RedHat utiliza un sistema muy diferente de la Slackware : aprovecha los módulos cargables para el arranque de la máquina. Pero no permite la instalación a partir de disquetes (y en este caso, la Slackware se impone). Finalmente, su última limitación es que es obligatorio tener una partición Linux nativa (ext2fs).

De hecho sólo existe un único disquete de inicio : images/boot.img. Si instala en un Pc que utiliza PCMCIA, tiene que utilizar un disquete suplementario : images/supp.img.

Advertencia: existe un disquete suplementario (supp.img) que es utilizado cuando utilice la opción rescue al arrancar.

Una vez copiado el disquete de inicio (y el segundo si es necesario), arranque ... y accederá directamente al sistema de instalación. ¡Es difícil hacer algo más simple! Además este sistema de paquetes permite gestionar las dependencias entre las bibliotecas y las utilidades .

La Red Hat sin disquete

Existen dos posibilidades para instalar Red Hat sin disquete. Si el Pc está equipado con un lector CD "arrancable" (Lector SCSI O ATAPI El Torito y las opciones adecuadas activadas en la BIOS), se puede arrancar directamente desde CD.

Si la máquina funciona bajo DOS (con el controlador de lector CD cargado), podemos intentar usar el programa autoboot, situado en el directorio dosutils, que permite, en la mayoría de las máquinas, ¡instalar sin necesidad de crear un disco de inicio!

Distribución

La distribución RedHat está compuesta por un conjunto de paquetes (algo más de 560) reagrupados por centros de interés (en realidad un árbol de grupos). Encontrarás aquí abajo la lista de paquetes por orden alfabético de grupos que puede instalar en su máquina. Los nombres de los grupos están en inglés puesto que así aparecerán en su máquina y están en negrita.

La manipulación "directa" de los paquetes (archivos rpm) es detallada en la próxima sección.

Es necesario resaltar que existe un directorio "updates" en el cual se encuentran los archivos que permiten poner al día (evolución del núcleo y corrección de fallos eventuales) la distribución. Una vez instalada su máquina, instale el conjunto de ficheros situados en este directorio.

Asimismo, nótese la presencia de un directorio contrib que agrupa un conjunto de utilidades que no aparecen en la distribución oficial pero que son muy útiles.

La descripción de los paquetes que sigue corresponde a la versión 5.1 de la RedHat, con todas las actualizaciones aplicadas a 9 de Agosto de 1998.

Se acabó ! Esta descripción detalla la versión original de la RedHat 5.1 (llamada Manhattan). Existen hoy en día numerosos paquetes (en el directorio updates) que permiten poner al día correctamente su máquina con una facilidad desconcertante.

Utilización del Programa rpm

El programa rpm es una verdadera maravilla que permite instalar, suprimir y poner al día los diferentes paquetes instalados en su máquina sin preocuparse mucho de los problemas de versión, de bibliotecas etc.

Aquí no detallaremos todas la opciones de rpm porque en realidad hay muchas ( mirar rpm --help para eso o la documentación de Red Hat). Globalmente, rpm funciona de 4 modos :

Existe un número importante de opciones. Consulte la documentación para más información.

7. Instalación

Después de estos preliminares, pasemos a las cosas serias. Para empezar, haga una copia de seguridad de su disco duro, es lo más prudente, y reserve un disquete formateado. Luego, apague la máquina e introduzca el disquete de arranque.

Adevertencia Preliminar: ¡No apague nunca brutalmente la máquina bajo Linux! En efecto, Linux, como todo sistema Unix, utiliza caché de disco en memoria: perdería información apagando la máquina sin más. Las únicas formas de apagar Linux son teclear Ctrl-Alt-Del o bien utilizar uno de estos tres comandos como root: halt, reboot, shutdown (Consulte el manual para conocer las diferencias entre ellos).

7.1 Instalación inicial

Arranque la máquina. Linux arranca desde el disquete boot. En el caso de la Slackware, Linux le pedirá que inserte un segundo disquete, llamado root. Reemplace el disquete y luego oprima la tecla Enter.

Nota a propósito del mensaje "BIOS32" que algunos pueden ver durante el arranque : este mensaje significa que su bus es PCI. Si ve el mensaje siguiente : "BIOS32 extended no supported" significa que su máquina no es PCI. No hay que asustarse y utilice a pesar de esto el disquete de arranque standard. Si la máquina no arranca con el disquete de arranque tiene que crear otro disquete de arranque; Lea la sección del presente documento reservada a "signal 11".

Antes de lanzarse a la instalación del sistema, he aquí algunos trucos y astucias. Linux utiliza un procedimiento que instala su sistema de manera casi automática. En el caso de la Red Hat , la instalación es realmente simple y progresiva. Solo es necesario seguir las indicaciones. Tenga cuidado con el teclado qwerty (americano) desde el comienzo. La configuración del teclado en Español se hará mas tarde. Desde las últimas versiones de las distribuciones este problema está resuelto y la elección del teclado se realiza al principio de la instalación.

7.2 Particionar el disco duro

.

Tendremos, en un primer momento, que formatear el disco. Hay que crear por lo menos una partición Linux con el sistema de archivos ext2fs y al menos una partición de swap (la swap es un sistema de memoria virtual, lo cual quiere decir que si no posee suficiente memoria Ram para hacer funcionar tal o cual programa, este utilizará el espacio del disco duro como memoria... Esta explicación está un poco simplificada pero es mas o menos así).

Es mucho mas fácil suprimir una partición de swap que crear una después, por tanto es mejor prevenir. Si quiere utilizar X Window, son absolutamente necesarios 8 Mb de memoria Ram.

Los discos bajo Linux son devices (dispositivos). Por ejemplo, el primer disco duro es /dev/hdax, el segundo /dev/hdbx para un controlador IDE. La x corresponde al número de la partición del disco. Si tiene un sistema MS instalado éste es seguramente /dev/hda1.

Linux le guiará en su instalación. Le permite instalar el sistema de manera completa de una sola vez. El único problema, es que si de pronto se equivoca en algo ... es muy probable que tenga que volver a empezar de nuevo.

Si el disco no está particionado, el programa fdisk le permitirá realizar la operación. Su sintaxis es : fdisk /dev/disco. En el caso de Red Hat se lanza sólo. Por ejemplo, si quiere instalar Linux en el segundo disco IDE, escriba fdisk /dev/hdb.

Los comandos de fdisk (por orden de utilidad) son :

Para agregar una partición, pulse n y luego especifique el número de la partición (principal o extendida), el número del bloque de origen y su tamaño (se aconseja un tamaño par). Luego dele un tipo (con t).

Listo, Guarde (w).

La partición esta creada. Es sin embargo posible que tenga que volver a arrancar Linux para que esto sea tomado en cuenta por el núcleo.

La RedHat se ocupa del formateo automático de las particiones. Para formatearlas a la mano : mke2fs -cv /dev/hdax donde x corresponde al numero de la partición.

7.3 Instalación con la Slackware

Ahora, lance el programa setup. Es un programa en color (esto depende del disquete Root que se haya escogido), con un menú. El formateo de las particiones puede ser efectuado sin problemas.

Configure su partición swap e instale la serie A en la partición.

La configuración swap es muy simple de efectuar : escoja la opción swap y siga las instrucciones.

Para instalar la serie A, escoja la opción source y escoja la opción adecuada: "disquetes" por ejemplo. Seguidamente especifique el dispositivo necesario para acceder a la unidad A. Ahora especificaremos las series a instalar, de la lista que aparece. Escoge la serie.

El programa de instalación le pregunta si desea lanzar la instalación; Responda si. Luego, le pregunta un modo de selección. Escoja Normal. A partir de ahí, le toca a usted . Le pedirá insertar los disquetes y luego dará la lista de programas a instalar. Buena partida de come disquetes !

También es posible instalarla gracias a un CD ROM que contenga la distribución. Si el lector no es reconocido no es necesario recopiar todos los archivos en disquetes antes de proceder a la instalación. Hay que copiar todos los archivos de la distribución en una partición MS- DOS y luego relanzar el sistema gracias a los disquetes boot/root, llamar al "setup" e indicarle la partición MS-DOS donde se encuentran los archivos necesarios.

Utilice los menús para efectuar todas estas operaciones. Linux le pedirá la creación de un disquete de boot. Es este disquete el que servirá de ahora en adelante para arrancar el sistema.

Una vez la partición Linux formateada, las particiones de swap generadas, la serie instalada y el disquete mágico listo, no falta más que volver a arrancar.

Entonces introduzca el disquete, calentito, configurado para Linux en el lector de disquetes y pulse las teclas Ctr-Alt-Del.

Una vez que ha vuelto a arrancar, entre como root. Pero debe tener mucho cuidado, el usuario root tiene todos los derechos, entre ellos aquel de destruir todo. Esto ocurre muy fácilmente y demasiado frecuentemente.

7.4 Instalación con RedHat

La instalación con RedHat es muy intuitiva. Apartir ded la versión 4.2, el procedimiento de instalación pide al usuario que especifique el tipo de teclado que utiliza: seleccione es.

Una vez las particiones realizadas, es suficiente escoger el tipo de instalación deseada y los paquetes que quiere utilizar. Una vez hecho esto, esta distribución va a realizar la instalación completa de manera automática. Puede ir a tomarse un cafecito mientras que la instalación de la máquina se hace automáticamente.

8. Administración bajo Linux

8.1 Teclado Español

Bueno, comencemos por las cosas útiles: El teclado Español. Normalmente, las distribuciones lo configuran solas...pero nunca se sabe!

Una vez registrado como root, escribe la orden siguiente:

/usr/bin/loadkeys /usr/lib/kdb/keytables/es.map
.

Ahora el teclado es español ¡Atención, esto es temporal!; la solución más simple es agregarlo en el archivo /etc/rc.local con la Slackware, pero puede tambien utilizar el programa /sbin/setup o directamente /usr/lib/setup/SeTkeymap. Para la RedHat, realiza la operación con el panel de configuración kbdconfig.

Con estas dos dostribuciones, normalmente el procedimiento de instalación habrá procedido a esta configuración y no tendrá probablemente que hacer nada, excepto si quiere cambiar de tipo de teclado...

8.2 LILO

LILO (LInux LOader) Permite tener un sistema de arranque múltiple: MS- Windows, MS-DOS, Linux, etc. Este programa se ubica en el sector de arranque de su disco y le permite seleccionar la partición sobre la cual desea arrancar.

Si ha instalado LILO en su disco duro y la máquina se bloquea, arranque con un disquete sistema MS-DOS y escriba FDISK /MBR para restaurar los parámetros de arranque DOS y quitar LILO. Sera suficiente relanzar LILO habiendo arrancado Linux con un disquete de arranque.

El archivo de configuración LILO se encuentra generalmente en /etc/lilo.conf. Las distribuciones permiten generar un archivo automáticamente.

He aquí un ejemplo de mi archivo /etc/lilo.conf :

  boot = /dev/hda    # disco en el cual se encuentra el archivo LILO
  delay = 300        #  tiempo de espera, antes del lanzamiento del arranque.
                     # permite  seleccionar la partición  deseada.

  vga = normal       # modo de pantalla a escoger.
  ramdisk = 0        # paranoia setting

  # Linux : Ultima versión : El Pc arranca aquí por defecto.
  image = /vmlinuz   # Núcleo de  Linux 1 (ruta completa y nombre del archivo)
    root = /dev/hda2
    append="no-hlt, aha1542=0x230"
    label = linux
    read-only

  other = /dev/hda1   # Partición 1 :
    label = dos       # texto que identifica el arranque bajo DOS
    table = /dev/hda  # disco : /dev/hda

  image = /zimage    # Núcleo Linux 2
    root = /dev/hda2  # Raiz de Linux (Partición 2 de mi disco)
    append="aha1542=0x230" # append... ver la explicación mas abajo.
    label = old       # Texto a escribir : old
    read-only         #

En este momento, debes tener muchas preguntas:

  1. read-only : cuando arranca Linux, hace una verificación de la coherencia de las informaciones sobre las particiones Linux. Es una verificación de los sistema de archivos. Para realizar esta operación, es indispensable que la partición este en modo sólo lectura. En efecto, verificar un disco mientras es utilizado es la mejor manera de destruirlo todo. Esta verificación no se hace siempre, si apaga la máquina decentemente (con Ctr-Alt-Del o con los comandos halt, reboot o shutdown). De todas maneras esta verificación sólo es ejecutada sobre las particiones Linux. Es el programa fsck el que efectúa esta operación. Le desaconsejo lanzarlo para "ver que pasa" : ¡ Una utilización errónea puede provocar la pérdida de datos de su disco !
  2. por que dos núcleos? Esto es simple : Linux cambia, se mueve. Los núcleos son modificados constantemente. Por ejemplo, puedo arrancar actualmente mi máquina ya sea con un núcleo estable (2.0.30), ya sea con un núcleo en desarrollo (2.1.42).
  3. append: esta opción es muy importante : permite darle uno o varios parámetros al núcleo Linux. Por ejemplo, aquí le indico que mi tarjeta SCSI se encuentra en la dirección 230. En caso contrario, no sería reconocida. Esta opción es utilizada igualmente si tiene varias interfaces de red, SCSI, etc (nt : el parametro mem=xxTT donde xx es la cantidad de RAM y TT su unidad (o,k,m) es necesario a veces si la RAM no es reconocida).

Para instalar el archivo, ejecute /sbin/lilo ¡y ya está!

En el caso de que tenga problemas con LILO hay que probar a suprimir la opción "compact" que se puede encontrar en su archivo de configuración.

Sobre todo no olvide relanzar LILO después de cada modificación del archivo de configuración.

8.3 Montaje automático de las particiones: /etc/fstab

El archivo /etc/fstab contiene todas las informaciones que concierne el montaje de sus particiones.

He aquí un ejemplo:

#/etc/fstab
  # Dispositivo     Directorio     type        options      frequence  passe
  # Linux
  /dev/hda2         /              ext2        defaults        5        1
  /dev/hdb2         /usr2          ext2        defaults        5        2
  /dev/sda2         /usr3          ext2        defaults        10       2
  # MS-DOS
  /dev/hda1         /dos           msdos       defaults        0        0
  /dev/hdb1         /dos2          msdos       defaults        0        0

  # Processus
  none              /proc          proc        defaults        0        0
  # Partición de swap
  /dev/hda3         none           swap        defaults        0        0
  # Fichero de swap
  /usr2/swap_file   /usr2          swap        defaults        0        0

Descripción de las 6 columnas

  1. device (dispositivo) de la partición. En el caso de un archivo de swap, es el nombre del archivo.
  2. directorio de montaje de la partición.
  3. tipo de la partición.
  4. opciones (sólo lectura, etc)
  5. frecuencia: correspondiente al número de días entre dos tratamientos del archivo por la orden dump. Esta orden existe solamente para ext2fs (es una migración de la versión 4.4BSD) pero no está aún incluida en todas las distribuciones.
  6. orden de test de las particiones (fsck). Si pone 0 la verificación automática no es efectuada al arrancar. Las particiones situadas sobre un mismo disco serán verificadas de manera secuencial, pero si están situadas en dos discos diferentes se hará en paralelo.

Puedes colocar aquí las particiones que necesite.

Para NFS es aconsejable utilizar los siguientes parámetros:

rsize=8192, wsize=8192, sobre todo si posee una tarjeta de red rápida.

Para autorizar a un usuario a montar un volumen, tiene que crear una linea que contenga la opción "user" Ejemplo (caso de un CD-ROM SCSI) :

/dev/scd0       /mnt/cd   iso9660   user,exec,dev,nosuid,ro,noauto

Cualquier usuario podrá, a partir de ese momento, montar y desmontar un CD (utilizar mount /mnt/cdrom, umount /mnt/cdrom) La página de man de mount, sección 8 (man 8 mount) explica el significado de las opciones posibles.

8.4 Montaje manual de las particiones

Como hemos visto en el apartado anterior, las particiones son montadas al momento del arranque, gracias al archivo /etc/fstab. Se pueden, sin embargo, montar manualmente, utilizando la orden mount. Por ejemplo, para montar el disquete A:, hacer: mount -t msdos /dev/fd0 /mnt/floppy.

El -t indica el tipo de soporte. Los mas corrientes son:

Evidentemente, es necesario que estos tipos de sistemas de archivos estén integrados en el núcleo...

/dev/fd0 es el nombre del archivo especial correspondiente al dispositivo que corresponde al lector de disquetes. El punto de montaje es el directorio /mnt/floppy.

Para desmontar hacer umount /mnt/(directorio).

8.5 Puesta en servicio de las cuotas

Software necesario

El soporte de cuotas disco ha sido integrado en el kernel Linux desde la versión 1.3.46. Se necesita utilizar un kernel posterior para poder beneficiarse de las cuotas.

Se necesitan igualmente las herramientas de gestión de cuotas y se pueden encontrar en: ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota

o, más cerca, en :

ftp://ftp.lip6.fr/pub/linux/kernel/sources/subsystems/quota

El archivo que debe recuperar se llama quota-1.51.tar.gz y se encuentra en el subdirectorio utils. También hay un subdirectorio doc que contiene la documentación (principalmente las paginas del manual de las herramientas) en formato HTML.

Compilación de utilidades

Después de haber extraído el contenido del archivoquota-1.51.tar.gz, se necesita compilarlos. Esto se hace con la orden make. En ciertos casos (depende de la biblioteca C utilizada) puede ser necesario agregar -I a la variable CFLAGS definida en el Makefile.

Si utiliza el sistema de archivos ext2 y ha instalado las bibliotecas contenidas en e2fsprogs (utilidades de gestión del sistema de ficheros ext2), puede incluir el soporte de ext2fs en las utilidades de cuotas para acelerar su ejecución. Para esto se debe editar el archivo Makefile de manera que la variable CFLAGS contenga-DEXT2_DIRECT y que la variable EXT2LIBS contenga-lext2fs -lcom_err antes de compilar los programas.

Después de la compilación instale las utilidades con la orden make install. Cuidado, la orden quota está instalada en el directorio /usr/ucb que no existe en la mayoria de las instalaciones Linux. Necesitará entonces modificar el Makefile para instalarlo en otro directorio (/usr/bin es un buen lugar). Puede ser necesario igualmente definir la variable LN con el valor ln -sf.

Activación del soporte de cuotas en el núcleo

Para utilizar las cuotas el núcleo debe ser compilado con el soporte de cuotas. Para esto debe tener un núcleo para el cual haya respondido "Y" a la pregunta "Quota support". Cuidado, el soporte de cuotas es efectivo por el momento sólamente en los sistemas de archivos ext2.

Activación de cuotas en el sistema de archivos

Existen dos tipos de cuotas: las cuotas asociadas a los usuarios y las cuotas asociadas a los grupos de usuarios. Las primeras definen el número máximo de archivos y de bloques de disco asociados a cada usuario, las segundas definen el número máximo de archivos asociados a cada grupo de usuarios. Los dos tipos de cuotas pueden ser activados separadamente.

Para activar las cuotas para los usuarios es necesario indicar la opción usrquota para los sistemas de archivos referidos en /etc/fstab. Las cuotas que conciernen a los grupos son reguladas por la opción grpquota. Los archivos de definición de cuotas se llaman respectivamente quota.user y quota.group y están situados en la raíz de cada sistema de archivos involucrado.

Es posible modificar los nombres de los archivos de gestión de cuotas utilizando la sintáxis siguiente:

usrquota=nombre_de_archivo
grpquota=nombre_de_archivo

He aquí un ejemplo del archivo /etc/fstab:

  /dev/hda2    /         ext2   defaults,rw 0 1
  /dev/hdb2    /home     ext2   defaults,rw,usrquota,grpquota 0 1
  /dev/sda1    /usr/src  ext2   dzfaults,rw,usrquota 0 1

La activación de las cuotas es lanzada por la orden quotaon. Para activarlas automáticamente a la inicialización del sistema, se debe agregar al archivo de inicialización (/etc/rc.d) las líneas:

# Enable quota
  /usr/sbin/quotaon -avug

Puede ser igualmente necesario verificar la coherencia de la información sobre gestión de cuotas después de bloqueos repentinos. Para esto utilice la orden quotacheck:

/usr/sbin/quotacheck -avug

Esta orden debe ser igualmente ejecutada la primera vez para crear los dos ficheros de gestión de cuotas: quota.user y quota.group. En efecto, no son creados automáticamente.

Si las utilidades han sido compiladas con-DEXT2_DIRECT, la orden quotacheck debe ejecutarse relativamente rápido, en caso contrario puede ser muy lento, pues debe explorar todos los directorios del disco. Es aconsejable de todas maneras ejecutarr quotacheck durante la inicialización del sistema antes de la activación de las cuotas con quotaon :

# Check quota
/usr/sbin/quotacheck -avug

Adjudicación de una cuota a un usuario

La orden edquota es utilizada para asignar una cuota a un usuario o a un grupo de usuarios. Su sintáxis es edquota -u usuario o edquota -g grupo. Esta orden lanza un editor de texto que contiene la definición de cuotas asignadas al usuario o al grupo y toma en cuenta el nuevo valor cuando el archivo es reescrito.

Para cada usuario o grupo existen dos limitaciones: el número de archivos y el número de bloques disco (expresados en bloques de 1024 octetos). Para cada uno existen dos límites:

  1. el límite "suave": cuando este límite es alcanzado o superado un mensaje advierte al usuario cada vez que un nuevo bloque o archivo es escrito.
  2. el límite "duro": cuando este límite es alcanzado el usuario no puede escribir nuevos archivos o nuevos bloques.

El límite "suave" se transforma en límite "duro" cuando ha sido alcanzado o superado transcurrido cierto tiempo (7 días por defecto).

estadísticas sobre las quotas

Todo usuario puede obtener el estado de la cuota que le ha sido asignada (limites como el número de archivos y de bloques que le han sido atribuidos) gracias a la orden quota.

El superusuario puede obtener las mismas informaciones sobre cualquier usuario o grupo con la misma orden : quota -u usuario o quota -g grupo. Además es posible utilizar la orden repquota para obtener una lista de cuotas asociadas a uno o varios sistemas de archivos.

Otros documentos sobre las cuotas

La implementación de las cuotas en Linux es compatible con la implementación original en 4.2BSD UNIX. Todos los documentos que conciernen las cuotas en la implementación original 4.2BSD, ya sea a nivel de órdenes o a nivel de la interfaz de programación son utilizables.

Las paginas del manual de las utilidades son bastante claras y muy instructivas. Por último, los documentos difundidos en formato HTML forman una buena introducción a la administración de cuotas.

8.6 mtools

En vez de montar las particiones MS-DOS, aconsejo utilizar las mtools. Se trata de los equivalentes de los comandos MS-DOS, pero con una m delante.

Por ejemplo : mcopy toto.c a: . Si deseas copiar un archivo de texto para que sea utilizado bajo MS-DOS o a la inversa, no olvide utilizar la opción-t : esto convierte el carácter de fin de linea, que es diferente en los dos sistemas.

En principio, ya vienen más o menos configuradas. En caso contrario, se deberá modificar el archivo /etc/mtools.conf.

  drive a: file="/dev/fd0" exclusive
  drive b: file="/dev/fd1" exclusive

  # 1er disco Duro
  drive c: file="/dev/hda1"

  # 2nd disco Duro
  drive d: file="/dev/sda1"

  mtools_lower_case=1

Cuidado : el archivo ha sido modificado desde la última versión. Este es el último formato que es más claro y simple de utilizar. Además, esta nueva versión permite utilizar los nombres largos (vfat de MS-Windows 95).

8.7 Swap : creación de la partición

Para añadir una partición de swap de 8 Mb (8192 Kb), se tiene que crear primero la partición gracias al programa fdisk, y luego, o bien se pasa por el programa setup, o bien se hace a mano (ATENCION : orden PELIGROSA, destrucción del contenido de la partición involucrada ASEGURADA) : mkswap /dev/hda3 8192

Añada la línea /dev/hda3 swap swap defaults 0 0 en el archivo /etc/fstab.

Finalmente, para que funcione, re-arranque la máquina o ejecute swapon -a.

8.8 Swap : archivo

Para el archivo, es más complicado. Debe hacer :

  dd if=/dev/zero of=/usr2/swap_file bs=1024 count=8192
  mkswap /usr2/swap_file 8192
Y agregar en el archivo /etc/fstab la línea /usr2/swap_file /usr2 swap defaults 0 0.

Cuidado, debe poner esta línea después del montaje de la partición /usr2. Sino, no funcionará nunca.

De ahora en adelante, para salir de Linux estará obligado a hacer :

  swapoff -a
  reboot           #U otro

En efecto, si no se desactiva el archivo de intercambio, Linux no podrá desmontar la partición y por consiguiente hará un fsck sobre ella cada vez que arranque la máquina. También es posible, en ciertos sistemas, agregar la orden swapoff en "/etc/rc.d/rc.K" o en /etc/rc.d/init.d/halt para automatizarlo.

8.9 Agregar un usuario, un grupo

.

Si posee la RedHat, utilice el servicio de configuración (control-panel o bien directamente usercfg, utilizables por root bajo X Window), está muy bien hecho realmente.

Agregar un usuario se hace rápidamente en dos tiempos y tres movimientos : Dos archivos son importantes: /etc/passwd y /etc/group.

Una línea del archivo passwd esta compuesta de esta manera :

  gandalf::501:100:Eric Dumas:/home/gandalf:/bin/bash
  sgandalf::0:0:Super Eric Dumas:/:/bin/sh

Una línea esta compuesta por 7 columnas :

  1. Nombre del usuario : 8 caracteres max ;
  2. Contraseña codificada;
  3. Número de identificación único del usuario (uid). Nota : 0 = root ;
  4. Numero del grupo (gid) ;
  5. Nombre "oficial" del usuario (llamado GECOS);
  6. Directorio raíz del usuario ;
  7. Intérprete de órdenes utilizado.

Si el campo contraseña contiene el carácter x, significa que se utiliza shadow. La contraseña cifrada se encuentra en el fichero /etc/shadow. Esta configuración permite además definir la duración de validez de las contraseñas.

El archivo /etc/group contiene la lista de los grupos de la máquina. Por ejemplo, el grupo 100 es :

  users::100:games,gandalf

Para agregar el usuario toto :

  1. Agregarlo en /etc/passwd;
  2. si es necesario, crea el grupo al cual pertenecerá, modificando /etc/group;
  3. crea su directorio raíz :
                 mkdir /home/toto
                 cp /etc/skel/* /home/toto
                 chown -R toto.el_grupo_de_toto /home/toto
    
  4. Por último dele una contraseña mediante passwd toto.

No queda más por hacer que probarlo.

Le aconsejo encarecidamente trabajar bajo un nombre de usuario común. Es muy peligroso trabajar siendo root. Una mala manipulación y le tocará reinstalar todo además de perder sus datos personales más los de sus usuarios.

8.10 Lanzamiento de programas personales durante el arranque. /etc/rc.d/rc.local

Es en este archivo que vas a poner todas tus cositas personales(nt : si, soy de suramerica :-)) que quieres lanzar a cada arranque. He aquí una versión.

  #! /bin/sh
  # una limpiadita, dale
  echo "Cleaning /tmp... "
  find /tmp -type f -mtime +1 | xargs -r rm
  find /tmp -type d -mtime +1 | xargs -r rmdir

<!--
  /bin/rm -fr /tmp
  mkdir /tmp
  chmod 1777 /tmp
  # NOTA : esto puede ser nefasto puesto que ciertos programas lanzados
  # por los archivos rc ejecutados antes del rc.local pueden utilizar archivos en /tmp
-->

  # Viva el azertyuiop :-)

  echo "Loading french keyboard... "
  /usr/bin/loadkeys /usr/lib/kbd/keytables/fr-latin1.map

(NR: para el teclado español, cambiar fr-latin1.map por es.map)

Lo que es importante es el teclado en francés Si agrega esta línea, su teclado será francés desde el arranque.

En caso de problema hay que modificar así el fr-latin1.map :

  keycode   3 = eacute           two              asciitilde
  keycode   8 = egrave           seven            grave
  keycode  10 = ccedilla         nine             asciicircum
  keycode  14 = Delete           BackSpace

8.11 Planificación de trabajos : crontab

crontab es una tabla que contiene los comandos que deben ser lanzados a intervalos regulares. Puede poner la copia de seguridad diaria, el cliente pop, etc.

El formato es bastante simple :

# hacer una copia de seguridad todos los lunes a las 2 de la mañana
0  2  *    * 1 /home/gandalf/backup
# Reiniciar la máquina todos los 1 y 15 de cada mes a la 4:15
  15 4  1,15 * * /sbin/shutdown -r +3

Las 5 primeras columnas son :

  1. Minutos (0 a 59) ;
  2. Hora (0 a 23) ;
  3. Día del mes (1 a 31) ;
  4. Mes (1 a 12) ;
  5. Día de la semana (0 a 6 : 0 = Domingo, 1 = Lunes).
Después viene la orden. Este crontab es muy útil si utiliza UUCP (para enviar el correo, recuperar las noticias, etc).

Todo usuario puede crearse una tabla crontab gracias a la orden crontab.

8.12 Imprimir !

Ahora que su máquina funciona, veamos como imprimir. Las impresoras son administradas por el programa lpc y el demonio lpd.

El demonio lpd debe ser lanzado al arrancar. Puede ser lanzado ya sea por rc.M o por rc.inetd2. (Debe verse cuando son lanzados todos los demonios de la máquina. Si no es el caso, necesita quitar los comentarios de algunas líneas en uno de los archivos citados)

Supongamos que su impresora se llama betty. En primer lugar, en el archivo /etc/rc.d/rc.local, agrega :

echo "Setting up printer betty"
  /usr/sbin/lpc up betty

Pasemos a las cosas serias. El archivo en el cual va a ser descrita la impresora es el archivo : /etc/printcap. Ejemplo :

  betty|lp:lp=/dev/lp1:sd=/var/spool/lp1:sh:lf=/var/adm/lpd-errs:of=/etc/start-dj500:
La primera columna representa el nombre de la impresora. Yo puse betty y lp. De esta manera es mi impresora por defecto. Después, la configuración se hace vía palabras clave. Para mas información haz un man printcap. He aquí sin embargo una descripción de las utilizadas.

Como funciona? Bueno, supongamos que yo tengo un archivo toto.ps. Entonces hago lpr toto.ps (o lpr -Pbetty toto.ps). El archivo va ser depositado en el directorio /var/spool/lp1.

El demonio envia entonces el archivo al programa filtro. Este sistema permite imprimir archivos con formatos varios.

He aquí el archivo filtro (Para HP-500,510,520,etc).

  #!/bin/sh
  # Script de impresión para impresora HP-500 Blanco y negro
  #
  # Eric.Dumas@freenix.org
  #
  # Versión 2.0
  #
  # 5/01/95   (ED) : Agrega el formato dvi;
  # 27/10/95  (ED) : Conversión de archivos texto en archivos PostScript ;
  # 01/11/95  (ED) : Un poco de limpieza;
  # 12/08/96  (ED) : modificación para gs
  # 04/12/96  (ED) : algunas correcciones y complementos.

  TmpDir=/tmp
  TmpFile=$TmpDir/deskjet.$$

  # Usuario a prevenir en caso de error
  NOTIFY=lp-owner

  # Programas
  CAT=/bin/cat
  DVIPS=/usr/TeX/bin/dvips
  PGS=/usr/bin/gs
  AIIPS=/usr/local/bin/a2ps

  # Camino de acceso para GS
  GS_LIB=/usr/lib/ghostscript:/usr/lib/ghostscript/psfonts\
  :/usr/lib/ghostscript/Type1:/usr/lib/ghostscript/fonts

  # ¡ Se acabó !
  $CAT- > $TmpFile

  echo -ne '\033E'

  set -- `file $TmpFile`

  shift

  FileType=$*

  # Transformación del PostScript al formato Deskjet500
  # resolución a 300x300 - formato a4
GS="$PGS -I$GS_LIB -q -sDEVICE=djet500 -r300x300 -sPAPERSIZE=a4 -dNOPAUSE\
-sOutputFile=- - /usr/lib/ghostscript/quit.ps  || echo -ne '\033&10H'"


  case $FileType in

         *DVI*) # Fichero DVI
           $DVIPS -t a4 $TmpFile \
            -f | $GS
          ;;

         *PostScript*)    # Impresión de archivos Postscript
           $CAT $TmpFile | $GS
          ;;

          *text*|*script*)
           $CAT $TmpFile | $AIIPS -nP -r -8 | $GS
          ;;

          *data*)
            echo -ne '\033&;k0G'  # Es un y comercial sin ; !
            /bin/cat $TmpFile
           ;;

          *)
            echo "Deskjet: Unknow filetype $FileType" >> /dev/console
            echo "Deskjet: $TmpFile Unknow filetype $FileType " | mail $NOTIFY
          ;;
  esac

  /bin/rm -f  $ TmpFile
  echo -ne '\033E'

Este script permite imprimir archivos de texto así como archivos Postscript, dvi. Si quiere imprimir otro tipo de archivos, basta con agregarlos aquí. Gracias por enviarme las modificaciones : esto permitirá que todo el mundo pueda aprovecharlo.

Utilice lprm para anular una petición de impresión activa.

8.13 Timezone

Timezone es un sistema muy útil que permite la administración del cambio de hora de invierno y de verano. Francia (NR: y España) se encuentra en una zona horaria : MET (Medium European Time, o sea GMT +1).

La zona "MET DST" corresponde a la hora de verano activa (GMT+2) Lo mejor es no dejar todo eso a cargo de la única variable TZ.

Vaya al directorio /usr/lib/zoneinfo y leea el archivo time.doc.

Los archivos binarios que se encuentran en /usr/lib/zoneinfo indican las reglas de cálculo de la hora en las diferentes zonas del globo.

Copie el archivo "MET" bajo el nombre /usr/lib/zoneinfo/localtime, y haga un enlace simbólico de este archivo sobre /usr/lib/zoneinfo/posixrules.

Comandos :

  # cd /usr/lib/zoneinfo
  # cp MET localtime
  # ln -sf localtime posixrules
Utilizar seguidamente la orden clock para poner el sistema en hora. Dos posibilidades : La primera solución es preferible, pero MS-DOS no utiliza correctamente esta idea (:-)). La hora no funcionará en este sistema.

En cambio todos los cambios de hora, dos veces por año, serán tomados en cuenta por Linux.

En este caso, debe agregar en /etc/rc.d/rc.local la siguiente orden : clock -u -s Linux se ajustará a la hora guardada.

Si la CMOS está a la hora local, la orden en /etc/rc.d/rc.local es : clock -s y los cambios de hora sólo serán automáticos si la máquina esta encendida en el momento del cambio de hora. Habrá que escribir manualmente la nueva hora en la CMOS, haciendo clock -w o poniendo la hora con el setup de la máquina.

la orden date permite verificar la validez de la hora : da la hora y timezone date -u da siempre la hora en GMT :

  plux:/home/rene $ date
  Tue Sep 28 20:16:46 MET 1993
  plux:/home/rene $ date -u
  Tue Sep 28 19:16:49 GMT 1993
(En verano, indicaría "MET DST" (Daylight Savings Time)).

8.14 Nuevos cambios de hora

Desde 1996, la fecha del cambio de hora a sido desplazada . Para que Linux no se enrede, es necesario hacer ciertas modificaciones. La manipulación se basa en la utilización del programa zic, el time zone compiler.

En un fichero llamado europa, pon :

  Zone    MET     1:00      M-Eur     MET%s
  Link    localtime MET
  Rule    M-Eur   1986    max     -       Mar     lastSun 2:00s   1:00    " DST"
  Rule    M-Eur   1986    1995    -       Sep     lastSun 2:00s   0     -
  Rule    M-Eur   1996    max     -       Oct     lastSun 2:00s   0

Para poner todo en su lugar, lanza la instrucción :

gandalf# zic europe

Para verificar que todo esta bien, debes obtener el resultado siguiente :

  gandalf# zdump -v MET | grep 1996
  MET  Mon Nov 11 12:29:02 1996 MET
  MET  Sun Mar 31 00:59:59 1996 GMT = Sun Mar 31 01:59:59 1996 MET isdst=0
  MET  Sun Mar 31 01:00:00 1996 GMT = Sun Mar 31 03:00:00 1996 MET DST isdst=1
  MET  Sun Oct 27 00:59:59 1996 GMT = Sun Oct 27 02:59:59 1996 MET DST isdst=1
  MET  Sun Oct 27 01:00:00 1996 GMT = Sun Oct 27 02:00:00 1996 MET isdst=0

8.15 locate

Cuando se instala el paquete GNU "find", además del programa de búsqueda se encuentra un programa de localización locate. Este programa permite encontrar el nombre completo de un archivo. El programa se encuentra en ciertas distribuciones en /usr/lib/locate.

Lanzar, siendo root,/usr/lib/locate/updatedb. Esto llama a un find / sobre los discos montados y coloca los nombres de todos los archivos (bajo la forma hash) en /usr/lib/locate/find.codes. El programa locate permite localizar luego uno de estos archivos.

Nota: cuando lances este programa, piensa en desmontar las particiones de MS-DOS y tu CD/ROM !

Otra solución bastante agradable consiste en insertar en crontab la línea

updatedb --prunepaths='/tmp /usr/tmp  /var/tmp  /proc  /users
/root  /dos  /mnt  /var/adm /var/spool  /var/catman  /home '

Este orden realiza la actualización del árbol sin los archivos temporales, el árbol del usuario, la partición dos, etc.

Es aconsejable excluir las particiones "HOMES" usuarios. En efecto, estas particiones contienen normalmente numerosos archivos. Pero el problema mayor es seguramente un problema de seguridad, porque todos los usuarios pueden conocer los nombres de los archivos de sus vecinos.

8.16 CDROM ATAPI

Bueno, los cdrom en general no presentan muchos problemas, salvo los ATAPI antiguos. En efecto, el CD es manejado por un segundo controlador de disco.Procedamos por orden:

  1. Recompilar el núcleo con la opción CD ATAPI IDE y el soporte del sistema de archivos iso9660.
  2. Reiniciar. A nivel de LILO, teclear: Linux hdd=cdrom. Atención : aquí estamos en qwerty.
  3. Crear un enlace simbólico entre /dev/hdd (o hdc) y /dev/cdrom. Por ej : ln -s /dev/hdd /dev/cdrom.
  4. Crear el directorio /cdrom y teclear : mount -t iso9660 -o ro /dev/cdrom /cdrom. Normalemente, tu CD ya está montado! ( nt : /mnt/cdrom puede ser un buen remplazo de /cdrom)

Si hay problemas probar con:

  1. configurar el lector en modo EIDE "master";
  2. dejar un CD cargado durante el arranque;
  3. arrancar, esperar un momento y luego re-arrancar "en caliente" (o sea sin accionar ni reset ni apagar la máquina : únicamente con Ctr-Alt-Del) para que el lector tenga tiempo de sacudirse.

Con los nuevos lectores, es suficiente activar el soporte ATAPI para lectores CD-ROM y, al iniciar, el lector debe ser detectado:

hdc: UJDCD6700, ATAPI CDROM drive

8.17 Poner una consola externa como consola

Algunos usuarios pueden querer poner como consola un minitel o un viejo vt100 que no utiliza la tarjeta de video sino el puerto serie. Solo hace falta agregar en el fichero lilo.conf la siguiente línea:

 append ="scon=0x03f8  serial=0,9600n8"

8.18 Dos tarjetas de red

Ciertas máquinas poseen dos (o más) tarjetas Ethernet. Para que las dos sean reconocidas, es necesario agregar en la configuración de Lilo :

append="ether=0,0,eth1"

8.19 Los archivos de inicialización de los intérpretes de órdenes

Aquí esta la descripción de los archivos que se cargan después de la conexión de un usuario. El nombre del o de los archivos es específico del intérprete de órdenes utilizado.

En el caso de bash, es un poco complicado. Según la página del manual de bash, y luego de una conexión interactiva, se ejecuta:

En el caso en que bash sea llamado como sh, solo ejecuta los archivos /etc/profile y ~/.profile si existen.

En el caso de ksh, la página del manual es menos precisa pero un estudio rápido del código fuente muestra que:

Finalmente, para completar lo de los intérpretes de órdenes compatibles con el Bourne Shell, citemos el caso de zsh que ejecuta:

En el caso de csh (o mas bien tcsh) :

8.20 Las copias de seguridad (salvaguardas) bajo Linux

Como todo sistema UNIX, Linux provee herramientas estándar para realizar las copias de seguridad de los discos.

Dos tipos de herramientas principales son actualmente utilizadas.

dump y restore

Las herramientas dump y restore fueron puestas bajo Linux por Remy Card. Aparecen en las distribuciones.

Una vez que las fuentes han sido compiladas e instaladas, la utilización de dump y restore es relativamente simple. Para realizar la salvaguarda de una partición /dev/sda1 sobre /dev/rmt0, es suficiente hacer:

  gandalf# dump 0sfu  3600  /dev/rmt0  /dev/sda1
  gandalf# dump 0sfu ondee: /dev/rmt0  /dev/sda1

La segunda orden permite salvaguardar un disco sobre un dispositivo distante (por ejemplo situado aquí sobre la máquina "ondee"). Las opciones de dump pueden parecer complejas. A continuación damos una corta descripción:

Existen otras opciones. Para mayor información, consultar las páginas del manual.

Existen dos maneras de efectuar una restauración : en línea de ordenes o en modo llamado "interactivo". El segundo modo es más simple para las restauraciones parciales. El primero es sobre todo utilizado para las restauraciones completas.

Para restaurar la cinta en modo interactivo es suficiente hacer:

  gandalf# restore -if /dev/rmt0
  gandalf# restore -if ondee:/dev/rmt0

En este caso, un mini-intérprete de órdenes es ejecutado. Utilice la orden help para más detalles.

Para restaurar completamente una cinta:

  gandalf# restore rf /dev/rmt0

Nota importante: para la utilización de dump y restore a través de una red (salvaguarda sobre dispositivos remotos), debe utilizar los archivos .rhosts. En el siguiente ejemplo de salvaguarda, la máquina "ondee" debe tener:

  #cat ~root/.rhosts
  gandalf
  #

Attention toutefois aux failles de sécurité engendrées par les fichiers .rhosts.

Cuidado de todas formas con los fallos de seguridad engendrados por los ficheros .rhosts.

El uso de dispositivos remotos necesita igualmente de la presencia del programa rmt en la máquina que maneja los dispositivos de salvaguarda. Este programa está incluido en la distribución fuente de dump para Linux.

tar

A diferencia de dump o restore, tar permite salvaguardar los archivos deseados, excluir ciertos repertorios, etc. Es necesario notar que el tar utilizado bajo Linux es el tar GNU. Este posee ciertas opciones particulares.

Para conocer todas las opciones posibles, te aconsejo hacer tar --help. Una utilización simple de tar puede ilustrarse con la salvaguarda de una partición de usuarios:

  # tar cvf /dev/rmt0 /users | mail backup-user
La lista de archivos será así enviada al usuario backup-user.

Ciertos sitios utilizan exclusivamente tar para efectuar sus salvaguardas, cada cual escoge. .

8.21 Num Lock al arrancar

Para configurar la tecla Num Lock al arrancar (por ejemplo para que se encienda) sólo hay que poner en /etc/rc.d/rc.local

for tty in /dev/tty[1-9]*;
do
        setleds -D +num < $tty > /dev/null
done

8.22 Los archivos core

Ciertos programadores adoran explotar el contenido de los archivos core. Pero en Linux, están desactivados por defecto. Para poder generarlos introducir : ulimit -c unlimited en bash o limit coredumpsize unlimited

8.23 Accounting - lastcomm

El sistema de accounting está implementado en Linux (pero ... yo nunca lo he probado porque es un poco Big Brother is Watching You). Normalmente se debe compilar el paquete acct-1.3.73.tar.gz y seguir las instrucciones que son dadas ahí. Se puede encontrar en : ftp.ibp.fr:/pub/linux/sunsite/system/Admin/accounts y en ftp://iguana.hut.fi/pub/linux/Kernel/process_accounting

Hay que tener cuidado pues se debe tener un núcleo 1.3.* o uno 2.0.* He aquí el resultado :

# lastcomm | more
  Command          Flags User     Tty    PagFlt Time        Endtime
  clear           -     merlin   ttyp2      85   0.00 secs Tue Aug  6 13:26:07
  in.identd       -     root     __        100   0.00 secs Tue Aug  6 13:23:23
  color-ls        -     merlin   ttyp2     121   0.01 secs Tue Aug  6 13:23:02
  telnet          -     merlin   ttyp2     142   2.77 secs Tue Aug  6 13:23:01
  Pnews           F     merlin   ttyp3      33   0.01 secs Tue Aug  6 13:22:15
  sed             -     merlin   ttyp3     132   0.02 secs Tue Aug  6 13:22:15
  Pnews           F     merlin   ttyp3      34   0.01 secs Tue Aug  6 13:22:15
  sed             -     merlin   ttyp3     145   0.02 secs Tue Aug  6 13:22:15
  cat             -     merlin   ttyp3      80   0.01 secs Tue Aug  6 13:22:13
  Pnews           F     merlin   ttyp3      29   0.00 secs Tue Aug  6 13:22:13

Hay que tener cuidado puesto que este sistema tiene tendencia a tomar mucho espacio. La solución para resolver este problema es lanzar el sistema de accounting de esta manera :

#!/bin/sh
# Lanzamiento del accounting
accton /var/log/acct
accttrim -n 2000 /var/log/acct 2> /dev/null

9. SMP, otras arquitecturas

Nota: No dude en enviarme complementos a esta parte.

9.1 SMP

SMP, abreviatura de Symetric Multi-Processors, designa la capacidad de los núcleos Linux 2.0 y versiones siguientes de funcionar sobre máquinas con varios procesadores. Sobre la arquitectura ix86, el soporte SMP de Linux sigue las especificaciones Intel MP (v1.1, v1.4) que llegan teóricamente hasta 16 procesadores. En realidad, SMP no es específico de las plataformas Intel: existe también en plataformas Alpha, Sparc, PowerPC. LA versión 2.0 gestiona SMP sólo para plataformas Intel.

Paraq compilar el núcleo con soporte SMP, hay que quitar el comentario de la línea SMP = 1 en el fichero Makefile. Es también aconsejable compilar el soporte para Enhanced Real Time Clock (CONFIG_RTC).

Cuando el núcleo arranca, Linux se inicia primero sobre un procesador, y después activa los demás. Extracto de la información suministrada por la orden dmesg :

Intel MultiProcessor Specification v1.1
    Virtual Wire compatibility mode.
OEM ID: INTEL    Product ID: Nightshade   APIC at: 0xFEE00000
Processor #1 Pentium(tm) Pro APIC version 17
Processor #0 Pentium(tm) Pro APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
...
Calibrating delay loop.. ok - 396.49 BogoMIPS
...
Booting processor 0 stack 00002000: Calibrating delay loop.. ok - 396.49 BogoMIPS
Total of 2 processors activated (792.99 BogoMIPS).

Lo anterior es suficiente para tener un sistema multiprocesador que funcione. Lo que sigue lo convertirá en algo más agradable de utilizar y más eficaz.

El paquete procps contiene entre otras las órdenes top y ps que pueden ser modificadas para presentar el número del procesador sobre el que se ejecuta una orden. Los pasos a seguir así como los parches están disponibles (en inglés) en http://www.cs.inf.ethz.ch/~rauch/procps.html.

GNU make acepta la opción -j que especifica un número máximo de tareas que pueden ser lanzadas simultáneamente. Puede ser por tanto interesante utilizar esta opción (make -j 5 por ejemplo) en un sistema multiprocesador.

En la mayoría de los casos, un sistema SMP no se distingue porque una misma tarea se ejecute más rápido, sino más bien porque podemos ejecutar varias tareas pesadas simultáneamente (por ejemplo compilar un programa C y un fichero LaTeX al mismo tiempo) o bien porque el sistema responde instantáneamente a pesar de la presencia de una tarea pesada (p. ej. leer el correo mientras se compila el núcleo).

Para procurar verdaderamente que un mismo programa utilice toda la potencia de CPU de la máquina, hay que invertir en paralelismo, lo cual se sale claramente del propósito de esta guía. Lea a este propósito el excelentísimo Linux Parallel Processing HOWTO (que se encuentra en los sitios habituales).

Para saber más, se puede consultar la Linux SMP FAQ de David Mentré, http://www.irisa.fr/prive/mentre/smp-faq/.

Una descripción técnica (y un sumario) de la implementación de SMP en el núcleo de Linux se da en el fichero Documentation/smp.tex

9.2 Plataformas Alpha

La plataforma Alpha es soportada desde hace bastante tiempo. El sitio a consultar antes que nada es http://www.azstarnet.com/~axplinux/. La distribución RedHat 5.1 está disponible para Alpha. Su instalación es mucho más compleja ya que depende un poco del tipo de máquina de que se disponga.

Si desea instalar esta versión, lea atentamente el ALPHA-HOWTO, el MILO-HOWTO y el SRM-HOWTO. Se trata de tres documentos clave.

Para aclarar la situación, el mayor problema no es realmente instalar Linux, sino iniciarlo. En efecto, existen dos formas de hacerlo, en función de la arquitectura de la máquina (véase la FAQ disponible en el sitio central de la implementación Alpha):

Sea como sea, si desea instalar Linux sobre Alpha, piense sobre todo en leerse los documentos indicados más arriba. Para la RedHat, se ha escrito un documento suplementario específico para Alpha. Finalmente, piense en apuntarse al forum y a la lista de discusión sobre Linux/Alpha, comp.os.linux.alpha y axp-kernel-list@redhat.com.

10. X Window

Ahora que todo funciona bien, pasamos a otro gran pedazo : la instalación de X Window.

Para poder utilizar X Window, es necesario tener una configuración razonable (al menos 8Mo de memoria). En caso contrario, la máquina será muy lenta: se va a pasar todo el tiempo en "swapping".

En primer lugar, instale con la ayuda de su distribución el servidor que se corresponda mejor con su tarjeta gráfica.

10.1 XF86Config

El problema con X Window, es configurar el archivo XF86Config. Cuidado, este archivo es muy diferente de la versión antigua de XFree86 2. Se trata aquí de un servidor XFree86 3.2, basado en X11R6. Antes de comenzar a construir el archivo, lance el programa SuperProbe. En mi caso, esto me permite obtener las siguientes informaciones. (Si, ya se que es una tarjeta de video super vieja... pero bueno, tiramos con lo que tenemos !) :

First video: Super-VGA
          Chipset: Cirrus CL-GD5428
          Memory:  1024 Kbytes
          RAMDAC:  Cirrus Logic Built-in 15/16/24-bit DAC
                   (with 6-bit wide lookup tables (or in 6-bit mode))

Ahora viene lo más duro : construir el archivo de configuración. Atención: en ciertas distribuciones, el archivo XF86config está en el directorio /etc/X11, lo cual es una buena idea en el caso de una red de estaciones Linux que comparten /usr por NFS. Si utiliza una o varias máquinas independientes, puede suprimir /etc/X11/XF86config y utilizar /usr/X11R6/lib/X11/XF86Config.

Las nuevas versiones de las distribuciones traen ciertas herramientas que permiten automatizar la instalación y la configuración del servidor. Pruebe primero con estas herramientas: es muy probable que funcionen directamente.

Este archivo se presenta en forma de secciones. He aquí una descripción:

La configuración del servidor X puede ser muy rápida (funciona inmediatamente), o muy lenta. En el segundo caso, algunos consejos:

  1. Leer la documentación que se encuentra en ./doc. Un buen número de pantallas y de tarjetas están descritas con los relojes que se deben utilizar.
  2. Empezar con una resolución baja (640x480) : es más sencillo.
  3. Si necesita los clocks de su tarjeta, lance X -probeonly 2>/tmp/err. (si utiliza csh ou tcsh como intérprete de órdenes, reemplace 2> por >&. En el archivo /tmp/err van a estar todos los mensajes del servidor, entre ellos el chip de su tarjeta y sus clocks. La única cosa que va a faltar por configurar, es la pantalla.
  4. Leer el "Video HOWTO", escrito por J.M. Vansteene y disponible en ftp.lip6.fr en el directorio /pub/linux/french/docs/HOWTO.
  5. utilizar el programa xvidtune : permite "afinar" la imagen (centrarla, etc). Por ejemplo, yo tenía cierto temblor en la imagen : con este programa, pude resolver el problema.

Si el inglés le desespera, puede leer una versión francesa de toda la docuemntación XFree86 3.2 en formato HTML. Para ello vaya al servidor http://www.kheops.com.

10.2 Teclado francés bajo X : Xmodmap

Nota: les utilisateurs de clavier de type suisse-romand seront heureux d'aller consulter la documentation qui se trouve à l'adresse http://dmawww.epfl.ch/roso.mosaic/jaf/linux/clavierromand.html. Divers autres types de claviers pour francophones sont décrits par ailleurs.

Nota: los usuarios de teclado tipo "suisse-romand" hara bien en consultar la documentación que se encuentra en la dirección http://dmawww.epfl.ch/roso.mosaic/jaf/linux/clavierromand.html. Otros tipos de teclados para francófonos son descritos aquí.

Pasamos ahora al teclado francés bajo X Window. Como XFree86 fue concebido por personas que utilizan teclados americanos (qwertyiop), la configuración del teclado puede parecer bastante complicada. Recomiendo seguir lo que sigue...

Primero, debes tener en el archivo XF86Config las siguientes opciones:

      LeftAlt     Meta
      RightAlt    ModeShift
      # RightCtl    Compose
      ScrollLock  ModeLock
Luego, pones el siguiente archivo en el directorio /usr/X11R6/lib/X11/xinit. Debe llamarse .Xmodmap.

El archivo que sigue fue hecho por Rene Cougnenc. Hoy en día es el que yo utilizo. Y pienso que es dificil hacer algo mejor. Funciona bajo XFree86 3.2.

  ! teclado francés AZERTYUIOP para XFree86 3.2
  !
  ! Los acentos circunflejos de las principales vocales se obtienen con
  ! la tecla Mode_switch (ALT_GR).
  !
  ! Los dos puntos se obtienen con  ALT_GR + SHIFT, sobre 'e', 'i', 'o', y 'u'.
  !
  ! Esperemos que un día podremos obtener el teclado francés standard sobre
  ! el cual todo el mundo aprenda a teclear...
  !<item>----------------------------------------------------------------------
  !
 keycode   9 = Escape
  keycode  10 = ampersand 1
  keycode  11 = eacute 2 asciitilde
  keycode  12 = quotedbl 3 numbersign
  keycode  13 = apostrophe 4 braceleft
  keycode  14 = parenleft 5 bracketleft
  keycode  15 = minus 6 bar
  keycode  16 = egrave 7 grave
  keycode  17 = underscore 8 backslash
  keycode  18 = ccedilla 9 asciicircum
  keycode  19 = agrave 0 at
  keycode  20 = parenright degree bracketright
  keycode  21 = equal plus braceright
  keycode  22 = BackSpace
  keycode  23 = Tab
  keycode  24 = a A acircumflex
  keycode  25 = Z
  keycode  26 = e E ecircumflex ediaeresis
  keycode  27 = R
  keycode  28 = T
  keycode  29 = Y
  keycode  30 = u U ucircumflex udiaeresis
  keycode  31 = i I icircumflex idiaeresis
  keycode  32 = o O ocircumflex
  keycode  33 = P
  keycode  34 =  dead_circumflex dead_diaeresis
  keycode  35 = dollar sterling
  keycode  36 = Return
  keycode  37 = Control_L
  keycode  38 = Q
  keycode  39 = S
  keycode  40 = D
  keycode  41 = F
  keycode  42 = G
  keycode  43 = H
  keycode  44 = J
  keycode  45 = K
  keycode  46 = L
  keycode  47 = M
  keycode  48 = ugrave percent
  keycode  49 = guillemotleft guillemotright
  keycode  50 = Shift_L
  keycode  51 = asterisk mu
  keycode  52 = W
  keycode  53 = X
  keycode  54 = C
  keycode  55 = V
  keycode  56 = B
  keycode  57 = N
  keycode  58 = comma question
  keycode  59 = semicolon period
  keycode  60 = colon slash
  keycode  61 = exclam slash
  keycode  62 = Shift_R
  keycode  63 = asterisk
  keycode  64 = Alt_L
  keycode  65 = space
  keycode  66 = Caps_Lock
  keycode  67 = F1
  keycode  68 = F2
  keycode  69 = F3
  keycode  70 = F4
  keycode  71 = F5
  keycode  72 = F6
  keycode  73 = F7
  keycode  74 = F8
  keycode  75 = F9
  keycode  76 = F10
  keycode  77 = Num_Lock
  keycode  78 = Scroll_Lock
  keycode  79 = 7
  keycode  80 = 8
  keycode  81 = 9
  keycode  82 = KP_Subtract
  keycode  83 = 4
  keycode  84 = 5
  keycode  85 = 6
  keycode  86 = KP_Add
  keycode  87 = 1
  keycode  88 = 2
  keycode  89 = 3
  keycode  90 = 0
  keycode  91 = period
  keycode  92 = 0x1007ff00
  keycode  93 =
  keycode  94 = less greater
  keycode  95 = F11
  keycode  96 = F12
  keycode  97 = Home
  keycode  98 = Up
  keycode  99 = Prior
  keycode 100 = Left
  keycode 101 = Begin
  keycode 102 = Right
  keycode 103 = End
  keycode 104 = Down
  keycode 105 = Next
  keycode 106 = Insert
  keycode 107 = Delete
  keycode 108 = KP_Enter
  keycode 109 = Control_R
  keycode 110 = Pause
  keycode 111 = Print
  keycode 112 = KP_Divide
  keycode 113 = Mode_switch
  keycode 114 = Break

  ! Nuevos valores para el teclado numérico a partir de XFree86 3.1.1
  !keycode 147 = Home
  !keycode 148 = Up
  !keycode 149 = Prior
  !keycode 150 = Left
  !keycode 152 = Right
  !keycode 153 = End
  !keycode 154 = Down
  !keycode 155 = Next
  !keycode 156 = Insert
  !keycode 157 = Delete

  !keycode  136 = 7
  !keycode  137 = 8
  !keycode  138 = 9
  keycode  82 = KP_Subtract
  !keycode  139 = 4
  !keycode  140 = 5
  !keycode  141 = 6
  !keycode  86 = KP_Add
  !keycode  142 = 1
  !keycode  143 = 2
  !keycode  144 = 3
  !keycode  145 = 0
  !keycode  146 = period
  !-----------------------------------------------------------------------
Los caracteres " y " se obtienen respectivamente presionando la tecla donde hay un dos pequeño para " y Shift + dos para ".

10.3 Teclado francés bajo X... segunda posibilidad

Nota: Personalmente, utilizo la primera solución sin ningún problema... Si llega a tener algún problema, pruebe esta otra.

Esta solución viene de Michel Billaud. Bueno, partimos de la constatación de que las teclas acento grave (ALT-4) y acento agudo (ALT 7) son difíciles de utilizar : si son mudas hay que doblarlas la mayor parte del tiempo, si no lo son no se pueden acentuar las E A U etc.

Entonces, es necesario que ALT 4 y ALT 7 produzcan verdaderos acentos agudos y apóstrofes. De todas formas, nos hacen falta teclas mudas (además). Será necesario modificar el "mapa" del teclado.

Entonces se debe hacer:

En el directorio /usr/lib/kbd/keytables.map, copiar fr-lat1.map bajo otro nombre (miteclado.map). Lanzar showkey para ver el número de las teclas involucradas, en orden : 5 8 10 26 y 40. Luego editar miteclado.map para hacer las modificaciones.

Para hacer un test, hacer loadkeys miteclado.map. Cuando esté seguro que todo funciona correctamente, modifique /etc/rc.d/rc.keymap para que cargue miteclado.map y escribir sobre tu teclado con un lápiz y no con tinta ... :-)

También se puede poner una "tilde muda" en el 2 superior y una "tilde dura" (indispensable para un "shellista") en ALT-2.

10.4 Teclado francés bajo X... utilizar xkb

Es necesario utilizar un servidor X bastante reciente para utilizar esto (XFree86 3.2 mínimo). En la sección "Keyboard" del fichero de configuración, añadir:

   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc102"
   XkbLayout       "fr"

Si el teclado no tiene 101 teclas, habrá que reemplazar "102" por "101", "pc102", "104" o "105", con el fin de utilizar las teclas especiales (MS-Windows).

Para más información, mire el contenido del directorio /usr/X11R6/lib/X11/xkb.

10.5 xdm

Para arrancar directamente con X Window (xdm), hay que modificar el archivo /etc/inittab y cambiar la línea que contiene initdefault. Por ejemplo en mi máquina sólo tengo que remplazar :

  id:5:initdefault:
  #id:6:initdefault:
por
  #id:5:initdefault:
  id:6:initdefault:
Pero cuidado ! Ciertas distribuciones utilizan el nivel 6 para rearrancar. Lo más simple es mirar en el archivo /etc/inittab: éste contiene normalmente una descripción de los niveles de ejecución y a qué corresponden.

Para lanzar xdm en 16 o 32 bits, hay que modificar el archivo /usr/X11/lib/X11/xdm y poner :

  :0 local /usr/X11/bin/X -bpp 16 (o 32)

10.6 ¿ Cómo arrancar varias sesiones X ?

Para poder arrancar varias sesiones X en diferentes consolas sin tener que especificar el "display" a utilizar, agregar al final del archivo startx :

  CONSOLE=`tty`
  CONSOLE=`basename $CONSOLE`
  CONSOLE=`echo $CONSOLE | sed s/tty//`
  CONSOLE=`expr $CONSOLE - 1`

  echo "Starting X on display "$CONSOLE

  exec xinit $clientargs -- $serverargs :$CONSOLE

Tambien se utiliza la siguiente solución que tiene como ventaja el utilizar la primera consola libre:

for AFFICHAGE in 0 1 2 3 4 5;
do
    if [ ! -f /tmp/.X$AFFICHAGE-lock ];
    then
       exec xinit $clientargs -- $serverargs :$AFFICHAGE >/dev/console 2>&1
       exit
     fi
done

10.7 ¿ Cómo recuperar los errores en la consola ?

Es normal que los errores salgan en la ventana virtual texto a partir de la cual se ha lanzado el servidor. Una solución consiste en lanzar el servidor de esta manera :

 xinit > /dev/console 2>&1

Si utiliza la Slackware, solo tiene que editar el script startx y remplazar la línea :

  exec xinit $clientargs -- $serverargs
por
  exec xinit $clientargs -- $serverargs >/dev/console 2>&1

10.8 XFree86 y XInput

A partir de la versión XFree 3.1.2B, el servidor X de XFree86 soporta la extensión Xinput. Esta extensión permite emplear simultáneamente varios dispositivos de entrada. En Xfree86, hay 3 por el momento :

Los controladores para estos dispositivos son cargados dinámicamente en el servidor a partir de la versión 3.1.2D agregando las siguientes líneas al archivo XF86Config :

  Section "Module"
      Load "xf86Wacom.so"
      Load "xf86Elo.so"
      Load "xf86Jstk.so"
  EndSection
XFree86 busca los módulos en un directorio predefinido : /usr/X11R6/lib/modules o en una ruta especificada en la sección "Files" :
  Section "Files"
      ModulePath  "/usr/X11R6/lib/,/usr/X11R6/lib/modules/"
      ModulePath  "/usr/X11R6/bin"
  EndSection
El ModulePath debe ser especificado antes de la sección "Module" para funcionar.

Cada dispositivo posee su propia sub-sección de configuración. Consultar la página del manual de XF86Config para más detalles. Un dispositivo se activa sólamente si posee una sub-sección. El siguiente ejemplo activa un joystick y una tableta digitalizadora :

  Section "XInput"
      SubSection "Joystick"
          Port                    "/dev/js0"
          Timeout                 20
          MinimumXPosition        28
          MaximumXPosition        1206
          MinimumYPosition        27
          MaximumYPosition        1239
          Delta                   20
      EndSubsection

      SubSection "WacomStylus"
          Port            "/dev/ttyS2"
      EndSubsection
  EndSection
A partir de ahí el servidor puede emitir eventos extendidos o bien convertir un dispositivo en core pointer. Existen dos programas para manipular los dispositivos extendidos :

10.9 Un problema bastante corriente

Una pregunta muy frecuente : Yo no se porqué bajo Xfree86, a veces no puedo mover las ventanas, no tengo acceso a los botones ni a los menús (salvo aquellos de las ventanas de sistema)?. La solución es muy simple : ¡ Desbloquear "Num Lock" !

10.10 Ratón para zurdos

Ciertos zurdos prefieren invertir el orden de los botones. Para ello, modifique los ficheros .xinitrc y xsession indicando:

xmodmap -e "pointer = 3 2 1"

11. Seguridad

11.1 X Window : el archivo .Xauthority

El archivo .Xauthority es generado por el programa xauth. Se trata de un sistema de autenticación para las aplicaciones gráficas. Esto permite evitar que otras personas envíen imágenes u otras ventanas a su pantalla - pero igualmente evita que otras personas puedan "ver" lo que hay en su pantalla.

El principio es dar una clave de identificación, en hexadecimal con un número par de caracteres.

Lance xauth y teclee :

  add MaMachine:0 MIT-MAGIC-COOKIE-1 MiCodigo
  add MaMachine/unix:0 MIT-MAGIC-COOKIE-1 MiCodigo

Para la máquina local, es en realidad "hostname:NoDisplay".

Una vez lanzado, el servidor X prohibe toda conexión, salvo si la aplicación :

Puede desactivar el sistema para ciertas máquinas con un xhost +toto por ejemplo.

Nota : ciertas versiones obligan a lanzar el servidor X con la orden :

  xinit -- -auth $HOME/.Xauthority

11.2 X Window : control de la sesión

Solo xdm asegura un control de sesión X Window correcto. La directiva DontZap, en la sección ServerFlags del archivo de configuración de Xfree86, limita las posibilidades de equivocarse.

Si no utiliza xdm: Para prohibir a los malintencionados la utilización de las teclas de "báscula" de las consolas virtuales (Alt-F1, ALT-F2 ...) solo hay que poner en /etc/profile la línea siguiente :

alias x='(startx >/dev/null &);clear;logout'
Y luego invocar x en lugar de startx.

11.3 Problemas de seguridad

La distribución Slackware contiene ciertos fallos. Puede consultar la lista en la siguiente dirección : http://bach.cis.temple.edu/pub/linux/linux-security/.

Linux es, de manera general, muy sólido porque todo fallo descubierto es inmediatamente referenciado y corregido...Es la ventaja del código publico. Sin embargo, existen ciertos fallos importantes en las distribuciones y es muy importante corregirlos. Un documento WEB propone una lista de problemas :

http://bach.cis.temple.edu/pub/linux/linux-security/linux-Security-FAQ/

11.4 Protección de la máquina contra el exterior

Una solución para evitar las conexiones externas es utilizar TCP/Wrappers. ¡ Es muy muy recomendable recompilarlo !

La instalación es bastante intuitiva. En resumen, solo se necesita indicar el nombre de las máquinas autorizadas en el archivo /etc/hosts.allow y las máquinas prohibidas en /etc/hosts.deny. Puede permitir el envío de correo cuando una máquina intente conectarse aunque forme parte de las máquinas prohibidas, poniendo en el archivo /etc/hosts.deny :

  wu.ftpd:        ALL: twist = /usr/sbin/real-daemon-dir/safe_finger -l @%h |
  /bin/mail -s %d-%h root
(En una sola linea :-)).

Si quiere más detalles, puede leer el siguiente documento : ftp://ftp.win.tue.nl:/pub/security/tcp_wrapper.ps.Z.

11.5 Algunos enlaces

En Francia, el servidor ftp.urec.fr contiene numerosos utilitarios relativos a la seguridad informática.

Existen dos listas de difusión consagradas a la difusión de información relativa a los problemas de seguridad bajo Linux : linux-security@tarsier.cv.nrao.edu y linux-alert@tarsier.cv.nrao.edu

11.6 Virus

Por definición, un sistema Unix no tiene la misma sensibilidad a los virus que una máquina MS-DOS. Lo única que puede existir son los Caballos de Troya (amén de otras porquerías).

Parece ser que ha aparecido uno de estos artefactos: bliss. Para ver si se está infectado:

Un último consejo: siempre que pueda, recompile los programas que instale, y obténgalos de sitios seguros (mirrors oficiales). De esta forma reducirá los riesgos.

11.7 Cops/Crack

Estas dos herramientas pueden encontrarse en el sitio ftp://ftp.lip6.fr/pub/unix/security y son particularmente útiles si su máquina está directamente conectada a Internet. No dude en utilizarlas.

12. Recompilar el núcleo

12.1 Cyrix

Existen parches no oficiales para el núcleo 2.0.xx. De todas formas, lo mejor es utilizar la utilidad set6x86 que modifica ciertos registros de l cyrix para optimizar su funcionamiento. El sitio imprescindible para todo lo relativo a linux/cyrix: es http://wauug.erols.com/~balsa/linux/cyrix/index.html.

12.2 Pentium

Linux maneja sin ningún problema las máquinas basadas en procesadores Pentium. Para optimizar un poco la compilación, es suficiente especificar Pentium al recompilar el núcleo. Existe sin embargo un gcc especializado para Pentium, que está en desarrollo.

Consulte la página http://www.goof.com/pcg para más información.

[nt : Lo que sigue es lo que estaba en esta sección en la versión anterior del Guide du Rootard y me parecio que esta información merecía estar aquí, aunque sea en esta primera versión en español]

A la pregunta, ¿Existe una opción de gcc -mpentium?, Laurent Chemla nos indica que la respuesta es ¡no! En efecto, las versiones parcheadas de gcc que manejan la optimización pentium tiene fallos, y de todas formas la optimización más importante (95% de ganancia constante) que éstas contienen está presente en gcc 2.7 por defecto (alineamiento sobre 64 bits casi en todas partes).

Por tanto, para un pentium, gcc 2.7 causa 15% de ganancia con respecto a las versiones anteriores. Esta ha sido constatada personalmente, yo me puedo equivocar, sin haber leído nunca esto en ninguna parte de manera oficial. Parece también, según algunos que se obtiene una ligera ganancia utilizando m386 en lugar de m486 sobre un pentium. Es posible...

Lo anterior fue afirmado por un grupo de voluntarios trabajando sobre las optimizaciones de gcc para procesadores Pentium. Información adicional esta disponible sobre http://www- iss.mach.uni-karlsruhe.de/pcg/.

En lo relativo al manejo optimizado de los buses PCI, sólamente los núcleos llamados de "desarrollo" lo hacen (v1.3 actualmente)... Sin embargo cuidado: ¡estos núcleos tienen frecuentemente bugs! [Nt : fin de la antigua versión]

12.3 Compilación

Los nuevos fuentes del núcleo Linux pueden obtenerse en ftp.lip6.fr en el directorio /pub/linux/kernel/sources/v2.0 para las versiones "estables". Es un sitio mirror de ftp.kernel.org.

Existe otro directorio: v2.1 : se trata de la versión de desarrollo. No aconsejo instalarla: ya que es la versión en curso de desarrollo, pueden ser estables pero es igualmente posible que estén completamente llenos de errores. Utilizándolos, se corre el riesgo de perder datos en la máquina.

Los fuentes se instalan normalmente en el directorio /usr/src/linux. La compilación es muy simple pero algunos puntos deben seguirse muy escrupulosamente:

  1. Tener a la mano un disquete que permita arrancar el sistema y montar la partición root, para que se pueda retomar el control en caso de error. Hacer los test necesarios para asegurarse que con ese disquete se puede rearrancar.
  2. make config preguntará la configuración que desea. Algunos puntos pueden parecer bastante oscuros, en ese caso no los cambie. Puede usar make menuconfig en modo texto para tener el programa en color o make xconfig bajo X a condicion de tener instalado Tcl/Tk. Configuremos juntos... Nota importante: este ejemplo es con el núcleo 2.0.26... por lo tanto algunas opciones o indicaciones pueden no existir en otras versiones.
         # make config
         rm -f include/asm
         ( cd include ; ln -sf asm-i386 asm)
         /bin/sh scripts/Configure -d arch/i386/config.in
    
    Esto no tiene mayor interés : se trata de crear los enlaces simbólicos, pero no hay que olvidarlo.
    *
    * Code maturity level options
    *
    prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)
    [Y/n/?]
    *
    
    Esta opción permite especificar si desea tener ciertas opciones particulares. Las opciones así propuestas pueden acarrear la inclusión de dispositivos que no han llegado a su madurez completa. Sin embargo si desea utilizar los módulos cargables con kerneld responda Y.
      *
      * Loadable module support
      *
      Enable loadable module support (CONFIG_MODULES) [Y/n/?]
      Set version information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?]
      Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?]
    
    Esta parte es especifica a los módulos cargables. Si no sabe utilizarlos, es preferible colocar las opciones por defecto. Para responder a las preguntas, hay tres soluciones: ya sea la opción por defecto (letra en mayúscula) que es de por si la adecuada, sino, es suficiente con darle la opción escogida. Si no sabe a que corresponde esta opción, escriba ? Una breve descripción aparecerá entonces. En este caso voy a utilizar los módulos cargables con el sistema de carga automático (kerneld).
      *
      * General setup
      *
      Kernel math emulation (CONFIG_MATH_EMULATION) [N/y/?]
      Networking support (CONFIG_NET) [Y/n/?]
      Limit memory to low 16MB (CONFIG_MAX_16M) [N/y/?]
      PCI bios support (CONFIG_PCI) [N/y/?]
      System V IPC (CONFIG_SYSVIPC) [Y/n/?]
      Kernel support for a.out binaries (CONFIG_BINFMT_AOUT) [Y/m/n/?]
      Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/m/n/?]
     Kernel support for JAVA binaries (CONFIG_BINFMT_JAVA) [N/y/m/?]
    Compile kernel as ELF<item> if your GCC is ELF-GCC (CONFIG_KERNEL_ELF) [Y/n/?]
      Processor type (386, 486, Pentium, PPro) [486]
        defined CONFIG_M486
    
    La primera opción es necesaria cuando no se dispone de un procesador matemático (que es el caso en máquinas basadas en 386 o 486SX). Le aconsejo fuertemente evitar estas opciones. Claro está, que si dispone de una máquina con PCI y diferente de 486, basta con dar las características reales de su máquina. En cuanto al formato de los ejecutables lo mejor es activar al menos los formatos ELF y a.out
    *
    * Floppy, IDE, and other block devices
    *
    Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]
    Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
    
    Indico aquí administrar mi lector de disquetes como módulo cargable, y de manera general, activo el soporte IDE.
      *
      * Please see Documentation/ide.txt for help/info on IDE drives
      *
    Use old disk-only driver on primary interface (CONFIG_BLK_DEV_HD_IDE) [N/y/?]
    Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [N/y/?]
    Include IDE/ATAPI TAPE support (CONFIG_BLK_DEV_IDETAPE) [N/y/?]
    Support removeable IDE interfaces (PCMCIA) (CONFIG_BLK_DEV_IDE_PCMCIA)[N/y/?]
    CMD640 chipset bugfix/support (CONFIG_BLK_DEV_CMD640) [Y/n/?]
    Other IDE chipset support (CONFIG_IDE_CHIPSETS) [N/y/?]
    
    Si se dispone de material ATAPI, hay que indicarlo acá. Lo mismo si se tiene una interfaz PCMCIA. Nótese que Linux propone ciertas opciones particulares para algunos controladores IDE conocidos por que tienen errores. Si este es su caso, no lo dude y seleccione la opción.
    *
    * Additional Block Devices
    *
    Loopback device support (CONFIG_BLK_DEV_LOOP) [N/y/m/?]
    Multiple devices driver support (CONFIG_BLK_DEV_MD) [N/y/?]
    RAM disk support (CONFIG_BLK_DEV_RAM) [N/y/m/?]
    XT harddisk support (CONFIG_BLK_DEV_XD) [N/y/m/?]
    
    A menos que sepa exactamente lo que hace, es mejor no modificar. Bueno, pasemos a las redes !
      *
      * Networking options
      *
      Network firewalls (CONFIG_FIREWALL) [N/y/?]
      Network aliasing (CONFIG_NET_ALIAS) [N/y/?]
      TCP/IP networking (CONFIG_INET) [Y/n/?]
      IP: forwarding/gatewaying (CONFIG_IP_FORWARD) [N/y/?]
      IP: multicasting (CONFIG_IP_MULTICAST) [N/y/?]
      IP: accounting (CONFIG_IP_ACCT) [Y/n/?]
    
    De manera general, es aconsejable activar Tcp/Ip, aunque no esté conectado a una red (ciertas aplicaciones lo necesitan). Lo demás depende de la máquina. Vemos las dos series que siguen para redes.
      *
      * SCSI support
      *
    
      etc...etc  :  Para el SCSI. Lista de tarjetas SCSI manejadas... escoger la adecuada
    (varias si es necesario).
    
      *
      * Network device support
      *
      Network device support (CONFIG_NETDEVICES) [Y/n/?]
      Dummy net driver support (CONFIG_DUMMY) [M/n/y/?]
      EQL (serial line load balancing) support (CONFIG_EQUALIZER) [N/y/m/?]
      Frame relay DLCI support (EXPERIMENTAL) (CONFIG_DLCI) [N/y/m/?]
      PLIP (parallel port) support (CONFIG_PLIP) [N/y/m/?]
      PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
    
    Lista de las posibilidades de red... no olvide colocar PPP o SLIP si es necesario. En seguida vienen las tarjetas en sí. No son detalladas aquí.
      *
      * ISDN subsystem
      *
      ISDN support (CONFIG_ISDN) [N/y/m/?]
    
    Soporte de tarjetas RDSI. A menos de tener alguna de éstas, no activar la opción.
      *
      * CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
      *
      Suport non-SCSI/IDE/ATAPI CDROM drives (CONFIG_CD_NO_IDESCSI) [N/y/?]
    
    Para los CDROM Sony CDU31A/CDU33A, Matsushita/Panasonic/Creative, etc. En resumen, los CD conectados sobre la tarjeta de sonido por ejemplo.
      *
      * Filesystems
      *
     Quota support (CONFIG_QUOTA) [Y/n/?]
      Mandatory lock support (CONFIG_LOCK_MANDATORY) [N/y/?]
      Minix fs support (CONFIG_MINIX_FS) [M/n/y/?]
      Extended fs support (CONFIG_EXT_FS) [N/y/m/?]
      Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?]
      xiafs filesystem support (CONFIG_XIA_FS) [N/y/m/?]
      DOS FAT fs support (CONFIG_FAT_FS) [M/n/y/?]
      MSDOS fs support (CONFIG_MSDOS_FS) [M/n/?]
      VFAT (MS-Windows-95) fs support (CONFIG_VFAT_FS) [M/n/?]
      umsdos: Unix like fs on top of std MSDOS FAT fs (CONFIG_UMSDOS_FS) [N/m/?]
      /proc filesystem support (CONFIG_PROC_FS) [Y/n/?]
      NFS filesystem support (CONFIG_NFS_FS) [M/n/y/?]
      SMB filesystem support (to mount WfW shares etc..) (CONFIG_SMB_FS) [N/y/m/?]
      ISO9660 cdrom filesystem support (CONFIG_ISO9660_FS) [M/n/y/?]
      OS/2 HPFS filesystem support (read only) (CONFIG_HPFS_FS) [N/y/m/?]
      System V and Coherent filesystem support (CONFIG_SYSV_FS) [N/y/m/?]
      Amiga FFS filesystem support (EXPERIMENTAL) (CONFIG_AFFS_FS) [N/y/m/?]
      UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?]
    
    Se trata de configurar la lista de los manejadores de archivos comandados por Linux. Es indispensable tener ext2fs. Es muy recomendable incluir aquí el soporte /proc. SMB es usado para acceder a los recursos compartidos de Windows For Workgroup. Desde ahora, existen dos formatos para Ms-Dos : el formato estándar y el formato extendido que utiliza Windows95 (VFAT). Si se tiene un CD-Rom, sería bueno incluir el soporte ISO9660. Finalmente, si se desean utilizar las cuotas, responda Y en la primera opción.
      *
      * character devices
      *
    
    Soporte para el puerto paralelo y para diversos ratones. No olvide activar la impresora si está conectada al puerto paralelo.
      *
      * Sound
      *
    
    ¡ Pasemos a la tarjeta de sonido ! Me voy a limitar a la SoundBlaster 16. Es la que yo tengo y permite dar un ejemplo. Sóolo las opciones que hay que modificar están aquí presentes. En realidad, Linux maneja muchas otras tarjetas de sonido.
    Sound card support (CONFIG_SOUND) [M/n/y/?]
      Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?]
      /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?]
      MIDI interface support (CONFIG_MIDI) [Y/n/?]
      FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?]
      I/O base for SB Check from manual of the card (SBC_BASE) [260]
      Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5]
      Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1]
      Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit
            cards) (SB_DMA2) [5]
      MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card
            (SB_MPU_BASE) [330]
      SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
      Audio DMA buffer size 4096, 16384, 32768 or 65536 (DSP_BUFFSIZE) [65536]
    
      *
      * Kernel hacking
      *
      Kernel profiling support (CONFIG_PROFILE) [N/y]
    
    Es muy recomendable poner esta opción en N.
  3. make dep se encarga de crear las dependencias.
  4. make clean limpiará toda la arborescencia.
  5. Lance make zImage para compilar el núcleo. Puede irse a tomar un cafecito: ¡tarda bastante! Salvo que posea un P6 o algún otro mosntruo (tiempo de compilación alrededor de 4 minutos)... pero con mi 486 DX2/66 y 16 Mb, la compilación tarda aproximadamente 40 minutos. Depende sobre todo de la cantidad de memoria disponible.
  6. si tiene módulos, lance su compilación con : make modules y luego instálelos con : make modules_install. Serán copiados en el directorio /lib/modules/2.0.26
  7. Cuando haya terminado, vaya a /usr/src/linux/arch/i386/boot. El nuevo núcleo es el archivo zImage. El núcleo esta comprimido. Cópielo en la raíz / , bajo un nuevo nombre (por ejemplo " vmlinuz2 "). Modifique la configuración de LILO pero no retire nada, copie una sección y modifíquela de manera que pueda lanzar el nuevo núcleo. Luego relance lilo para que el nuevo núcleo sea tomado en cuenta.

Nota: Si no logra modificar la configuración de lilo tiene que copiar el nuevo núcleo sobre el antiguo (vmlinux). Le aconsejo dejar una copia del antiguo en algún lugar y sobre todo verificar que se puede re-arrancar con ella gracias a un disquete por ejemplo.

Rearranque la máquina y debe funcionar.

13. Archivos especiales

En Linux y más generalmente en UNIX, las entradas/salidas sobre un dispositivo se hacen gracias a los archivos situados en el directorio /dev/. Cada uno de ellos se identifica por un nombre (por ejemplo, hda para el primer disco duro del controlador IDE) pero sobre todo por dos únicos números: mayor y menor. Estos archivos especiales son de dos tipos : caracteres (terminal, impresora, etc) o bloques (disco por ejemplo).

Es muy importante conocer estos archivos. Las diferentes distribuciones (Slackware, jurix, SLS, etc) crean estos archivos. Ciertas versiones pueden generar estos archivos de manera incorrecta (Slackware). Igualmente, resulta inútil crear los archivos necesarios para la utilización de dispositivos de un tipo dado si no se dispone de la tarjeta adecuada.

Para crear un archivo especial, es suficiente la orden mknod Nom_Archivo Tipo Mayor Menor. También existen otras opciones que se encuentran en el manual.

Dentro del directorio /dev también existe un archivo de órdenes llamado MAKEDEV, el cual permite crear archivos especiales sin utilizar directamente mknod.

La lista de periféricos que se presenta a continuación proviene del documento LINUX ALLOCATED DEVICES escrito por H. Peter Anvin hpa@zytor.com. Esta lista está incluída en el directorio de documentaciones de las fuentes del núcleo (Documentation/devices.txt) a partir de la versión 1.3 del núcleo.

Si usted desea desarrollar un dispositivo a la lista, contáctelo después de haber leído el documento original. De hecho, esta lista está un poco depurada.

La lista corresponde a la versión 2.1.115

14. Comunicar

14.1 UUCP y modem

UUCP (UNIX to UNIX CoPy) permite transmitir ficheros y ejecutar ciertas órdenes en una máquina remota en forma de lotes. Este sistema permite también transmitir correo, noticias y ficheros.

De hecho, este protocolo permite efectuar una transferencia de ficheros y ejecutar ciertas órdenes en función del tipo de fichero (por ejemplo rmail y rnews). Esto permite a una máquina no conectada permanentemente a Internet tener acceso a la mensajería y a los grupos de discusión.

Aunque este protocolo tiene más de veinte años, siempre está bien adaptado. Un ejemplo: aunque esté en estos momentos en los E.E.U.U., recibo todas mis noticias así como la mayoría de mi correo via UUCP desde Francia (sobre una conexión TCP/IP).

Antes de continuar, supongo que ha instalado el paquete Taylor UUCP, un lector de correo electrónico (elm, mutt, etc.), sendmail. Para las noticias, inn como servidor de noticias y un lector de noticias.

Bueno, UUCP necesita varios archivos de configuración que se encuentran en /etc/uucp (las rutas de acceso pueden variar de una instalación a otra). Si tiene una configuración basada en HDB, el paquete Taylor contiene una herramienta que permite efectuar una conversión automática de los ficheros. Funciona muy bien.

Ahora el sistema está configurado. Solo resta probarlo... Para visualizar la configuración puede utilizar la órden uuchk.

Solo nos queda configurar el servidor para que acepte las conexiones UUCP (demonio uucico):

Bien entendido, nada impide una mezcla de todas las formas.... En todo caso, si necesita referencias más amplias, consulte la documentación proporcionada con el paquete Taylor. Existe además un excelente libro de O'Reilly sobre UUCP. Es un poco la biblia del género, no dude pues en enfrascarse en su lectura.

14.2 Llamadas entrantes

Bueno. En el punto en que estamos, puede llamar; Ahora, vamos a configurar la máquina para que pueda ser llamada. Todo se configura en el archivo /etc/inittab.

Quitar los comentarios a una línea, por ejemplo :

s1:45:respawn:/sbin/agetty -h -t 60 9600 modem
|   |    |                  |    |    |     |--- Puerto a utilizar
|   |    |                  |    |    |--------- Velocidad del modem
|   |    |                  |    |--- Tiempo al cabo del cual cuelga
|   |    |                  |-------- Activa el control de flujo rts/cts
|   |    |------------- Relanzar cuando se termine
|   |------------------ Runlevels.
|---------------------- Identificador
Entonces la próxima vez que se arranque, un sistema de login estará preparado en el puerto /dev/modem (el puerto serie al cual está conectado el modem). El último problema es configurarlo. En efecto, esto depende del modem (configuración de la velocidad). Si puede posicionar algunos switch, haga que el modem se vuelva mudo (ATQ2) y sobre todo, póngalo en auto-respuesta (ATS0=1).

Si no tiene switches haga un AT&W para salvaguardar los parámetros.

Para verificar la configuración utilice usrlibuucp/uuchk/.

Si quieres más información le aconsejo que lea el HOWTO-UUCP.

14.3 PPP

El objeto de este apartado es la instalación de una conexión PPP.

Introducción

PPP (Point to Point Protocol) permite establecer una conexión IP en una línea serie de manera más eficaz que SLIP (Serial Line Internet Protocol). Una vez la conexión establecida todos los protocolos superiores a IP ((TCP, UDP, ICMP y todos los servicios asociados: FTP, telnet, NFS, http, X ...) están disponibles. Es también posible utilizar IPX.

Para establecer una conexión PPP, se necesita :

PPP es comprendido por un gran número de sistemas ( hasta MS-Windows) y normalmente nos podemos conectar de un sistema al otro. ¡ Sin embargo esta documentación solo trata el caso de Linux !

Acceso a un servidor PPP

Par acceder a un servidor PPP instalado, el núcleo debe ser compilado con la opción TCP/IP. Para esto, cuando haga make config tiene que responder así :

  Networking support (CONFIG_NET) [y] y
  TCP/IP networking (CONFIG_INET) [y] y
  IP forwarding/gatewaying (CONFIG_IP_FORWARD) [y] n
  Network device support? (CONFIG_NETDEVICES) [y] y
  PPP (point-to-point) support (CONFIG_PPP) [y] y
Además tiene que cargar las fuentes de los programas de acceso a PPP (en el archivo ppp-2.1.2a.tar.gz, ver b, c o d) para poder instalar los siguientes programas :

Puede por ejemplo instalar pppd y chat en el directorio /usr/sbin.

Luego, tiene que configurar los shell-scripts de arranque para configurar la capa TCP/IP (por ejemplo en un archivo /etc/rc.d/rc.net que será lanzado por /etc/rc.d.rc.local). He aquí un ejemplo :

echo -n "/etc/rc.net: "
INETD=/sbin/inetd
PORTMAP=/sbin/portmap

# loopback
/sbin/ifconfig lo 127.0.0.1 up netmask 255.255.255.0
/sbin/route add 127.0.0.1 lo

# demarrage des demons

if [-x $PORTMAP ]; then
        echo-n ", `basename $PORTMAP`"
        $PORTMAP
fi

if [-x $INETD ]; then
        echo -n ", `basename $INETD`"
        $INETD
fi

echo ""

Luego hay que agregar la dirección IP de la máquina en el archivo /etc/hosts :

       127.0.0.1          loopback localhost      # alias útiles
       199.103.124.170    pcpf.lectra.fr pcpf    # Mi lindo PC en PPP

La dirección IP de la máquina es aquella que el administrador del servidor PPP le ha asignado para la conexión asociada a un numero de teléfono dado. Esto significa que el amigo que se conecta 10 minutos después utilizará la misma dirección que nosotros.

Finalmente, debe configurar el dominio en el archivo /etc/resolv.conf :

   domain lectra.fr
   nameserver 192.1.2.1

La segunda linea sirve para utilizar un servidor de nombres, cacharro que envía la dirección IP correspondiente a un nombre de máquina dado. Si no posee un servidor de nombres, solamente podrá utilizar direcciones numéricas (199.103.124.x) sino deberá poner en /etc/hosts todas las máquinas a las cuales quiere acceder con sus direcciones IP...

Igualmente puede poner su nombre de dominio en el archivo /etc/ppp/options que debe existir aunque sea vacío (si no quiere que pppd pida /etc/ppp/options, tiene que compilarlo con la opción-DREQ_SYSOPTIONS=0)

Ahora puede febrilmente hacer un test de la conexión utilizando un shell-script de este estilo (Cuidado : todo esto es una sola línea) :

  /usr/sbin/pppd connect '/usr/sbin/chat -v ABORT ERROR ABORT "NO CARRIER" \
  ABORT BUSY "" ATB0 OK ATDTxxxxxxxx CONNECT "" ogin: ppp \
  word: ppp0' /dev/modem 9600 -detach debug crtscts modem \
  defaultroute 199.103.124.170:

La orden chat permite efectuar la conexión llamando al número de su servidor. Cuidado no olvide la segunda línea, en particular modem y defaultroute.

La especificación de la velocidad (9600) así como el chat-script utilizado (ABORT ERROR ABORT "NO CARRIER" ABORT BUSY "" ATB0 OK ATDTxxxxxxxx CONNECT) dependen de su modem y de la configuración del servidor (ver igualmente el login y el password).

La dirección IP debe ser aquella declarada como dirección IP de la máquina en PPP, en /etc/hosts (igualmente puede poner el nombre de la máquina en PPP)

La información de depurado debe salir en la consola (si ha configurado el fichero /etc/syslog.conf para esto)

A partir de ese momento, estas conectado a la red remota y puede hacer por ejemplo :

    $ ping 199.103.124.50
    PING 199.103.124.50 (199.103.124.50): 56 data bytes
    64 bytes from 199.103.124.50: icmp_seq=0 ttl=255 time=268 ms
    64 bytes from 199.103.124.50: icmp_seq=1 ttl=255 time=247 ms
    64 bytes from 199.103.124.50: icmp_seq=2 ttl=255 time=266 ms
para hacer un test de la conexión. Si el ping funciona y la red está conectada a Internet entonces ya tiene Internet.

Si eso no funciona, puede hacer un test escribiendo /sbin/ifconfig y el resultado debe parecerse a esto :

  lo        Link encap Local Loopback
            inet addr 127.0.0.1  Bcast 127.255.255.255  Mask 255.0.0.0
            UP LOOPBACK RUNNING  MTU 2000  Metric 1
            RX packets 0 errors 0 dropped 0 overrun 0
            TX packets 0 errors 0 dropped 0 overrun 0

  ppp0      Link encap Serial Line IP
            inet addr 199.103.124.170  P-t-P 199.103.124.50  Mask 255.255.255.0
            UP POINTOPOINT RUNNING  MTU 1500  Metric 1
            RX packets 33 errors 0 dropped 0 overrun 0
            TX packets 42 errors 0 dropped 0 overrun 0
Sobre todo tiene que tener una línea que comience por ppp0 sino, hay algún problema. Igualmente puede hacer un test con netstat -nr que debe dar una cosa así mas o menos :
  Kernel routing table
  Destination     Gateway         Genmask         Flags Metric Ref Use    Iface
  199.103.124.50  0.0.0.0         255.255.255.255 UH    0      0        6 ppp0
  127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
  0.0.0.0         199.103.124.50  0.0.0.0         UG    0      0     6298 ppp0
Con una linea 0.0.0.0 que tenga la dirección IP del servidor PPP. Si no tiene esta linea, puede que haya olvidado la opción defaultroute.

Configuración de un servidor PPP

Para eso, debe instalar los mismos programas del capitulo anterior (configurar el núcleo, instalar pppd). Ademas de esto, debe crear un login especial para las conexiones PPP en /etc/passwd, por ejemplo :

  ppp::61:60:Conexión PPP:/:/usr/bin/ppp_login

El script /usr/bin/ppp_login es :

  #!/bin/sh
  # Conexión PPP --> dirección IP = 199.103.124.170
  exec /usr/sbin/pppd -d -detach -ip modem proxyarp :199.103.124.170
La opción proxyarp permite a la máquina conectada tener acceso a toda la red :
 199.103.124.170                   199.103.124.50
+-----------+      PPP link       +----------+
|   pcpf    |-------------------- |  ondee   |
+-----------+                     +----------+
                                       |           Ethernet
               ----------------------------------- 199.103.124.x

Bibliografía

Para más información ver el archivo README.linux del ppp-2.1.2a.tar.gz. Nota : este archivo se encuentra normalmente en el directorio /usr/doc.

14.4 Una red detrás de una sola dirección

Una pregunta común es : " Tengo un acceso Internet pero una sola dirección IP y quisiera conectar varias máquinas".

El NET3-HOWTO responde a esta pregunta pero olvida una posibilidad. Esta nota tiene por objetivo, explicar las cuatro maneras de resolver el problema.

14.5 Sendmail

La configuración de sendmail es siempre algo particularmente trabajoso y difícil. Sin embargo, ciertas herramientas facilitan enormemente las cosas. Las distribuciones poseen ciertos archivos, que pueden ser una solución. De todas maneras es más sano reinstalar el archivo de configuración basándose en los siguientes documentos :

14.6 Configuración del correo durante una conexión con un proveedor

Los proveedores reciben los mensajes y los ponen a disposición del usuario via un servidor POP (en general mail.proveedor.pais o pop.proveedor.pais ) Tiene que recuperar los mensajes recibidos por ese servidor hacia la máquina Linux en /var/spool/mail/usuario.

Para esto puede utilizar el programa fetchmail

He aquí un ejemplo de fichero .fetchmailrc :

# Recuperación  de mi correo desde mi proveedor 1
poll mail.proveedor.pais protocol POP3:
        user UsuarioServidorPop has password ContraseñaServidorPop is NomLocal here
        fetchall

# Recuperación  de mi correo desde mi proveedor 2
poll mail.proveedor2.pais protocol POP3:
        user UsuarioServidorPop2 has password ContraseñaServidorPop2 is NomLocal here
        fetchall

Puede utilizar también el programa gwpop de Stephane Bortzmeyer. Se encuentra en : ftp://ftp.pasteur.fr/pub/Network/gwpop.

En este script, definir :

  $mailhost = "mail.proveedor.pais";
  $deliver= "deliver NombreUsuarioLocal ";

Una vez esté conectado, lance via un script (para que no tenga que escribir todo cada vez) :

  gwpop -p ContraseñaServidorPop UsuarioServidorPop

Una vez recibido el correo, la cuestión es saber como enviarlo.

Deux méthodes sont couramment utilisées dans le monde unix pour créer le fichier sendmail.cf nécessaire.

Se utilizan normalmente dos métodos en el mundo unix para crear el fichero sendmail.cf necesario.

14.7 Uso del Kit de Jussieu

Recompile e instale la última versión de sendmail

He aquí el archivo de reglas que hay que indicar con el kit sendmail de Jussieu :

  #!/bin/sh
  #
  # Reglas para el dominio lolonet
  #
  Domaine="MiNombredeDominioConUnPunto"
  AdressesInternes=RIEN
  V8="o"
  Aliases="/etc/aliases"
  SendmailSt="/etc/sendmail.st"
  SendmailHf="/usr/lib/sendmail.hf"
  Mqueue="/var/spool/mqueue"
y el archivo de config. :
  #!/bin/sh
  Host="NombreDeMimáquina"
  AdressesLocales=TOUT_DOMAINE
  RelaisExterieur="smtp.[mail.provedor.pais] "
  ReecritureadressesLocales=$Domaine
  RevAliases="hash -N /etc/revaliases"
  MailerLocal='/usr/bin/procmail lsSDFMhPfn procmail -Y -a $h -d $u'

Se utiliza el programa procmail como lector de correo local. Este programa permite a cada usuario filtrar automáticamente los mensajes recibidos por medio de reglas especificadas en el fichero .procmailrc de su $HOME.

Luego sólo necesita quitarle el comentario a la línea siguiente :

  CPP="$CPP -traditional"

Y luego generar el archivo de config :

./configurateur regles.lolonet Maquina.config >sendmail.cf.Maquina

y copiar el archivo generado a /etc/sendmail.cf.

14.8 Uso de m4

Puede conservar el sendmail suministrado en su distribución, pero le recomiendo encarecidamente que compile usted mismo la última versión disponible.

Encontrará en el directorio sendmail-ver/cf/cf una lista de ficheros .mc predefinidos... Puede basarse en ellos, en el fichero sendmail-ver/cf/README y en el fichero sendmail-ver/doc/op/op.me para crearse un fichero linux.mc a su conveniencia.

He aquí un ejemplo comentado basado en la siguiente configuración:

Este documento presenta una de las posibilidades de sendmail que permite definir un agente de correo particular como costoso. Otra opción para decirle a sendmail que guarde en espera los mensajes utilizando tales medios es definir el agente de correo smtp como costoso para ver como todos los mensajes con destino el exterior se quedan en cola hasta que los cazamos explícitamente con un sendmail -q, colocado por ejemplo en el guión /etc/ppp/ip-up para una conexión PPP.

divert(-1)
#   linux.rtc.mc, version dialup
#   Copyright (C) 1998 Jean Charles Delépine
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
divert(0)
include(`../m4/cf.m4')dnl Carga de macros generales...
dnl
VERSIONID(`@(#)linux.rtc.mc, 0.6 (Delépine) 14/08/1998')dnl
dnl
dnl ********************************************************************
OSTYPE(linux)dnl
dnl
dnl A priori activaremos esta linea bajo Linux, que únicamente define
dnl un agente de correo local que nos apresuraremos a redefinir, pero es mejor
dnl dejarlo en caso de que las futuras versiones de sendmail añadan
dnl nuevas funcionalidades.
dnl
dnl ********************************************************************
DOMAIN(generic)dnl
dnl
dnl el dominio 'generic' define los nombres de .forward, la característica 'redirect'
dnl y el uso de sendmail.cw
dnl
GENERICS_DOMAIN(mi.propio.dominio midominio)
dnl
dnl define la clase de dominios influenciadas por las genericstables
dnl utilizadas más abajo. Introducir todos los nombres que nuestro servidor
dnl pueda utilizar según las herramientas utilizadas (pine, netscape, mail...)
dnl
dnl ********************************************************************
dnl
FEATURE(always_add_domain)dnl
dnl
dnl me gusta recibir mi correo local con la dirección reescrita.
dnl
FEATURE(masquerade_envelope)dnl
dnl
dnl para que el 'from' de la cabecera sea correcto... es esta dirección
dnl la que será usada por los servidores smtp que enlazan con nuestros
dnl destinatarios para prevenirnos en caso de problemas (user unknown, ...)
dnl
dnl ********************************************************************
FEATURE(local_procmail)dnl
dnl
dnl Por defecto el agente de correo local para Linux es mail.local, prefiero
dnl procmail dado que mail.local no es suministrado generalmente con
dnl las distribuciones actuales de Linux (puede encontrarse en los paquetes
dnl de fuentes de sendmail).
dnl
dnl ATENCION, procmail está ubicado en /usr/local/bin pero si no lo ha
dnl compilado usted mismo estará en /usr/bin... si
dnl este es su caso, quite el comentario de la línea siguiente.
dnl
dnl FEATURE(local_procmail,``/usr/bin/procmail'')dnl
dnl
dnl ********************************************************************
FEATURE(genericstable,``hash -N /etc/revaliases'')dnl
dnl
dnl un FEATURE(genericstable) sería suficiente pero quiero ser coherente
dnl con la solución "Kit de Jussieu" proporcionada anteriormente,
dnl renombro pues /etc/genericstable como /etc/revaliases
dnl Es en este fichero donde definiremos las reglas de transcripción
dnl de direcciones entre dirección local -> dirección proveedor.
dnl ej: fulano@mi.propio.dominio -> nombre.apellidos@proveedor.pais
dnl
dnl ********************************************************************
FEATURE(nocanonify)dnl
dnl
dnl No queremos canonizar los dominios de los mensajes a enviar.
dnl
dnl
dnl ********************************************************************
dnl define(`confDOMAIN_NAME',`ppp.proveedor.pais')dnl
dnl
dnl DEfine el nombre que anunciará sendmail por EHLO a los otros
dnl servidores SMTP...
dnl Puede poner lo que quiera aquí pero considero más limpio
dnl anunciar su verdadero nombre (que los servidores serios
dnl indicaran de todas formas en las cabeceras).
dnl Si dispone de una dirección IP fija, ponga aquí el nombre DNS
dnl asociado a esta dirección en una conexión PPP.
dnl
dnl Si su proveedor de acceso utiliza direcciones dinámicas,
dnl remítase a la sección
dnl "Que hacer en caso de asignación dinámica de la dirección IP"
dnl
dnl ********************************************************************
define(`confDEF_CHAR_SET', `ISO-8859-1')dnl
dnl
dnl para que el destinatario sepa como leer nuestros 8bit
dnl
dnl ********************************************************************
define(`confCON_EXPENSIVE',`True')dnl
dnl
dnl Lo que cuesta caro debe esperar un 'sendmail -q'
dnl
dnl ********************************************************************
define(`confCOPY_ERRORS_TO', `Postmaster')dnl
dnl
dnl Se debe enviar una copia de los mensajes de error al Postmaster
dnl
dnl ********************************************************************
define(`confME_TOO', `True')dnl
dnl
dnl Para que los mensajes enviados a una lista local sean tambien
dnl enviados al autor
dnl
dnl ********************************************************************
define(`SMART_HOST', `smtp8:[mail.proveedor.pais]')dnl
dnl
dnl No es a mi a quien le toca negociar con la otra punta del mundo.
dnl Delego pues esta tarea al servidor de mi FAI.
dnl Se utiliza smtp8 para enviar los acentos en 8 bits sin pasar por
dnl el quoted unreadable. Atención, consideramos aquí que
dnl mail.proveedor.pais dispone de un MTA correcto que acepta los mensajes
dnl en 8 bits (osea la mayoría, si no todos los proveedores de acceso)
dnl
dnl ********************************************************************
define(`SMTP_MAILER_FLAGS', `e')dnl
dnl
dnl El indicador 'e' indica 'expensive' (caro) : smtp cuesta caro !
dnl
dnl ********************************************************************
dnl
MAILER(local)dnl
MAILER(smtp)dnl
dnl
dnl Definición de los agentes de correo que serán utilizados.
dnl
dnl ********************************************************************

coloque su linux.rtc.mc modificado en el directorio sendmail-ver/cf/cf y lance la orden :

m4 < linux.rtc.mc > sendmail.cf

14.9 Una vez generado sendmail.cf...

Copiarlo en /etc.

Es necesario definir la dirección IP del servidor SMTP en el fichero /etc/hosts.

A partir de las versiones 8.7 de sendmail (si su versión es anterior : ¡cámbiela!) sendmail utiliza los service switch sobre los sistemas que lo soportan (Ultrix, Solaris, OSF/1, linux-libc6...) e implanta el mismo estos servicios via el fichero /etc/service.switch sobre los demás sistemas (SunOS, HP-UX, BSD, Linux-libc5, ...)

Si sus sistema utiliza la Glibc2 (RedHat 5.x, Debian 2.0,...) deberá utilizar un fichero /etc/nsswitch.conf como el que sigue:

     # /etc/nsswitch.conf
     #
     # Name Service Switch configuration file.
     # Atencíon: si utiliza los servicios NIS o NIS+,
     # deberá adaptar el contenido de este fichero.

     passwd:     files
     shadow:     files
     group:      files

     # Queremos que el fichero /etc/hosts sea visitado el primero
     # Ponga especial cuidado de dejar una referencia al servicio de nombres (DNS)
     # o no podrá seguir utilizando las herramientas de red compiladas con libc6 !

     hosts:      files dns

     networks:   files

     ethers:     files
     protocols:  files
     rpc:        db files
     services:   files

Si utiliza aún la libc5, el fichero /etc/host.conf no es tenido en cuenta por sendmail y deberá utilizar un fichero /etc/service.switch que contenga como única línea:

hosts files

De esta forma, cuando sendmail busque nuestro relé smtp, irá directamente a mirar al fichero /etc/hosts si preocuparse del DNS.

Finalmente, hay que reescribir la dirección local para que los mensajes enviados tengan un campo From correspondiente a la dirección suminstrada por el proveedor. Es suficiente añadir en /etc/revaliases una línea de este estilo:

NomLocal:       NombreProveedor@roveedor.pais

Le recomiendo añadir también las distintas direcciones que su servidor pueda utilizar para comunicar con el resto del mundo:

root:           NombreProveedor@roveedor.pais
news:           NombreProveedor@roveedor.pais
postmaster:     NombreProveedor@roveedor.pais
Le-chat:        NombreProveedor@roveedor.pais
...

y seguidamente generar la base con:

/usr/sbin/sendmail -bi -oA/etc/revaliases

Si se estaá ejecutando actualmente un demonio sendmail, mátelo con:

    # kill `head -1 /var/run/sendmail.pid`

Y reláncelo con :

    # /usr/sbin/sendmail -bd -os

Edite sus ficheros de arranque (a menudo en /etc/rc.?d o /etc/init.d) con el fin de modificar, si es necesario, la línea que ejecuta sendmail al arrancar, reemplazándola por /usr/sbin/sendmail -bd -os'.

¡Ya está! Los mensajes son almacenados en /var/spool/mqueue. Cuando esté conectado por PPP y desee enviar todos los mensajes, es suficiente hacer

/usr/sbin/sendmail -q

14.10 ¿Qué hacer en caso de asignación dinámica de la dirección IP?

¿Cual es el problema?

Cuando sendmail se comunica con otro MTA, se presenta (orden HELO ou EHLO) utilizando el contenido de la macro $j que es generalmente el resultado de la orden hostname sobre el sistema anfitrion.

En el caso de una máquina enganchada de forma intermitente a Internet, este resultado no es generalmente una dirección oficial declarada, y por tanto conocida por el servicio de nombres (DNS).

Hemos visto que la solución cuando disponemos de una direccción IP fija y válida consistía en forzar la definición de la macro $j mediante la orden del kit m4 :

    define(`confDOMAIN_NAME',`ppp.proveedor.pais')dnl

Pero es necesario, para utilizar esta solución, conocer de antemano el nombre que será asignado a nuestra máquina en una futura conexión... no es por tanto factible en el caso que nos ocupa.

En el fichero /etc/sendmail.cf que acabamos de generar, podemos ver:

# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
#Dj$w.Foo.COM

Es aquí donde tiene eventualmente lugar la definición de la macro $j que nos interesa.

En una conexión PPP, el guión /etc/ip-up/, lanzado al principio de la conexió, recibe como argumento la dirección IP que nos ha sido asignada. Es por tanto posible, en este guión, preguntarle al servidor de nombres (el nuestro o el del proveedor) que traduzca esta dirección IP a un nombre de dominio plenamente cualificado, modificar /etc/sendmail.cf y relanzar sendmail con esta nueva definición.

Hay diferentes métodos y programas que permiten hacer esto pero la mayoría son expresivos y necesitarían de un filtro awk o grep para extraer el nombre que nos interesa... he escrito por tanto una pequeña utilidad muy simple, gethost, con este único propósito.

Para poder utilizar el guión ip-up que proporciono más adelante:

Le resta modificar su fichero /etc/ppp/ip-up integrando el mío.

Un ejemplo de script ip-up :

#!/bin/sh
#   /etc/ppp/ip-up   script que permite configurar correctamente
#                    sendmail en el caso de asignación dinámica
#                    de direccin IP
#
#   Copyright © 04/1998 Jean Charles Delépine
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

# Los parámetros pasados a ip-up por pppd (man pppd) :
# $1 = nombre del interfaz (ppp0)
# $2 = dispositivo utilizado (/dev/modem)
# $3 = velocidad de transmisión
# $4 = dirección IP local (la que nos interesa)
# $5 = dirección IP remota (El servidor de modem del proveedor, será
#      nuestra pasarela al resto del mundo)
# $6 = ipparam (opción dada por el usuario via la opción ipparam
#      de pppd)

HOST=`/usr/local/bin/gethost $4`

sed s/'#Dj.*'/"Dj$HOST"/ /etc/sendmail.cf.base >/etc/sendmail.cf

kill -1 `head -1 /var/run/sendmail.pid`

/usr/sbin/sendmail -q&

exit 0

El programa gethost.c :

/*
    gethost.c, obtiene el nombre canónico de una máquina
               a partir de su dirección IP.

    Copyright © 04/1998 Jean Charles Delépine

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
*/

#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <string.h>

int main(argc,argv)
char argc;
char *argv[];
{
  struct hostent *host;
  struct in_addr ia;

  if (argc < 2) {
    fprintf(stderr,"Uso: %s addr\n",argv[0]);
    exit(1);
  }
  if (!inet_aton (argv[1],& ia)) {
      fprintf(stderr,"Error: dirección no válida\n");
      exit(1);
  }

  host=gethostbyaddr((char *) & ia, sizeof(ia), AF_INET);

  if (!host) {
    fprintf(stderr,"Error: dirección no encontrada o no hay DNS\n");
    exit(1);
  }
 printf("%s\n",host->h_name);
  exit(0);
}

14.11 netstat -s

Una opción de netstat quew existe en ciertas plataformas no existe en Linux (option -s). No importa: el guión Perl 5 que sigue ¡resuelve el problema! Es suficiente guardarlo bajo el nombre netstat, y ponerlo junto al auténtico en el PATH. Perl hace el resto.


#!/usr/local/bin/perl
# Se necesita perl 5
require 5.003;

$stats = "/proc/net/snmp";

if ($ARGV[0] eq '-s') {
    open (STATS, "< $stats") || die "Cannot open $stats: $!";
    while (<STATS>) {
        chop;
        undef $i;
        ($category, @fields) = split;
        chop $category;
        print "\n$category statistics:\n";
        $_ = <STATS>;
        ($category, @values) = split;
        $~ = "STAT";
        foreach $field (@fields) {
            write;
        }
    }
    close (STATS);
}
else {
    system ($0, join (' ', @ARGV));
}

format STAT =
@<<<<<<<<<<<<<<<<<:@>>>>>>>
$field,       ,$values[$i++]
.

15. ELF

15.1 Introducción

Desde sus primeras versiones, Linux soporta los binarios en formato a.out. Recientemente, el soporte para los binarios en el formato ELF ha sido integrado en el núcleo y se ha hecho una distribución de las bibliotecas compartidas en formato ELF. Las ventajas de este formato en relación al formato a.out son muchas:

Las ultimas versiones de las distribuciones están basadas en el formato ELF. Si su máquina todavía está en formato a.out, ya es hora de reinstalar su máquina con una distribución de Linux actualizada.

15.2 utilización de los utilitarios ELF

.

Las nuevas versiones del compilador y de las utilidades generan ejecutables en formato ELF, por defecto. Es posible crear ejecutables en formato a.out utilizando la opción -b i486-linuxaout al llamar a gcc.

Desde ahora es fácil construir bibliotecas dinámicas. Los archivos fuente deben ser compilados con la opción -fPIC con el fin que el código generado pueda ser ejecutado en cualquier dirección (las bibliotecas dinámicas se cargan en direcciones imprevisibles y su código debe ser independiente de su dirección física). La opción -shared de gcc permite luego generar una biblioteca dinámica.

Por ejemplo para generar una biblioteca libtruc.so.1.0 se utilizarían las siguientes órdenes:

  $ gcc -c -fPIC *.c
  $ gcc -shared -Wl,-soname,libtruc.so.1 -o libtruc.so.1.0 *.o

15.3 Fuentes de información sobre ELF

Algunos documentos sobre ELF están disponibles en ftp.lip6.fr en /pub/linux/ELF/doc. Se trata de :

También es posible aprender más sobre ELF en estas URL:

16. Catástrofe !

Este capitulo esta dedicado a los momentos de catástrofe, cuando nada sale bien, y cuando uno tiene ganas de tirarlo todo por la ventana...

16.1 Corrupción de particiones

En ciertas situaciones (apagón, etc...), la tabla de particiones lógicas puede corromperse. Si este es su caso, una solución para intentar resolver el problema consiste en ejecutar el programa fdisk e introducir a mano los límites (Start et End) de cada partición del disco.

Por descontado, es importante haberlo apuntado previamente en papel.

16.2 Imposible de arrancar !

Acaba de iniciar la máquina, y no puede arrancar. En este caso, lo mejor es utilizar los disquetes de arranque (los de la Slackware en este caso no están mal, o bien utilizar la opción rescue con Red Hat). Una vez la máquina comienza, hay que montar la partición raíz y copiar el núcleo en un nuevo disquete lanzando :cat /mnt/vmlinuz > /dev/fd0 por ejemplo. Normalmente, esto debería funcionar si el núcleo es el correcto. Eventualmente, efectúe un :

rdev /dev/fd0 /dev/hda2
rdev -R /dev/fd0 1
para especificar al núcleo cual es la partición raíz del sistema de archivos, y que la monte como sólo-lectura para permitir a fsck hacer su trabajo en el momento del arranque.

16.3 Formateo accidental de una partición

Ha formateado por error una partición donde se encontraba ese informe de 120 páginas que había que entregar ayer. Bien, ¡nada de pánico! Inútil decir que es imposible hacer un unformat.

La primera solución de recuperación (muy brutal) es la de hacer un strings /dev/hda3 > Recup. No te queda más que recorrer el archivo y recuperar lo que se pueda.

Una segunda solución es la de utilizar este script Perl (ver http://www-eleves.enst-bretagne.fr/~aubert/perl/) :

  # Autor : aubert@titan.enst-bretagne.fr
  #!/usr/local/bin/perl

  $maxlines = 20;

  @before = ();
  $syntaxe = "Syntaxe: cgrep.pl termino_a_buscar archivo_a_recorrer\n";

  $terme = shift(@ARGV) || die $syntaxe;
  $fichier = shift(@ARGV) || die $syntaxe;

  open(F, $fichier) || die "Cannot read $fichier: $!\n";

  # Se llena @before hasta su capacidad máxima ($maxlines)
  while (($_ = <F>) && (scalar(@before) < $maxlines))
  {
    if (/$terme/ o)
    {
      print @before;
      print $_;
      & print_next_lines;
    }
    push(@before, $_);
  }
  # La tabla @before contiene una buena cantidad de elementos, así que se
  # pasa ahora a  una parte en donde @before guarda un tamaño constante
  while (<F>)
  {
    if (/$terme/o)
    {
      print @before;
      print $_;
      & print_next_lines;
    }
    push(@before, $_);
    shift(@before);
  }

  close(F);
  exit 1;

  sub print_next_lines
  {
    for ($i = 0; $i < $maxlines; $i++)
    {
      print scalar(<F>);
    }
    exit 0;
  }

16.4 Problemas con el disco duro : super-bloque

Si el super-bloque esta corrupto lanzar e2fsck con las siguientes opciones : e2fsck -b 8193 /dev/sda3. Si no funciona , pruebe aumentando el numero de 8192 cada vez para intentar recuperar una copia del super-bloque en buen estado.

Si sigue sin funcionar , pruebe a lanzar la orden mke2fs con la opción -S. ¡Atención, no lo olvide, sino reformateará la partición! Esta opción provoca la regeneración de las copias del super-bloque y de los descriptores del sistema de archivos. No acaba con los archivos existentes.

16.5 Problemas con el disco duro : bloques defectuosos

Si su disco tiene algunos problemas (sectores defectuosos), puede recuperar e2fsck en el paquete e2fsprogs versión 1.10 si no lo tiene ya. Luego :

16.6 Recuperación de un disco

Las instrucciones que siguen efectuan una copia de seguridad del disco (al menos de aquello susceptible de recuperación), comprueban la calidad del disco, recrean un sistema de ficheros retirando los bloques defectuosos y por último restauran la copia de seguridad.


   cd /fs
   find . -depth -mount -print | cpio -ovB > $TAPE
   cd /
   tail -f /usr/adm/syslog &
   umount /fs
   badblocks -w -o /autre_filesystem/bb_list.tmp /dev/hda3
   mke2fs -l /autre_filesystem/bb_list.tmp /dev/hda3
   mount /dev/hda3 /fs
   dd if=/dev/zero of=/fs/test.tmp
   rm test.tmp
   cd /fs
   cpio -ivBmd < $TAPE

A partir de mke2fs no debería producirse ningún mensaje de error

16.7 Señal fatal 11

Ciertas máquinas no podrán funcionar convenientemente y producirán de manera mas o menos aleatoria un mensaje (por ejemplo "fatal signal 11") y luego bloquearan brutalmente la ejecución del programa activo. La causa más probable : problema de material (componentes de memoria demasiado lenta, por ejemplo).

Pruebe antes que nada a reducir la velocidad del procesador y/o el bus, desbloquear el cache procesador, gracias al "SETUP" de la máquina. Y luego disminuya el nivel de PIO del EIDE (no pasar de PIO 3). Leer a este propósito el documento http://www.linux-france.com/article/sig11-fr/.

16.8 Disquete de emergencia

Casi todas las distribuciones proponen disquetes de emergencia que permiten al menos arrancar la máquina y montar la raíz del sistema de ficheros para poder efectuar las reparaciones necesarias. Detodas formas, señalamos aquí la presencia de un disquete muy útil (este tipo de disquete tiene un nombre particular, "bita y cuchillo", por razones puramente históricas), tomsrtbt, que podemos encontrar en el sitio http://www.clark.net/~toehser/.

17. Varios

17.1 Como generar un disquete de arranque (boot)

Puede ser muy útil el tener en un disquete un núcleo para arrancar desde él. Para hacerlo, tome un disquete formateado y vaya a la raíz de su disco. Identifique su núcleo. Debe llamarse zImage o vmlinuz.

Cópielo en el disquete :

          cat /zImage > /dev/fd0

después haga (ejemplo) :

       rdev /dev/fd0 /dev/hda2
       rdev -R /dev/fd0 1
el segundo parámetro de la primera instrucción debe ser el nombre de la partición raíz Linux de su sistema.

Este disquete le permite arrancar (¡pruébelo!).

17.2 Mi contraseña, donde esta mi contraseña?

En resumen : Ha perdido su contraseña de root... Bueno, hay varias soluciones. La primera :

  1. Arranque con los disquetes boot y root de su distribución.
  2. Entre como root (ahí, no hay contraseña).
  3. Monte la raíz del disco duro : mount -t ext2 /dev/hda1 /mnt
  4. Vaya al directorio /mnt. Sólo queda editar el archivo /mnt/etc/passwd, y suprimir la contraseña de root : root::0:0:root:/root:/bin/bash.

Arranque Linux normalmente, y en principio no necesita contraseña para entrar como root.

Bueno, pasemos a otras soluciones : Rearrancar el pc en modo single-user. Para esto, en el momento de arrancar con LILO, decirle LILO: linux single (reemplace aquí linux por el nombre con el cual LILO conoce a su núcleo). Aparecerá un intérprete de órdenes en modo superusuario. Atención : el teclado esta en qwerty y la partición en modo sólo lectura. Para remediarlo :

        loadkeys /usr/lib/kbd/keytables/fr.map (es.map)
        mount -w -n -o remount /
Utilice la orden passwd, o edite el archivo /etc/passwd

Si no dispone de disquete de arranque, a menudo puede resolverlo pasando init=/bin/sh al arrancar. Seguidamente, monte la raíz y edite el fichero /etc/passwd a mano.

17.3 Como limitar el reboot en single-user ?

El problema de arrancar en modo single-user, es que cualquiera puede entrar en la máquina como root. Para las empresas y las universidades, se plantea un problema de seguridad. Ciertas estaciones UNIX permiten colocar una contraseña en la EPROM de la máquina. Linux permite pedir la contraseña de root en modo single-user.

Para ello, debe recuperar las fuentes del programa init que se lanza en el momento de iniciar el sistema. Al principio del programa init.c, modifique la definición de la constante SOME_USER para que tenga el valor 2, recompile init, y re-instálelo.

Esta primera solución puede resultar de todas maneras insuficiente ya que una persona puede siempre arrancar sobre otro dispositivo (utilizando la opción root = Milinux).

Utilizando Lilo, ¡no hay problema ! basta agregar las lineas siguientes para cada una de las imágenes en el archivo /etc/lilo.conf:

  password = la contraseña sin encriptar
  restricted

(¡piense en colocar este archivo en modo sólo lectura para el super-usuario sin ningún derecho para los demás!)

El arranque normal de cada imagen pasa sin problema y sin pedir la contraseña (importante si uno quiere que la máquina se reinicie sola en caso de lío : apagón, reboot a distancia, ...) pero si uno quiere pasarle parámetros al núcleo en el momento del arranque, Lilo pide en ese momento la contraseña.

17.4 Consolas virtuales

Linux permite trabajar al mismo tiempo en varias ventanas de texto. Para pasar de una a otra, pulse Alt + Fn donde n es el número de la ventana virtual y Fn una tecla de función (por ejemplo F1, F2 ...). Puede configurar el número de ventanas en el archivo /etc/inittab.

Cuando se está bajo X, la combinación es Ctrl + Alt + Fn. Es entonces posible regresar bajo X accediendo así a la consola empleada (la primera "libre", es decir no manejada por un getty). Por ejemplo, si tiene 6 consolas virtuales (de Alt F1 hasta Alt F6 ); usa Alt-F7.

Utilice maj + paginas(teclas "SHIFT" y "página precedente" o "página siguiente") para "pasearse". Esto funciona también bajo xterm.

17.5 Consolas virtuales - aspectos teóricos

Principios

Las consolas virtuales son dispositivos. Hay 63 (o más si se modifica y recompila el núcleo). Se corresponden con los ficheros "especiales" tty1 ... tty63 del directorio /dev.

Para poder utilizarlas, es necesario asociar un proceso al terminal. Este es el papel de las utilidades como agetty. De hecho es interesante observar (con la ayuda de top) la evolución de los procesos en el momento del acceso de los usuarios;

Lo primero que hace agetty (como root) es pedirnos nuestro nombre de usuario. Al pulsar "intro", agetty ejecuta el programa login (siempre como root) como proceso hijo.

login (asociado a la CV como hijo de agetty) nos pide la contraseña. Entonces lanza nuestro intérprete de órdenes (ahora ya como "usted").

Podemos observar que al terminar nuestra sesión (es decir, al finalizar la ejecución de nuestro intérprete de órdenes), se vuelve a ejecutar un agetty.

Configuración

Aquí es donde interviene el fichero inittab. init (de PID 1), es el proceso padre de todos los procesos. Como es el primer proceso, es el encargado de lanzar los agetty. Para ello se sirve del fichero de configuración /etc/inittab.

Entre otras cosas, este fichero contiene líneas del tipo:


    c1:1235:respawn:/sbin/agetty 38400 tty1 linux

Para una explicación detallada, véase a página del manual de inittab(5). A grandes rasgos, significa que init lanza un agetty en /dev/tty1 y que lo vuelve a ejecutar cada vez que muere (respawn) con un tipo de terminal Linux cuando nos encontramos en los "runlevels" 1,2,3 o 5.

Por tanto, debe existir una línea de este tipo por cada consola virtual.

Aquí vemos que hay tantos agetty en ejecución como consolas virtuales utilizables, y que estamos limitados por este número de líneas en inittab (a menos que lancemos 63 agetty...).

Existe otro método: la asignación dinámica de CV. Esto se consigue gracias a un pequeño demonio (cspawnd)

ftp://ftp.lip6.fr/pub/linux/sunsite/utils/console/dynamic-vc-1.1.tar.gz

cspawnd is normally started in rc.local as a daemon that is signaled by the kernel when the console user presses the Spawn_Console key (see below). Upon receipt of a signal from the kernel, cspawnd activates the newly allocated VC and spawns a getty process to enable the user to login. In its default configuration, it also attempts to periodically deallocate unused VCs.
(NT: en inglés en el original)

Por tanto es conveniente dejar una CV gestionada por el primer método, asignando las demás dinámicamente.

Las teclas

Ahora debemos poder pasar de una CV a otra. Es el núcleo quien se encarga de ello. Cuando una tecla "ConsoleN" (N=1...63) es pulsada, el núcleo asocia la CV númeroi N a la consola (la real).

Tambien existen "Decr_Console" e "Incr_Console" que, respectivamente, incrementan y decrementan el número de la consola; así como Last_Console, que pasa a la última consola utilizada. cspawnd añade la tecla "Spawn_Console" (ver más arriba).

Queda asociar esto a teclas (o combinaciones de teclas) del teclado. Esto se consigue gracias a la utilidad loadkeys (ejecutada por init al inicio [en un fichero /etc/rcXXX]). Esta utilidad toma como parámetro un fichero .map (seguramente /usr/lib/kbd/keytables/es.map) que contiene líneas del estilo:

                 keycode  87 = F11 F11 Console_23
 control         keycode  87 = F11
 alt             keycode  87 = Console_11
 control alt     keycode  87 = Console_11

Por supuesto, se puede encontrar toda esta informació en las páginas de man y todas las ayudas en línea a nuestra disposición. Citemos loadkeys(8), init(8), inittab(5), cspawnd(8) así como los ficheros del directorio /usr/src/linux/Documentation.

17.6 Afrancesamiento

(NR: en general Internacionalización)

locale // nls

Los "locales" son un sistema que permite gestionar lo mas apropiadamente posible las diferencias de lenguaje y de estilo de los usuarios. Por ejemplo, los francófonos prefieren escribir 3,14 mejor que 3.14, no anotan las fechas como los Australianos (quienes no lo hacen como los Estados-Unidos), etc. Cada usuario debe entonces poder escoger un local que le convenga y las aplicaciones bien hechas (raras son aquellos que gestionan completamente los locales pero son numerosas las que los utilizan al menos un poco) se adaptan sin recompilación. En resumen, se trata de dejar las preferencias nacionales fuera de la aplicación, como con el sistema de recursos del MacOS.

Si es programador, puede consultar el locale-tutorial (distributions/jurix/source/libc/nls o sunsite/utils/nls) o el Mini- HOWTO sobre los Locales. Si es un simple usuario, puede conocer los locales instalados en su sistema con local -a (los nombres parecen estar poco estandarizados, verá cadenas del tipo "fr_FR" o "fr_FR.ISO8859-1") y seleccionar uno con las variables de entorno como LANG o LC_CTYPE (man local tal vez le sea de ayuda).

Si es el administrador de una máquina, y los locales no funcionan como desea, puede leer el Mini-HOWTO sobre los Locales y/o este modesto texto.

Si Linux no llegó con una instalación correcta de los locales ( no creo que exista una buena distribución desde este punto de vista), tiene dos soluciones. Yo solo probé la primera y solo funciona bien con un núcleo superior o igual a 2.0 y una libc versión 5.2.18 o superior.

Primera solución : compilar los programas de la libc y utilizar el paquete WG15-collection.

Para esto, debes recuperar las fuentes de la libc. no es necesario compilarla completa, solo los programas de gestión de los locales, que permiten especialmente producir un archivo binario a partir de la fuente de un local. Para resumir la instalación :

Recuperar libc (aquí 5.2.18), por ejemplo en ftp://ftp.lip6.fr/pub/linux/GCC.

  (pasar a root)
  cd /usr/src
  mkdir libc-5.2.18
  chown <USERNAME> libc-5.2.18
  (salir de root)
  cd libc-5.2.18
  tar -xzvf /usr/tmp/libc-5.2.18.tar.gz
  cd include
  ln -s /usr/src/linux/include/asm .
  ln -s /usr/src/linux/include/linux .
  cd ../libc

Y allí puede leer las instrucciones en el README y hacer "./configure" ("make depend" es lento y no parece necesario si quiere sólo los locales)

Si no quieres compilar toda la libc, te paras allí y :

  cd locale
  make SHARED= programs
  (pasar a root)
  mv localedef /usr/local/bin
  mv locale /usr/local/bin
  (salir de root)

Tiene ahora los dos programas importantes. Ahora puede generar los locales binarios a partir de las fuentes.

Una buena colección de fuentes se encuentra en el archivo WG15-collection.linux.tar.gz que se encuentra por ejemplo en ftp://ftp.lip6.fr/pub/linux/GCC ( debe su nombre a un "working group" Posix).

En este archivo, una vez desempaquetado, hay una buena documentación (Intro). Si no quiere leerla, lo que hay que hacer es :

  (pasar a root)
  cd charmaps
  mkdirhier /usr/share/nls/charmap
  cp ISO_* /usr/share/nls/charmap
  cd ../locales
  mkdirhier /usr/share/nls/locale
  cp POSIX ??_* /usr/share/nls/locale
  mkdirhier /usr/share/locale
  (la linea siguiente es lo que parece ser un error en la
  distribución)
  localedef -c -i /usr/share/nls/locale/en_DK -f ISO_8859-1:1987 en_DK
  (lleno de mensajes de errores del tipo "item `yesstr' of category
  `LC_MESSAGES' undefined" a ignorar)
  localedef -c -i /usr/share/nls/locale/fr_FR -f ISO_8859-1:1987 fr_FR
  (salir  de root)

Puede comprobar con local -a que el nuevo local es conocido desde ahora. Es todo. Los usuarios pueden utilizar ya las variables de entorno de los locales como LANG o LC_CTYPE.

Segundo método, que no he podido hacer funcionar :

Recuperar nslutils (hoy nlsutils-0.5.tar.gz) por ejemplo (parece necesario recuperar los archivos de cabecera como localeinfo.h en la libc).

  make
  make install

Para comprobar la instalación de los locales, puede servirse de Perl 5.003 (es la primera versión de Perl que prueba que la instalación es correcta y si no produce un mensaje de error) o este programa:

 # include <stdio.h>
 #include <ctype.h>
 #include <string.h>
 #include <locale.h>
 #include <sys/types.h>
 #define STRING  "bétö\b"
  void main ()
  {
      int i;
      u_char c;
      printf ("Setting locale: %s\n", setlocale(LC_ALL, ""));
      for (i=0; i<strlen(STRING); i++)  {
         c = STRING[i];
         printf ("%c (%d) is %s\n", c, (int)c, isprint((int)c)?"printable":"non-printable");
       }
  }

No debe imprimir en la pantalla Setting locale: (null) y, con el locale francés (español) correcto, debe encontrar que todos los caracteres, excepto el último, son "printables".

Ciertas herramientas GNU comienzan a ser internacionalizadas. Para tener esta posibilidad, añada a su .bashrc las líneas siguientes :

  export LC_CTYPE=ISO-8859-1
  export LANG=fr        # (NT: export LANG=es para hispanohablantes)

ispell

ispell es un corrector ortográfico, en francés. Se puede obtener en ftp.lip6.fr en /pub/ispell. Es igualmente posible obtener un diccionario francés para ispell en el mismo sitio en el directorio /pub/ispell/francais. El corrector epelle se revela también digno de interés.

Los acentos bajo bash

agrega en el archivo .inputrc las lineas siguientes :

  set meta-flag on
  set convert-meta off
  set output-meta on

less

Es muy desagradable no tener los acentos cuando se hace un less o un more de un archivo. Para que este problema no aparezca, añade :

  export LESSCHARSET=latin1

en el archivo /etc/profile.

less permite también examinar el contenido de diversos tipos de archivos (less toto.tar.gz...) :

  export LESSOPEN="|lesspipe.sh %s"

Colocar el script siguiente en un directorio cuyo nombre figura en el PATH :

  #!/bin/sh

  lesspipe() {
    case "$1" in
    *.tar) tar tvvf $1 2>/dev/null ;; # View contents of .tar and .tgz files
    *.tgz) tar tzvvf $1 2>/dev/null ;;
    *.tar.gz) tar tzvvf $1 2>/dev/null ;;
    *.tar.Z) tar tzvvf $1 2>/dev/null ;;
    *.tar.z) tar tzvvf $1 2>/dev/null ;;
    *.Z) gzip -dc $1  2>/dev/null ;; # View compressed files correctly
    *.z) gzip -dc $1  2>/dev/null ;;
    *.gz) gzip -dc $1  2>/dev/null ;;
    *.bz) bzip -dc $1  2>/dev/null ;;
    *.bz2) bzip2 -dc $1  2>/dev/null ;;
    *.zip) unzip - l $1 2>/dev/null ;;
    *.lha) lha -v $1 2>/dev/null ;;
    *.arj) arj l $1 2>/dev/null ;;
    *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` ; #groff src
      FILE=`echo $FILE | cut -d ' ' -f 2`
      if [ "$FILE" = "troff" ]; then
        groff -s -p -t -e -Tascii -mandoc $1
      fi ;;
    esac
  }

  lesspipe $1

Formato de textos

Para gs y xdvi, hay que utilizar unas opciones especiales (en mi máquina, son los alias). Efectivamente, con frecuencia son configurados para un papel de tamaño anglo-sajón.

Estas opciones son las siguientes :

  gs -sPAPERSIZE=a4
  xdvi -paper a4
  ghostview -a4

Para que dvips convierta los documentos en un formato papel a4, hay que especificar en el archivo config.ps (la ruta varía en función de las versiones de LaTeX) :

  @ a4 210mm 297mm
  @+ ! %%DocumentPaperSizes: a4
  @+ %%PaperSize: a4
  @+ %%BeginPaperSize: a4
  @+ a4

elm

Para que el correo esté en 8 bits (con acentos) sin necesidad de encapsularlo vía MIME u otra, agregue estas tres líneas al archivo ~/.elm/elmrc :

  charset = iso-8859-1
  displaycharset = iso-8859-1
  textencoding = 8bit

telnet

Il peut arriver que lors d'une connexion distante via telnet, les accents ne passent pas. Dans ce cas, utiliser l'option -L de telnet.

Puede ocurrir que en el momento de una conexión remota via telnet, los acentos no aparezcan. En este caso, utilice la opción -L de telnet.

French-HOWTO

Se ha escrito un documento para reunir un cierto número de especificaciones. No dude en consultar la dirección http://www.freenix.org/linux/HOWTO-vo/French-HOWTO.html.

17.7 teTeX y el estilo francés

Nota: la versión original de esta parte se encuentra en el sitio http://www.linux-france.com/article/tex/install_tetex_french.txt/

La versión de teTeX empleada es la 0.4p18, de la distribución Linux Red Hat (CD "LINDIS 1.0") 4.2. La versión de la extensión french empleada es la versión 4.00 (fecha : 19970626) obtenida del sitio ftp.lip6.fr /pub/TeX/CTAN/language/french (fichero french.tar.gz). Ver también http://www.loria.fr/tex/.

Nota : los usuarios de Debian observarán con placer que los existen los paquetes siguientes (gracias a L. Picouleau) :

tetex-french - The french style files for (La)TeX
tetex-french 4.00-1 -> 4.01-1 into hamm/non-free/binary-i386/tex
tetex-french (4.01-1) unstable; urgency=low
  * New upstream source
  * Build from pristine sources
  * 8 bit support (patch from Frederic Lepied <flepied@teaser.fr>)

Instalación

Comience por obtener los archivos tetex y french e instalar los paquetes rpm:

tetex-dvilj-0.4pl8-5.i386.rpm
tetex-dvips-0.4pl8-5.i386.rpm
tetex-xdvi-0.4pl8-5.i386.rpm
tetex-latex-0.4pl8-5.i386.rpm
tetex-0.4pl8-5.i386.rpm

Es necesario ser root para efectuar la instalación (recuerde: para instalar un paquete rpm: # rpm -i nom_du_paquet).

No es necesario instalar el paquete tetex-dvilj-0.4pl8-5 si no utiliza impresora PCL LaserJet sin PostScript.

Lea los comentarios contenidos en el paquete tetex-afm (con rpm -qip tetex-afm*) antes de decidir instalarlo o no.

Toda la distribución ocupa alrededor de 40 Mb (teTeX) y 3,5 Mb (french).

Primer test

La instalación crea diversos programas ejecutables en los directorios adecuados. Intentemos determinar si todo esta en su lugar (como usuario normal, no como troot):

El mensaje /usr/lib/texmf/texmf.cnf debe aparecer. En caso de problemas:

# find /usr/lib/texmf /var/lib/texmf -type d|xargs chmod a+rx

Configuración

Pasemos a la instalación y configuración del paquete french.

# umask 022
# cd /usr/lib/texmf/texmf/tex/generic
# tar xvzf french.tar.gz

Édite el fichero /usr/lib/texmf/texmf.cnf y modifique la definición de TEXINPUTS.latex. Se transforma en:

$KPSE_DOT:$TEXMFS/tex/{generic/french/inputs,latex,latex209,generic}//:$TEXMFS/tex//

Es suficiente añadir ahora generic/french/inputs y :$TEXMFS/tex//.

También podemos, llegado el caso, añadir la ruta de los estilos entregados con las sgml-tools o linuxdoc-sgml (con el fin de emplear sgml2latex para generar, por ejemplo, las versiones francesas de los HowTo, o la Guía del enROOTador):

$KPSE_DOT:$TEXMFS/tex/{generic/french/inputs,latex,latex209,generic}//:$TEXMFS/tex//:
/usr/local/lib/linuxdoc-sgml//

Utilice en ese caso sgml2latex -l para convertir de sgml a LaTeX. Pero esto no es suficiente: los caracteres acentuados se pierden. Puede ser necesario utilizar recode o (gracias a L. Wacrenier) añadir la opción <article opts=french> al código SGML.

A continuación modifique los parámetros:

# cd /usr/lib/texmf/texmf/tex/generic/config
# mv language.dat language.dat-babel
# cd /usr/lib/texmf/texmf/tex/generic/babel
# mv hyphen.cfg hyphen.cfg-babel
# cd /usr/lib/texmf/texmf/tex/generic/hyphen
# ln -s ushyph1.tex ushyph.tex
# cd /usr/lib/texmf/texmf/tex/generic/french/initex
# texconfig rehash
# initex latex.ltx
# mv latex.fmt /usr/lib/texmf/texmf/web2c

Despues, siempre como super-usuario, lance el programa texconfig y seleccione :

Utilice a continuación las pruebas del directorio /usr/lib/texmf/texmf/tex/generic/french/tst con el fin de asegurarse de que todo funciona bien (como usuario normal) :

$ mkdir ~/tmp
$ cd ~/tmp
$ cp -a /usr/lib/texmf/texmf/tex/generic/french/tst french_tst
$ cd french_tst
$ latex frenchlb.tex
$ latex frenchlb.tex
$ xdvi frenchlb.dvi
$ xdvi frenchrf.dvi

Ciertos estilos antiguos no funcionarán por culpa del fichero Ulasy.fd. Este fichero existe pero ha sido renombrado como ulasy.fd (inicial en minúscula) ya que esto mejora la compatibilidad de teTeX con los sistemas operativos incapaces de distinguir entre mayúsculas y minúsculas en los nombres de fichero. Es suficiente encontrar el directorio donde se encuentra el fichero (utilice find o locate), crear un enlace simbólico y llamar a texconfig rehash.

Por ejemplo :

# locate ulasy.fd
/usr/lib/texmf/texmf/tex/latex/base/ulasy.fd
# cd /usr/lib/texmf/texmf/tex/latex/base
# ln -s ulasy.fd Ulasy.fd
# texconfig rehash

Seguidamente utilice un navegador Web (browser) para examinar los ficheros

/usr/lib/texmf/texmf/doc/help/Catalogue/catalogue.html
y
/usr/lib/texmf/texmf/doc/helpindex.html

antes de emplear una impresora PostScript. Determine el valor adecuado del parámetro 'm' en el fichero config.ps utilizado. Lea al respecto el fichero info de dvips.

17.8 TeX y los tipos de caracteres

Ciertos personajes poco delicados se permitieron modificar los tipos de caracteres Computer Modern sin cambiar el nombre Y ESTO ES CONTRARIO A TODOS LOS COPYRIGHTS de Knuth. Esto es EXTREMADAMENTE grave porque todo documento tipografiado con los tipos de caracteres no tendrá la misma apariencia que con los VERDADEROS Computar Modern. Desafortunadamente, estos tipos de caracteres defectuosos fueron entregados con varios CDs Linux. Como muchos de nosotros trabajamos con los CDs slackware, conviene tener extremada atención.

Es por esto que debería verificar su sistema. Para ello, es fácil, un buen viejo terminal y dos minutos de tiempo :

¡listo!, tiene los tipos de caracteres originales (el valor clave a retener, es el 10.55559). Es suficiente ahora responder `x' para que TeX termine.

En caso contrario, su sistema está infectado. Basta recuperar las actualizaciones y el ciclo se completa.

17.9 Una tarjeta de sonido bien configurada

Cuando uno compila y se sirve de una tarjeta sonido en Linux, la gran pregunta es saber si la tarjeta está correctamente configurada. Para esto, existe un archivo (/dev/sndstat) que da todas las informaciones sobre la configuración de la tarjeta :

  Sound Driver:3.5.4-960630 (Mon Nov 11 14:50:52 MET 1996 root,
  Linux gandalf 2.0.25 #3 Mon Nov 11 11:44:54 MET 1996 i486)
  Kernel: linux gandalf 2.0.25 #3 Mon Nov 11 11:44:54 MET 1996 i486
  Config options: 0

  Installed drivers:
  Type 1: OPL-2/OPL-3 FM
  Type 2: Sound Blaster
  Type 7: SB MPU-401

  Card config:
  Sound Blaster at 0x260 irq 5 drq 1,5
  SB MPU-401 at 0x330 irq 5 drq 0
  OPL-2/OPL-3 FM at 0x388 drq 0

  Audio devices:
  0: Sound Blaster 16 (4.11)

  Synth devices:
  0: Yamaha OPL-3

  Midi devices:
  0: Sound Blaster 16

  Timers:
  0: System clock

  Mixers:
  0: Sound Blaster

Para probar el correcto funcionamiento de la tarjeta de sonido, es suficiente enviar algunos archivos audio (.au) a /dev/audio con la orden siguiente cat toto.au > /dev/audio.

17.10 Bug gcc

Ciertas versiones de gcc (de la 2.7.0 a 2.7.2 ambas comprendidas, pero no 2.7.2.1 y posteriores) tienen un bug con la opción -O2. Para identificarlo, pruebe este programa :

  /* sr_bug.c
   *
   * este programa hace un test  para un error de gcc.
   * Para compilar este program de test:  gcc -O2 sr_bug.c
   *
   * Algunas veces gcc para Intel CPUs genera código erróneo en el
   * nivel de optimización 2. El código erróneo es 'casi perfecto' y está oculto
   * dentro del programa que parece funcionar - incluyendo el kernel Linux.
   * El bug es muy viejo y ya ha sido documentado. A fecha 19-Dec-95,
   * el bug no ha sido reparado.
   *
   * Si cambia este código debería probarlo, porque aún un
   * mínimo cambio puede esconder este elusivo bug. Si cree que
   * ha reparado el bug, por favor ejecute el test original  hasta
   * estar seguro. Puede encontrar el test original abajo, despues de #if 0.
   * Escribi esta versión del test en Ingles para hacerla amigable, y
   * puede no ser tan sólida  como el original.
   *
   * Algunas personas que conocen mas que yo:
   * davis@space.mit.edu (John E. Davis)
   * anlauf@crunch.ikp.physik.th-darmstadt.de (Harald Anlauf)
   * craigs@iii2.iii.net (Craig Shrimpton)
   *
   * Versión amigable por Albert Cahalan
   *
   */

  #include <stdio.h>

  int gcc_sr_bug(void){
    static int Array[3]; /* must be static (or global) */
    unsigned int B = 3;  /* must be unsigned 32-bit */
    int i;
    for(i=0; i<B; i++) Array[i] = i - 3;
    for(i=0; i<B; i++) printf(" %d,%d", i, Array[i]);
    return !Array[1];
  }

  int main(){
    printf("Testing for gcc bug...");
    if(gcc_sr_bug()){
      printf("\n\nBad code! Your compiler generates bad output.\n\n");
      printf("Add -fno-strength-reduce to your gcc command line\n");
      printf("or put it into your gcc config file, such as in\n");
      printf("/usr/lib/gcc-lib/i486-linux/2.7.0/specs.\n");
      exit(1);
    }else{
      printf("\nOK, no problem.\n");
      exit(0);
    }
  }

17.11 Emacs

Emacs es un editor de texto muy potente ya que es coherente y extensible pero consume muchos recursos (procesador y memoria). La mayor parte de quienes comienzan a emplearlo seriamente, explorando las documentaciones, pronto no podrán pasar sin él.

Exsiten diversos documentos y FAQ.

He aquí un archivo de configuración básico:

  ;;
  ;; Archivo .emacs: inicialización de emacs
  ;;   Archivo de base : Guía del enROOTador
  ;;

  (display-time)                     ;;Para ver la hora en la barra de estado
  (setq display-time-24hr-format t)  ;; Formato 24 horas

  ;; Nuevos modes
  (autoload 'c++-mode   "cplus-md" "C++ Editing Mode" t)
  (autoload 'perl-mode   "perl-mode" "Perl Editing Mode" t)
  (autoload 'c-mode "c-mode" "C Editing Mode" t)
  ; mejor  utilizar el "cc-mode"

  ;; Auto-Mode Settings : elige el modo de acuerdo a  la extensión
  (setq auto-mode-alist
  (append '(("\.c$"  . c-mode)    ;; utiliza el modo C++ también para C
  ("\.h$"  . c-mode)
  ("\.C$"  . c++-mode)
  ("\.H$"  . c++-mode)
  ("\.cc$" . c++-mode)
  ("\.C$"  . c++-mode)
  ("\.pl$" . perl-mode)           ;; Perl
  ("/tmp/snd\.[0-9]* " . text-mode);; Text (para el correo)
  "[Rr][Ee][0-9]* " . text-mode)
  ("\.ada$"  . ada-mode)          ;; Ada
  ("\.spec$"  . ada-mode)
  ("\.body$"  . ada-mode)
  ("makefile$" . makefile-mode)  ;; Makefile
  ("Makefile$" . makefile-mode)
  ("Imakefile$" . makefile-mode))
  auto-mode-alist))

  # Correspondencias varias
  (global-set-key "\eg" 'goto-line)       ;; ESC G = Goto line
  (global-set-key "\eo" 'overwrite-mode)

  (put 'eval-expression 'disabled nil)

  ;; Acentos...
  (standard-display-european 1)
  (load-library "iso-syntax")

  ;; Bajo X-Window, texto en color (C/C++/Shell/Makefile,etc)
  (cond (window-system
  (setq hilit-mode-enable-list  '(not text-mode)
  hilit-background-mode   'light
  hilit-inhibit-hooks     nil
  hilit-inhibit-rebinding nil)
  (require 'hilit19)
  ))
  (if (not (equal window-system ""))
  (global-set-key "\C-?" 'delete-char))
  ))
  ;; mejor emplear font-lock

Este archivo puede ser ampliamente mejorado. Para saber más, consulte la documentación de Emacs (pulsar "control-H" y luego "i"), que está bien hecha pero es un poco grande.

Nota : es posible agregar las líneas siguientes para poder servirse de los acentos en el momento de la edición de los archivos en modo texto :

  (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)

17.12 Bloqueo de puertos serie

La utilización de puertos serie plantea un problema de bloqueo : hay que evitar que dos procesos concurrentes accedan a un puerto serie dado al mismo tiempo. Pero, por otra parte, si se tiene un puerto serie sobre el cual se ejecuta un getty para tratar llamadas de entrada, nos gustaria también poder utilizar el puerto serie para pasar las llamadas salientes.

Para resolver este problema, hay dos enfoques. El primero, es el bloqueo por el núcleo. Utiliza dos dispositivos diferentes para acceder a un puerto serie : /dev/ttySn para las llamadas de entrada (via getty), y /dev/cuan para las llamadas de salida. Cuando getty intenta abrir /dev/ttySn, esta bloqueado hasta que se reciba una llamada de entrada y el modem lo señale por la línea DCD del puerto serie.

Cuando getty está bloqueado en la llamada del sistema open, se puede aún utilizar el dispositivo /dev/cuan para las llamadas salientes (evidentemente, getty está bloqueado cuando DCD está activado para la llamada saliente...)

Por otra parte, una vez que /dev/cuan está abierto, un proceso de otra sesión no puede abrirlo (si el sistema esta correctamente configurado -- consultar la opción sesion_lockout de setserial(8). Esto evita que dos procesos intentando independientemente pasar una llamada saliente se encuentren escribiendo simultáneamente sobre el puerto serie.

La segunda técnica es la de "lock-files" (archivos de bloqueo). Consiste, para cada proceso que utiliza un puerto serie, en escribir su PID en un archivo especial. De esta manera, cuando otro proceso quiere utilizar el mismo puerto serie, verifica la presencia del archivo, lo encuentra, lee el PID en donde está escrito, verifica que el proceso correspondiente existe, y sabe entonces que el puerto serie está ocupado y que no puede utilizarlo. En este caso, sólo se utilizan los /dev/cuan.

Cada uno de los dos enfoques tiene sus ventajas y sus inconvenientes. El método de protección por el núcleo necesita emplear un modem en modo auto-respuesta, y autoriza la apertura del puerto serie por un proceso que quiere pasar una llamada de salida entre el momento en que el teléfono suena y el momento en que los modems han terminado de negociar (que puede tomar una decena de segundos.) El método de lock-files necesita una configuración homogénea de los programas utilizados (todos los programas deben buscar y colocar el "lock-file" en el mismo lugar, aceptando el formato PID inscrito...) También necesita que getty verifique periódicamente la existencia del "lock-file", y puede entonces "fallar" una llamada que entra entre el momento en que un proceso libera el puerto serie y cuando verifica de nuevo la presencia del "lock-file". Es también posible que un proceso de salida llegue a crear el "lock-file" entre el momento en que getty detecta una llamada y cuando crea el "lock-file" para esta llamada.

La selección de un método es, finalmente, una decisión individual de cada administrador, sabiendo que el enfoque "lock-file" es más flexible, pero menos elegante y más delicado que establecer el bloqueo por el núcleo.

17.13 Minitel

Es muy agradable poder conectarse al Minitel. Obtenga el programa xtel de Pierre Ficheux. Es un emulador Minitel muy simple de utilizar.

Puede encontrarlo en ftp.lip6.fr en el directorio /pub/X11/videotext/xtel.

17.14 Fax

Enviar documentos por FAX es perfectamente posible. Para hacerlo, puedes utilizar por ejemplo Hylafax.

Se encuentra en el sitio ftp.funet.fi en el directorio /pub/mirrors/sgi.com/sgi/fax/source.

17.15 Módulos Cargables Esta parte se inspira completamente en el artículo que escribí en el periódico "Les echos de linux", en el mes de Julio del 96.

Estructura del núcleo

El núcleo de un sistema UNIX puede ser representado bajo la forma de un objeto monolítico. Sin embargo, tal objeto posee el inconveniente de ser grande y estático. Cada vez que se desee agregar un nuevo dispositivo, es necesario recompilar el núcleo. Además, si uno utiliza ciertos gestores particulares raramente, se está obligado a tenerlo en el núcleo, lo cual tiene tendencia a consumir memoria.

Que es un modulo cargable ?

Los módulos cargables, permiten reunir lo útil y lo agradable teniendo un núcleo lo más pequeño posible, cargando bajo demanda aquello que necesita, sea de una forma manual por el super-usuario de la máquina, o de una manera automática. De esta forma, la ganancia de recursos no es nada despreciable.

La primera pregunta que uno puede hacerse, es : " Porque dos técnicas de carga ?"

La primera técnica es manual : hay que cargar o descargar los módulos a mano. La segunda es automática, gracias a la utilización de un demonio especialista que es esclavo del núcleo y que carga y descarga los módulos por él. De hecho, la versión 1.2 de Linux sólo ofrece la posibilidad de carga manual limitada al super-usuario de la máquina, lo cual es bastante pesado de manipular. En el desarrollo de la versión 2.0, un nuevo sistema implementado por Bjorn Ekwall permite efectuar una carga dinámica y automática de los módulos.

Compilación del núcleo

En el momento de la compilación del núcleo, es necesario especificar las opciones particulares para activar la utilización de los modulo cargables :


  gandalf# make config
  *
  * Loadable module support
  *
  Enable loadable module support (CONFIG_MODULES) [Y/n/?]
  Set version information on all symbols for modules (CONFIG_MODVERSIONS)
[N/y/?]
  Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?]
  

He aquí el detalle de estas tres opciones :

Una vez configurado, es suficiente lanzar la compilación al igual que la instalación :


gandalf# make dep ; make clean
gandalf# make zImage
gandalf# make modules ; make modules_install

Una vez que estas operaciones han sido efectuadas, los módulos se encuentran en el directorio /lib/modules/x.y.z donde x.y.z corresponde al número de versión del núcleo. No nos queda sino ver como se cargan.

Nota importante : todas las herramientas de manipulación de los módulos se encuentran en el archivo modules-2.0.0.tar.gz en el directorio v2.0.. Son instalados por defecto por las distribuciones estándar, pero es importante utilizar la versión correcta.

Carga : método manual

La carga manual esta basada en tres órdenes :

Su uso obliga a ser super-usuario. He aquí un ejemplo de uso :


gandalf# insmod nfs.o
  gandalf# lsmod
  Module:        #pages:  Used by:
  nfs               12            4
  gandalf# mount -t nfs /truc /mnt
  gandalf# lsmod
  Module:        #pages:  Used by:
  nfs               12            5
  gandalf# cd /mnt
...
  gandalf# cd /
  gandalf# umount /mnt
  Module:        #pages:  Used by:
  nfs               12            4
  gandalf# ps axu | grep nfs
  root      5535  0.0  0.0     0     0  q2 SW  17:15   0:00 (nfsiod)
  root      5536  0.0  0.0     0     0  q2 SW  17:15   0:00 (nfsiod)
  root      5537  0.0  0.0     0     0  q2 SW  17:15   0:00 (nfsiod)
  root      5538  0.0  0.0     0     0  q2 SW  17:15   0:00 (nfsiod)
  root      5557  0.0  0.4   864   300  q2 S   17:16   0:00 grep nfs
  gandalf# kill -9 5535 5536 5537 5538
  gandalf# lsmod
  gandalf# rmmod nfs.o

Es necesario "matar" los 4 demonios nfsiod ya que son lanzados cuando NFS es activado. Como puede ver, estas operaciones se vuelven relativamente difíciles. Es por esta razón que se creó el sistema de carga automática.

Carga automática : kerneld

Advertencia

La gestión de los módulos ha sido modificada en la serie 2.1.x y kerneld ha sido suprimido. Por tanto esto sólo es válido para los núcleos 2.0.x.

Introducción

El sistema de carga automática de módulos permite reducir al mínimo el tamaño del núcleo. El principio de funcionamiento es particularmente simple : un demonio en modo usuario esta a la escucha de las órdenes del núcleo (vía un archivo de mensaje de tipo IPC Sistema V). Cuando un proceso intenta acceder a un recurso del sistema (vía una llamada al sistema open, etc...), el núcleo envía la orden de carga del módulo a kerneld. Una vez el mensaje es recibido, kerneld ejecuta modprobe para cargar los módulos necesarios

Consejos para la compilación del núcleo

En cambio, en el momento de la compilación del núcleo, es necesario colocar al menos el soporte para permitir el inicio de la máquina y el montaje de la raíz del sistema de archivos (por ejemplo, soporte IDE + ext2fs). Se puede tener todo el resto en módulos (tarjeta de sonido, sistemas de archivos, tarjeta SCSI, etc).

Puesta en marcha

Esta parte, de modificacion, solo es válida si la máquina no está dotada de kerneld. Las nuevas distribuciones efectúan una instalación correcta.

Para realizar la puesta en marcha del sistema de carga de módulos, es necesario efectuar ciertas modificaciones al nivel de la configuración. En efecto, es necesario que en el momento de iniciar la máquina, el demonio kerneld sea lanzado y realizar una especie de lista de dependencias de los módulos : ciertos módulos no pueden ser lanzados antes que otros lo sean. En un primer momento, hay que crear el archivo /etc/rc.d/rc.modules en el cual hay que poner:


# Modules
  #
  # Creación de un enlace lógico para el núcleo actual
  #
  #
  /bin/rm -f /lib/modules/current
  ln -sf /lib/modules/`uname -r` /lib/modules/current
  #
  # Creación de las dependencias
  if [ \! -r /lib/modules/current/modules.dep ]
  then
          echo "Creating module dependencies"
          /sbin/depmod -a
  fi
  #
  # Carga de los módulos de arranque...
  #
  if [-x /sbin/kerneld ]
  then
          if find /lib/modules/boot -type f -o type l > /dev/null 2>&1
          then
                  echo "Loading boot-time modules"
                  /sbin/modprobe -a -t boot \*
          fi
  else
          echo "Loading modules"
          /sbin/modprobe -a \*
  fi
  #
  # Si usted posee otro tipo de demonios kerneld a lanzar...
  #
  if [-x /sbin/kdsound ]
  then
          echo "Starting sound daemon"
          /sbin/kdsound &
  fi

Esto permite generar las dependencias entre módulos cada vez que se inicia la máquina. Seguidamente, en el archivo /etc/rd.d/rc.S (puede depender de su distribución...), conviene agregar :


# Start update.
  /sbin/update &

  # *** A AGREGAR ***
  # Lanzamiento de kerneld lo mas pronto posible, de tal manera
  # que los módulos de sistemas de archivos puedan ser cargados
  if [ -x /sbin/kerneld ]
  then
          echo "kerneld running"
          /sbin/kerneld
  fi


  # Un poco de limpieza
  cat /dev/null > /var/adm/utmp

  # Lanzamiento del script de los  módulos
  if [ -f /etc/rc.d/rc.modules ]; then
          /etc/rc.d/rc.modules
  fi

Una vez estas modificaciones efectuadas y la máquina reinicializada, todo debe quedar en su lugar. Si kerneld permite cargar automáticamente los módulos, permite igualmente descargarlos luego de cierto tiempo sin utilizarlos. Por defecto, si ningún proceso accede al modulo durante mas de 60 segundos, es automáticamente descargado. Es posible modificar este valor agregando el parámetro delay=N_Segundos a kerneld donde N_Segundos es la prolongación en segundos.

El archivo /etc/conf.modules

Puede suceder que sea necesario configurar un último archivo: el archivo /etc/conf.modules. Este archivo contiene las rutas donde se encuentran los módulos que deben ser cargados y a continuación los alias para los módulos. Si no tiene este archivo, puede crearlo con:


gandalf# /sbin/modprobe -c | grep -v '^path' >/etc/conf.modules

puede suceder que en el momento del primer arranque obtengas este mensaje :

  Cannot locate module for net-pf-3
  Cannot locate module for net-pf-4
  Cannot locate module for net-pf-5
Que no cunda el panico ! Este mensaje no es malo y para no tenerlo más, añada en el archivo /etc/conf.modules :
  alias net-pf-3 off
  alias net-pf-4 off
  alias net-pf-5 off

Puede suceder que ciertos dispositivos tengan necesidad de ciertos parámetros particulares. Consulte el documento Kernel HowTo.

Algunas referencias

Tu puedes consultar estas referencias para mas información :

Inactividad de una máquina

El programa "Energy Star" lanzado como iniciativa de la EPA ( "Environmental Protection Agency" americana) tiene como objetivo principal disminuir el consumo de energía eléctrica de sistemas inactivos. Ciertos dispositivos pueden, en algunos casos, ver aumentada su vida útil

Linux ofrece la posibilidad de utilizar equipos conformes a la norma. Se puede, por ejemplo, programar una tecla o un menu que, en un portátil, pare la rotación de los discos, apague la pantalla y reduzca el sistema.

La elección del tiempo de inactividad antes de la suspensión es función del uso del sistema. Nótese igualmente que no todos los sistemas gestionan estas funcionalidades y que se comportan de distinta forma según cada fabricante.

La información siguiente se proporciona con la esperanza de ser útil, pero se da SIN NINGUNA GARANTIA respecto al buen funcionamiento de su sistema después de seguirlas. Si su novia/o le abandona porque su disco duro emite extraños ruidos, o su casero le echa porque su monitor ha prendido fuego al apartamento, es usted el único responsable.

Disque dur

El paro de rotación del disco duro presenta una ventaja adicional a los enunciados más arriba: el de volver menos ruidoso al sistema. DE todas formas, en Unix, algunos demonios acceden a los datos sin tener necesidad real de ello y tienen tendencia a despertar al disco.

Ciertas BIOS pueden suspender el disco despues de un periodo de inactividad. Busque la opción HDD Standby Timer. Con los discos IDE, se puede utilizar la herramienta hdparm(8) que hace lo mismo:

        $ hdparm -S 120   -- para el disco a los 10 minutos (120 x 5s)
        $ hdparm -Y       -- suspende el disco inmediatamente

Si el disco no quiere pararse en modo normal (pero sí lo hace en modo "single user") o si retoma su actividad sin motivo aparente, es debido a que hay programas que continuan leyendo y escribiendo en el disco sin que hagamos nada. Estos programas (demonios) son ejecutados normalmente al arrancar. El juego consiste en detectarlos y cambiar sus parámetros.

Para la detección, se necesita un medio de vigilar los accesos físicos al disco duro, bien sea por la escucha del ruido de acceso o mediante un led de actividad. Después, he aquí tres métodos para buscar a los agitadores:

Disco duro, otra solución

Otra solución para arreglar el problema es compilar el núcleo con la opción ramdisk. Al inicio, se crea un disco ram que contiene los ficheros de bloqueo, guiones cron y demás.

Hay que añadir las siguientes líneas al fichero rc.S :

#Crear un disco ram, montar /var/lock
# y copiar el contenido de /var/lock.skel
dd if=/dev/zero of=/dev/ram15 bs=1k count=256 > /dev/null
mke2fs -m0 /dev/ram15 256 > /dev/null
mount /dev/ram15 /var/lock > /dev/null
(cd /var/lock.skel; cp -rP * /var/lock >/dev/null )

El fichero /var/lock.skel es una copia exacta de /var/lock. Antes de aplicar este sistema tenemos

>ls -l /var/lock.skel/
total 4
drwxr-xr-x   2 root     root         1024 Nov 26  1996 crontab/
drwxr-xr-t   2 root     root         1024 Nov 28  1993 emacs/
drwxr-xr-x   2 root     root         1024 Nov 21  1996 samba/
drwxr-xr-x   2 root     root         1024 Jul 15  1997 subsys/

/crontab contiene una serie de enlaces simbólicos tipo root ->
../../spool/cron/crontabs/root

donde se encuentran las fuentes "a pelo". Después de ejecutar crontab -e, copiar los ficheros /var/spool/cron/crontabs/{$USER, cron.update} en /var/lock/crontab.

cron debe ser lanzado por /usr/sbin/crond -l10 -c /var/lock/crontab >>/var/adm/cron 2>&1 para que busque sus archivos en el disco en memoria.

El directorio /var/lock/samba contiene los ficheros browse.dat y wins.dat, que son actualizados periódicamente. Para forzar a smbd y nmbd a utilizar este directorio, añadir en /usr/local/samba/lib/smb.conf :

  lock directory = /var/lock/samba
 

Ultima ventaja : después de una reinicialización, ¡ya no hay más "stale locks" !

cron

El demonio cron(8) lanza programas a ciertas horas. No es directamente culpable de los accesos a disco (sólo hace accesos de lectura para verificar que sus tablas no han cambiado, pero sus datos están la mayor parte del tiempo en la caché de disco). Ciertas distribuciones insertan en crontab(5) procesos que son lanzados cada pocos minutos. Eche un vistazo en los crontabs de los usuarios demonio (root, news, uucp...) o en el fichero /etc/crontab y haga limpieza.

En algunas distribuciones, el programa atrun es ejecutado cada minuto. Sirve para ejecutar programas en una fecha dada con las órdenes at y batch. Si no lo utiliza, desactívelo, o pruebe con el demonio atd del paquete at-3.1.*.

Conserve las líneas que limpian los ficheros de registro y agrúpelas en torno a la misma hora.

mgetty

mgetty verifica cada pocos minutos que el modem responde bien. Como anota todas sus acciones en un fichero de registro (en función del parámetro debug) ésto implica accesos a disco no deseados.

Solución : Ponga un periodo de verificación desmesuradamente largo en mgetty.config. Por ejemplo :

      modem-check-time 360000

verifica cada 100 horas. Esta opción no tiene pinta de poderse desactivar.

lpr NG

lpd verifica la cola y la actividad de los demonios cada diez minutos.

Solución : desactive la opción en /etc/lpd.conf :

        poll_time 0

apache

El servidor maestro httpd habla con sus co-servidores a través del fichero log/apache_status.

Solución : lanzar httpd via inetd.

Numerosos comentarios desaconsejan utilizar apache con inetd por razones de rendimiento (inetd debe crear un proceso servidor que va a releer y analizar su configuración por cada URL solicitada) pero si su servidor no tiene muchos accesos, es completamente válido.

bind

bind 8.1 (named) registra cada hora información sobre su actividad.

Solución: Envíe esta información a otro lugar que no sea el disco duro (a una consola, por ejemplo) o desactívela resueltamente. En /etc/named.conf :

     logging {
             category statistics { null; };
             category maintenance { null; };
     };

squid

Squid hace limpieza constantemente en los ficheros en caché.

Solución : Ninguna con el propio squid, pero podemos utilizar el módulo proxy de apache (ver más arriba). Este módulo no está activo en la configuración por defecto. Tendrá probablemente que recompilar apache para utilizarlo.

sendmail

Sendmail verifica periódicamente la cola para reenviar el correo que encuentra.

Solucion : Necesita realmente un demonio sendmail (es decir, se considera que su máquina debe recibir correo mediante SMTP) ? Si piensa que no, mate el proceso y verifique que su lector de correo funciona todavía (mail, vm, rmail, mush, pine... no necesitan al demonio, pero mh si parece necesitarlo). Observe también si puede utilizar el demonio de otra máquina. Si necesita realmente sendmail como demonio, láncelo en el inicio sin la opción -q [duración] y vacíe la cola lanzando sendmail -q mediante crontab a las horas que desee (por ejemplo, al mismo tiempo que la limpieza de ficheros de registro).

El monitor

Los monitores conformes a la norma VESA DPMS pueden ser puestos en modo de espera. El monitor pasa sucesivamente por varias etapas :

Los parámetros cambian según estemos bajo X o no.

La consola

La orden setterm permite determinar si se utiliza DPMS y con que duración :

    $ setterm -blank 10           # extinción a los 10 minutos (por defecto)
    $ setterm -powsersave on

Se puede hacer un ajuste más fino con las secuencias de escape:

    ESC[9;intervalo]   "intervalo" es el número de minutos
                        de inactividad antes de entrar en el modo "suspend"
    ESC[14;intervalo]  número de minutos de inactividad entre el modo
                        "suspend" y el modo "off".

Ver, en el código fuente de linux, el fichero drivers/char/vesa_blank.c para más detalles.

XFree86

En XFree86 3.3 y superiores, los valores por defecto son inicializados en el fichero XF86Config(4). Para activar el modo DPMS, añada en la sección Devices :

    Option "power_saver"

A continuación puede ajustar los retardos StandbyTime, SuspendTime y OffTime de la sección Monitors como indica el manual.

Se pueden cambiar estos valores a voluntad o entrar en un estado particular con la orden xset(1).

La CPU

Las BIOS que soportan APM (Advanced Power Management) pueden hacer pasar al sistema por 3 estados de inactividad :

Cuando el sistema reduce su actividad, Linux pierde la noción del tiempo real (su reloj va más despacio). Todos los programas que efectúan acciones periódicas (en particular cron) son perturbados. El reloj es puesto en hora una vez el sistema se reactiva si el núcleo es compilado para soportar APM (si no, póngalo en hora con clock).

Si piensa hacer cálculos pesados, utilizar crontab, o si su máquina hace de servidor, dudo que las opciones APM le sean de utilidad, pero en un portátil la cosa cambia (si alguien me regala un portátil, compartiré con el mis impresiones)

La utilidad apmd ( ftp.cs.unc.edu:/pub/users/faith/linux/apmd-2.4.tar.gz) permite vigilar los estados relacionados con APM o forzar la suspensión.

18. Suites ofimáticas

18.1 StarOffice

StarOffice es una suite ofimática editada por StarDivision GMBH (Alemania), de la cual existe una versión "non-commerciale" destinada a Linux.

Los módulos disponibles son : StarWriter (tratamiento de texto), StarCalc (hoja de cálculo), StarImpress (presentación), y otras herramientas orientadas a la comunicación (e-mail, Usenet, etc.).

El producto está disponible por telecarga en su site web (atención, es muy grande), o en forma de CD-ROM, directamente en StarDivision.

Requisitos

La versión actual de StarOffice (4.0 release 3) necesita una configuración 486, 32 Mb de RAM, una tarjeta de vídeo y 125 Mb de espacio en disco.

Actualmente, el producto funciona con libc 5.4.22 o superior, pero no con glibc (en este caso, es suficiente obtener libc 5, ponerla en los directorios adecuados --ver el fichero /etc/ld.so.conf-- y verificar que es reconocida por el sistema con la orden ldconfig -v).

Los idiomas disponibles son inglés y alemán.

La versión 5, ya anunciada, soporta 8 idiomas, y soportará 24 a finales de 1999.

Instalación

El conjunto de ficheros necesarios se encuentra en un único directorio.

La instalación se desarrolla en dos etapas: primero la instalación del producto y después la instalación específica para cada usuario.

Una vez en el directorio del producto (telecargado o en CD), sólo hay que ejecutar, bajo X-Window, el guión setup para lanzar la instalación. Todo el proceso es muy intuitivo, y el progrsama de instalación es de calidad profesional. Para rematar la instalación hay que, o bien añadir el directorio directorio-de-instalacion/bin de StarOffice en la variable $PATH, o bien crear un enlace de directorio-de-instalacion/bin/soffice a un soffice en un directorio situado en $PATH (/usr/local/bin por ejemplo).

Uso

El uso de StarOffice se parece al de cualquier otra suite ofimática: arrancamos la sesión con soffice, y todo lo demás se hace con el ratón.

Es posible trabajar con documentos creados con otros sistemas (en particular Microsoft Office), pero, en general, los filtros no están disponibles para las últimas versiones.

LA impresión se efectúa sin problema con una impresora PostScript, via el sistema estándar lpr (el autor dispone de una impresora compatible HP LaserJet II controlada via GhostScript), y no parece tener problemas de funcionamiento.

Puntos débiles

Pues sí, tenía que haberlos :-). La siguiente lista está ciertamente muy lejos de ser exhaustiva, pero representa los pricipales problemas encontrados por el autor.

Ciertos usuarios han encontrado un problema de inestabilidad recurrente (StartOffice se bloquea, sin ningún mensaje, traza o registro). Si el bloqueo es inmediato, en general es sufuciente añadir /lib en la lista de bibliotecas utilizada en el guión soffice. Si el bloqueo es aleatorio después de un cierto tiempo de uso, entonces no resulta evidente encontrar el origen del problema.

Los filtros hacia formatos externos (probado para Excel 5) poseen a veces problemas, tanto en importación como en exportación )pérdida de atributos de formateo, en particular).

El precio de la versión no-comercial parece bastante elevado, a la vista de los demás puntos débiles. Habrá que esperar a que esté disponible una actualización a un precio razonable.

Por último, la ausencia de versión francesa (o española) desanimará a los no-anglófonos, pero esto debería solventarse con la versión 5.

Conclusión

Para concluir, debemos considerar todavía a StarOffice V4.0 como una versión beta de una suite ofimatica muy prometedora.

Parece probable que la versión 5 corriga los principales puntos débiles del producto, lo cual lo convertirá en una alternativa del todo presentable a la suite de Microsoft.

19. Para ir mas allá

19.1 "Comenzar bien con Linux" (V 2.2.2)

Este libro es la traducción del libro "Linux Installation and Getting Started" de Matt Welsh (mdw@sunsite.unc.edu), versión 2.2.2. La traducción fue realizada por Rene Cougnenc y esta disponible en ftp.lip6.fr en /pub/linux/french/books.

(NR: también puede encontrarse en la sección Manuales de http://lucas.hispalinux.es)

19.2 Libros

Aunque Linux tiene como principio el de ser completamente gratuito, varias obras se vende en el comercio.

Es importante señalar que se pueden obtener las fuentes Latex de la traducción de la segunda obra en ftp.lip6.fr en /pub/linux/french/books.

El número de libros relacionados con Linux tiende a explotar en la ultima época. Se puede consultar el sitio http://excalibur.inp-fc.fr/anrtt/doc/index.html que intenta presentar los libros disponibles

19.3 Los HowTo's

La mayoría de HowTo's o mini HowTo están traducidos (o en curso de traducción). Están disponibles en el ftp.lip6.fr en el directorio /pub/linux/french/docs/HOWTO. Estos documentos son enviados a fr.comp.os.linux.annonces mensualmente

(NR: HOWTO's en Castellano)

Esta es la lista :

HowTo :

Access-HOWTO           Alpha-HOWTO          Assembly-HOWTO
Benchmarking-HOWTO     Boot-disk-HOWTO      Bootdisk-HOWTO
BootPrompt-HOWTO       Busmouse-HOWTO       CD-Writing-HOWTO
CDROM-HOWTO            Chinese-HOWTO        Commercial-HOWTO
Configuration-HOWTO
Database-HOWTO         Distribution-HOWTO   DNS-HOWTO
DOS-to-Linux-HOWTO     DOSEMU-HOWTO         DOStoLinux-HOWTO
ELF-HOWTO              Ethernet-HOWTO       Firewall-HOWTO
Ftape-HOWTO            GCC-HOWTO            Glibc2-HOWTO
HAM-HOWTO              Hardware-HOWTO       HOWTO-Index
Installation-HOWTO     IPX-HOWTO            ISP-Hookup-HOWTO
Java-CGI-HOWTO         Java-HOWTO           Kernel-HOWTO
Keyboard-HOWTO         LinuxDoc-Emacs-Ispell-HOWTO   Liste-des-HOWTO
Mail-HOWTO             MGR-HOWTO            Modems-HOWTO
Module-HOWTO           NET-3-HOWTO          Net2-HOWTO
News-HOWTO             NFS-HOWTO            NIS-HOWTO
Oracle-HOWTO           PCI-HOWTO            PostgreSQL-HOWTO
PPP-HOWTO              Printing-HOWTO       Printing-Usage-HOWTO
Reading-List-HOWTO     Root-RAID-HOWTO      SCSI-HOWTO
SCSI-Programming-HOWTO Serial-HOWTO         Serial-Programming-HOWTO
Shadow-Password-HOWTO  SMB-HOWTO            Sound-HOWTO
Sound-Playing-HOWTO    SRM-HOWTO            Term-HOWTO
TeTeX-HOWTO            Tips-HOWTO           UMSDOS-HOWTO
UPS-HOWTO              UUCP-HOWTO           VAR-HOWTO
Video-HOWTO            Virtual-Services-HOWTO   Visual-Bell-HOWTO
WWW-HOWTO              WWW-mSQL-HOWTO       XFree86-HOWTO

Mini-HowTo :

3-Button-Mouse   Advocacy          Anon-ftp
BogoMips         Bridge+Firewall   Bzip2
Cable-Modem      CD-Writing        Clock
Colour-ls        Cyrus-IMAP        DHCPcd
DHCPd            Dial-On-Demand    Diskless
DPT-Hardware-RAID Ext2fs-Undeletion Fax-Server
Hard-disk-upgrade Install-From-ZIP  IO-Port
IP-Alias         IP-Masquerade     IP-Subnetworking
ISP-Connectivity Jaz-Drive         Jaz
Kerneld          Large-IDE         LBX
Leased-Line      LILO              Linux+FreeBSD
Linux+NT-Loader  Linux+Win95       Mail2News
Man-Page         MIDI+SB           Modules
Multi-Ethernet   NFS-Root-Client   NFS-Root
Postgres         PPP-over-minicom  Pre-Installation-Checklist
Proxy-ARP        Public-Web-Browser Quota
RCS              Remote-X-Apps     RPM+Slackware
Sendmail+UUCP    Sig11             Slip+ProxyARP
Small-Memory     Soundblaster-AWE  StarOffice
Swap-Space       Term-Firewall     TkRat
Token-Ring       Update            Virtual-wu-ftpd
Visual-Bell      Win95+Win+Linux   Win95+Win3x+Linux
X-Terminal       XFree86-XInside   Xterm-Title
ZIP-Install      ZipIomega

Para ver la lista actual de los How-To traducidos, consulte el documento Liste-des-HowTo en las direcciones habituales.

A pesar de todo esto, ¡aún falta mucho trabajo! Si quiere unirse al grupo de traductores, puede hacerlo inscribiéndose en la lista de traducción:

  mail majordomo@linux.EU.org
  subscribe traduc

Como nuevo coordinador de las traducciones que soy estaré encantado de contestarle.

(NR: Traducción HOWTO's al Castellano)

20. Direcciones

Algunas buenas direcciones:

Para encontrar ayuda : en un primer momento, intente encontrar los datos en esta guía. Después, mire los HowTo. Finalmente, si fracasa, eche un vistazo en los grupos de noticias fr.comp.os.linux.

21. Contribuciones

Aquí está la lista de las personas que han contribuído a la realización de este documento. Es muy posible que olvide a alguien... ¡mis excusas! Gracias a todos.

22. Si quieres participar en el desarrollo de Linux

Linux es un sistema abierto, que evoluciona. Numerosos desarrollos están actuelmente en curso, tales como Wine (WINdows Emulator), el proyecto de documentación de Linux(LDP), la internacionalización. Todos estos proyectos (y otros más) son realizados por personas de buena voluntad que dan un poco de su tiempo, desde la programación a la traducción de documentos, etc.

Si desea ofrecer un poco de su tiempo para Linux, no dude en contactarme.

23. That's all folks

Se acabó.

Si ciertos puntos le parecen oscuros, etc, no dude en contactarme. Esta guía seguirá evolucionando, pero no lo podrá hacer sino gracias a usted, así que si encuentra un truco realmente genial, envíelo a : (Eric.Dumas@freenix.org o a Eric.Dumas@Linux.EU.Org). (nt: o a caliman@magic.fr).

Palo Alto, el 21 de Septiembre de 1998. Pero quién le habrá mandado meterse en este lío...

24. Spanish Linux HOWTO

Gonzalo.Garcia-Agullo@jrc.es.

datev0.1, 20 August 1996

24.1 Abstract

This is the very first issue of the Spanish Linux HOWTO. The target audience of this document is the growing family of Linux users in Spain and Latin America, so this How-To is of course in Spanish. Some non-Spanish speakers have asked for information on Linux in the Spanish environment, for developing software with Spanish support or just to get in touch with the Linux community in Spain. You're welcome in any case...

24.2 Introducción

Empecemos por el principio...

Este documento pretende ser el punto de entrada de los hispanohablantes al mundo Linux, intentando abarcar tanto a los principiantes de este apasionante sistema como a los ya iniciados que buscan información puntual. Se tratarán de forma genérica todos los temas que puedan interesar al usuario de Linux, desarrollándolos en castellano o dando referencias a otras fuentes de información en nuestro idioma, así como orientación cuando tenga que acudir a otras HOWTO y en general a cualquier documento en inglés.

Se distribuye integrado con el Linux Documentation Project en todos los foros de información Linux en Internet. Se actualiza periódicamente, pudiendo encontrar la última versión en linux/España

Notas del autor: Aunque puede ser interesante de por sí, traducir sin más información ya editada en inglés no es el objetivo de este documento, sino más bien servir de base al usuario hispanohablante y divulgar el Linux en nuestro idioma. Una ambición de quien escribe es, desde estas líneas, poner su grano de arena para coordinar los esfuerzos (valiosos pero muy diseminados por la red) de tanto linuxero como ya hay. Otro objetivo menos pretencioso de este documento es complementar todas las demas Howto's en aquellos aspectos concretos que afecten a los usuarios hispanos (configuración del sistema y de las aplicaciones para trabajar en nuestro idioma, teclados, correo electrónico en español, etc). Un tercer objetivo será servir de agenda actualizada de direcciones españolas dedicadas a Linux, tanto para difusión de las distribuciones originales de software Linux como de desarrollos propios en español que se vayan publicando. Vaya desde aquí mi agradecimiento en esta primera versión para Antonio L. Delgado, compañero de la Facultad de Informática de Sevilla, por prestarse a echar una mano redactando esta Howto en las calurosas tardes de Sevilla.

Cualquier comentario, sugerencia para nuevos contenidos, rectificación de errores, crítica, etc. es no sólo bienvenido sino también esperado. Contacta por correo electrónico para todo lo que quieras.

¿Qué es Linux?

Linux es una implementación del sistema operativo UNIX (uno más de entre los numerosos clónicos del histórico Unix), pero con la originalidad de ser gratuito y a la vez muy potente, que sale muy bien parado (no pocas veces victorioso) al compararlo con las versiones comerciales para sistemas de mayor envergadura y por tanto teóricamente superiores. Comenzó como proyecto personal del -entonces estudiante- Linus Torvalds, quien tomó como punto de partida otro viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos que creó su propio sistema operativo Unix en PCs XT para usarlo en su docencia). Actualmente Linus lo sigue desarrollando, pero a estas alturas el principal autor es la red Internet, desde donde una gigantesca familia de programadores y usuarios aportan diariamente su tiempo aumentando sus prestaciones y dando información y soporte técnico mútuo. La versión original -y aun predominante- comenzó para PCs compatibles (Intel 386 y superiores), existiendo también en desarrollo versiones para prácticamente todo tipo de plataformas: PowerPC, Sparc, Alpha, Mips, etc. De todas ellas la más reciente en este momento es la versión para PowerMac (el PowerPC de Apple) basada en el microkernel Mach 3.0 y de la que ya hay una distribución para desarrolladores avalada directamente por Apple y OSF pero conservando el espíritu (gratuito, de libre distribución, etc) de la version original. Un servidor la acaba de probar hace unos días y se ha llevado una grata sorpresa (aún tendrá muuuchos fallos, pero para ser una primerísima versión y el poco tiempo que lleva en marcha, ha avanzado más de lo que me esperaba).

¿Cómo conseguirlo?

La primera fuente para conseguir el sistema Linux es la propia red Internet, y es donde estarán siempre las últimas versiones y las aplicaciones más actualizadas en muchos servidores de FTP anónimo. Otra vía muy frecuente, de interés para principiantes y para quienes no deseen o no puedan permitirse copiar tanta cantidad de información a traves de la red, es mediante las versiones comercializadas en CDROM. Hay empresas que se dedican a elaborar CDROMs de bajo coste con recopilaciones de software, manuales, etc. El corazón del sistema es el mismo, aunque pueden tener externamente presentaciones y formas distintas de instalación. Hay revistas especializadas que tambión suelen incluir CDs con alguna versión de Linux. Hacia el final de este documento se relacionan diversas fuentes de Linux, tanto servidores públicos en la red como direcciones de empresas que lo comercializan.

Una ventaja (para muchos usuarios termina siendo un inconveniente) es la gran rapidez con la que se se desarrolla Linux. Constantemente llegan a los principales servidores Linux en la red actualizaciones del núcleo del sistema, de aplicaciones, utilidades, manuales y documentación, etc. Es bueno estar al día, seguir con atención su evolución y aprovechar las mejoras que se incorporen, pero en la mayoría de los casos no vale la pena estar reinstalando software por el simple hecho de ser una nueva versión, sino que hay que ser un poco selectivos, al menos con el software. En el caso de los manuales, How-To's, grupos de noticias y/o listas de correo sí que vale la pena estar "a la última", sobre todo porque es allí donde nos sacarán de apuros cuando agotemos nuestros propios recursos...

¡Socorro! ¿Dónde están los manuales?

Como ocurre en todas las versiones de Unix, el primer sitio donde mirar cuando tenga una duda concreta sobre tal orden, fichero de configuración, etc. es la orden 'man', que incluye la ayuda de referencia de Unix. Pero sólo es útil en ese ámbito, cuando ya se sabe más o menos lo se que busca, y sólo se necesita aclarar dudas concretas. Para todo lo demás la mejor fuente de información es, cómo no, la propia red. En ella están disponibles tanto libros completos (de los que algunas editoriales especializadas han publicado versiones en papel) como la colección "Linux HOWTO", de la que este documento forma parte. Hay una HOWTO para prácticamente cualquier tema. Su objetivo es cubrir, mediante manuales breves, concisos y específicos, cualquier duda que pueda surgir. Se actualizan permanentemente, y se distribuyen a través del denominado "Linux Documentation Project" (LDP) en Internet. La misma información se publica en muy diferentes formatos, orientados tanto a la búsqueda y consulta en línea como a su lectura convencional. Todas las versiones de Linux incluyen estos manuales (al menos la última edición disponible en el momento de recopilar el CDROM correspondiente), y al final de este documento se aportan algunas de las muchas direcciones para consultar en la red.

24.3 Distribuciones

Extracto de la Distributions-HOWTO sobre distintas versiones de Linux. Acuda a ella para ampliar información

El único elemento común a todas las versiones Linux es su kernel -el núcleo del sistema operativo-, que se desarrolla de forma coordinada y con actualizaciones sistemáticas. Sin embargo todo sistema operativo necesita, junto al núcleo del sistema, todo un conjunto de utilidades y herramientas de instalación, configuración y uso. Ahí juegan su papel las diferentes distribuciones: algunos particulares, entidades y empresas se dedican a hacer determinadas recopilaciones de software que ellos mismos preparan para que sean facilmente instalables y configurables. Todas ellas facilitan el software junto a su código fuente, pero la flexible licencia GNU a la que se acojen permite tanto ofrecerlas gratuitamente como distribuirlas por canales comerciales (lo que se paga es el trabajo de recopilación, el software de cosecha propia que pueda aportar, una presentación más elaborada, gastos de distribución y soporte técnico al usuario).

Algunas de las distribuciones más conocidas son:

Slackware

Esta distribucion es quizas de las más extendidas en todo el mundo y la más conocida en España, ya que es la que han divulgado las publicaciones del sector. Incluye con creces todo el software que cualquier usuario medio o avanzado pueda necesitar, y su método de instalación es asequible aunque lejos de las típicas y vistosas instalaciones a las que el usuario neófito esta acostumbrado en los sistemas comerciales. Tiene diversos derivados comercializados bajo diferentes nombres (por ej. "Slackware Pro") que mejoran la instalación e incluyen manuales y bibliografía en un único lote. Esta en todos los FTPs principales, siendo http://www.cdrom.com/ su distribuidor de origen.

Red Hat

Creada por Red Hat Software, en Connecticut, EE.UU. Una de sus ventajas es el atractivo sistema de instalación (en modo gráfico) y el cómodo mantenimiento de componentes de software, lo que facilita enormemente las tan frecuentes actualizaciones. Se puede obtener tanto gratuitamente en la red como adquiriendo el CDROM correspondiente. Otras empresas comercializan también sistemas basados en Red Hat, como Caldera Inc. y Pacific Hi-Tech. Aún poco conocida en España pero pujante, sobre todo para principiantes. Sus creadores estan en http://www.redhat.com. El mencionado sistema de gestión de componentes de software es obra suya, pero lo han ofrecido con carácter abierto y gratuito a los demás desarrolladores bajo la licencia de GNU, por lo que es previsible que en el futuro otros muchos asuman este sistema en sus propias distribuciones, lo que facilitará enormemente las actualizaciones.

Debian

La Free Software Fundation (FSF) es bien conocida entre los acérrimos usuarios de software gratuito para Unix. Son los creadores del sistema GNU, su futuro Unix gratuito. Ya hay mucho material pero no un sistema operativo completo, asi que mientras tanto ofrecen un Unix integrado por el nucleo de Linux y el software de GNU. http://www.debian.org.

24.4 Ayuda a la instalación de la distribución Slackware

Este es un extracto de la Installation-HOWTO, orientada fundamentalmente a la instalación de Linux Slackware. Mucha de la información sobre instalacion de Slackware es aplicable a cualquier versión de Linux, pero no necesariamente al pie de la letra.

Aparte de otras muchas variantes que se puedan considerar, a la hora de instalar Linux en nuestro disco duro hay básicamente dos formas: UMSDOS y Partición nativa. Cada una tiene sus ventajas e inconvenientes, pero como se verá es recomendable que todos los usuarios terminen usando el segundo método ya que es el más eficiente y el que mejor aprovecha las ventajas de Linux.

Instalación con UMSDOS

Consiste en aprovechar el espacio de disco que queda libre en los PCs con MSDOS, sin necesidad de tocar las particiones de disco. Linux es un sistema operativo, y como tal totalmente independiente, no requiriendo por tanto ningun otro sistema operativo en su ordenador (aunque puede convivir perfectamente con ellos). Sin embargo es un parque muy amplio el de usuarios que ya tienen instalado MSDOS y/o MS-Windows y que, al no considerase expertos, no se atreven en un primer momento a reparticionar el disco para sustituir total o parcialmente a su sistema actual. Para ellos, o simplemente para quien quiera ver y probar Linux sin ser tan drasticos formateando discos duros, la solución es UMSDOS. Permite crear, a partir de un directorio de MSDOS, toda la estructura que tendría un disco nativo de Linux. Cuando arranque el sistema, Linux emulará su disco a partir de la información en ese directorio. Es totalmente funcional, pero puede ser ligeramente más lento en ordenadores de gama media-baja y no aprovecha la gestión de disco nativo. Una gran ventaja es que si se libera disco en Linux, implícitamente estamos creando espacio que será aprovechable cuando arranquemos MSDOS, y viceversa. Además, el día que queramos deshacernos de Linux (¡poco probable!) o que simplemente nos decidamos a hacer una instalación completa, desinstalar ese Linux es tan sencillo como simplemente borrar sin contemplaciones el directorio C:\linux que creó desde MSDOS.

Instalación en partición nativa de Linux.

Salvo la fase inicial en la que se preparan las particiones nativas o el UMSDOS, el procedimiento restante de instalación es básicamente el mismo. Ya que puede ser el que provoque más dudas, centraremos estos consejos de instalación en la instalación con partición nativa. Pero recuerde que


   ESTO NO ES UNA GUIA DE INSTALACION, SINO UN COMPLEMENTO A LAS
   INTRUCCIONES DE INSTALACION DE SU VERSION DE LINUX.

   LEA LA INSTALLATION-HOWTO Y/O EL MANUAL QUE ACOMPAñA A SU
DISTRIBUCION
   ANTES DE COMENZAR, O DE LO CONTRARIO PUEDE FALLAR LA
INSTALACION E
   INCLUSO INUTILIZAR EL SOFTWARE QUE PUEDA TENER YA INSTALADO EN
SU
   ORDENADOR.

   LA DISTRIBUCION TOMADA COMO BASE ES LINUX SLACKWARE 3.0. EL
PROCEDIMIENTO
   PUEDE VARIAR DE UNAS VERSIONES A OTRAS. EN CASO DE DUDA ACUDA A
LOS
   MANUALES DE SU SISTEMA O CONSULTE A LOS CANALES DE AYUDA Y
SOPORTE LINUX
   HABITUALES (EN INTERNET O A SU DISTRIBUIDOR)

   LOS AUTORES DE ESTA DOCUMENTACION NO SE RESPONSABILIZAN DE LOS
POSIBLES
   DESASTRES QUE PUEDA OCASIONAR. SI DECIDE CONTINUAR ES BAJO SU
EXCLUSIVA
   RESPONSABILIDAD. (Nos gusta dormir tranquilos ;^) )

Preliminares

En esta instalación es necesario que Linux disponga de una partición distinta a la de MSDOS para trabajar. Si ya tiene algún sistema instalado, lo más frecuente es que sea una única partición DOS que ocupe todo el disco, por lo que reparticionar supone eliminar esa partición para volver a crearla asignándole menos disco para hacer sitio a Linux (o para dárselo totalmente, según la instalación escogida). Eso supone perder como norma general todos los datos en las particiones ya existentes.

Existe, sin embargo, una utilidad anexa a Linux que corre sobre MSDOS y que permite "encoger" una partición de DOS siempre que la unidad tenga espacio libre y haya sido totalmente defragmentada (con la utilidad "DEFRAG" de MSDOS 6.x o similares). Esto le permitirá crear nuevas particiones conservando sus datos en la partición MSDOS actual. Esta utilidad se llama "fips" y la encontrará en su servidor habitual en la red junto a otras utilidades de MSDOS para ayudar a la instalación de Linux.

LEA LA DOCUMENTACION DE FIPS ANTES DE UTILIZARLO.

Primero debe liberar en MSDOS el espacio que pretenda reservar para la nueva partición de Linux (y para el espacio de swap, como después se comentará). Después debe defragmentar la partición de DOS con la utilidad "defrag" que acompaña a las últimas versiones de DOS, o bien sus equivalentes de PCTools o Norton. Ahora puede correr el programa fips y crear una nueva partición con el espacio liberado. Lo habitual será crear dos particiones: una linux native para el sistema, y una linux swap con por ej. el doble que de RAM, pero en caso de necesidad incluso puede ahorrarse una partición específica para swap, y "robar" ese espacio de disco bien a MSDOS o al propio Linux.

Formateo de la partición.

Una vez añadida la nueva partición que destinaremos a Linux, hay que preparar la siguiente etapa, el arranque de Linux, ya que salvo el apartado anterior en el que salvaguardamos la instalación previa de MSDOS, toda la instalación se hará desde el propio Linux. Para arrancar necesitaremos dos disquetes (en algunas distribuciones como RedHat pueden ser tres), donde grabaremos tanto el núcleo del sistema operativo como los primeros programas con los que poder empezar a instalar. El primer disquete es el que etiquetaremos como "boot disk", y es donde irá el núcleo del sistema con el que arrancar. Como Linux es casi un sistema "a la carta", que puede llevar en el núcleo más o menos funcionalidades según nuestras necesidades, deberemos escoger entre los núcleos precompilados aquel que se adapte mejor a nuestro caso. En el futuro será recomendable que incluso recompilemos nuestro propio núcleo para personalizarlo aún más, añadir lo que falte y simplificar lo que sobre en nuestro caso. El siguiente disquete es el "root disk" o "ramdisk", que incluye el software mínimo que cargaremos en memoria para la instalación.

En la distribución de Linux tendremos una serie de ficheros que constituyen "imágenes" de esos disquetes. Es decir, una vez elegidas qué diquetes necesitaremos, los crearemos a partir de esas imágenes, bien desde otro sistema Linux ya funcionando (o incluso de cualquier Unix en general), bien desde MSDOS con otra utilidad complementaria de "fips": "rawrite".

Una vez hecho esto ya puedes arrancar con tus discos. Introduce el "boot disk", arranca el ordenador y sigue sus instrucciones. Cuando finalice la fase de arranque Slackware te ofrecerá un símbolo para hacer "login" (entrar en el sistema), mientras que RedHat arrancará directamente la aplicación de instalación. Utiliza el nombre "root" como nombre de usuario (es el super-usuario que administra el sistema). La primera vez no necesitarás clave alguna para entrar.

Ya estas en el prompt de Linux, desde donde puedes crear tus particiones y tu espacio de swap (es una zona especial de disco que Linux usa como memoria virtual que complementa a la memoria RAM del ordenador). Al igual que en MSDOS, la orden para gestionar particiones se llama "fdisk". En algunas versiones hay también una "cfdisk" con un interfaz más asequible, aunque iguales en lo básico.

Si posees una partición de MSDOS, no te asustes, sigue adelante, no la vas a perder simplemente por entrar en fdisk, pero sí que debes tener precaución al añadir la partición Linux sobre el espacio que le habíamos quitado a MSDOS, para no afectar a éste.

Dentro de fdisk usa la opción 'n' para añadir nuevas particiones. Dalas de alta como particiones primarias (si ya tienes una particion de arranque con MSDOS, ésta será la partición 1 y a partir de ahí añadirás particiones Linux). Es ahora el momento de añadir el espacio de swap, conveniente siempre, e incluso imprescindible si se dispone de memoria igual o inferior a 8Mb. Como regla orientativa puede servir tener el doble de swap que RAM (para 8Mb o menos de RAM), y 1.5 veces para memorias superiores, pero depende de la disponibilidad de disco y de memoria que tengamos, así como del uso que le vayamos a dar. En realidad será tu experiencia la que te irá diciendo en sucesivas instalaciones cuánto swap necesitas. En caso de disponer de más de un disco duro es muy recomendable tener separadas las particiones de Linux y de swap (por ej. DOS+swap en uno y Linux en el otro), lo que mejorará el rendimiento global.

Una vez creadas las particiones, hay que definir también en fdisk el uso que van a tener (tipo de partición), siendo obviamente "linux swap partition" (tipo 83) para el swap, y "linux native partition" para el propio Linux. Al final, y siguiendo con este ejemplo, tendrás tres particiones definidas:

NO TENGAS MIEDO POR TOCAR Y PROBAR: HASTA QUE NO USES LA OPCION DE ESCRIBIR A DISCO, PUEDES HACER TODO TIPO DE PRUEBAS Y/O CANCELARLO TODO HASTA ESTAR SEGURO Y GRABAR LA NUEVA TABLA DE PARTICIONES.

Es probable que haya que rearrancar si modificamos las particiones, y continuar con el software de instalación de nuestro Linux. En el caso de Slackware, ese software de instalación ya necesita al menos 8Mb de memoria, por lo que si estamos justos de memoria tendremos que activar ya mismo el swap antes de ejecutarlo. Si ese es el caso, hay que hacerlo en dos pasos: formatear la partición de swap y luego activarla para que empiece a complementar la RAM. Los comandos serían


  mkswap -c /dev/hdXX
  swapon /dev/hdXX

donde /dev/hdXX sería el nombre de la partición que hemos definido como swap. Una vez hecho esto, Slackware ya aporta una utilidad de instalación que detectará las particiones creadas y procederá con el resto de la instalación con la aplicación "setup", que nos guiará durante toda la instalación con un sencillo interfaz de menús, que no requiere muchas explicaciones. Durante una de las etapas de la instalación Setup intentará preparar el swap. Si lo hemos hecho ya a mano habrá que indicarle que se lo salte, mientras que en el resto de los casos dejaremos que setup haga todo lo que tenga que hacer.

Instalación de los discos.

Slackware divide la distribución del sistema operativo en "series" temáticas, y a su vez cada una de ellas en directorios que se corresponden perfectamente con disquetes de 1.44Mb. Los discos esenciales serían los de la "Serie A", con los que el sistema ya es arrancable autónomamente desde el disco duro, aunque en la práctica lógicamente instalaremos también la "AP" (aplicaciones básicas), "N" (software de red, si vamos a conectarnos con cualquier modalidad), "D" (compiladores y librerías), "X" y "XAP" para el entorno gráfico XFree86.

Por su parte RedHat organiza el software también en "paquetes" instalables de forma independiente y también agrupados por temas, aunque no sigue ningún esquema traducible en disquetes, por lo que las únicas vías de instalación son CDROM o directamente de la red.

Configuración

Una vez cargados a disco los paquetes de software, la siguiente fase será la de configuración, que se realiza desde el mismo programa de setup. Como esta parte es muy variable y depende de cada caso. Nos centraremos en dos puntos típicamente problematicos: el arranque del sistema (incluida la posibilidad de arrancar múltiples sistemas operativos desde distintas particiones o distintos discos) y la configuración de red

Para instalar un método de arranque de Linux hay dos utilidades: "Lilo" y "Loadlin". La primera es un pequeño programa que se instala en el "Master boot record" del disco duro o en la partición que fdisk marcó como "activa", y que permite arrancar indistintamente Linux, DOS 6.x, Windows95, etc. La segunda es una utilidad de MSDOS que permite dejar en paz los arranques de particiones, haciendo en su lugar un "arranque en caliente" directamente desde DOS. Ambos funcionan bien, por lo que elegir una u otra es cuestión de preferencias de cada cual. En el segundo caso podrí darnos algún error si hubiera algún programa de DOS residente en memoria que pueda obstaculizar la carga de Linux. Eso es relativamente facil de solucionar jugando un poco con las configuraciones de DOS (incluso con los menus de arranque que incorpora el config.sys de MSDOS 6.x), pero incluso en ese caso podemos encontrarnos dos obstaculos mas: si tenemos instalado DoubleSpace/Drivespace hay que evitar que se cargue en memoria pulsando F8 durante el inicio de DOS para poder ejecutar Loadlin (no hay otra forma de pararlo ya que normalmente se carga incluso antes que config.sys), y ademas si usamos Windows95 hay que pulsar igualmente F8 para arrancar con solo el símbolo del sistema, evitando entrar en el modo gráfico.

Linux puede convivir con cualquier sistema operativo, pero unos dan mas dolores de cabeza que otros, por lo que en caso de duda acude a la documentación correspondiente (la de instalación de la propia distribución y la Booting-HOWTO. De todas formas, si una vez instalado Linux no conseguimos arrancarlo (sabemos que está ahí pero no conseguimos entrar en él), siempre queda un recurso asequible: introduce el "boot disk" y en vez de darle a INTRO cuando te aparezca un simbolo "boot", teclea root=dev/XXXX/ indicando que ya hay un Linux en la partición correspondiente, y que debe usarlo en vez de continuar con una hipotética instalación. Lo único diferente es que se estaría usando el núcleo (kernel) del disquete en vez del instalado en el disco duro, pero a partir de ahí montará la partición del disco duro y usará todo lo ya instalado allí.

Otro problema frecuente (solventado en la última version de RedHat pero no aún en Slackware) es que graba en el disco duro un núcleo genérico en vez del que hayamos usado en el "boot disk", que era precisamente el que habíamos elegido, por lo que es habitual que, si necesitamos algún controlador específico para algún dispositivo o cualquier otra funcionalidad, cuando arranquemos directamente desde el disco duro ya no nos lo reconocerá. Si estamos usando LILO haz lo siguiente para arreglarlo: entra como superusuario, copia la imagen que habias usado para generar el "boot disk" sobre el fichero "/vmlinuz" del disco duro y ejecuta "lilo" para reinstalar el arranque con el núcleo correcto. Si estas usando LOADLIN, simplemente dale como parámetro el fichero del núcleo correcto (es facil tener varios núcleos y elegir en cada caso el que interese). Seguir arrancando con el disquete como en el caso anterior sería también otra posibilidad para no perder ese CDROM, esa tarjeta, etc.

24.5 Españolización de Linux

Uno de los aspectos más molestos es no poder escribir con naturalidad en nuestro idioma por falta de soporte de los caracteres especiales en el software. El juego de caracteres básico de ASCII es de 7 bits, y no incluye ni las vocales acentuadas ni nuestra maltratada 'ñ'. Hay una norma ISO-8859-1 (ó ISO-Latin1) que sí que abarca todos los caracteres pero que sigue dando la lata en muchas tareas habituales, como el correo electrónico (muchos sistemas solo respetan 7 bits, por lo que textos que podemos ver correctamente en nuestro ordenador probablemente se visualizarán de forma lamentable cuando los enviemos a otra persona. A continuación se mencionan algunas de las situaciones más frecuentes y cómo intentar solucionarlas.

Consola

...O cómo demonios poder usar acentos en nuestro propio ordenador

Mediante la orden loadkeys se cargan las tablas de traducción del teclado. Estas tablas traducen los códigos que se generan al pulsar las teclas a los que reciben los programas. Los ficheros que contienen estas tablas de traducción se encuentran en el directorio /usr/lib/kbd/keytables/ y el fichero que contiene el mapeado del teclado español se denomina es.map. Su objetivo es que si pulsamos una determinada combinación de teclas, aparezca en pantalla el carácter que tenemos pintado en nuestro teclado, y no su equivalente en el teclado que se usa en cualquier otro país.

La llamada a este orden suele ser de la forma siguiente, que aparecerá en el arranque por defecto (en Slackware estaría en/etc/rc.d/rc.keymap):

loadkeys /usr/lib/kbd/keytables/es.map

Nota del autor: A igual configuración de teclado, más de una vez me han fallado los acentos por recompilar el núcleo, pero en el momento de escribir estas líneas aún no he visto la causa...

Shell bash

Para que la bash soporte el uso de vocales acentuadas asi como de la letra ñ basta con incluir las siguientes líneas en un fichero .inputrc (o al menos en .bash_profile) en tu $HOME:


set meta-flag on                # conservar bit 8 en entrada de teclado
set output-meta on      # conservar bit 8 en salida por terminal
set convert-meta off    # no convertir secuencias de escape

export LC_CTYPE=ISO_8859_1

Shell tcsh

Para que la tcsh soporte el uso de vocales acentuadas asi como de la letra ñ basta con incluir las siguientes líneas en un fichero .tcshrc (o al menos en .login) en tu $HOME:


setenv LANG C
setenv LC_CTYPE "iso_8859_1"

Algunas aplicaciones

Sería excesivamente largo detallar todas las posibilidades para trabajar con caracteres de 8 bits en todas las aplicaciones, utilidades, comandos del sistema, etc. Aquí van algunos ejemplos:

Editor joe

Joe tiene un parámetro -asis para que conserve los caracteres de 8 bits.

less

Por defecto muestra solamente los caracteres de 7 bits (los de 8 los representa por su código ASCII). Ello protege de ver en pantalla "basura" si por error intentamos leer ficheros binarios, de datos, etc., pero impide ver nuestros acentos. Se puede modificar momentáneamente con el modificador -r desde la propia utilidad, pero sería mejor tener definida la variable de entorno LESSCHARSET=latin1.

ls

Para que muestre los caracteres especiales en los nombres de los ficheros tiene las opciones -8 -N, que se pueden añadir a la variable LS_OPTIONS que probablemente ya tengas definida por defecto.

mc

Este clónico Norton tiene una opción Full 8 bits del submenú Display bits... bajo Options.

nroff, groff

Dispone de una opción -Tlatin1

Xwindow

El entorno gráfico XWindow usa para configurar el teclado un orden llamado xmodmap que tiene la misma funcion que loadkeys para la consola de texto. Ernest Artiaga (drw@portos.upc.es) preparó un fichero de configuracion para Xmodmap que genera los acentos con la tecla [AltGr], que entre otros sitios puede encontrar en ftp://ftp.cs.us.es/pub/linux/contrib/Xmodmap-es, y que podemos colocar como $HOME/.xmodmap para que se cargue como parte de nuestra configuración. Existe también una utilidad /usr/lib/kbd/keytables/mk_modmap que genera un listado para Xmodmap a partir del mapa de teclado usado por loadkeys.

De todas formas este método no es perfecto, ya que muchas aplicaciones bajo Xwindow tienen su propia forma de configuración o simplemente no tienen soporte para caracteres extendidos por lo que a veces es posible que podamos usar acentos en una ventana y no en la aplicación de la ventana de al lado.

Emulador de DOS (DOSEMU)

La linea de configuración del teclado en /etc/dosemu.conf deberá incluir 'layout es-latin1' para poder usar la 'ñ' y las aperturas de interrogación y admiración. Una vez hecho esto, es posible cargar la configuración habitual con keyb sp desde el propio emulador de DOS, o bien ejecutar 'keybes2.com, una pequeña utilidad para el propio emulador disponible en varias de las direcciones habituales.

Correo electrónico

Por último en relación con el uso del español en Linux, pero no menos importante, es poder leer y recibir por mensajería electrónica textos escritos en español sin deformar su contenido ni perder los acentos y símbolos propios.

El problema se reduce a lo de siempre: el uso de caracteres especiales no incluidos en la tipografía básica sajona requiere trabajar con 8 bits, pero aún hay muchos sistemas que siguen trabajando con 7 bits, lo que trunca o deforma mensajes escritos sin las debidas precauciones.

En el estándar RFC822 que define el formato usado en los mensajes de correo de Internet no se permite el uso de 8 bits en las cabeceras de los mensajes, dejando abierta la posibilidad de 8 bits en el cuerpo del mensaje. Pero tampoco podemos abusar de esa posibilidad ya que no tenemos garantías de que lo respete cualquier sistema que pueda recibir nuestros documentos. Una solución cada vez más extendida, y que permite a los usuarios escribir con libertad y enviar prácticamente cualquier información dejando todos esos detalles al software de gestión del correo (tanto los agentes de usuario como los agentes de transporte en los servidores de correo) es mediante el estandar MIME, que permite codificar nuestros mensajes de 8 bits y reducirlos a caracteres de 7 bits que puedan pasar a través de cualquier sistema sin peligro de perder información. El inconveniente (cada vez menor a medida que este sistema se extienda más y más) es que si intentamos leer un mensaje con codificación MIME sin un software que no implemente este sistema y no pueda interpretarlo, puede que veamos "basura" intercalada con nuestro mensaje, o que incluso no entendamos nada de nada.

MIME deja toda la responsabilidad al software, por lo que si ambos extremos (remitente y destinatario) usan software compatible con MIME, el usuario puede enviar junto a textos simples cualquier combinación de tipos de ficheros (documentos generados por procesadores de textos, gráficos, sonido, video, etc). Ni siquiera es necesario que ambos usen el mismo software. Basta con que ambos sean capaces de generar la codificación durante el envío, y de interpretarla en la recepción.

24.6 Conectividad de Linux

Uno de los puntos muy fuertes de Linux es su gran conectividad: incluso con recursos modestos en hardware puede ser un hábil servidor de red y convivir practicamente con cualquier configuracion que ya tengamos funcionando en nuestra red. A medida que mejoremos el equipamiento, Linux aprovechará todos los recursos convirtiéndose en un potente centro de servicios. Si no consigo abrirte el apetito de curiosidad, echa un vistazo a las varias How-To sobre el tema o lo lamentaras... :)

Como digno miembro de la familia Unix, el entorno nativo de red en el que ha nacido Linux es el TCP/IP, asi que nos moveremos en Internet y en las redes locales basadas en esta familia de protocolos como pez en el agua. Puede actuar tanto de simple cliente hasta como una potente estacion de trabajo de bajo coste, pasando por un XTerminal con todo su entorno grafico con absolutamente todo el software necesario, ya incluido o de más o menos fácil instalacion.

En el nivel físico (cacharreo para entendernos), Linux puede conectarse con otros Linux o con cualquier otro sistema usando casi cualquier cosa: cableado serie, paralelo, modems convencionales, tarjetas RDSI, Frame Relay, redes locales ethernet ó token ring, radiopaquete (AX.25 para radioaficionados), etc.

En cuanto a protocolos de red, lo que lleva en la sangre es el mencionado TCP/IP, pero puede acceder (como cliente o como servidor, segun los casos) a redes basadas en IPX (Novell), AppleTalk (Macintosh) y SMB (red LanManager para conectar con Windows para trabajo en grupo, Windows 95 y Windows NT). Por si sirve de pista, quien escribe ha hecho ya la prueba de poner un simple PC de gama media como nodo principal para dar servicios de disco, impresoras y, sobre todo, acceso a Internet a una LAN ethernet de 75 puestos de trabajo que usan indistintamente cualquiera de los mencionados protocolos compartiendo indistintamente sus recursos. Y lo mejor de todo es que nadie fue capaz de distinguir desde sus respectivos puestos a Linux del servidor propio que les atendía hasta entonces. De hecho lleva varios meses en uso ininterrumpido y sólo Linux ha sido capaz de hacer simultáneamente de servidor para usuarios Unix, Windows 3.11, Windows 95, NT, DOS, Netware y Mac sin colgarse ni una sola vez y con un coste ridículo. Nadie me garantiza que nunca me vaya a fallar, pero lo doy por modesta pero absolutamente victorioso en comparación con sistemas comerciales teóricamente superiores y con un coste mucho mayor.

Otra situación en la que actualmente uso Linux es como servidor de Web, mail, FTP anónimo (de servicio público a la red) y servicios de salida a Internet para una red local de 2.100 usuarios, también con muy buenos resultados a pesar de la fuerte carga de trabajo contínuo las 24 horas.

Conectividad casera

Algunas de las situaciones típicas en las que se puede aprovechar la capacidad de trabajo en red de Linux podrían ser:

Servidor de terminales

¿Quién no tiene en casa un PC (o algo peor) que se ha quedado antiguo pero que aún funciona? Cualquier ordenador con un puerto serie y algun software de emulación de terminal puede conectarse a un Linux, permitiendo varios usuarios trabajando simultaneamente. Para quien no lo haya hecho alguna vez, es la forma más simple de comprobar por sí mismo que Linux es un sistema 100% multiusuario y multitarea. Todos los recursos de memoria, disco, etc. estarán a la vez disponibles para compartirlos entre tantos usuarios como puertos serie tengamos.

Red PPP

Enlazando ordenadores por puertas serie, paralelo, modems, etc, es posible no solamente que un Linux sea el ordenador principal y otros usuarios accedan a través de simples terminales, sino que es posible aprovechar la capacidad de todos los equipos sumando recursos. Desde un equipo se puede acceder a impresoras, discos, etc. de cualquier otro equipo. El protocolo PPP permite crear una red TCP/IP entre todos ellos, usando como enlace tanto modems como simples cables. A medida que cambiemos la red física por algo mas "decente" como una LAN ethernet o análogo, mejorarán las prestaciones como es lógico, pero la idea es la misma y el software de usuario son idénticos (lo que varía, claro esta, es la configuración del propio sistema operativo).

Servidor de modems

Combinando los dos apartados anteriores, podemos unir la capacidad de servidor de puertos serie (a los que conectaremos modems) y el protocolo PPP (para dar a esas líneas serie la funcionalidad del TCP/IP). Así podemos dar servicio de acceso a Internet a los usuarios que se nos conecten por teléfono.

Conexion directa a Internet

Ciertamente no es lo normal en casa, pero es relativamente frecuente encontrarlo en universidades y de un tiempo para acá también es habitual en empresas. Si tenemos una red local enganchada a su vez a un proveedor (académico o comercial), entonces una simple tarjeta de red y una simple configuración del sistema serán suficientes para conectar Linux, que actuará como un ordenador Unix cualquiera, con todas sus ventajas. De hecho en la red encontraremos más de un servidor que esconde un Linux en sus "entrañas", o que precisamente quien nos esté haciendo de proveedor de acceso sea un Linux. Pero hay que tener en cuenta tambien sus inconvenientes de seguridad: igual que podemos conectarnos desde Linux, es perfectamente posible que se conecten a nosotros inadvertidamente, por lo que, salvo que necesitemos mantener abierto algun servicio en particular, es recomendable cerrar "todas las ventanas" para evitar problemas. Algunos buenos consejos para un Linux de uso personal serían:

Infovía: acceso a Internet desde casa

¿Qué es infovía?

Infovía es una red creada por Telefónica a la que los usuarios acceden desde cualquier punto de la red telefónica española a precio de llamada local. Funciona como una intranet (una red basada en los mismos protocolos que Internet, pero independiente y sin integrarse en ella). No tiene por tanto acceso directo a Internet, pero es un buen intermediario ya que abarata costes tanto para el usuario como para el proveedor de acceso a internet, que aprovecha su infraestructura sin tener que invertir en una red propia. En este sentido es una vía interesante de acceso, pero para evitar confusiones hay que tener presente que Infovía NO es Internet, sino un producto comercial de Telefónica. Aún despues de habernos conectado a Infovía seguimos necesitando un proveedor de acceso a Internet para estar verdaderamente conectados a la red de redes.

Al funcionar igual que Internet (el software de Infovía no es más que un PPP y un navegador de web, que utiliza como interfaz de usuario) es perfectamente posible usar Linux para conectarse, pero surge el problema típico de configuración: Telefónica facilita su software gratuito para entornos comerciales típicos (Windows 3.11, Windows95 y Macintosh) que Linux no necesita (ya lo tiene). Pero Linux lo que necesita es conocer la configuracion de su red, para poder integrarse en ella.

¿Como conectar entonces?

El software básico es el pppd, que a través del modem creará un enlace TCP/IP entre nuestro ordenador e Infovia. Una vez creado, podremos contactar con nuestro "verdadero" proveedor, quien nos abrirá las puertas a Internet, y a partir de ese momento ya podremos usar cualquiera de nuestras propias aplicaciones habituales desde Linux. Como complemento de pppd usaremos una utilidad chat que se encargara de dialogar via modem con el ordenador remoto al comienzo de la llamada, mientras se establece la conexión. También intervendrán varios ficheros de configuración (unos genéricos de Linux para cualquier conexión TCP/IP, otros característicos de las conexiones a través de PPP y modem, y por último alguno que usemos en el caso concreto de Infovía). Un detalle sobre versiones de software: un inconveniente en la evolución de Linux ha sido un cambio en la implementación del PPP que hace incompatible algunos pppd con algunas versiones del kernel. Si nuestro núcleo está entre 1.2.13 y 1.3.95 debemos usar un pppd 2.1.2d o superior, mientras que necesitaremos un pppd 2.2.0e o superior para los núcleos más recientes.

El listado siguiente es un ejemplo del fichero principal de configuración de pppd, en el que a su vez se hace referencia a varios ficheros que deberemos crear: identificación y clave facilitada por el proveedor de acceso, el guión de inicio de conexión, y el de cierre y cuelgue del modem. /dev/modem es un enlace (un "symbolic link") que usaremos como nombre genérico para el modem, y que debe apuntar al nombre del dispositivo real en el que lo tengamos conectado.

/etc/ppp/options:


  modem passive crtscts noipdefault defaultroute
  lock lcp-echo-interval 15 lcp-echo-failure 5 mtu 1500
  +ua /etc/ppp/infovia.pass
  connect "/usr/sbin/chat -v -f /etc/ppp/infovia.chat"
  disconnect "/usr/sbin/chat -v -f /etc/ppp/infovia-off.chat"
  /dev/modem 38400

/etc/ppp/infovia.pass es un fichero con simplemente dos líneas, una con el login (identificación de usuario) y otra con la clave. Para acceder a Internet deberemos introducir en ambos casos lo que indique el proveedor, mientras que si sólo vamos a navegar por Infovía (sin salir a Internet) es suficiente con poner infovia como usuario genérico e infovia como clave.

/etc/ppp/infovia.chat contiene el guión que utilizará chat en su diálogo con el modem. Un ejemplo de su contenido podría ser:


  TIMEOUT 6
  ABORT '\nBUSY\r'
  ABORT '\nNO ANSWER\r'
  ABORT '\nNO CARRIER\r'
  ABORT '\nRING\r\n\r\RING\r'
  ABORT '\nNO DIALTONE\r'
  ''    ATDP055
  'CONNECT'

En el ejemplo anterior se usa marcación por pulsos. Si fuera por tonos sustituir ATDP por ATDT. Además, si al número 055 de llamada a Infovía hubiera que añadir algún prefijo de centralita o cualquier otra marcación especial, no hay más que incluirlo en el listado. Por su parte el de cierre de conexión y reseteo del modem sería algo así:

/etc/ppp/infovia-off.chat:


  TIMEOUT 3
  ''    '\r'
  '\r'  '+++\c'
  '\r'  ATH0
  OK    ATH0
  OK

24.7 Direcciones útiles

Direcciones electrónicas

Esta seccion es la que previsiblemente cambiara con mas frecuencia, dado el fuerte auge de Linux y la consiguiente mayor disponibilidad de material para Linux en castellano. Esto es solo un ejemplo para empezar en esta primera edicion...

WWW

linux/España

En Sevilla, el servidor más veterano, con mirrors de LDP/WWW, Slackware, Sunsite, linux/PPC (la sede para Europa de linuxppc.org), Mklinux (linux para Powermac), RedHat (para PC y Alpha), etc.

Grupo de Usuarios de Informática

En Valladolid, con mirrors de LDP/WWW, Slackware, Sunsite y manuales traducidos.

Página de Juan José Amor

En Madrid, traducciones de las How-To.

Linux Spanish Manpages

Traducción del manual del sistema.

FTP Anonimo

Grupos de noticias

Listas de correo

Aparte de las numerosísimas listas de correo en inglés (desde las más genéricas hasta las más especializadas en temas muy concretos), en España hay actualmente dos listas dedicadas a Linux en general:

En Fidonet

Si Internet te queda muy lejos pero lo tuyo es Fidonet, entonces probablemente ya sabrás que existe un area R34.linux con bastante actividad (¡es una de las areas más animadas! ;^) Mucha de la información distribuida en Internet tiene su réplica en Fidonet, además del valioso soporte mútuo entre los propios usuarios.

Direcciones de Firmas comerciales

Poco a poco va creciendo el numero de empresas que prestan atencion al pujante Linux y desarrollan aplicaciones, ofrecen soporte tecnico y/o venden algunas de las distribuciones en CDROM que se mencionaban anteriormente.

En Madrid

En Barcelona

En Bilbao

En Valencia

Bibliografía.

24.8 Copyright

Copyright (c) Gonzalo García- Agulló 1996. Elaborado a partir de experiencia propia y de información recopilada a través de Internet. Vayan mis agradecimientos para Paco Culebras Amigo y Antonio L. Delgado Gonzalez, buenos linuxeros alla donde los haya.

Este documento se publica bajo la Licencia General GNU, lo que permite su libre distribución gratuita siempre que se conserve en su integridad y se retenga el copyright original.

25. La traducción

Versión de la traducción : Mireya

La traducción fue dirigida por Andrés Ramirez y no habria acabado nunca sin la ayuda de ACASTC (http://perso.magic.fr/acastc), y la colaboración de : No informaticos

Informaticos