TSO Modulos

Páginas: 5 (1193 palabras) Publicado: 17 de septiembre de 2015
Taller de Sistemas Operativos

Módulos del kernel

TSO – Módulos- 2012

Módulos
• El kernel de Linux es modular ya que permite la inserción y
eliminación dinámica de código en el kernel en tiempo
de ejecución.
• Las subrutinas asociadas, datos, puntos de entrada y
salida son agrupadas en una única imagen binaria
llamada módulo del kernel.
• Para permitir esto, el kernel debe estar compilado conla
opción CONFIG_MODULES
• Cuando se agrega una nueva funcionalidad al kernel
siempre está la pregunta; Como módulo ? O estático en
el kernel ?
• Muchas veces los programadores tienden agregar
funcionalidades como módulos ya que se pueden cargar
a demanda.
TSO – Módulos- 2012

Módulos
• El kernel debe realizar dos grandes tareas con respecto a
los módulos:
– Asegurarse que el resto del kernelpueda acceder a los
símbolos globales del módulo y que el módulo pueda acceder
a los símbolos del kernel. Las referencias son resueltas en el
momento de carga del módulo.
– Llevar la cuenta del uso de módulos para que no se pueda
descargar un módulo mientras otra parte del kernel lo está
usando.




TSO – Módulos- 2012

Implementación de módulos
• Los módulos son guardados en el filesystem comoarchivos
objeto (con extensión .ko) y son linkeditados con el kernel
con el programa insmod.
• El sistema define la estructura struct module para
representar los módulos.
• Cada objeto module describe un módulo.
• Linux mantiene una lista doblemente encadenada que
agrupa todos los objetos module.
• La cabeza de la lista es guardada en la variable modules
mientras los punteros a los elementosadyacentes se
guardan en el campo list de cada module.

TSO – Módulos- 2012

Implementación de módulos
• El campo state puede tener los siguientes valores:
– MODULE_STATE_LIVE – El módulo está activo.
– MODULE_STATE_COMING – El módulo se está inicializando.
– MODULE_STATE_GOING – El módulo se está eliminando.

• Cada módulo tiene un conjunto de contadores (uno por
CPU) almacenado en el campo ref.
• Elcontador es incrementado cada vez que una función del
módulo se inicializa y decrementado cada vez que
finaliza.
• Un módulo puede ser descargado una vez que la suma de
los contadores de uso sea 0.

TSO – Módulos- 2012

Implementación de módulos
• Cuando se carga un módulo, todas las referencias a símbolos del
kernel deben ser resueltas. Esto lo realiza el comando insmod.
• Algunas tablas desímbolos especiales dentro del kernel son usadas
para guardar los símbolos accedidos por módulos junto con sus
correspondientes direcciones.
• Los módulos cargados pueden exportar sus símbolos así otros
módulos pueden accederlos.
• Un módulo A puede utilizar símbolos de un módulo B. Para cargar el
módulo A, B ya debe estar cargado.
• El campo modules_which_use_me del objeto module
correspondiente a A esla cabeza de la lista de dependencias de A.
Esta lista debe actualizarse dinámicamente cuando se carga un
módulo que usa A.
• El módulo A no puede descargarse si su lista de dependencias no es
vacía.

TSO – Módulos- 2012

Carga de módulos del kernel


En la carga del módulo se realizan las siguientes
operaciones:
1.
2.
3.
4.

5.



Lee de la línea de comando el nombre de módulo a cargar.Busca el archivo que implementa el módulo (/lib/modules).
Lee de disco el archivo que contiene el código del módulo.
Invoca a la syscall init_module() pasándole:
• El buffer de usuario conteniendo el código objeto del módulo.
• El largo del código.
• El área de memoria conteniendo los parámetros (user mode).
Termina.

La mayor parte del trabajo real es sys_init_module().

TSO – Módulos- 2012

Cargade módulos del kernel
1.
2.
3.
4.
5.
6.
7.

Verifica que el usuario tenga permisos de cargar módulos.
Reserva memoria temporal para los buffers pasados como
parámetro a la syscall (y copia la información).
Busca en la modules_list que el módulo no se encuentre ya
cargado.
Reserva memoria para la porción ejecutable del código y el área
de inicialización del mismo (y copia la información).
Guarda...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Válvulas tso
  • Tso y Bienestar
  • Marco Teorico Tso
  • ensayo fundamento TSO
  • Modulo
  • Modulo
  • Modulo
  • modulo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS