fbpx
Wikipedia

Módulo de núcleo

En computación, un módulo cargable del núcleo es un archivo que contiene código objeto que puede extender el núcleo en ejecución (también llamado núcleo base) de un sistema operativo. La mayoría de los sistemas estilo Unix, y Microsoft Windows, soportan módulos cargables en el núcleo, aunque suelen utilizar distintos nombres para ellos, como "extensión del núcleo" en Mac OS X.

Los módulos cargables en el núcleo son generalmente utilizados para brindar soporte a nuevos dispositivos de hardware y sistema de archivos, así como para agregar llamadas al sistema. Cuando la funcionalidad provista por un módulo del núcleo deja de ser requerida, normalmente este puede ser descargado, liberando su memoria.

Un ejemplo típico de módulo cargable son los controladores de dispositivo.

Diferencias entre módulos y aplicaciones

Un módulo cargable es diferente de una aplicación en varias formas. Si bien las aplicaciones de tamaño pequeño a mediano suelen realizar una única tarea de comienzo a fin, un módulo cargable únicamente se registra en el núcleo con el fin de servir futuros requerimientos.[1]​ El estilo de programación de un módulo es similar a la programación dirigida por eventos.[1]

Otra diferencia importante consiste en la tolerancia a fallos. Si bien el hecho de que una aplicación aborte por errores suele ser inofensivo a nivel del sistema operativo, el fallo de un módulo cargado en el núcleo podría dejar a todo el sistema en un estado inconsistente o inutilizable.[1]

Finalmente, los módulos ejecutan en espacio de núcleo, mientras que las aplicaciones ejecutan en espacio de usuario.

Módulos y controladores de dispositivos

Un típico empleo para los módulos cargables en el caso de Linux es crear controladores de dispositivos de hardware.

Los controladores de dispositivos tienen un rol especial en el núcleo Linux. Estos son los encargados de esconder completamente los detalles de cómo un dispositivo funciona internamente a nivel del hardware, permitiendo que las actividades de los usuarios sean realizadas mediante un conjunto de llamadas estándar, independientes del controlador específico que se está utilizando en realidad.[1]

La ventaja de desarrollar controladores de dispositivos para Linux consiste en que estos pueden desarrollarse por separado del resto del núcleo y luego ser cargados en tiempo de ejecución, cuando se necesite de ellos. Esta modularidad hace que escribir controladores de dispositivos para Linux sea una tarea sencilla.[1]

Ventajas del uso de módulos

Un sistema operativo que no dispone de módulos cargables en el núcleo debe tener toda aquella funcionalidad que pueda llegar a ser necesitada precompilada dentro del núcleo base. El problema de este enfoque consiste en que en general la imagen del núcleo sería mucho mayor, ocupando un gran espacio memoria. Así mismo, resultaría necesario que los usuarios recompilaran y reiniciaran el núcleo base cada vez que se necesite agregar nueva funcionalidad al mismo.

Cuestiones de licenciamiento

Linux

El núcleo Linux es un proyecto de código abierto licenciado bajo la versión 2 de la licencia GNU GPL. Debido a las características de esta licencia, los fabricantes de hardware suelen dudar si es posible distribuir controladores de dispositivos privativos.

En la opinión de quienes realizan el mantenimiento de Linux, los módulos cargables son un trabajo derivado del núcleo, no obstante, la legalidad de la distribución en forma únicamente binaria de módulos se ha mantenido deliberadamente ambigua.[1]​ Se considera que el caso de la interacción entre módulos privativos y el núcleo en sí mismo se encuentra en una zona indefinida de la licencia GPL.

Suele decirse que la carga de módulos privativos "mancha" el núcleo, refiriéndose a que será poco probable que cualquier problema o error experimentado sea investigado por quienes realizan su mantenimiento. Esto es debido a que al cargar un módulo, este se vuelve parte del núcleo en ejecución, por lo cual podría corromper las estructuras de datos del mismo y/o introducir errores que no podrían ser investigados debido a la naturaleza privativa del módulo.

Seguridad

Si bien los módulos cargables consisten en un método conveniente para modificar el núcleo en ejecución, esto podría llegar a ser abusado por un atacante en un sistema comprometido, con el fin de prevenir la detección de procesos o archivos maliciosos, permitiéndole mantener control sobre el sistema o robar información privada.

En el caso de Linux, la mayoría de los controles de seguridad del sistema se refuerzan a través del núcleo. Si este tiene problemas de seguridad, el sistema completo será vulnerable. En la distribución oficial del núcleo, solo un usuario autorizado, conocido como el superusuario, puede cargar módulos.[1]

A su vez, los desarrolladores de módulos cargables deberían ser cuidadosos de no introducir errores de seguridad en los módulos que desarrollan. El lenguaje de programación C, utilizado en la mayoría de Linux, hace que el introducir errores sea fácil y muchos problemas de seguridad suelen deberse a que los desarrolladores olvidan controlar cuánta información es almacenada en una porción asignada de memoria (buffer), derivando en errores de sobreescritura de memoria[1]​ que podrían ser utilizados por un usuario malicioso para alterar la memoria del núcleo y sus módulos.

Referencias

  1. .

Enlaces externos

  • Linux Device Drivers, tercera edición
  • Linux Loadable Kernel Module HOWTO
  • Anatomy of Linux loadable kernel modules
  • [Tutorial] Administración de módulos del kernel Linux


  •   Datos: Q1739331

