Anda di halaman 1dari 13

UNIX:

Administracion
de kernel y
Gestion
dispositivos
Juan Hernando Vieites
jhernando@fi.upm.es

Octubre 2014

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 1/
El kernel de un sistema UNIX y los
dispositivos
La mayora, si no todos los nucleos
de sistemas
monoltico: todo el codigo
UNIX/Linux siguen un diseno
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 modulos que pueden ser cargados y descargados

dinamicamente.
El kernel expone ciertas funcionalidades de los
de /proc, los ficheros de /dev y
controladores a traves
/sys en algunos Linux.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 2/
Mensajes del kernel

Ante cualquier eventualidad (conexion/desconexi


de
on
dispositivos, errores, ...) el nucleo
proporciona una traza
que se puede consultar en /var/log/dmesg o bien con el
mandato dmesg
La mayor parte de los mensajes tambien se almacenan en
el registro de sistema el cual se halla en /var/log/syslog.
Este registro presenta informacion importante cuando para
depuracion de la configuracion o funcionamiento de un
dispositivo.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 3/
Dispositivos
El sistema de ficheros /dev
/dev expone los dispositivos hardware como ficheros
virtuales.
Cada fichero lleva asociados 2 numeros
que sirven para
saber que controlador lo maneja:
major: que identifica el tipo de dispositivo
minor: que determina la instancia y subtipo.

de dispositivos
Creacion
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 automaticamente al

arranque e incluso de manera dinamica
en ejecucion.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 4/
del kernel
Personalizacion

Motivacion
Se trata de algo poco habitual, pero puede hacer falta
configurar el kernel si queremos:
Anadir
soporte para:
Algun
dispositivo poco comun.

Sistemas de ficheros no convencionales.
Nuevas llamadas al sistema.
Maximizar el rendimiento de alguna aplicacion.


Metodos
de personalizacion
Modificar parametros

dinamicos.
Cargar modulos.

Proporcionar opciones y directivas desde el cargador de
arranque.
Configurar y compilar el codigo.

jhernando@fi.upm.es UNIX: Gestion
Administracion del kernel y dispositivos 5/
dinamica
Configuracion del kernel en
Linux
temporal
Configuracion
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 numero


maximo de ficheros que se puede tener abierto.

permanente
Configuracion
Para no perder los cambios al reiniciar se usa el mandato
sysctl.
Dicho mandato modifica el fichero /etc/sysctl.conf, que
se lee al arranque.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 6/
Compilar el kernel en Linux

Instrucciones genericas

Una vez descargado el codigo fuente desde un paquete de la
o desde kernel.org, estando en el directorio raz del
distribucion

codigo se procede a:
Configurar: make gconfig, make xconfig, make
menuconfig
Limpiar una compilacion
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
Anadir
reglas al cargador de arranque para el nuevo
nucleo.

jhernando@fi.upm.es UNIX: Gestion
Administracion del kernel y dispositivos 7/
de modulos
Gestion

Modulos
de carga dinamica (LKM)
Son objetos de codigo
que pueden ser cargados (y
descargados) dentro el nucleo

en tiempo de ejecucion.
Normalmente residen en /lib/modules/uname -r


Operaciones con modulos
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 UNIX: Gestion


Administracion del kernel y dispositivos 8/
de modulos
Gestion

de modulos
Configuracion
La configuracion
de la carga de modulos
esta contenida en
/etc/modules o en ficheros dentro de /etc/modprobe.d/
La configuracion contiene rutas a ficheros objecto de

modulos,
alias, parametros
para la carga del modulo, listas
negras, ...
En algunos distribuciones, el fichero /etc/modules

contiene una lista modulos que cargar incondicionalmente
al arranque.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 9/
de modulos
Gestion


Compilacion
La compilacion
de un modulo
requiere tener las cabeceras,
del nucleo
el System.map y la configuracion 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 distribucion.

Dynamic Kernel Module System (DKMS)


dinamico
Se trata de un sistema de compilacion
de modulos
que permite cambiar de kernel sin tener que recompilar

manualmente los modulos que funcionan bajo este sistema.

jhernando@fi.upm.es UNIX: Gestion


Administracion del kernel y dispositivos 10
dinamica
Gestion de dispositivos:
udev

Introduccion
Udev es un sistema de gestion
de dispositivos que se

encarga, entre otras cosas, de crear dinamicamente los
ficheros especiales presentes en /dev.
Evita la proliferacion
de ficheros en /dev.
Permite asegurar un nombrado consistente.

Arquitectura
El nucleo
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 UNIX: Gestion


Administracion del kernel y dispositivos 11
dinamica
Gestion de dispositivos:
udev

udevadm
udevadm es el mandato que se usa para consultar y
gestionar el estado de los disposivos.
Basicamente
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 UNIX: Gestion


Administracion del kernel y dispositivos 12
dinamica
Gestion de dispositivos:
udev
Reglas de udev
udev usa reglas para determinar el nombrado y manejo de
los dispositivos.
La configuracion
maestra esta /etc/udev/udev.conf
aunque normalmente es casi vaca.
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 asignacion]
clausula asignacion

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 UNIX: Gestion


Administracion del kernel y dispositivos 13

Anda mungkin juga menyukai