Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tabla de contenido
La CPU
Los microprocesadores operan sobre datos binarios; estos son datos compuestos
de unos y ceros. Estos unos y ceros corresponden a interruptores eléctricos que
están encendidos o apagados. Igual que 42 es un número decimal que significa ``4
decenas y 2 unidades'', un número binario es una serie de dígitos binarios, cada
uno representando una potencia de 2.
La ejecución del procesador viene gobernada por un reloj externo. Este reloj, el
reloj del sistema, envía pulsos de reloj regulares al procesador y, a cada pulso de
reloj, el procesador hace algún trabajo. Por ejemplo, un procesador podría ejecutar
una instrucción a cada pulso de reloj. La velocidad del procesador se describe en
Las instrucciones ejecutadas por el procesador son muy simples; por ejemplo
“copia en el registro Y el contenido de la posición X de la memoria”. Los registros
son el almacén interno del microprocesador, se usan para almacenar datos y
realizar operaciones sobre ellos. Las operaciones realizadas pueden hacer que el
procesador deje de hacer los que estaba haciendo y salte a otra instrucción en otra
parte de la memoria. Estos pequeños ladrillos dan al microprocesador moderno un
poder casi ilimitado ya que puede ejecutar millones o incluso miles de millones de
instrucciones por segundo.
Las instrucciones deben ser obtenidas de la memoria para ejecutarlas. Las propias
instrucciones pueden hacer referencia a datos en la memoria, y esos datos deben
ser obtenidos de la memoria y guardados en ella cuando se requiera.
# cat /proc/cpuinfo
Campo Valor
processor 0 1
physical id 0 0
Campo Valor
siblings 2 2
core id 0 0
cpu cores 1 1
Campo Valor
processor 0 1
physical id 0 0
siblings 2 2
core id 0 1
cpu cores 2 2
Campo Valor
processor 0 1 2 3 4 5 6 7
physical id 0 0 0 0 1 1 1 1
siblings 4 4 4 4 4 4 4 4
core id 0 0 1 1 0 0 1 1
cpu cores 2 2 2 2 2 2 2 2
Campo Valor
processor 0 1 2 3
physical id 0 0 0 0
siblings 4 4 4 4
core id 0 2 1 3
cpu cores 4 4 4 4
Los Kernels de Linux más recientes (> 2.6.17) reportan la topología de la CPU en
sysfs además. Este mecanismo es más simple y rápido comparado con /proc.
Memoria
Todos los sistemas tienen una jerarquía de memoria, con memoria de diferentes
velocidades y tamaños en diferentes puntos de la jerarquía. La memoria más
rápida se conoce como memoria caché y es una memoria que se usa para
almacenar temporalmente contenidos de la memoria principal. Este tipo de
memoria es muy rápida pero cara, por tanto la mayoría de los procesadores tienen
una pequeña cantidad de memoria caché en el chip y más memoria caché en el
sistema (en la placa). Algunos procesadores tienen una caché para contener
instrucciones y datos, pero otros tienen dos, una para instrucciones y la otra para
datos. El procesador Alpha tiene dos memorias caché internas; una para datos (la
Caché-D) y otra para instrucciones (la Caché-I). La caché externa (o Caché-B)
mezcla los dos juntos. Finalmente está la memoria principal, que comparada con
la memoria caché externa es muy lenta. Comparada con la caché en la CPU, la
memoria principal se arrastra.
# cat /proc/meminfo
Buses
# cat /proc/pci
Información de los dispositivos existentes en los demás buses del sistema, pueden
ser obtenidos consultando el directorio /proc/bus.
Controladores y periféricos
Los periféricos son dispositivos reales, como tarjetas gráficas o discos controlados
Todos los controladores son diferentes, pero usualmente tienen registros que los
controlan. El software que se ejecute en la CPU debe ser capaz de leer y escribir
en esos registros de control. Un registro puede contener un estado que describa un
error. Otro puede ser usado para propósitos de control; cambiando el modo del
controlador. Cada controlador en un bus puede ser accedido individualmente por la
CPU, esto es así para que el software gestor de dispositivos pueda escribir en sus
registros y así controlarlo, La banda IDE es un buen ejemplo, ya que ofrece la
posibilidad de acceder a cada unidad en el bus por separado. Otro buen ejemplo es
el bus PCI, que permite acceder a cada dispositivo (por ejemplo una tarjeta gráfica)
independientemente.
Espacios de direcciones
El bus del sistema conecta la CPU con la memoria principal y está separado de los
buses que conectan la CPU con los periféricos. El espacio de memoria en el que
existen los periféricos hardware se conoce colectivamente como espacio de I/O
(por Input/Output, Entrada/Salida). El espacio de I/O puede estar subdividido a su
vez, pero no nos preocuparemos demasiado sobre eso de momento. La CPU
puede acceder a la memoria en el espacio del sistema y a la memoria en el espacio
de I/O, mientras que los controladores sólo pueden acceder a la memoria en el
espacio del sistema indirectamente, y sólo con la ayuda de la CPU. Desde el punto
de vista del dispositivo, digamos un controlador de disquetes, verá sólo el espacio
de direcciones en el que se encuentran sus registros de control (ISA) y no la
memoria del sistema.
Existen ocasiones en las que los controladores necesitan leer o escribir grandes
cantidades de datos directamente desde o a la memoria del sistema. Por ejemplo,
cuando se escriben datos del usuario al disco duro. En este caso, se usan
controladores de Acceso Directo a Memoria (Direct Memory Access - DMA)
para permitir que los periféricos hardware accedan directamente a la memoria del
sistema, pero este acceso está bajo el estricto control y supervisión de la CPU.
# cat /proc/ioports
Cronómetros
Todos los sistemas operativos necesitan saber la hora, y así, la placa madre
incluye un dispositivo especial llamado el Reloj de Tiempo Real (Real Time Clock
- RTC). Este dispositivo suministra dos cosas: una hora del día fiable y un
cronómetro preciso. El RTC tiene su propia batería, de forma que siga funcionado
incluso cuando el PC no esté encendido, así es como el equipo “sabe”' siempre la
fecha y hora correctas. El cronómetro permite que el sistema operativo planifique
de manera precisa el trabajo esencial.
Interrupciones
Linux usa distintos componentes físicos para llevar a cabo trabajos muy diferentes.
El dispositivo de vídeo maneja el monitor, el dispositivo IDE maneja los discos, y
así sucesivamente. Puede manejar estos dispositivos de forma sincronizada, es
decir, puede enviar una petición de alguna operación (como escribir un bloque de
memoria a disco) y luego esperar que la operación se complete. Este método,
aunque funciona, es muy poco eficiente y el sistema operativo pasaría mucho
tiempo «ocupado sin hacer nada» mientras espera que cada operación finalice.
Una manera mejor y más eficiente sería realizar la petición y luego realizar otra, un
trabajo más útil que luego se interrumpiría cuando el dispositivo haya finalizado la
petición. Con este esquema puede haber muchas peticiones pendientes hacia los
dispositivos en el sistema, todas al mismo tiempo.
# cat /proc/interrupts
Otros comandos que permiten obtener información del equipo son dmesg, lshal,
lspci, lsusb, dmidecode y hwbrowser.
Antes de instalar CentOS Linux verifique que cumple los requisitos de espacio en
disco para la instalación.
He aquí un ejemplo de la vida real. Supongamos que tiene un sistema con dos
discos. El primer disco se llama por tanto sda, y el segundo sdb. Si la unidad sda
tiene 3 particiones, éstas se llamarán sda1, sda2 y sda3. Lo mismo se aplica para
el disco sdb y sus particiones.
Para iniciar desde un USB pen drive, utilice el comando dd para copiar la imagen
diskboot.img desde el directorio /images/ del medio de instalación. Por
ejemplo:
# dd if=diskboot.img of=/dev/sda
Aunque para un usuario resulta más sencillo arrancar desde un CD-ROM y ejecutar
una instalación gráfica, en ocasiones hay instalaciones en las que puede ser
Si no desea realizar una instalación gráfica, puede iniciar una instalación en modo
texto mediante el siguiente comando de arranque:
Las imágenes ISO ahora tienen un md5sum integrado. Para probar la integridad
checksum de una imagen ISO, en el indicador de comandos de arranque de la
instalación, escriba:
boot: linux dd
Para ejecutar la instalación en modo texto a través del puerto serie, utilice:
Para instalar CentOS Linux desde un CD-ROM, escoja CD-ROM y seleccione OK.
Cuando el programa se lo indique, inserte el CD de CentOS Linux en el lector de
disco (si no arrancó desde una unidad de CD). Una vez que el CD esté en la
Las instalaciones desde un disco duro solamente funcionan con los sistemas de
archivos ext2, ext3 o FAT. Si tiene un sistema de archivos diverso de los que
aparecen aquí como reiserfs, no podrá llevar a cabo este tipo de instalación.
Introduzca el nombre del dispositivo de la partición que contiene las imágenes ISO.
También hay un campo etiquetado Directorio que contiene imágenes. Si las
imágenes ISO no se encuentran en el directorio root de esa partición introduzca el
recorrido hacia las imágenes ISO (por ejemplo, si las imágenes ISO están en
/iso/CentOS, introduzca /iso/CentOS).
Introduzca el nombre o la dirección IP del sitio FTP desde el que está instalando y
el nombre del directorio que contiene los archivos de instalación CentOS para su
arquitectura.
Introduzca el nombre o la dirección IP del sitio HTTP desde el que está instalando y
el nombre del directorio que contiene los archivos de instalación CentOS para su
arquitectura.
particiones FAT32).
A no ser que tenga razones para hacerlo de otro modo, le recomendamos que cree
las siguientes particiones:
● Una partición swap Las particiones swap se usan para soportar la memoria
virtual. En otras palabras, los datos se escriben en la partición swap cuando
no hay suficiente RAM para almacenar los datos que su sistema está
Hasta CentOS 2.1 existía una limitación del tamaño de la partición de swap
hasta 2 GB para cada espacio swap. Esto era debido a que el comando
mkswap no soportaba la creación de áreas de swap mayores a 2 GB. En
CentOS Enterprise Linux 3 y superior, el comando mkswap permite la
creación de particiones swap mayores a 2 GB.
● Una partición root (6.0 GB) aquí es donde se ubica "/" (el directorio raíz).
En esta instalación, todos los archivos (excepto los almacenados en /boot)
se encuentran en la partición raíz. Una partición raíz 6.0 GB le permitirá
instalar todos los paquetes con suficiente espacio disponible para futuro
crecimiento.
Si el sistema operativo ha sido instalado en un RAID por software, GRUB debe ser
instalado manualmente en el disco espejado.
Primer arranque
Para detalles acerca de configuración de firewalls, infórmese acerca del curso “LE-
302 – Netfilter/IPTables”.
Configuración de Kdump
Configuración de SELinux
El archivo anaconda-ks.cfg
Este archivo puede ser utilizado para automatizar la instalación en otros equipos
utilizando el método Kickstart. Para detalles acerca de SELinux, infórmese acerca
del curso “LE-202 – Administración avanzada de servidores”.
El sistema de archivos
No todos los bloques del sistema de archivos contienen datos, algunos deben
usarse para mantener la información que describe la estructura del sistema de
ficheros.
Un inodo describe que bloques ocupan los datos de un archivo y también los
permisos de acceso del fichero, las horas de modificación del fichero y el tipo del
fichero. Cada archivo en el sistema de archivos se describe por un único inodo y
cada inodo tiene un único número que lo identifica. Los inodos del sistema de
ficheros se almacenan juntos en tablas de inodos.
Grupos de bloques
● Bloques de datos
Super Bloque
El Super Bloque (Superblock) contiene una descripción del tamaño y forma base
del sistema de archivos.
Normalmente sólo se lee el Super Bloque del Grupo de Bloque 0 cuando se monta
el sistema de ficheros pero cada Grupo de Bloque contiene una copia duplicada en
caso de que se corrompa sistema de ficheros.
● Tamaño bloque.
● Contador de montajes.
● Tamaño de inodo.
Descriptor de grupo
bloques. Un mapa de bits es simplemente una lista de bits que describen que
bloques o inodos se encuentran en uso.
Similar a los bloques, los inodos asignados a los archivos son contabilizados. Los
inodos almacenan toda la información acerca de un archivo. El mapa de bits de
inodos (Inode Bitmap) permite tener un registro de los inodos utilizados y liberados
cuando un archivo es borrado.
Tabla de inodos
La tabla de inodos es una arreglo que contiene la lista de inodos para ese grupo de
bloques en particular.
● Modo Esto mantiene dos partes de información; qué inodo describe y los
permisos que tienen los usuarios. Para Ext, un inodo puede describir un
ficheros, directorio, enlace simbólico, dispositivo de bloque, dispositivo de
caracter o FIFO.
● Bloques de datos Punteros a los bloques que contienen los datos que este
inodo describe. Los primero doce bloques contienen punteros directos a los
bloques de datos. Si un archivo es más grande, se utilizan bloques
indirectos, doble indirecto y triple indirecto para lograr referenciar a mayor
cantidad de bloques de datos.
Gestión de particiones
En el primer sector del disco está el registro de arranque maestro junto a la tabla de
particiones. El registro de arranque (como su nombre indica) se usa para arrancar
el sistema. La tabla de particiones contiene información acerca del lugar y el
tamaño de cada partición. Existen dos clases de particiones:
Numeración de particiones
Usando fdisk
Comando Descripción
m Manual - Muestra la ayuda.
p Print - Muestra la tabla de particiones actual.
n New - Crear una nueva partición. Primero le solicitará el número de
partición, luego el cilindro de inicio y final, el cilindro de inicio es
recomendado que acepte el propuesto y el cilindro final puede
especificar de la forma +(N)M, lo cual indica al comando fdisk que
cree una partición de N MB.
d Delete - Borrar una partición. Le solicitará el número de la partición
que desea borrar.
t Toogle – Cambia el tipo de partición. Deberá realizar este
procedimiento por ejemplo para indicar que la partición creada será
Comando Descripción
de tipo swap.
w Write - Guarda los cambios en la tabla de particiones de disco.
q Quit - Sale sin guardar los cambios en la tabla de particiones del
disco.
a Active - Activa o desactiva una partición para el arranque. La
partición activa es aquella que contiene el cargador de arranque. Si
el cargador de arranque está en el MBR, la partición activa será la
primera.
El siguiente ejemplo mustra el uso del comando fdisk para listar la tabla de
particiones del primer disco y salir sin realizar cambios:
# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 255 heads, 63 sectors, 784 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/sda1 * 1 1 26 208813+ 83 Linux native
/dev/sda2 27 27 784 6088635 5 Extended
/dev/sda5 27 27 645 4972086 83 Linux native
/dev/sda6 646 646 776 1052226 83 Linux native
/dev/sda7 777 777 784 64228+ 82 Linux swap
Command (m for help): q
Una vez creada la partición se debe crear el sistema de archivos en ella, para ello
use el comando mkfs. La sintaxis del comando es como sigue:
Ejemplo: Para crear un sistema de archivos en la primera partición del primer disco
ejecute el comando:
Opción Descripción
-c Ajusta el contador de montaje máximo entre verificaciones del
sistema de archivos. Si es 0 se deshabilita esta opción.
-i Ajusta el intervalo de tiempo entre verificaciones, por defecto cada 6
meses se realizará una verificación del sistema de archivos al
momento de montado.
-j Agrega un diario (journal) convirtiendo un sistema de archivos ext2
en ext3.
-L Establece una etiqueta para el volúmen.
Para migrar un filesystem de tipo ext2 a ext3, sin destruir los datos, ejecute el
siguiente comando:
# tune2fs -j /dev/sda1
Para mostrar los parámetros actuales del sistema de archivos utilice el comando:
Las opciones de montaje son numerosas. Las más usadas se listan a continuación:
Opción Descripción
auto Indica que el dispositivo se monta siempre que se inicie el sistema.
La opuesta es noauto.
rw Indica que el dispositivo se monta con permisos de lectura y
escritura.
ro Indica que el dispositivo se monta con permisos de lectura
solamente.
owner Indica que el primer usuario distinto de root conectado al sistema
localmente tiene derechos a montar y desmontar el dispositivo (se
adueña de este).
user Indica que cualquier usuario puede montar y solo el mismo usuario
podrá desmontar el dispositivo. La opción opuesta es nouser.
users Indica que cualquier usuario puede montar y cualquiera también,
puede desmontar el dispositivo.
suid Indica que el permiso “s” tenga efecto para los ejecutables presentes
en el dispositivo. La opción opuesta es nosuid.
exec Indica que los binarios ejecutables almacenados en el dispositivo se
pueden ejecutar. La opción opuesta es noexec.
async Expresa que todas las operaciones de entrada y salida se hacen de
forma asíncrona, o sea, no necesariamente en el momento en que
se invocan. La opción opuesta es sync.
dev Indica que se interprete como tal a los dispositivos especiales de
bloques y de caracteres presentes en el dispositivo. La opción
opuesta es nodev.
defaults es una opción equivalente a la unión de rw, suid, dev, exec, auto,
nouser y async.
Opción Descripción
-a En el caso de mount monta todos los dispositivos que
tienen la opción auto en el fichero fstab, y para umount
desmonta todo lo que está en el fichero /etc/mtab.
-t <tipo> Indica el tipo de sistema de archivos a montar.
-o <opciones> Especifica las opciones de montaje (separadas por comas).
El siguiente comando monta todos los dispositivos con sistemas de archivos ext3 y
con la opción auto en el fichero /etc/fstab
# mount -a -t ext3
# umount /media/cdrom
# umount /media/cdrom
umount: /media/cdrom: device is busy
Para identificar si un sistema de archivos está siendo utilizado por algún proceso,
ejecute el comando fuser o el comando lsof.
# fdisk /dev/sdb
1940): +1024M
Repita el comando para cada una de las particiones primarias o unidades lógicas
de tipo Linux (83) creadas.
Repita el comando para cada uno de los sistemas de archivos ext3 creados.
# mkdir /d0
# mkdir /d1
# mkdir /d2
Seleccione el nombre que desee para el directorio el cual será el punto de montaje.
No es requisito que el directorio se encuentre en la raíz del sistema.
# vi /etc/fstab
# mount /d0
# mount /d1
# mount /d2
● Que todos los bloques sean referenciados en al menos una lista, ninguno se
encuentre duplicado en una lista o sea referenciado por más de una lista.
Opción Descripción
-s Serializar operaciones. Es útil para cuando se realizan
verificaciones múltiples.
-A ntenta verificar todos los sistemas de archivos definidos en el
/etc/fstab.
-C Despliega una barra de progreso para aquellos sistemas de
archivos que están siendo verificados.
-y Responder Si a todas las preguntas.
-c Utiliza el comando badblocks para verificar la superficie del disco.
-b Permite la recuperación del superbloque a partir de una copia
Opción Descripción
existente en el grupo de bloques indicado.
Sólo el usuario root puede ejecutar el comando fsck y debe ser corrido sobre
sistemas de archivos que no estén montados, de lo contrario, puede provocar
corrupción de datos. Para verificar el sistema de archivos root “/”, deberá montarlo
como sólo lectura.
Código Descripción
0 Sin errores
1 Errores corregidos
2 El sistema debería ser reiniciado
4 Errores de sistemas de archivos no corregidos
8 Error operacional
16 Error de sintaxis
32 Cancelado por petición del usuario
128 Error de bibliotecas compartidas
Los códigos de error pueden ser consultados ejecutando el comando man fsck.
Tiene dos opciones: añadir una partición swap o un archivo swap. Se recomienda
que añada una partición swap, pero a veces no resulta fácil si no cuenta con
espacio libre disponible.
Para añadir una partición swap ( asumiendo que /dev/sdb2 es la partición que
quiere agregar):
El disco duro no puede estar en uso (no puede tener particiones montadas, y no se
puede tener activado el espacio swap)
# fdisk /dev/sdb
Cree la partición (n), cambie el tipo de sistema de archivos a linux swap (t) ID 82 y
salga guardando las modificaciones (w)
Ahora que tiene la partición swap, use el comando mkswap para configurar la
partición swap. En el indicador de comandos shell como root, escriba lo siguiente:
# mkswap /dev/sdb2
# swapon /dev/sdb2
Para añadir un archivo en disco como área de swap en lugar de una partición de
disco, primero determine el tamaño del nuevo archivo swap.
# mkswap /d0/swapfile
# swapon /d0/swapfile
Utilización de autofs
Campo Descripción
clave Subdirectorio dentro del directorio especificado en
/etc/auto.master que actuarán como punto de montaje para el
sistema de archivos especificado.
opciones Opciones de montado del sistema de archivos.
ubicación De dónde los sistemas de archivos serán montados.
Proceso de arranque
Ya que la configuración del proceso de arranque es más común que la del proceso
de cierre, en el resto de la sección se discutirá el modo en el que el proceso de
arranque funciona y cómo se puede personalizar para satisfacer sus necesidades.
El BIOS
Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel
equivalentes a aquellas del BIOS en el sistema x86. Por ejemplo, los ordenadores
basados en Itanium usan Interfaz de Firmware extensible (EFI) Shell.
Una vez que se haya cargado, la BIOS chequea los periféricos y localiza un
dispositivo con el que arrancar el sistema. Habitualmente, en primer lugar
comprueba cualquier disquete y unidades de CD-ROM presente por los medios de
arranque, y a continuación si esto falla, echa un vistazo a las unidades de disco
duro del sistema. El orden de las unidades necesario para arrancar puede ser
controlado con una configuración del BIOS. El BIOS carga en memoria cualquier
programa que resida en el primer sector de este dispositivo, llamado Master Boot
Record o MBR. La MBR sólo tiene 512 bytes de tamaño y contiene las
instrucciones de código de máquina para el arranque del equipo, llama un gestor
de arranque así como también la tabla de particiones. Una vez que el BIOS haya
encontrado y cargado el gestor de arranque en memoria, le deja el control del
proceso de arranque a éste.
El gestor de arranque
Esta sección revisa los gestores de arranque para la plataforma x86. Dependiendo
de la arquitectura del sistema, el proceso de arranque diferirá ligeramente.
Bajo CentOS Linux están disponibles dos gestores de arranque: GRUB o ELILO
para plataformas Itanium.
GRUB es el gestor de arranque más nuevo y tiene la ventaja de ser capaz de leer
particiones ext2 y ext3 y cargar su archivo de configuración
/boot/grub/grub.conf al momento de arranque.
Una vez que el gestor de arranque de la segunda etapa está en memoria, presenta
al usuario con la pantalla inicial, gráfica de CentOS Linux mostrando los diferentes
sistemas operativos o kernels que para los que ha sido configurado para arrancar.
En esta pantalla el usuario puede usar las flechas de dirección para escoger el
sistema operativo o kernel con el que desea arrancar y presione la tecla [ENTER].
Si no se presiona ninguna tecla, el gestor de arranque carga la selección
predeterminada luego de un período de tiempo de espera (también configurable).
Una vez que el gestor de arranque de la segunda etapa haya determinado qué
kernel arrancar, localizará el binario del kernel correspondiente en el directorio
/boot/. El kernel binario es llamado usando el siguiente formato
/boot/vmlinuz-<kernel-version> (donde <kernel-version>
corresponde a la versión del kernel especificada en las configuraciones del gestor
de arranque).
Una vez que el kernel de CentOS Linux arranca y pasa el proceso de arranque al
comando init, los mismos acontecimientos suceden en cada arquitectura
exactamente en el mismo modo. La única diferencia entre el proceso de arranque
de cada arquitectura está en la aplicación que se usa para encontrar y cargar el
kernel.
El kernel
El kernel luego crea un dispositivo root, monta la partición root como sólo lectura y
libera cualquier memoria no utilizada.
Programa /sbin/init
en concreto.
K05innd->../init.d/innd
K05saslauthd->../init.d/saslauthd
K10psacct->../init.d/psacct
.
.
.
S95atd->../init.d/atd
S97rhnsd->../init.d/rhnsd
S99local->../rc.local
S99mdmonitor->../init.d/mdmonitor
Como puede ver, ninguno de los scripts que inician y cierran los servicios están
localizados en el directorio /etc/rc.d/rc5.d/. Casi todos los ficheros en
/etc/rc.d/rc5.d/ son enlaces simbólicos apuntando a los scripts localizados
en el directorio /etc/rc.d/init.d/. Los enlaces simbólicos se usan en cada
uno de los directorios rc de manera que los niveles de ejecución puedan ser
reconfigurados al crear, modificar y eliminar los enlaces simbólicos sin que afecte a
los scripts actuales a los que se refiere.
El nombre de cada enlace simbólico inicia con K o S. Los enlaces K son procesos
eliminados en ese nivel de ejecución, mientras que aquellos que inician por S son
procesos iniciados.
Cada uno de los enlaces simbólicos se numera para dictaminar el orden de inicio.
Puede cambiar el orden en el que los servicios inician o paran al cambiar el
número. Mientras más bajo es el número, más rápido se arrancará. Los enlaces
simbólicos con el mismo número se inician de modo alfabético.
Uso de sysctl
Para tener una vista rápida de todas las variables configurables en el directorio
/proc/sys/, escriba el comando /sbin/sysctl -a como root. Esto creará una
lista grande y exhaustiva, de la cual le mostramos una pequeña parte:
net.ipv4.route.min_delay = 2
kernel.sysrq = 0
kernel.sem = 250 32000 32 128
Esta es la misma información que verla si echara un vistazo a cada uno de los
archivos individualmente. La única diferencia es la localización del archivo. Por
ejemplo, el archivo /proc/sys/net/ipv4/route/min_delay está
representado por net.ipv4.route.min_delay, con las barras oblicuas del
directorio sustituidas por puntos y la porción asumida proc.sys.
El comando sysctl se puede usar en vez de echo para asignar valores a los
archivos en los que se puede escribir en el directorio /proc/sys/. Por ejemplo, en
vez de usar el comando:
sysctl -w kernel.sysrq="1"
kernel.sysrq = 1
A pesar de que es muy útil durante las pruebas el poder rápidamente efectuar
configuraciones de valores simples en /proc/sys/, esto no funciona bien en un
ambiente de producción puesto que las configuraciones especiales en
/proc/sys/ se pierden cuando se vuelve a arrancar el sistema. Para conservar
las configuraciones personalizadas, agreguelas al archivo /etc/sysctl.conf.
init.d/
rc0.d/
rc1.d/
rc2.d/
rc3.d/
rc4.d/
rc5.d/
rc6.d/
Niveles de ejecución
Los niveles de ejecución son un estado, o modo, definido por los servicios listados
en el SysV directorio /etc/rc.d/rc<x>.d/, donde <x> es el número de nivel de
ejecución.
La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que
sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, el servidor
corre de forma más eficiente sin tener que arrastrar recursos del sistema creados
por el sistema X. Otras veces, el administrador del sistema puede necesitar operar
el sistema en un nivel más bajo de ejecución para realizar tareas de diagnóstico,
como reparar corrupción del disco duro, cuando no es posible que ningún otro
usuario esté usando el sistema.
Los siguientes niveles de ejecución están definidos por defecto para CentOS Linux:
Nivel Descripción
0 Detener el sistema
2 Sin usar (usuario-definible)
3 Modo texto multiusuario completo
4 Sin usar (usuario-definible)
5 Modo gráfico multiusuario completo (con una pantalla de inicio de
sesión basada en X)
Nivel Descripción
6 Reiniciar
id:5:initdefault:
Una de las mejores formas de configurar los niveles de ejecución es usando las
herramientas initscript. Estas herramientas están diseñadas para simplificar las
tareas de mantener archivos en la jerarquía del directorio SysV init y descargan a
los administradores de sistemas de tener que directamente manipular numerosos
enlaces simbólicos en los subdirectorios de /etc/rc.d/.
/etc/rc.d/init.d.
# /sbin/shutdown -h now
# /sbin/shutdown -r now
Los usuarios no root pueden usar los comandos reboot y halt para apagar el
equipo mientras se está en niveles de ejecución 1 hasta 5. Sin embargo, no todos
los sistemas operativos Linux soportan esta característica.
Si no espera por este mensaje puede significar que no todas las particiones de
discos duros han sido desmontadas, y puede llevar a un sistema de archivos
corrupto.
Administración de usuarios
Usuarios y grupos
Los usuarios pueden ser gente real, es decir, cuentas ligadas a un usuario físico en
particular o cuentas que existen para ser usadas por aplicaciones específicas.
Cada usuario y grupo tiene un número de identificación único llamado user id (UID)
y un group id (GID).
Añadir un usuario
Para añadir un usuario al sistema ejecute el comando useradd para crear una
cuenta de usuario bloqueada:
useradd <nombre_usuario>
passwd <nombre_usuario>
Opción Descripción
-c comentario Comentario para el usuario
-d home-dir Directorio principal a ser usado en vez del directorio
predeterminado /home/nombre_usuario
-e fecha Fecha en que la cuenta será desactivada usando el
formato de fecha YYYY-MM-DD
-f días Número de días que pasarán después que la contraseña
ha caducado hasta que la cuenta se desactivará (Si se
especifica 0, la cuenta será desactivada inmediatamente
después que la contraseña expire. Si se especifica -1, la
cuenta no se desactivará después que la contraseña
caduque.)
-g nombre_grupo Nombre o número del grupo para el grupo
predeterminado del usuario (El grupo debe existir.)
-G lista_grupos Lista de nombres de los grupos adicionales (además del
predeterminado), separados por comas, de los cuales el
usuario es miembro (Los grupos deben existir.)
-m Crea el directorio principal si no existe
-M No crea el directorio principal
-n No crea un grupo de usuario privado para el usuario
-r Crea una cuenta de sistema con un UID menor que 500 y
dentro del directorio principal.
-p contraseña La contraseña encriptada con crypt
-s Línea de comando de conexión del usuario,
predeterminada a /bin/bash
-u uid ID de usuario, el cual debe ser único y mayor que 499
Añadir un grupo
groupadd <nombre_grupo>
Opción Descripción
-g gid ID para el grupo, el cual debe ser único y mayor que 499.
-r Crea un grupo de sistema con un GID menor que 500.
-f Sale con un error si el grupo ya existe. (El grupo no es alterado.) Si
se especifica -g y -f, pero el grupo ya existe, la opción -g es
ignorada.
Vencimiento de la contraseña
Opción Descripción
-m días Especifica el número mínimo de días entre los cuales el usuario
debe cambiar su contraseña. Si el valor es 0, la contraseña no
caduca.
-M días Especifica el número máximo de días durante los cuales la
contraseña es válida. Cuando el número de días especificado por
esta opción más el número de días especificado con la opción -d
es menor que el día actual, el usuario debe cambiar su contraseña
antes de usar la cuenta.
-d días Especifica el número de días desde Enero 1, 1970 que la
contraseña fué cambiada.
-I días Especifica el número de días inactivos después de la expiración de
la contraseña antes de bloquear la cuenta. Si el valor es 0, la
cuenta no es bloqueada después que la contraseña caduca.
-E fecha Especifica la fecha en la cual la cuenta es bloqueada, en el formato
YYYY-MM-DD. También se puede usar el número de días
transcurridos desde Enero 1, 1970 en lugar de la fecha.
-W días Especifica el número de días antes de la fecha de expiración de la
contraseña para advertir al usuario.
El archivo /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
ftp:x:404:1::/home/ftp:/bin/bash
daemon:x:2:2:daemon:/sbin:
● Nombre de login
● Contraseña encriptada
● Información de usuario (campo "GECOS") Se usa ahora, sin una sintaxis fija,
para contener información del usuario. El comando finger interpreta este
campo como una lista separada por comas conteniendo: 1) nombre en la
vida real, 2) edificio y número de oficina, 3) teléfono interno, 4) teléfono
domiciliario. El comando chfn permite al usuario cambiar su información
propia.
El archivo /etc/group
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemo
Se crea un UPG siempre que se añade un nuevo usuario al sistema. Un UPG tiene
el mismo nombre que el usuario para el cual se crea y ese usuario es el único
miembro de ese UPG.
Los UPGs hacen que sea más seguro configurar los privilegios por defecto para un
nuevo archivo o directorio lo que permite a ambos, tanto el usuario como al grupo
de ese usuario hacer modificaciones al archivo o directorio.
Directorios de grupos
# /usr/sbin/groupadd contab
Para poder asociar los contenidos del directorio con el grupo contab, escriba:
Permita a los usuarios crear archivos dentro del directorio y configure el bit SGID, el
cual asigna que todo lo que se cree en el directorio el mismo grupo del directorio
padre (contab). Use el comando siguiente:
En este punto, puesto que cada usuario tiene por defecto su umask en 002, todos
los miembros del grupo contab pueden crear y modificar archivos en el directorio
/datos/contabilidad/ sin que el administrador tenga que cambiar los
permisos de los archivos cada vez que un usuario escriba nuevos archivos.
Contraseñas Shadow
Abajo se muestra una lista de los comandos que no funcionan a menos que se
activen las contraseñas shadow:
● chage
● gpasswd
El archivo /etc/shadow
El archivo /etc/shadow contiene una línea por usuario y solo es visible por root.
Provee además información relativa a cambio de contraseñas y expiración de la
cuenta.
root:1eklLr8RdBuao:10461:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::
Configuración de la autenticación
Métodos de autenticación
● Habilitar contraseñas MD5 le permite usar una contraseña larga (de hasta
256 caracteres), en vez de las ocho letras.
● Activar LDAP le dice a su ordenador que utilice LDAP para algunas o todas
las autenticaciones. LDAP consolida ciertos tipos de información en el seno
de su organización. Por ejemplo, todas las diferentes listas de usuarios que
puede haber en la organización se pueden unir en un sólo directorio LDAP.
– Reino esta opción le permite acceder a una red que utiliza Kerberos,
compuesta por uno o varios servidores (también conocidos como KDCs)
y un número potencialmente alto de usuarios.
para la autenticación.
Gestión de paquetes
Todo el software en un sistema CentOS Linux está dividido en paquetes RPM los
cuales pueden ser instalados, actualizados o eliminados. Esta parte describe como
manejar los paquetes RPM en un sistema CentOS Linux usando herramientas
gráficas y de línea de comandos.
RPM facilita las actualizaciones de sistema para el usuario final. Es posible instalar,
desinstalar y actualizar paquetes RPM por medio de comandos breves. RPM
mantiene una base de datos de los paquetes instalados y de sus archivos, y usted
puede hacer consultas y verificaciones poderosas en su sistema. Si prefiere una
interfaz gráfica, puede utilizar la Herramienta de administración de paquetes
system-config-packages o pirut para ejecutar muchos comandos RPM.
Podría ser útil conocer las metas de diseño de RPM para poder aprender a usar
RPM:
fuentes de software originario, tal y como ha sido distribuido por los autores
originales del software. Con RPM tendrá las fuentes originarias junto con
cualquier parche que haya sido usado además de las instrucciones de
construcción completas. Esta es una ventaja importante por varios motivos.
Si por ejemplo sale una versión nueva de un programa, no necesariamente
necesita empezar desde cero para que se compile. Puede revisar el parche
para ver lo que tal vez necesitara hacer. Usando esta técnica se ven
fácilmente todos los elementos predeterminados y compilados en el
programa y todos los cambios que se le han hecho al software para construir
adecuadamente.
El objetivo de mantener las fuentes originarias podrá parecer importante sólo para
los desarrolladores, pero el resultado también sera software de más alta calidad
para los usuarios finales. Quisiéramos dar las gracias a la gente de distribución de
BOGUS por haber ideado el concepto de la fuente originaria.
Como podrá ver, RPM imprime el nombre del paquete y luego imprime una serie de
símbolos de numeral (#) mientras se instala el paquete como una especie de
medidor de progreso.
Paquete ya instalado
Esta opción es útil si se borraron los archivos instalados del RPM o si desea que se
instalen los archivos de configuración originales del RPM.
Archivos en conflicto
Si intenta instalar un paquete que contiene un archivo que ya ha sido instalado por
otro paquete o una versión más antigua del mismo paquete, verá lo siguiente:
Para hacer que RPM ignore este error, use la opción --replacefiles:
Dependencias no resueltas
Los paquetes RPM pueden "depender" de otros paquetes, lo cual significa que
requieren de la instalación de otros paquetes para poder ejecutarse
adecuadamente. Si intenta instalar un paquete que tiene una dependencia no
resuelta, verá lo siguiente:
Si desea forzar la instalación de todas maneras (no es una buena idea ya que el
paquete no funcionará correctamente), use la opción –nodeps.
Para resolver las dependencias, es preferible utilizar el comando yum para instalar
los paquetes y configurar un repositorio local. El archivo
/etc/yum.repos.d/CentOS-Media.repo permite configurar un repositorio
local a partir del DVD de instalación.
Desinstalación
# rpm -e foo
Para hacer que RPM ignore este error y desinstale el paquete de todos modos (que
tampoco es buena idea ya que al hacerlo, el paquete que depende de él
probablemente dejará de funcionar correctamente), use la opción --nodeps.
Actualización
Este mensaje significa que los cambios hechos al archivo de configuración podrían
no ser "compatibles" con el archivo de configuración nuevo en el paquete, así que
RPM ha almacenado su archivo original y ha instalado uno nuevo. Debería
averiguar cuáles son las diferencias entre los dos archivos de configuración y
resuelva el problema tan pronto como le sea posible para asegurarse que su
sistema continúe funcionando correctamente.
Para hacer que RPM "actualice" de todos modos, use la opción --oldpackage:
Refrescamiento
Consultas
Use el comando rpm -q para hacer consultas a la base de datos de los paquetes
instalados. El comando rpm -q foo imprimirá el nombre de paquete, versión y
número de lanzamiento del paquete foo instalado:
foo-2.0-1
Opción Descripción
-a Consulta todos los paquetes actualmente instalados.
-f <archivo> Consultará el paquete que posea <archivo>. Cuando especifique
un archivo, deberá especificar la ruta completa del archivo
(/usr/bin/ls, por ejemplo).
-p <paquete> Consulta un paquete rpm no instalado. Debe especificar la ruta
al archivo rpm.
Hay varias maneras de especificar qué información mostrar sobre los paquetes
consultados. Las siguientes opciones sirven para seleccionar el tipo de información
que usted está buscando. Se llaman Opciones de selección de información.
Opción Descripción
-i Muestra información del paquete como el nombre, la
descripción, la versión, el tamaño, la fecha de construcción, la
fecha de instalación, el distribuidor, y otra información
miscelánea.
Verificación
# rpm -Va
Este comando puede ser útil si sospecha que sus bases de datos de RPM están
dañadas.
Prueba Descripción
5 MD5 suma de verificación
S Tamaño del archivo
L Enlace simbólico
T Hora de modificación de archivo
D Dispositivo
U Usuario propietario
Prueba Descripción
G Grupo propietario
M Modo
? Archivo que no se puede leer
Si ve alguna salida, use su buen juicio para determinar si debería quitar o reinstalar
el paquete o resolver el problema de otra manera.
Si desea verificar si algún paquete ha sido dañado o alterado examine sólo la suma
md5 tecleando el siguiente comando en un intérprete de comandos de shell
(sustituya <archivo-rpm> con el nombre de archivo de su paquete):
Se puede firmar un paquete RPM usando la Gnu Privacy Guard (o GnuPG), para
ayudarle a asegurarse que el paquete descargado es de fiar.
Durante la instalación de CentOS Linux, GnuPG está instalado por defecto. De este
modo podrá usar inmediatamente GnuPG para verificar cualquier paquete que
reciba desde CentOS. En primer lugar necesitará importar la clave pública privada
de CentOS.
Importar claves
Para verificar los paquetes de CentOS tiene que importar las claves de GPG de
CentOS. Para ello, ejecute el siguiente comando en el intérprete de comandos de
la shell:
Para ver la lista de todas las claves instaladas para la verificación de RPM, ejecute
el comando:
gpg-pubkey-db42a60e-37ea5438
Para mostrar más detalles sobre una clave determinada, use rpm -qi seguido de
la salida del anterior comando:
Para controlar la firma GnuPG de un archivo RPM después de importar la clave del
constructor GnuPG, use el siguiente comando (sustituya <archivo-rpm> con el
nombre de archivo de su paquete RPM):
# rpm -K <archivo-rpm>
Si todo va bien, verá el siguiente mensaje: md5 gpg OK. Esto significa que el paquete
no está dañado.
RPM es una herramienta útil ya sea para administrar su sistema que para
diagnosticar y solucionar problemas. La mejor manera de comprender todas sus
opciones es viendo algunos ejemplos.
Tal vez usted haya borrado algunos archivos accidentalmente, pero no está seguro
de lo que ha eliminado. Si desea verificar su sistema entero y ver lo que podría
hacer falta, podría intentarlo con el siguiente comando:
# rpm -Va
Tal vez alguna vez verá un archivo que no reconoce. Para saber a qué paquete
pertenece, teclearía:
gv-3.5.8-22
/usr/share/doc/procps-2.0.11/BUGS
/usr/share/doc/procps-2.0.11/NEWS
/usr/share/doc/procps-2.0.11/TODO
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/oldps.1.gz
/usr/share/man/man1/pgrep.1.gz
/usr/share/man/man1/pkill.1.gz
/usr/share/man/man1/ps.1.gz
/usr/share/man/man1/skill.1.gz
/usr/share/man/man1/snice.1.gz
/usr/share/man/man1/tload.1.gz
/usr/share/man/man1/top.1.gz
/usr/share/man/man1/uptime.1.gz
/usr/share/man/man1/w.1.gz
/usr/share/man/man1/watch.1.gz
/usr/share/man/man5/sysctl.conf.5.gz
/usr/share/man/man8/sysctl.8.gz
/usr/share/man/man8/vmstat.8.gz
Podría encontrar un RPM nuevo y no saber para qué sirve. Para encontrar
información sobre él, use el siguiente comando:
Quizás desea ver qué archivos instala el RPM crontabs. Ingrese lo siguiente:
Estos son solamente algunos ejemplos. Al usarlo, descubrirá muchos más usos
para RPM.
● Multiples repositorios.
● Interfaz simple.
Configuración de YUM
Antes de utilizar yum y para obtener el potencial total de yum, debemos importar la
clave GPG de CentOS. Para seguridad adicional, todos los paquetes del proyecto
CentOS son firmados con la clave pública. Si intenta realizar una actualización sin
importar la clave, vera lo siguiente:
# yum update
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
the keys for packages you wish to install and install them.
You can do that by running the command:
rpm --import public.gpg.key
For more information contact your distribution or package provider.
# cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
#released updates
[update]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1
# cat /etc/yum.repos.d/CentOS-Media.repo
[c4-media]
name=CentOS-$releasever - Media
baseurl=file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4
# cat /etc/yum.repos.d/Extras.repo
[dries]
name=Extra CentOS rpms dries - $releasever - $basearch
baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el$releasever/en/
$basearch/dries/RPMS/
enabled=1
gpgcheck=0
[rpmforge]
name = CentOS $releasever - RPMforge.net - dag
mirrorlist = http://apt.sw.be/redhat/el$releasever/en/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
[kbs-CentOS-Extras]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgcheck=1
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/
Utilización de YUM
# yum makecache
# yum check-update
# yum update
Ejecute:
Para eliminar paquetes en cache que son viejos y cabeceras no necesarias ejecute
el comando:
Si se tienen varias computadoras que deben ser actualizadas vía yum, entonces
debería considerar la creación de un repositorio local yum. Esto no solo conserva
ancho de banda, sino mejora la respuesta de yum para instalar programas
adicionales. Además, la ejecución de yum a través de LAN en lugar de WAN es
mucho mas rápida. La desventaja es que probablemente este descargando
actualizaciones no necesarias para sus máquinas.
# mkdir /var/www/html/yum
Ahora, puede crear una estructura de directorios para almacenar los archivos. Yum
soporta múltiples repositorios, de tal forma que puede actuar como servidor para
/var/www/html/yum/CentOS/<version>/base
# cp /media/cdrom/CentOS/RPMS/*.rpm /var/www/html/yum/CentOS/<version>/base
Ahora debe crear el archivo de metadatos XML para el repositorio, para ello
necesitará el paquete createrepo.
Para crear el archivo de metadatos XML para el directorio de RPMS base ejecute:
# createrepo /var/www/html/yum/CentOS/<version>/base
/var/www/html/yum/CentOS/updates/<version>/
Luego, obtenga una copia de las actualizaciones, las cuales pueden ser obtenidas
de cualquier servidor de descarga de archivos de CentOS, o algún mirror listado en
http://www.centos.org/modules/tinycontent/index.php?id=13. Existen servidores
identificados como rsync. Para descargar los archivos, puede utilizar el comando
rsync.
Puede crear una tarea cron para mantener actualizado el repositorio updates.
# createrepo /var/www/html/yum/CentOS/updates/<version>/
Una vez creado el repositorio yum, es necesario indicar a los equipos que lo
utilicen. Esto se hace configurando el archivo /etc/yum.repos.d/local.repo:
[base]
name=CentOS $releasever - $basearch - Base
baseurl=http://nombre_servidor/CentOS/$releasever/base/
[updates-released]
name=CentOS $releasever - $basearch - Released Updates
baseurl=http://nombre_servidor/CentOS/updates/$releasever/
Ahora, simplemente ejecute el comando yum update para actualizar los sistemas.
Si comparte los archivos a través de NFS, no necesita un servidor web para actuar
como repositorio, puede configurar yum para que utilice el repositorio via NFS,
utilizando como protocolo file://, por ejemplo, el archivo
[base]
name=CentOS $releasever - $basearch - Base
baseurl=file:///recurso_nfs/CentOS/$releasever/base/
[updates-released]
name=CentOS $releasever - $basearch - Released Updates
baseurl=file:///recurso_nfs/CentOS/updates/$releasever/
Configuración de impresoras
CUPS además proporciona una interfaz web para la gestión de colas e impresoras.
Para acceder a la interfaz de administración, utilizando un navegador web
conéctese al URL http://localhost:631. También proporciona la herramienta por
línea de comandos lpadmin.
ipp://nombre_host/printers/impresora.
Para añadir una impresora local, tal como una conectada al puerto paralelo o USB
en su computador, haga clic el botón Nueva Impresora en la ventana principal de
la Herramienta de configuración de impresoras. Haga clic en Siguiente para
proceder.
Para agregar una impresora UNIX remota, tal como una conectada a un sistema
Linux diferente en la misma red, haga clic en el botón Nueva impresora en la
ventana principal de la Herramienta de configuración de impresoras.
Para añadir una impresora que es accedida usando el protocolo SMB (tal como una
impresora conectada a un sistema Microsoft Windows), haga clic en el botón
Nueva impresora en la ventana principal de la Herramienta de configuración de
impresoras.
Para agregar una impresora JetDirect, haga click en el botón Nueva impresora en
la ventana principal de la Herramienta de configuración de impresoras.
Para asegurarse de que los datos no son filtrados más de una vez, primero trate de
seleccionar Genérico como el fabricante e Impresora Postscript como el modelo de
impresora. Después de aplicar los cambios, imprima una página de prueba para
probar la nueva configuración. Si la prueba falla, el servidor de impresión remoto
puede que no tenga un controlador de impresora configurado. Intente
seleccionando un controlador de acuerdo al fabricante y modelo de la impresora
remota, aplique los cambios e imprima una página de prueba.
Para ver una lista de los trabajos de impresión en el spool de impresión desde el
intérprete de comandos, escriba el comando lpstat. La salida de este comando,
serán similares a lo siguiente:
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:42:22 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:42:22 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
Con la opción -R del comando lpstat puede visualizar los trabajos de impresión.
# lpstat -R
0 hplj01-1 root 1024 vie 09 oct 2009 09:44:43 PYT
1 hplj01-2 root 2048 vie 09 oct 2009 09:44:47 PYT
# cancel hplj01-2
Para borrar todos los trabajos de impresión de la cola hplj01 ejecute el comando:
# cancel -a hplj01
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:57:31 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está imprimiendo hplj01-3. activada desde vie 09 oct 2009
09:57:31 PYT
No pages found!
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
hplj01-3 root 2048 vie 09 oct 2009 09:57:31 PYT
# lpstat -t
el programa de planificación de tareas se está ejecutando
/usr/sbin/cupsdisable destino(s)
/usr/sbin/cupsenable destino(s)
/usr/sbin/reject destinos(s)
/usr/sbin/accept destino(s)
Puede suponer que los comandos anteriores permiten controlar válvulas como se
muestra en la siguiente imágen:
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:48:48 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:48:48 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
# /usr/sbin/cupsdisable hplj01
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:52:01 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
impresora hplj01 desactivada desde vie 09 oct 2009 09:52:01 PYT -
Paused
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
# /usr/sbin/reject hplj01
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 no acepta peticiones desde vie 09 oct 2009 09:52:01 PYT -
Rejecting Jobs
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
impresora hplj01 desactivada desde vie 09 oct 2009 09:52:01 PYT -
Rejecting Jobs
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
# /usr/sbin/accept hplj01
# /usr/sbin/cupsenable hplj01
# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:54:51 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:54:51 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
El sistema X Window
En el mundo UNIX, los entornos de ventanas han existido desde hace décadas,
siendo éstos precursores de muchos de los utilizados en los sistemas operativos
actuales. A través de los años X se ha convertido en el entorno gráfico (GUI)
predominante para sistemas operativos del tipo UNIX.
El lanzamiento X11R7.1
para el servidor X.
Entornos de escritorio
los clientes X y a otros procesos comunicarse unos con otros y permitir a todas las
aplicaciones escritas para funcionar en ese ambiente a que realicen tareas
avanzadas, tales como operaciones de arrastrar y soltar.
Gestores de ventanas
Los gestores de ventanas son programas clientes de X que son o parte del entorno
de escritorio o, en otros casos, standalone. Su propósito principal es controlar la
forma en que las ventanas gráficas son posicionadas, redimensionadas o movidas.
Los manejadores de ventanas controlan las barras de títulos, el comportamiento del
foco, los vínculos del botón del ratón y teclas especificadas por el usuario.
Estos gestores de ventanas pueden ejecutarse sin los entornos de escritorio para
poder obtener una impresión de sus diferencias. Teclee el comando:
xinit -e <ruta-al-gestor-de-ventanas>
# which twm/usr/bin/twm
# xinit -e /usr/bin/twm
El primer comando retorna la ruta absoluta del gestor de ventanas twm, el segundo
comando inicia twm.
El archivo xorg.conf
La estructura de Xorg
Las líneas que comienzan con un símbolo de numeral o almohadilla [#] no son
leídas por el servidor y son usadas como comentarios.
Sección ServerFlags
Section "ServerFlags"
Option "DontZap" "true"
EndSection
Sección ServerLayout
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Screen 0 "Screen0" 0 0
Si la tarjeta de vídeo tiene más de una cabeza, será necesaria otra entrada
Screen con un número diferente y un identificador de sección Screen.
Al menos deben haber dos entradas InputDevice: una para el ratón por
defecto y una para el teclado por defecto. Las opciones CorePointer y
CoreKeyboard indican que estos son el ratón y teclado principales.
Sección Files
La sección Files configura la ruta para servicios vitales al servidor X, tal como la
ruta de la fuente. Esta sección es opcional, estas rutas son normalmente
detectadas de forma automática. Esta sección puede ser usada para sobreescribir
las rutas detectadas automáticamente.
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
EndSection
Sección Module
● extmod
● dbe
● glx
● freetype
● type1
● record
● dri
Section "Module"
Load "extmod"
Load "dbe"
Load "glx"
Load "freetype"
Load "type1"
Load "record"
Load "dri"
EndSection
Sección InputDevice
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Consulte la página man xorg.conf para una lista de las opciones válidas
para esta sección.
Sección Monitor
Cada sección Monitor configura un tipo de monitor utilizado por el sistema. Esta
también es una entrada opcional, ya que la mayoría de monitores son detectados
automáticamente.
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "DDC Probed Monitor - ViewSonic G773-2"
DisplaySize 320 240
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 180.0
EndSection
Sección Device
Cada sección Device configura una tarjeta de vídeo en el sistema. Mientras una
sección Device es lo mínimo, instancias adicionales pueden ocurrir para cada
tarjeta de vídeo instalada en la máquina.
El siguiente ejemplo ilustra una sección Device típica para una tarjeta de vídeo:
Section "Device"
Identifier "Videocard0"
Driver "mga"
VendorName "Videocard vendor"
BoardName "Matrox Millennium G200"
VideoRam 8192
Option "dpms"
EndSection
Los valores para la entrada Screen deben ser enteros. El primer cabezal en
la tarjeta de vídeo tiene un valor de 0. El valor para cada cabezal adicional
incrementa este valor en uno.
Sección Screen
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Depth 24
Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
DRI
Esta sección es ignorada a menos que DRI esté activada en la sección Module.
Section "DRI"
Group 0
Mode 0666
EndSection
Fuentes
CentOS Linux utiliza dos métodos para manejar fuentes y mostrarlas bajo X. El
subsistema de fuentes más nuevo Fontconfig simplifica la gestión de fuentes y
proporciona características avanzadas, tales como anti-aliasing. Este sistema es
usado automáticamente para aplicaciones programadas usando el conjunto de
herramientas Qt 3 o GTK+ 2.
Esta sección discute cómo configurar fuentes para X usando ambos sistemas.
Fontconfig
Para añadir fuentes para todo el sistema, copie las nuevas fuentes en el directorio
/usr/share/fonts/local/.
Para añadir fuentes para un usuario individual, copie las nuevas fuentes en el
directorio .fonts/ en el directorio principal del usuario.
fc-cache <path-to-font-directory>
Mientras Linux viene con una selección de fuentes ya instalada, existe una
selección mucho mayor de fuentes TrueType disponibles en la web e incluído con
productos que cualquier otro tipo de fuente.
# mkdir /usr/X11R6/lib/X11/fonts/TTF
# cd /usr/X11R6/lib/X11/fonts/TTF
# ttmkfdir > fonts.scale
# mkfontdir
Si verifica el contenido del directorio debería encontrar dos archivos además de los
archivos de fuente, “fonts.scale” y “fonts.dir”. Estos archivos simplemente
contienen una lista de los nombres de las fuentes para cada fuente TrueType.
chkfontpath -a /usr/X11R6/lib/X11/fonts/TTF
Configuración de xfs
completa de nuevo de tal forma que las otras fuentes que sean escalables
puedan ser cargadas.
Para añadir fuentes al subsistema base de fuentes de X (xfs), siga los pasos
siguientes:
# mkdir /usr/share/fonts/local/
Fuentes Liberation
En Mayo de 2007, Red Hat anunció la liberación pública de estas fuentes bajo la
marca registrada LIBERATION, para sustituir las privativas que vienen con los
sistemas de Microsoft y que este no licencia a terceros, algo que facilitaría la
compatibilidad y haría más sencillo a los usuarios cambiar de procesador de textos,
por ejemplo.
Existen tres conjuntos: Sans (un substituto para Arial, Albany, Helvetica, Numbus
Sans L y Bitstream Vera Sans), Serif (un sustituto para Times New Roman,
Thornade, Nimbus Roman, y Bitstream Vera Serif) y Mono (un substituto para
Courier New, Cumberland, Courier, Nimbus Mono L, y Bitstream Vera Sans Mono).
Están disponibles para su descarga como paquetes .RPM para CentOS Linux y
como un archivo comprimido .TAR.GZ para instalarlas mediante los ficheros .TTF.
Niveles de ejecución y X
Nivel de ejecución 3
El script por defecto xinitrc luego buscará por los archivos definidos por el
Después de configurar estas opciones, el script xinitrc ejecuta todos los scripts
localizados en el directorio /etc/X11/xinit/xinitrc.d/. Un script muy
importante en este directorio es xinput, el cual configura los parámetros tales
como el idioma por defecto.
Nivel de ejecución 5
● xdm - Este es un gestor de visualización muy básico que sólo permite que el
usuario se conecte al sistema.
Todas las aplicaciones X Window, realmente son clientes de red que se conectan a
# xhost +venus
# export DISPLAY=nombre_host:número_display.número_pantalla
# export DISPLAY=mercurio:0.0
Ahora ha iniciado sesión en venus, cada comando que ejecute será ejecutado en
venus. Debe exportar la variable display indicando que la pantalla estará en el host
mercurio.linux.com.py:0.0:
# ssh -X usuario@host
# xterm &
GDM tiene una característica poco usada, pero muy útil. El método será de mucha
utilidad suponiendo que se tiene un servidor central con buena cantidad de
memoria y un buen microprocesador y lo más nuevo en software, y en la red de
área local (LAN) se tienen una o varias máquinas con muy poco espacio en disco
y/o poco poder en el microprocesador, o resulta mucho trabajo instalar todo un
sistema optimizado y personalizado.
El objetivo será entonces querrás que los usuarios puedan utilizar el servidor con
mayor poder y recursos para que se ejecuten ahí las sesiones gráficas y así tener
un mayor control en toda la red.
En el servidor, abra una terminal como root y ejecute el comando gdmsetup, vaya
a la pestaña de Remota y seleccione de la lista desplegable Estilo: Igual que la
entrada local.
#!/bin/sh
/usr/bin/X -query <dirección_ip_del_Servidor>
Ejemplo:
#!/bin/sh
/usr/bin/X -query 192.168.1.254
Escritorio Remoto
Vino es un servidor VNC para GNOME. Permite que usuarios remotos se conecten
a una sesión ejecutando GNOME a través de VNC.
# vino-preferences
Desde el equipo remoto, para conectarse a la sesión del usuario, debe ejecutar el
comando:
# vncviewer mercurio.linux.com.py:0
# xrandr -s 800x600
# xrandr -s 1024x768
# xrandr -s 1280x1024
Tecnología RAID
Los medios magnéticos más comunes para almacenar información son los
dispositivos denominados discos duros. Básicamente, los discos duros están
compuestos por platos magnéticos que mantienen los impulsos eléctricos que
representan los datos, y cabezas de lectura/escritura que son componentes
mecánicos móviles encargados de convertir los bits en pulsos electromagnéticos y
almacenarlos en los platos.
Los arreglos de discos pueden ser tolerante a fallas por medio del almacenamiento
de información redundante. Entendemos por tolerancia a fallos (o redundancia), a
la posibilidad de acceder a la información almacenada en un arreglo de discos de
forma ininterrumpida, aún ante la pérdida de uno de los discos que conforman el
arreglo.
Software RAID
Software RAID implementa los distintos niveles de RAID en el código del kernel. El
kernel de Linux contiene un controlador MD que permite configurar una solución de
RAID totalmente independiente del hardware. El rendimiento de un arreglo por
Niveles de RAID
Los sistemas de RAID pueden ser configurados en distintos niveles que definen su
arquitectura. Cada nivel posee características especiales de rendimiento,
capacidad de almacenamiento y tolerancia a fallos.
Por ejemplo, en un RAID 0 que contiene tres discos, la primera porción de una
solicitud de E/S es escrita al disco 1, la segunda al disco 2, la tercera al disco tres y
así sucesivamente hasta que todo el dato ha sido escrito a los discos.
El mayor beneficio del RAID 0 es que balancea la carga de E/S entre todos los
discos en el arreglo. Esto incrementa el rendimiento del sistema eliminando el
cuello de botella que ocurre frecuentemente cuando el dato es concentrado en un
sólo disco.
Cuando un dato es leído es descompuesto de tal forma que una porción del dato es
leído de cada copia del espejo en simultáneo, por lo tanto, el rendimiento de lectura
es el doble de un disco sin RAID.
Como el arreglo está configurado de tal forma a que los datos sean copiados de
forma exactamente igual a cada disco del espejo, la capacidad disponible en el
arreglo es igual a la capacidad de uno discos que conforman el arreglo. Por
ejemplo, si se crea un RAID 1 con 2 discos de 1 GB, la capacidad total utilizable es
1 GB. Si se crea un RAID 1 con 3 discos, la capacidad total utilizable sigue siendo
1 GB, sin embargo, esta configuración permite la pérdida de dos discos en lugar de
uno.
El RAID 5 divide las peticiones de E/S en pequeñas bandas que son repartidas
entre los discos. El RAID 5 además crea bandas de paridad de datos y los reparte
entre todos los miembros del RAID, en lugar de utilizar un disco de paridad
dedicado como el RAID 3 o RAID 4, eliminando el cuello de botella producido por
éste. Esta paridad de datos es derivada matemáticamente de los datos de E/S y
posibilita la reconstrucción de los datos en caso de que un disco falle.
El RAID 5 requiere como mínimo tres discos idealmente del mismo tamaño, tanto
los datos como la paridad es distribuida a través de los discos. La paridad es
calculada utilizando operaciones XOR (exclusive OR). La capacidad utilizable del
arreglo es:
C = T * N -1
C: Capacidad.
N: Número de discos.
Para mayor rendimiento distribuya los discos entre los puertos de los controladores
de forma pareja para obtener múltiples vías de acceso.
RAID 6 (Data stripping with dual distributed parity) es muy similar al RAID 5, sin
embargo, utiliza doble paridad permitiendo el fallo simultáneo de dos discos en el
mismo arreglo. Sin embargo, el rendimiento de un RAID 6 es menor al de un RAID
5 debido al trabajo adicional de calcular y escribir la doble paridad.
El RAID 6 requiere como mínimo cuatro discos idealmente del mismo tamaño, tanto
los datos como la paridad es distribuida a través de los discos. La paridad es
calculada utilizando operaciones XOR (exclusive OR). La capacidad utilizable del
arreglo es:
C = T * N -2
C: Capacidad.
N: Número de discos.
Por ejemplo, para crear un RAID 1 para el sistema de archivos /boot, necesitará al
menos dos discos duros. En cada disco duro, cree una partición de 150 MB de tipo
software RAID.
Con las particiones creadas, haga clic sobre el botón RAID y seleccione la opción
Crear un dispositivo RAID
# grub
grub> root (hd0,0)
Personalities : [raid1]
read_ahead 1024 sectors
md5 : active raid1 sdb5[1] sda5[0]
4200896 blocks [2/2] [UU]
El número [N] que sigue a cada dispositivo es el papel que cumple en el arreglo,
para el dispositivo md5 tenemos sdb5[1] sda5[0]. Los miembros activos del
arreglo tienen un número menor a la cantidad de dispositivos que conforman el
arreglo, en este caso 2. Cualquier dispositivo con valor mayor o igual a la cantidad
de dispositivos que conforman el arreglo son discos spare. El dispositivo md5 no
Ahora analicemos el dispositivo md2, el cual esta compuesto por dos miembros
activos según lo indica “[2/2]”. Los miembros activos son sde5[0] sdc7[1],
por tener un valor de función menor a la cantidad de miembros del arreglo según lo
indica el [0] y el [1]. El dispositivo sdd8[2] tiene un valor de función igual al de
la cantidad de miembros activos del arreglo [2], por lo tanto, este disco es un
spare.
Además si existe un fallo, el dispositivo que fallo se será marcado con una (F).