es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La implementación de la macro actual del kernel de Linux.

En general, si queremos usar la macro actual en el kernel de Linux, deberíamos:

“`

include


pero hay una versión asm-genérica:

include

La versión asm implementa la macro actual a través de una variable per-cpu, pero la versión asm-genérica implementa la macro actual a través de thread_info, estos dos son totalmente diferentes. La organización de los encabezados del kernel de Linux dice que debemos utilizar la versión asm, que incluye asm/current.h, pero muchos blogs o libros dicen que x86 utiliza la versión asm-genérica para implementar la macro actual, incluyendo Desarrollo de kernel de Linux, tercera, tercera gestión de procesos, almacenando el descriptor de proceso. Entonces, ¿qué versión utiliza realmente el kernel de Linux para x86, asm o asm-genérica? ¿Cómo puedo asegurarme de qué versión utiliza realmente el kernel de Linux?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para usar la macro actual en el kernel de Linux, debemos incluir asm/current.h. Sin embargo, también hay una versión llamada asm-generic/current.h disponible. La versión asm implementa la macro actual a través de la variable per-cpu, mientras que la versión asm-generic implementa la macro actual a través de thread_info. La organización de los encabezados del kernel de Linux sugiere que usemos la versión asm.

    Si bien muchos blogs y libros sugieren que x86 utiliza la versión asm-generic para implementar la macro actual, incluido el libro [Linux Kernel Development][4], siempre es mejor confiar en la documentación oficial. El kernel de Linux x86 utiliza la versión asm de la macro actual. Uno puede asegurarse de esto al mirar el código fuente del kernel.

    Por lo tanto, para usar la macro actual en el kernel de Linux x86, debemos incluir asm/current.h.

Comments are closed.