Capitulos de este wiki
  1. 1 Introducción a la programación de módulos
  2. 2 Sistema de Ficheros proc

Introducción a la programación de módulos - Introducción a la programación de módulos

1 - Introducción a la programación de módulos

[editar]
Tutorial creado por Nautopia.net. Extraido de: http://www.nautopia.net
18 de Septiembre de 2005
Basándome en un estupendo manual de Peter Jay Salzman y Ori Pomerantz he escrito un par de ejemplos sobre la programación de módulos en linux y el sistema de ficheros proc. Aunque el manual tiene ya tiempo explica algunos conceptos que hay que saber antes de ponerse a programar nuestro primer "hack" del kernel :) Este manual es muy interesante porque explica muchos conceptos, para el que quiera compilar los ejemplos, que mire esta página, algunas cosas han cambiado en los makefiles y las macros de los módulos

http://www.captain.at/programming/kernel-2.6/

Por ejemplo, creamos un simple módulo que muestre un mensaje por pantalla(o en los logs del kernel)

#include <linux/module.h>
#include <linux/kernel.h>

static int init fent_init(void) {

printk(KERN_INFO "idoru late night codings.\n");
return 0;
}

static void
exit fent_exit(void) {

}

module_init(fent_init);
module_exit(fent_exit);
MODULE_LICENSE("GPL");

y lo guardamos como fent.c Nuestro módulo debe contener al menos dos funciones marcadas con init y exit cuyos símbolos deben ser exportados con las macros modules_init y modules_exit para hacerlas accesibles al resto de módulos o partes del kernel. Con la macro MODULE_LICENSE("GPL") le ponemos una licencia GPL a nuestro módulo ya que si no es así nos dará un feo warning sobre la licencia del módulo. Para compilarlo tenemos que crear un archivo makefile para make

obj-m := fent.o

KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

obj-m es el nombre del módulo a crear(se creará un .o y un .ko) y KDIR es el directorio donde se encuentran las fuentes del kernel que se necesitan para compilar los módulos. PWD es el directorio actual y default la orden con la que crearemos los módulos. Guardamos el archivo como Makefile y ejecutamos

 make

y para cargarlo en un 2.6

 insmod fent.ko

Si estamos en una sesión con las X habrá aparecido un mensaje en los logs del kernel(en /var/log/messages o /var/log/dmesg) y si estamos en una sólo de terminal aparecerá en la consola.Si queremos quitar el módulo ejecutamos

rmmod fent
[editar]

Sé el primero en opinar


Tutoriales relacionados con 'Introducción a la programación de módulos'

Basándome en un estupendo manual de Peter Jay Salzman y Ori Pomerantz he escrito un... Más »
La unidad Iomega ZIP es una unidad de disco extraíble y de moda. Está disponible... Más »
La elección del lenguaje con el que se implementará afecta el uso de los patrones... Más »
Este documento contiene información acerca del establecimiento de servicios WWW bajo Linux (tanto servidor como... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »

Autor y licencia de 'Introducción a la programación de módulos'


Tutorial de Nautopia.net. Extraido de: http://www.nautopia.net CopyLeft
Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.