1. modprobe load kernel module
a) Encuentre alias en /etc/module.conf
b) Determine si hay una dependencia en lib /modules /version /module.dep El módulo debe cargarse antes de tiempo (el archivo es creado por depmod-a)
2. El kernel 2.4 no tiene que usar init_module y cleanup_module para hacer las funciones de inicio y fin, pero necesita usar module_init y
Module_exit declaración.
3. Las macros __init y __exit pueden hacer que las funciones reclamen automáticamente la memoria después de ejecutarse (limitado a los módulos), __initdata para variables,
Ejemplo:
# Incluir //necesita incluir el archivo de encabezado
static int ntest __initdata = 3;
static int __init test_init (void) {...}
static void __exit test_exit ( Void) {...}
module_init (test_init); //Declarar después de la función de implementación
module_exit (test_exit);
4. Algunas descripciones de los módulos son relevantes Macro, puede utilizar objdump para ver información relacionada.
MODULE_LICENSE () Descripción Código Tipo de licencia
MODULE_DESCRIPTION () Descripción del módulo
MODULE_AUTHOR () Autor
MODULE_SUPPORTED_DEVICE () Módulo Dispositivos compatibles
5. El paso de parámetros utiliza la macro MODULE_PARM (nombre de variable, tipo).
Los tipos admitidos son " b " bit " h " short " i " integer " l " long " s " string '
static int myint = 9;
static char * mystr = " prueba "; //Tenga en cuenta que debe pasar el valor predeterminado del parámetro
MODULE_PARM (myint, " i ");
MODULE_PARM (mystr , " s ");
6. Compilación de varios archivos en un módulo del kernel:
a) Es necesario agregar
#define __NO_VERSION __
#include
b) Compile con un archivo de núcleo único normal
c) Conexión: ld -m elf_i386 -r -o < 1st src file.o > < 2nd Src file.o >
7. strace Verifique la llamada al sistema utilizada por un programa
8. Acerca de la estructura file_operations se define en el archivo linux /fs.h.
Uso:
struct file_operations fops = {read: device_read, write: device_write, open: device_open, release: device_release} C99 use: struct file_operations fops = {.read = device_read , .write = device_write, .open = device_open, .release = device_release}
En la virtualización y el cloud computing, así como la era de contenedores, seremos una gran canti
El Layer 2 Tunneling Protocol (L2TP) es un protocolo de túnel de Internet estándar de la industria
No hay un nuevo concepto en este artículo. Simplemente usamos herramientas de línea de comandos para
Varios Linux Ahora el tema, sombrero rojo Enterprise Edition es relativamente seguro. Para la vers
Partición de discos Linux, formateo, verificación, montaje tutorial básico
Linux método de cambio de archivo /dispositivo
El mejor software de gestión de bases de datos bajo Linux
centOS construir servidor vpn l2tpd
Diferencia tipo bus MCU y bus no bus
Proceso de inicio del sistema operativo Linux detallado
Linux pila del subsistema de barrio (dos procesos relacionados)
El servicio samba no está instalado y falla el inicio del sistema dual.
El sistema Linux (Debian y Ubuntu) elimina completamente el vino
Linux pila del subsistema de barrio (tres procesos relacionados)
Win10 es compatible con la mayoría del software y hardware Win7 /Win8.1
Método de un solo clic para limpiar Windows 7
Win7 sistema abrir firewall error mostrar 0x6D9 cómo hacerlo
Windows 8 IE10 no puede descargar archivos de solución
Cómo eliminar la flecha azul en la esquina superior derecha de la carpeta Win10
Método de entrada QQ Pinyin cómo crear un apodo de juego en blanco