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.
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.
Instalación | Indice | Configuración de Red |