next up previous contents index
Next: Makefiles para los módulos Up: Guía de Programación de Previous: Para la versión 1.1.0   Contents   Index


Hola, mundo

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

/* 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");
}



Subsections
next up previous contents index
Next: Makefiles para los módulos Up: Guía de Programación de Previous: Para la versión 1.1.0   Contents   Index
2003-08-27