PDF de programación - Guía de Programación de Módulos del Núcleo Linux

Imágen de pdf Guía de Programación de Módulos del Núcleo Linux

Guía de Programación de Módulos del Núcleo Linuxgráfica de visualizaciones

Actualizado el 28 de Julio del 2017 (Publicado el 14 de Enero del 2017)
1.013 visualizaciones desde el 14 de Enero del 2017
237,3 KB
93 paginas
Creado hace 20a (27/08/2003)
Guía de Programación de Módulos del Núcleo
Linux

1999 Ori Pomerantz

Versión 1.1.0, 26 Abril 1999.

Este libro trata sobre cómo escribir Módulos del Núcleo Linux. Se espera que sea de utilidad
para programadores que saben C y quieren aprender a escribir módulos del núcleo. Está escrito
a la manera de un manual de instrucciones ‘Cómo’ (How-To), con ejemplos de todas las técnicas
importantes.

Aunque este libro toca muchos puntos del diseño del núcleo, no se supone que venga a
cumplir dicho propósito; hay otros libros sobre el tema, tanto impresos como en el proyecto de
documentación de Linux.

Usted puede copiar y redistribuir libremente este libro bajo ciertas condiciones. Por favor, lea

los enunciados del copyright y de la distribución.

Names of all products herein are used for identification purposes only and are trademarks and/or registered
trademarks of their respective owners. I make no claim of ownership or corporate association with the prod-
ucts or companies that own them.
Copyright c 1999 Ori Pomerantz
Ori Pomerantz
Apt. #1032
2355 N Hwy 360
Grand Prairie
TX 75050
USA
E-mail: [email protected]

The Linux Kernel Module Programing Guide is a free book; you may reproduce and/or modify it under the terms of
version 2 (or, at your option, any later version) of the GNU General Public License as published by the Free Software
Foundation. Version 2 is enclosed with this document at Appendix E.

This book is distributed in the hope it will be useful, but without any warranty; without even the implied warranty

of merchantability or fitness for a particular purpose.

The author encourages wide distribution of this book for personal or commercial use, provided the above copyright
notice remains intact and the method adheres to the provisions of the GNU General Public License (see Appendix E). In
summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from
the author for reproduction of this book in any medium, physical or electronic.

Note, derivative works and translations of this document must be placed under the GNU General Public License, and
the original copyright notice must remain intact. If you have contributed new material to this book, you must make the
source code (e.g., LATEX source) available for your revisions. Please make revisions and updates available directly to the
document maintainer, Ori Pomerantz. This will allow for the merging of updates and provide consistent revisions to the
Linux community.

If you plan to publish and distribute this book commercially, donations, royalties, and/or printed copies are greatly
appreciated by the author and the Linux Documentation Project. Contributing in this way shows your support for free
software and the Linux Documentation Project. If you have questions or comments, please contact the address above.

Los nombres de todos los productos adjuntos se utilizan únicamente con el propósito de identificación y son
marcas registradas de sus respectivos propietarios. No he hecho ninguna demanda de propiedad o asociación
corporativa con los productos o compañías que las poseen.
Copyright c 1999 Ori Pomerantz
Ori Pomerantz
Apt. #1032
2355 N Hwy 360
Grand Prairie
TX 75050
USA
E-mail: [email protected]

La Guía de Programación de Módulos de Núcleo Linux es un documento libre; puedes reproducirlo y/o modificarlo
bajo los términos de la versión 2 (o, a tu elección, cualquier versión posterior) de la Licencia General Pública de GNU tal
como ha sido publicada por la Free Software Foundation. La versión 2 está incluida en este documento en el Apéndice E.
Este libro se distribuye con la esperanza de que sea útil, pero sin ninguna garantía, ni siquiera la garantía implícita

de comerciabilidad o adecuación a un propósito particular.

El autor anima a la amplia distribución de este libro para uso personal o comercial, con tal de que el anterior anuncio
de copyright permanezca intacto y que el método se adhiera a las previsiones de la Licencia General Pública GNU (ver
Apéndice E). En resumen, puedes copiar y distribuir este documento sin cobrar o a cambio de una contraprestación. No
se requiere permiso explícito del autor para la reproducción de este libro en cualquier medio, ya sea físico o electrónico.
Ten en cuenta que las traducciones y obras derivadas de este documento deben ponerse bajo la Licencia General
Pública de GNU, y el anuncio original de copyright debe permanecer intacto. Si has aportado material nuevo a este libro,
debes hacer que el código fuente (p. ej. código LATEX ) esté disponible libremente para que te lo puedan revisar. Por
favor, pon las revisiones y actualizaciones a disposición del mantenedor del documento, Ori Pomerantz, directamente.
Esto permitirá la fusión de las actualizaciones y suministrar unas revisiones consistentes a la comunidad Linux.

