GNU/Linux >> Tutoriales Linux >  >> Linux

¿Archivo en el que se define la estructura de datos para la tabla Global Descriptor y Local Descriptor?

Una búsqueda en Google del término "Linux Kernel file gdt " arroja los resultados exactos que está buscando. Este es el enlace al resultado de la búsqueda del libro con el contenido que describe dónde se definen GDT y LDT.

  • Todos los GDT se almacenan en la cpu_gdt_table matriz.

  • Si observa el índice del código fuente, puede ver que estos símbolos están definidos en el archivo arch/i386/kernel/head.S . Sin embargo, creo que el índice del código fuente se puede ver cuando tienes una copia del libro. Sin embargo, se da el archivo donde se define GDT.


Para el kernel más reciente, la GDT parece estar definida en al menos 3 archivos separados.

  • arch/x86/include/asm/desc_defs.h
  • arch/x86/include/asm/desc.h
  • arch/x86/include/asm/segment.h

El diseño de la GDT principal parece estar definido en arch/x86/include/asm/segment.h alrededor de la línea 91. Hay comentarios sobre el diseño encima de esta línea.

La tabla completa se carga en arch/x86/include/asm/desc.h con la función static inline void native_load_gdt(const struct desc_ptr *dtr) que simplemente llama al código de operación del ensamblado lgdt . Esto es consistente con la forma en que los núcleos más antiguos cargan la tabla en el procesador. Vea la línea 303 aquí. Sin embargo, no puedo encontrar ninguna llamada a esta función en el código base. Alguien, por favor, ayude a resolver esto.

Además, no puedo encontrar el equivalente de definir las constantes de la tabla real como en la línea 479 en los núcleos más nuevos.


Linux
  1. MySQL:conversión a datos por tabla para InnoDB

  2. ¿Qué software de compresión de archivos para Linux ofrece la mayor reducción de tamaño?

  3. ¿La diferencia entre .exrc y .vimrc?

  4. ¿Cuál es la interfaz para las llamadas al sistema ARM y dónde se define en el kernel de Linux?

  5. ¿Cómo puedo hacer que tcpdump escriba en el archivo y genere de forma estándar los datos apropiados?

¿Por qué el descriptor de archivo se abre y se lee solo una vez?

Los 15 mejores programas econométricos y estadísticos para el sistema Linux

¿Qué es más eficiente, la compresión tar o zip? ¿Cuál es la diferencia entre tar y zip?

Atascado eligiendo entre ext4 y ext3 para el sistema de archivos

En un enlace simbólico que apunta a '127.0.1.1:+xxxxx', ¿para qué sirve el carácter más?

¿Cuál es la diferencia entre las claves autorizadas y el archivo hosts conocidos para SSH?