1- Configuración del Sistema

  • Conociendo el Sistema
  • Seleccionando el Kernel
  • Resumen


    Introducción
     
    Antes de que usted pueda configurar las partes más avanzadas de su sistema, es una buen idea aprender cómo esta organizado y qué órdenes pueden usarse para buscar archivos y programas. También es bueno saber si usted necesitara compilar un Kernel propio y los pasos que debe hacer. Este capítulo lo familiarizará con la organización del sistema y los archivos de configuración. Entonces, usted puede seguir a configurar las partes más avanzadas del sistema.


    Conociendo el Sistema

    Es importante entender cómo se distribuye el sistema Linux antes de entrar en los varios aspectos de la configuración. Un sistema Linux es significativamente diferente a DOS o a Windows (o incluso a un Macintosh), pero estas secciones lo ayudarán a entender el diseño para que usted pueda configurar su sistema fácilmente para satisfacer sus necesidades.

    Sistema de Archivos
     
    La primera diferencia notable entre Slackware Linux y DOS o Windows es el filesystem (Sistema de Archivos). Para comenzar, nosotros no usamos letras diferentes para denotar las particiones diferentes. Bajo Linux, hay un directorio principal. Usted puede relacionar esto al C: de DOS. Cada partición de su sistema y fuera de él se monta en un directorio que se encuentra siempre en el directorio principal.
     
    Nosotros llamamos a el directorio principal, directorio raíz, y se denota con un solo slash ( / ). Este concepto puede parecer extraño, pero hace la vida realmente fácil para usted cuando uno quiere agregar más espacio. Por ejemplo, digamos que se quede sin espacio en el directorio /home La mayoría de las personas instala Slackware y crea un gran directorio raíz. Bien, desde que una partición puede montarse en cualquier directorio, usted simplemente puede ir a la tienda comprar una nueva unidad de disco duro y montarlo en el directorio /home. Usted ha unido “ahora” un poco más de espacio a su sistema. Y todo sin tener que mover muchas cosas.
     
    Debajo, usted encontrará descripciones de los diferentes directorios que componen el sistema raíz de Slackware.
     
    /bin
     
    Aquí se guardan los programas de usuario esenciales. Éstos representan el grupo mínimo de programas requerido para usar el sistema. Las cosas como el shell y los comandos del filesystem (ls, cp, y así sucesivamente) El directorio /bin normalmente no recibe modificación después de la instalación. Si lo hace, normalmente está en el paquete de actualizaciones que nosotros proporcionamos.

    /boot
     
    Archivos que utiliza el cargador de Linux (LILO). Este directorio también recibe la poca modificacion después de la instalación.

    /cdrom
     
    Este directorio no debe estar obligatoriamente en la raíz del sistema, pero debe existir un punto de montaje, además al estar e la raíz es más cómodo.

    /dev
     
    Todo en Linux se trata como un archivo, los dispositivos del hardware como los puertos en serie, discos duros, y escáneres. Para acceder a estos dispositivos, un archivo especial que llame al nodo del dispositivo tiene que estar presente. Todos los nodos del dispositivo se guardan en el directorio /dev. Usted encontrará esto en muchos sistemas basados en UNIX.

    /etc
     
    Este directorio guarda los archivos de configuración del sistema. Todo el archivo de configuración del sistema X window, la base de datos del usuario, las entradas de inicio de sistema. El administrador del sistema se familiarizara con el tiempo a este directorio.

    /home
     
    Linux es un sistema operativo multiusuario. Cada usuario en el sistema se le otorga una cuenta y un único directorio para los archivos personales. A este directorio se le llama el “home” del usuario. El Directorio /home es el predefinido como ubicación para estos directorios.

    /lib
     
    Aquí se guardan bibliotecas del Sistema que se requieren para el funcionamiento básico. La biblioteca de C, el cargador dinámico, la biblioteca del ncurses, y los módulos del kernel están entre otras cosas guardados aquí.

    /lost+found
     
    Cuando el sistema se arranca, los filesystems se verifican para cualquier error( solamente los sistemas con el filesystem de tipo ext* poseen este directorio). Si se descubren los errores, se ejecuta el programa fsck para ver si cualquiera puede corregirse. Las partes corregidas del filesystem se escriben al directorio /lost+found 

    /mnt
     
    Este directorio sirve de punto de montaje temporal para discos duros o discos extraíbles.

    /opt
     
    Paquetes de software optativos. La idea detrás de /opt es de que cada paquete opcional se instale en /opt/<software package>, lo que hará fácil desinstalarlo después. Slackware incluye algunas cosas en /opt (como KDE en /opt/kde), pero usted es libre agregar lo que usted quiera a /opt.

    /proc
     
    Éste es un directorio único. Realmente no es parte del filesystem, pero es un sistema de archivos virtual que proporciona acceso a la información del kernel. Los varios pedazos de información que el kernel quiere que usted sepa se muestran a travez de “archivos” en el directorio /proc Usted también puede enviar la información al Kernel a través de algunos de estos “archivos”. trate haciendo cat /proc/cpuinfo.

    /root
     
    El administrador del sistema es conocido como “root” el directorio home del root se encuentra en el directorio /root en lugar de /home/root. La razón es simple. ¿Qué pasaria si /home estuviera en una partición diferente a/ y no pudiera montarse? root querría entrar y reparar el problema naturalmente. Si su directorio home estuviera en el filesystem dañado, seria difícil para él entrar. /

    /sbin
     
    Programas esenciales que se ejecutan por el root y durante el proceso de arranque del sistema se guarda aquí. Los usuarios normales no ejecutan los programas de este directorio.

    /tmp
     
    La ubicación de almacenamiento temporal. Todos los usuarios tiene acceso a este directorio.

    /usr
     
    Éste es el directorio grande en un sistema Linux. Todo lo más bonito va aquí, programas, documentación, el código fuente del kernel, y el sistema X window. Éste es el directorio en el usted estará instalando mas programas probablemente..

    /var

     
    Aquí se guardan archivos log del Sistema, datos del cache, y archivos de bloqueo de programa. Éste es el directorio para los datos frecuentemente-cambiantes.
     
    Usted debe ahora tener una buena percepción de lo que contienen los directorios en el filesystem. La próxima sección le ayudará a encontrar los archivos específicos fácilmente, para que usted no tenga que hacerlo a mano.

    Encontrando Archivos
     
    Usted sabe lo que contiene cada directorio ahora, pero todavía no le ayuda realmente a encontrar las cosas. Es decir, usted podría ir buscando a través de los directorios, pero hay maneras más rápidas. Hay cuatro comandos principales de búsqueda de archivos disponibles en Slackware.

    which
     
    El Primer comando es which(1). Normalmente se usa which para localizar rápidamente un programa. El solo busca la ruta ( conocida como PATH) y muestra la primera instancia que encuentra y el directorio donde se localiza. Tome este ejemplo:
     
       $ which bash
       /bin/bash
     
    Lo que usted ve ahora es que bash esta en el directorio /bin,  este es un comando muy limitado para investigar, ya que sólo muestra la ruta( o PATH).

    whereis
     
    El whereis(1) es un comando similar which, pero también puede buscar páginas del manual y archivos fuente. Una búsqueda del A whereis para bash debe devolver esto:
     
       $ whereis bash
       bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
     
    Este comando no sólo nos dijo donde esta el programa real, sino también donde se guarda la documentación. Todavía, este comando está limitado. ¿Qué si usted quisiera buscar un archivo de configuración específico? Usted no puede usar which o whereis para eso.

    find
     
    El comando find(1) puede buscar lo que sea. Yo quiero buscar el sistema entero para encontrar el xinitrc predefinido en el sistema..
     
       $ find / -name xinitrc
       ./var/X11R6/lib/xinit/xinitrc
     

    find tardará un rato en ejecutarse, ya que tiene que cruzar el árbol del directorio raíz entero. Si usted ejecuta este orden como un usuario normal, usted conseguirá mensajes de error de permiso denegado para los directorios que sólo root puede ver. Pero find encontró nuestro archivo, lo que es bueno. Si sólo pudiera ser un poco mas rapido...

    locate
     
    El locate(1) busca en el filesystem entero, como lo hace el comando find, pero investiga una base de datos en lugar del filesystem real. La base de datos se pone al día automáticamente a las 4:40AM, para que usted tenga una descripción fresca de los archivos en su sistema. Usted puede ejecutar el updatedb(1) a mano para poner al dia la base de datos. updatedbsu Este es un ejemplo de locate en accion:
     
       $ locate xinitrc
       /var/X11R6/lib/xinit/xinitrc
       /var/X11R6/lib/xinit/xinitrc.fvwm2
       /var/X11R6/lib/xinit/xinitrc.openwin
       /var/X11R6/lib/xinit/xinitrc.twm

     
    Nosotros conseguimos más de lo que nosotros estábamos buscando, y rápidamente también. Con estas órdenes, usted debe poder encontrar cualquier cosa que usted está buscando en su sistema Linux.

    El Directorio /etc/rc.d 
     
    Los archivos de inicio del sistema se guardan en el directorio /etc/rc.d directory. Slackware usa el diseño tipo-BSD para sus archivos de inicio. Cada tarea o runlevel tiene su propio archivo rc. Esto proporciona una estructura organizada que es fácil de mantener.
     
    Hay varias categorías de archivos de inicio. Éstos son inicio del sistema (system startup), runlevels, inicio de red (network initilization), y compatibilidad con el Sistema V (System V compatibility).

    System Startup (Inicio del Sistema)
     
    El primer programa que se ejecuta bajo Slackware además del Kernel de Linux es el init(8). Este programa lee el archivo /etc/inittab(5) para ver cómo arrancara su sistema. Ejecuta el script /etc/rc.d/rc.S para preparar el sistema antes de entrar en el runlevel deseado. El archivo de rc.S habilita su memoria virtual, monta su filesystem, limpia ciertos directorios del log, inicia los dispositivos Plug & Play, carga los módulos del kernel, configura los dispositivos PCMCIA, los puertos en serie, y ejecuta el System V init script (si lo encontró). Obviamente rc.S tiene mucho trabajo que hacer, pero están algunos scripts en /etc/rc.d que rc.S llamará mas adelante para completar su trabajo: 
     
    rc.S
     
    Éste es el script de inicialización del sistema actual.

    rc.modules
     
    Carga los módulos del kernel. Cosas como su tarjeta de red,soporte para PPP, y otras cosas son cargadas aquí. Si este script encuentra rc.netdevice, ejecutará eso también. 

    rc.pcmcia
     
    Busca y configura cualquier dispositivo PCMCIA que usted podría tener en su sistema. Esto es muy útil para usuarios de portátiles que probablemente tienen un módem PCMCIA o una tarjeta de red.

    rc.serial

     
    Configura sus puertos en serie ejecutando los comandos apropiados del setserial.

    rc.sysvinit
     
    Busca los scripts de System V init para el runlevel deseado y los ejecuta. Esto se discute con más detalle abajo.

    Runlevel Initialization Scripts
     
    Después de que el inicio del sistema está completo, el init continua la inicialización del runlevel. Un runlevel describe el estado en que su máquina estará corriendo. ¿Suena redundante? Bien, el runlevel dice al init si usted está aceptando inicios de sesión multiusuarios o simplemente un solo usuario, si usted quiere o no los servicios de red, y si usted estará usando el X-window system o agetty(8) para ocuparse de los inicios de sesión. Los archivos debajo definen los diferentes runlevels en Slackware Linux. 

    rc.0
     
    Deteniene el sistema (runlevel 0 osea halt ). Por defecto, esta linkeado a rc.6.

    rc.4
     
    Inicio Multiusuario (runlevel 4), pero con X11 con KDM, GDM, o XDM como gestor de inicio de sesión.

    rc.6
     
    Reinicia el sistema (runlevel 6).

    rc.K
     
    Este archivo es ejecutado por init cuando va en runlevel 1. Este mata todos los demonios que se están ejecutando y entonces deja el sistema con un inicio en modo de un solo usuario.

    rc.M
     
    Este archivo es ejecutado por init(8) cuando el sistema arranca en modo multiusuario (runlevels 2 y 3), pero con el inicio de sesión basado en texto normal. Éste es el runlevel predefinido en Slackware.

    Inicio de Red (Network Initialization)
     
    Runlevels 2, 3, y 4 pondrán en marcha los servicios de red. Los siguientes archivos son los responsables del inicio de la red: 
     
    rc.inet1
     
    Este script inicia la base del sistema de red.

    rc.inet2
     
    Este shell-script se ejecuta despues de rc.inet1 inicia el sistema de red completo.
     
    rc.atalk
     
    Inicia los servicios Apple Talk.

    rc.httpd
     
    Inicia el servidor web Apache.

    rc.samba
     
    Inicia el servicio para compartir archivos e impresoras con sistemas Windows.

    rc.news
     
    Inicia el servidor de noticias.

    System V Compatibility
     
    Sistem V init compatibility se introdujo en Slackware 7.0. Muchas otras distribuciones de Linux hacen uso de este estilo en lugar del estilo de BSD. Básicamente a cada runlevel se le otorga un subdirectorio para los scripts de init, mientras que el estilo BSD otorga un script de init para cada runlevel. El script rc.sysvinit buscará cualquier script de sistema V init que usted tenga en /etc/rc.d y lo ejecuta, si el runlevel es apropiado. Esto es con toda seguridad útil para paquetes de software comerciales que instalan System V init scripts y scripts para el init de BSD.

    Otros Archivos
     
    Los scripts descritos debajo son los otros scripts de inicio del sistema. Ellos se ejecutan normalmente desde uno de estos scripts descritos abajo, todo lo que usted necesita es editar el contenido
     
    rc.cdrom
     
    Si está activado, este script buscara la unidad de CD-ROM y la montara en el directorio /cdrom 

    rc.gpm
     

    .Inicia o detiene el demonio del mouse mejor conocido como GPM. Este nos permite utilizar las diferentes propiedades del mouse ( copiar y pegar) en la consola de Linux. 

    rc.ibcs2
     
    Inicia el soporte de compatibilidad binaria de Intel. Esto solo es necesario si usted planea ejecutar programas compilados en SCO UNIX, u otra aplicación comercial Intel UNIX. No se necesita para ejecutar los programas de Linux 

    rc.font
     
    Carga la fuente de pantalla personalizada para la consola. Podemos encontrar una gran variedad de fuentes para consola en /usr/share/kbd/consolefonts.

    rc.local
     
    Contiene cualquier inicio especifico para su sistema. Esta vacío después de una instalación reciente, esta reservado para los Administradores locales. Este script se ejecuta después de que toda la otra inicialización ha tenido lugar. 
     
    Para habilitar un script, todo lo que tiene que hacer es agregarle los permisos de ejecución con el comando chmod. Para desactivar un script, quite los permisos de ejecución de él . Para más información sobre chmod, vea la sección llamada Permisos en el Capitulo 9.


    Seleccionando el Kernel

    El Kernel es el corazón del sistema operativo que proporciona acceso al hardware, controla los proceso, y el mando general del sistema. El Kernel contiene el soporte para su hardware, así que escoger el adecuado para su sistema es un paso importante en el proceso de instalación.
     
    Slackware proporciona alrededor de sesenta Kernels precompilados que usted puede escoger, cada uno con un set normal de drivers y drivers adicionales específicos. Usted puede ejecutar uno de los Kernels precompilados o puede construir su propio Kernel desde la fuente. De cualquier modo, usted necesita asegurarse que su Kernel tiene el soporte de hardware que su sistema necesita.

    El Directorio kernels/ en el CD-ROM de Slackware
     
    Los Kernel precompilados de Slackware estan disponibles en el directorio kernels/ del CD-ROM de Slackware o en el sitio de FTP en el directorio principal de Slackware. Los Kernels disponibles cambian de acuerdo a las nuevas versiones que se hacen, por lo que la documentación en este directorio es siempre la fuente autorizada. El directorio kernels/ tiene subdirectorios para cada kernel disponible. Los subdirectorios tienen el mismo nombre como del disco de inicio que los acompaña. En cada subdirectorio usted encontrará los siguientes archivos:
     
    Archivo                              Proposito

  • System.map                        El archivo de mapa de sistema para este Kernel
    bzImage (or zImage)         La imagen del Kernel actual
    config                                 La fuente para la configuración de este kernel
     
    Para usar un Kernel, copie el System.map y los archivos de configuracion a su directorio /boot y copie la imagen del kernel en un directorio que le acomode el cual podría ser / o el mismo /boot con un nombre identificable. Ejecute/sbin/lilo(8) para instalar el LILO a su sistema. Esto es todo lo que hay que hacer para instalar un nuevo Kernel.
     
    Los Kernel que terminan con un “.i” son los kernel IDE. Es decir, ellos no incluyen el apoyo para SCSI en el Kernel. Los Kernels que terminan con “.s” son los Kernels SCSI. Ellos incluyen todo el suporte de IDE de los Kernels .i ,más el suporte para SCSI.

    Compilando un Kernel desde la fuente
     
    La pregunta“¿yo debo compilar un kernel para mi sistema?” se presenta a menudo en los nuevos usuarios. La respuesta definitivamente es talvéz. Hay pocos casos dónde usted necesitará compilar un Kernel específico para su sistema, pero realmente la idea de compilar un kernel para nuestro hardware es sacarle el mayor provecho posible a nuestra màquina aprovechando sus recursos al máximo, aunque también si lo que quieres es un sistema que simplemente funcione, el kernel que viene en el sistema al momento de bootear estará bien. La mayoría de los usuarios puede usar un Kernel precompilado y los módulos cargables del Kernel para lograr un sistema totalmente activo. Usted querrá compilar un Kernel para su sistema si usted está actualizando la versiones del Kernel a uno que nosotros no ofrecemos actualmente en Slackware, o si usted ha reparado la fuente del Kernel para conseguir soporte a algún dispositivo especial que no está en la fuente nativadel kernel.
     
    Construir su propio Kernel no es tan difícil. El primer paso es asegurarse que usted tiene la fuente del kernel instalada en su sistema. Asegúrese que usted instaló los paquetes de las series K durante la instalación. Usted también debe asegurarse que tiene instalada la serie D, específicamente el compilador de C, el GNU make y el GNU binutils. En general, es una buena idea tener toda la serie D instalada si usted planea en hacer cualquier tipo de desarrollo. Ahora nosotros estamos listos para construir un Kernel:
     
       $ su
       Password:  (aquí va la password de root)
       # cd /usr/src/linux
     
    El primer paso es traer la fuente del Kernel a su estado básico. Nosotros emitimos este orden para hacer eso:
     
       # make mrproper
     
    Ahora usted puede configurar el Kernel para su sistema. Los kernels actuales permiten tres maneras de hacer esto. La primera es el sistema de texto basado en preguntas y respuestas ( make config ). Hace una serie de preguntas y entonces construye el archivo de configuración. El problema con este método es que si usted se equivoca, usted debe volver a empezar. El método que la mayoría de las personas prefiere es el manejado por menús (make menuconfig ). Hay por ultimo una herramienta de configuración basada en X (make xconfig). Escoja el que usted quiera y ejecute el comando apropiado:
     
       # make config       (text-based Q&A version)
       # make menuconfig   (menu driven, text-based version)
       # make xconfig      (X-based version, make sure you are in X first)
     
    Figura 4-1. El programa de configuración Kernel manejado por menús.


  •  
    Los nuevos usuarios encontrarán el menuconfig probablemente más fácil de usar. Las pantallas de ayuda que provee explica las partes del Kernel. Después de configurar su Kernel, salga del programa de configuración. El programa escribirá los archivos de configuración necesarios. Ahora nosotros debemos preparar el árbol de la fuente para construirlo:
     
       # make dep
       # make clean

     
    El próximo paso es compilar el Kernel. Trate primero usando el comando zImage Este fallará si su Kernel es demasiado grande, pero nose preocupe, usted todavía puede construirlo con el comando bzImage
     
       # make zImage      (Pruebe primero este comando)
       # make bzImage     (Si make zImage llegara a fallar utilice este comando, pero si todo va bien pase al siguiente comando )
     
    Esto puede tardar un poco, dependiendo de la velocidad de su CPU. Durante el proceso de construcción, usted verá los mensajes del compilador. Después de construir la imagen de su nuevo kernel, usted querrá construir cualquier parte del Kernel que marcó como modulo y posteriormente instalarlos, asique para esta tarea solo debe teclear estos comandos:
     
       # make modules
       #make modules_install


    Nosotros ahora podemos proceder a instalar la nueva imagen del Kernel que compilamos con los anteriores comandos. Para instalar el Kernel en un sistema Slackware tenemos dos posbilidades, la primera es teclear el comando make install el cual de forma automática nos dejará todo configurado respectivamente para poder llegar y reiniciar la máquina y probar nuestro nuevo kernel. La otra es estos comandos deben ejecutarse:
     
       # mv /vmlinuz /vmlinuz.old ( suponiendo que el nombre de la imagen del kernel usado primariamente sea vmlinuz y queramos hacer un respaldo de esta por si ocurre algún problema inesperado)
       # cp arch/i386/boot/zImage  /boot/vmlinuz
       # mv /boot/System.map /boot/System.map.old
       # cp System.map /boot/System.map

     
    Reemplace zImage por bzImage si usted utilizó el comando make bzImage para construir el Kernel. Usted deberá revisar /etc/lilo.conf y agregar una sección para iniciar con su Kernel viejo (/vmlinuz.old) en caso de que el nuevo no trabaje. Después de hacer eso ejecute /sbin/lilo para instalar el nuevo bloque de inicio. Usted puede reiniciar ahora y utilizar su nuevo Kernel.

    Usando los Modulos de Kernel
     
    Los modulo del Kernel son otros dispositivos adicionales que pueden ser agregados en un Kernel normal. Ellos le permiten extender el soporte de hardware de su Kernel sin necesidad de escoger otro Kernel o compilar uno por usted.
     
    También puede cargar y descargar los módulos cuando usted quiera , incluso cuando el sistema está corriendo. Esto hace la actualización de drivers específicos mas sencillo para los administradores de sistema. Un nuevo módulo puede compilarse, quitar el viejo, cargar el nuevo, y todo sin reiniciar la máquina.
     
    Los modulos se guardan en el directorio /lib/modules/<versión_del_kernel> en su sistema. Ellos pueden cargarse al inicio a través del archivo rc.modules Este archivo esta muy bien documentado y ofrece ejemplos para la mayoría de las opciones de hardware. Para ver la lista de módulos que están actualmente activos, utilice el comando lsmod(1):
     
       # lsmod
       Module                  Size  Used by
       parport_pc              7220   0  
       parport                 7844   0  [parport_pc]
     
    Usted puede ver aquí que sólo tengo el módulo del puerto paralelo cargado. Para quitar un módulo, usted usa el comando rmmod(1). Los módulos pueden ser cargados con las ordenes modprobe(1) o insmod(1). modprobe es generalmente mas seguro porque cargara cualquier modulo que dependa del que usted está intentando cargar.
     
    Muchos usuarios nunca tienen que cargar o descargar los módulos a mano. Ellos usan el Kernel autoloader para el manejo de los módulos. Todo lo que tiene que hacer es descomentar la linea en /sbin/kerneld(8) en /etc/rc.d/rc.modules y el autoloader se cargara. Se encargara de cargar y descargar los módulos como usted le pida. Una petición solo involucra tratar de acceder a ese dispositivo.
     
    Más información puede encontrarse en las páginas del manual de cada uno de estos comandos, y en el archivo rc.modules.

    Resumen
     
    Usted debe estar ahora familiarizado con los órdenes para buscar en el filesystem, la organización del filesystem, y la configuración de archivos en el directorio /etc. Estas habilidades serán sumamente útiles a medida que usted aprenda más sobre el sistema. Además, usted debe saber cómo configurar y compilar un Kernel desde la fuente o al menos tener una idea.

    Instalación Indice Configuración de Red