Si estás pensando publicar y distribuir este libro comercialmente, las donaciones, el pago de derechos y/o copias
impresas serán enormemente agradecidos por parte del autor y del Proyecto de Documentación de Linux (LDP). La
contribución hecha de esta manera demuestra tu soporte al software libre y al LDP. Si tienes preguntas o comentarios que
hacer, por favor pornte en contacto con la dirección anterior.

Índice General

0

.

.
.
.

. .

. .
.
.
.
.

Introducción
0.1 Quién debería leer esto .
.
0.2 Un apunte sobre el estilo .
0.3 Cambios .
.

.
.
.
.
.
.
0.3.1 Nuevo en la versión 1.0.1 .
.
0.3.2 Nuevo en la versión 1.1.0 .
.
.
.
. .
. .

.
Para la versión 1.0.1 .
Para la versión 1.1.0 .

0.4 Agradecimientos

0.4.1
0.4.2

.
.
.

.

.

.

.

.

.

.

.

.

.

.

.
.
.
.
.
.
. .
. .
.
.
.
.
.
.

1 Hola, mundo
.
.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

. .

hello.c .
.
1.1 Makefiles para los módulos del núcleo .
Makefile .
.
1.2 Módulos del núcleo de varios ficheros .
.
start.c .
.
.
stop.c
.
.
Makefile .
.

. .
. .
. .

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.

.

.

.

.

.

.

.

.

.

.

.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
. .
.
.
.
.
.
.
.
.
.
.

2 Ficheros de dispositivos de carácter
.

chardev.c
.
2.1 Ficheros fuente para varias versiones del núcleo .

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

. .
. .

.
.
. .

.
.
. .

.
.
. .

.
.
. .

.
.
. .

.
.
. .
. .
. .
. .
. .
. .
. .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. .
. .
. .
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. .
.
.

. .
. .

.
.
. .

. .
. .
. .

.
.
. .

.
.
. .
. .
.
.
.
.
.
.
.
. .
. .
.
.

. .
.
.

. .
.
.
. .
.
.
. .
. .
. .

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
. .
.
.
.
.
.
.

.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
.
.
.
.
.

.
.

.
.
. .

. .
.
.

3 El sistema de ficheros /proc
.

procfs.c .

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4 Usando /proc para la entrada
.

procfs.c .

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5 Hablando con los ficheros de dispositivo (escrituras y IOCTLs)
. .
. .
. .

.
chardev.c
chardev.h .
ioctl.c .
.

. .
. .
. .

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

6 Parámetros de inicio
. .

param.c .

.

.

.

.

7 Llamadas al sistema
. .

syscall.c .

.

.

.

.

8 Procesos bloqueantes
. .

sleep.c .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

i

2
2
2
3
3
3
3
3
3

4
4
5
5
6
6
7
8

9
10
16

18
18

23
24

31
31
39
40

43
43

46
47

52
52

ÍNDICE GENERAL

9 Reemplazando printk’s
.

printk.c

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10 Planificando tareas
. .

sched.c .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11 Manejadores de interrupciones

11.1 Teclados en la arquitectura Intel
.
intrpt.c .

. .

.

.

.

.

.

.

.

.

.

.

.

.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

. .
. .

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.

12 Multiproceso simétrico

13 Problemas comunes

A Cambios entre 2.0 y 2.2

B ¿Desde aquí hasta dónde?

C Beneficios y servicios

C.1 Obteniendo este libro impreso .

.

.

.

.

.

.

.

.

.

.

.

.

.

. .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

D Mostrando tu gratitud

E La Licencia General Pública GNU

F Sobre la traducción

Índice

1

61
61

64
64

69
70
70

74

75

76

77

78
78

79

80

85

85

Capítulo 0

Introducción

Así que quieres escribir un módulo del núcleo. Sabes C, has escrito algunos programas corrientes que se
ejecutan como procesos, y ahora quieres
  • Links de descarga
http://lwp-l.com/pdf1154

Comentarios de: Guía de Programación de Módulos del Núcleo Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad