Publicado el 25 de Octubre del 2019
680 visualizaciones desde el 25 de Octubre del 2019
91,1 KB
13 paginas
Creado hace 10a (02/11/2014)
Administración UNIX:
Gestión de kernel y
dispositivos
Juan Hernando Vieites
jhernando@fi.upm.es
Octubre 2014
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
1/1
El kernel de un sistema UNIX y los
dispositivos
• La mayoría, si no todos los núcleos de sistemas
UNIX/Linux siguen un diseño monolítico: todo el código
ejecuta en el mismo espacio de direcciones
• El kernel se encarga de abstraer los detalles de bajo nivel
de acceso a los dispositivos.
• Dichos detalles los conocen los controladores de
dispositivos, que en muchos casos se presentan en forma
de módulos que pueden ser cargados y descargados
dinámicamente.
• El kernel expone ciertas funcionalidades de los
controladores a través de /proc, los ficheros de /dev y
/sys en algunos Linux.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
2/1
Mensajes del kernel
• Ante cualquier eventualidad (conexión/desconexión de
dispositivos, errores, ...) el núcleo proporciona una traza
que se puede consultar en /var/log/dmesg o bien con el
mandato dmesg
• La mayor parte de los mensajes también se almacenan en
el registro de sistema el cual se halla en /var/log/syslog.
• Este registro presenta información importante cuando para
depuración de la configuración o funcionamiento de un
dispositivo.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
3/1
Dispositivos
El sistema de ficheros /dev
• /dev expone los dispositivos hardware como ficheros
virtuales.
• Cada fichero lleva asociados 2 números que sirven para
saber que controlador lo maneja:
• major: que identifica el tipo de dispositivo
• minor: que determina la instancia y subtipo.
Creación de dispositivos
• Los ficheros de dispositivo pueden ser creados con el
mandato mknod
• En los UNIX actuales es muy raro tener que hacerlo
manualmente ya que /dev su rellena automáticamente al
arranque e incluso de manera dinámica en ejecución.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
4/1
Personalización del kernel
Motivación
Se trata de algo poco habitual, pero puede hacer falta
configurar el kernel si queremos:
• Añadir soporte para:
• Algún dispositivo poco común.
• Sistemas de ficheros no convencionales.
• Nuevas llamadas al sistema.
• Maximizar el rendimiento de alguna aplicación.
Métodos de personalización
• Modificar parámetros dinámicos.
• Cargar módulos.
• Proporcionar opciones y directivas desde el cargador de
arranque.
• Configurar y compilar el código.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
5/1
Configuración dinámica del kernel en
Linux
Configuración temporal
• Consiste en escribir valores sobre ficheros especiales que
se pueden encontrar en /proc, /proc/sys o /sys
• Por ej, /proc/sys/fs/file-max determina el número
máximo de ficheros que se puede tener abierto.
Configuración permanente
• Para no perder los cambios al reiniciar se usa el mandato
• Dicho mandato modifica el fichero /etc/sysctl.conf, que
sysctl.
se lee al arranque.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
6/1
Compilar el kernel en Linux
Instrucciones genéricas
Una vez descargado el código fuente desde un paquete de la
distribución o desde kernel.org, estando en el directorio raíz del
código se procede a:
• Configurar: make gconfig, make xconfig, make
menuconfig
• Limpiar una compilación previa: make clean
• Compilar: make y make modules install
• Copiar arch/i386/boot/bzImage a /boot/vmlinuz-name
• Copiar arch/i386/boot/System.map a
/boot/System.map-name
• Copiar arch/i386/boot/config a /boot/config-name
• Añadir reglas al cargador de arranque para el nuevo
núcleo.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
7/1
Gestión de módulos
Módulos de carga dinámica (LKM)
• Son objetos de código que pueden ser cargados (y
descargados) dentro el núcleo en tiempo de ejecución.
• Normalmente residen en /lib/modules/uname -r
Operaciones con módulos
Las operaciones de bajo nivel son:
• Carga: insmod archivo [opciones]
• Descaga: rmmod nombre
• Listado: lsmod
Es preferible usar modprobe y modprobe -r, en vez de insmod
y rmmod ya que manejan mejor las dependencias y errores.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
8/1
Gestión de módulos
Configuración de módulos
• La configuración de la carga de módulos está contenida en
/etc/modules o en ficheros dentro de /etc/modprobe.d/
• La configuración contiene rutas a ficheros objecto de
contiene una lista módulos que cargar incondicionalmente
al arranque.
módulos, alias, parámetros para la carga del módulo, listas
negras, ...
• En algunos distribuciones, el fichero /etc/modules
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
9/1
Gestión de módulos
Compilación
• La compilación de un módulo requiere tener las cabeceras,
el System.map y la configuración del núcleo para el cual se
va a compilar. (paquete linux-headers-‘uname -r‘ en el
caso de distribuciones tipo Debian).
• Lo mejor es siempre seguir las instrucciones del fabricante
y en su defecto las de la distribución.
Dynamic Kernel Module System (DKMS)
Se trata de un sistema de compilación dinámico de módulos
que permite cambiar de kernel sin tener que recompilar
manualmente los módulos que funcionan bajo este sistema.
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
10/1
Gestión dinámica de dispositivos:
udev
Introducción
• Udev es un sistema de gestión de dispositivos que se
encarga, entre otras cosas, de crear dinámicamente los
ficheros especiales presentes en /dev.
• Evita la proliferación de ficheros en /dev.
• Permite asegurar un nombrado consistente.
Arquitectura
• El núcleo es un demonio (udevd) que ejecuta en espacio
de usuario.
• udevd escucha eventos del kernel por un socket netlink
• Se configura por ficheros de reglas en /etc/udev
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
11/1
Gestión dinámica de dispositivos:
udev
udevadm
• udevadm es el mandato que se usa para consultar y
gestionar el estado de los disposivos.
• Básicamente es una herramienta para inspeccionar y
modificar el contenido del sistema de ficheros virtual /sys
Ejemplos
udevadm monitor
udevadm info --attribute-walk --name=/dev/sda
udevadm info -a -n sda
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
12/1
Gestión dinámica de dispositivos:
udev
Reglas de udev
• udev usa reglas para determinar el nombrado y manejo de
los dispositivos.
• La configuración maestra está /etc/udev/udev.conf
aunque normalmente es casi vacía.
• Las reglas se hallan en /lib/udev/rules.d (sistema) y
/etc/udev/udev.d/ (local) y son ficheros de extension
.rules
• La sintaxis es: clausula patron, [clausula patron, . . . ]
clausula asignación [. . . , clausula asignación]
Ejemplo: Nombrado persistente de una interfaz de red
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:1a:92:9b:b1:02",
ATTR{type}=="1", NAME="eth0"
jhernando@fi.upm.es
Administraci ón UNIX: Gesti ón del kernel y dispositivos
13/1
Comentarios de: Administración UNIX: Gestión de kernel y dispositivos (0)
No hay comentarios