 
 
 
 
 
 
 
 
 
 
Cuando el primer programador de las cavernas cinceló el primer programa en las paredes de la primera computadora de las cavernas, era un programa para imprimir la cadena de caracteres `Hola, mundo' en las pinturas de los Antílopes. Los libros de texto de los romanos sobre programación empezaban con el programa `Salut, Mundi'. No sé qué puede ocurrirle al que rompa esta tradición, y creo que es más seguro no averiguarlo.
Un módulo del núcleo tiene que tener por lo menos dos funciones: init_module que se llama cuando el módulo se inserta en el núcleo, y cleanup_module que se llama justo antes de ser quitado. Típicamente, init_module o bien registra un manejador para algo que tiene que ver con el núcleo, o reemplaza una de las funciones del núcleo con su propio código (normalmente código para hacer algo y luego llamar a la función original). La función cleanup_module se supone que deshace lo que init_module ha hecho, de forma que el módulo pueda ser descargado de una forma segura.
/* hello.c 
 * Copyright (C) 1998 by Ori Pomerantz
 * 
 * "Hello, world" - la versión módulo del núcleo. 
 */
/* Los archivos de cabeceras necesarios */
/* Estándar en los módulos del núcleo */
#include <linux/kernel.h>   /* Estamos realizando trabajo del núcleo */
#include <linux/module.h>   /* Específicamente, un módulo */
/* Distribuido con CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include <linux/modversions.h>
#endif        
/* Inicializa el módulo */
int init_module()
{
  printk("Hola, mundo - este es el núcleo hablando\n");
  /* Si retornamos un valor distinto de cero, significa
   * que init_module falló y el módulo del núcleo
   * no puede ser cargado */ 
  return 0;
}
/* Limpieza - deshacemos todo aquello que hizo init_module */
void cleanup_module()
{
  printk("La vida de un módulo del núcleo es corta\n");
}
 
 
 
 
 
 
 
 