módulo, núcleo, computación, módulo, cargable, núcleo, archivo, contiene, código, objeto, puede, extender, núcleo, ejecución, también, llamado, núcleo, base, sistema, operativo, mayoría, sistemas, estilo, unix, microsoft, windows, soportan, módulos, cargables,. En computacion un modulo cargable del nucleo es un archivo que contiene codigo objeto que puede extender el nucleo en ejecucion tambien llamado nucleo base de un sistema operativo La mayoria de los sistemas estilo Unix y Microsoft Windows soportan modulos cargables en el nucleo aunque suelen utilizar distintos nombres para ellos como extension del nucleo en Mac OS X Los modulos cargables en el nucleo son generalmente utilizados para brindar soporte a nuevos dispositivos de hardware y sistema de archivos asi como para agregar llamadas al sistema Cuando la funcionalidad provista por un modulo del nucleo deja de ser requerida normalmente este puede ser descargado liberando su memoria Un ejemplo tipico de modulo cargable son los controladores de dispositivo Indice 1 Diferencias entre modulos y aplicaciones 2 Modulos y controladores de dispositivos 3 Ventajas del uso de modulos 4 Cuestiones de licenciamiento 4 1 Linux 5 Seguridad 6 Referencias 7 Enlaces externosDiferencias entre modulos y aplicaciones EditarUn modulo cargable es diferente de una aplicacion en varias formas Si bien las aplicaciones de tamano pequeno a mediano suelen realizar una unica tarea de comienzo a fin un modulo cargable unicamente se registra en el nucleo con el fin de servir futuros requerimientos 1 El estilo de programacion de un modulo es similar a la programacion dirigida por eventos 1 Otra diferencia importante consiste en la tolerancia a fallos Si bien el hecho de que una aplicacion aborte por errores suele ser inofensivo a nivel del sistema operativo el fallo de un modulo cargado en el nucleo podria dejar a todo el sistema en un estado inconsistente o inutilizable 1 Finalmente los modulos ejecutan en espacio de nucleo mientras que las aplicaciones ejecutan en espacio de usuario Modulos y controladores de dispositivos EditarUn tipico empleo para los modulos cargables en el caso de Linux es crear controladores de dispositivos de hardware Los controladores de dispositivos tienen un rol especial en el nucleo Linux Estos son los encargados de esconder completamente los detalles de como un dispositivo funciona internamente a nivel del hardware permitiendo que las actividades de los usuarios sean realizadas mediante un conjunto de llamadas estandar independientes del controlador especifico que se esta utilizando en realidad 1 La ventaja de desarrollar controladores de dispositivos para Linux consiste en que estos pueden desarrollarse por separado del resto del nucleo y luego ser cargados en tiempo de ejecucion cuando se necesite de ellos Esta modularidad hace que escribir controladores de dispositivos para Linux sea una tarea sencilla 1 Ventajas del uso de modulos EditarUn sistema operativo que no dispone de modulos cargables en el nucleo debe tener toda aquella funcionalidad que pueda llegar a ser necesitada precompilada dentro del nucleo base El problema de este enfoque consiste en que en general la imagen del nucleo seria mucho mayor ocupando un gran espacio memoria Asi mismo resultaria necesario que los usuarios recompilaran y reiniciaran el nucleo base cada vez que se necesite agregar nueva funcionalidad al mismo Cuestiones de licenciamiento EditarLinux Editar El nucleo Linux es un proyecto de codigo abierto licenciado bajo la version 2 de la licencia GNU GPL Debido a las caracteristicas de esta licencia los fabricantes de hardware suelen dudar si es posible distribuir controladores de dispositivos privativos En la opinion de quienes realizan el mantenimiento de Linux los modulos cargables son un trabajo derivado del nucleo no obstante la legalidad de la distribucion en forma unicamente binaria de modulos se ha mantenido deliberadamente ambigua 1 Se considera que el caso de la interaccion entre modulos privativos y el nucleo en si mismo se encuentra en una zona indefinida de la licencia GPL Suele decirse que la carga de modulos privativos mancha el nucleo refiriendose a que sera poco probable que cualquier problema o error experimentado sea investigado por quienes realizan su mantenimiento Esto es debido a que al cargar un modulo este se vuelve parte del nucleo en ejecucion por lo cual podria corromper las estructuras de datos del mismo y o introducir errores que no podrian ser investigados debido a la naturaleza privativa del modulo Seguridad EditarSi bien los modulos cargables consisten en un metodo conveniente para modificar el nucleo en ejecucion esto podria llegar a ser abusado por un atacante en un sistema comprometido con el fin de prevenir la deteccion de procesos o archivos maliciosos permitiendole mantener control sobre el sistema o robar informacion privada En el caso de Linux la mayoria de los controles de seguridad del sistema se refuerzan a traves del nucleo Si este tiene problemas de seguridad el sistema completo sera vulnerable En la distribucion oficial del nucleo solo un usuario autorizado conocido como el superusuario puede cargar modulos 1 A su vez los desarrolladores de modulos cargables deberian ser cuidadosos de no introducir errores de seguridad en los modulos que desarrollan El lenguaje de programacion C utilizado en la mayoria de Linux hace que el introducir errores sea facil y muchos problemas de seguridad suelen deberse a que los desarrolladores olvidan controlar cuanta informacion es almacenada en una porcion asignada de memoria buffer derivando en errores de sobreescritura de memoria 1 que podrian ser utilizados por un usuario malicioso para alterar la memoria del nucleo y sus modulos Referencias Editar a b c d e f g h Linux Device Drivers tercera edicion Enlaces externos EditarLinux Device Drivers tercera edicion Linux Loadable Kernel Module HOWTO Anatomy of Linux loadable kernel modules Tutorial Administracion de modulos del kernel Linux Datos Q1739331Obtenido de https es wikipedia org w index php title Modulo de nucleo amp oldid 130318837, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos