• Jueves 14 de Noviembre de 2024, 17:14

Autor Tema:  Ubicación y obtención de task_struct  (Leído 1928 veces)

marcialre

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Ubicación y obtención de task_struct
« en: Domingo 25 de Octubre de 2009, 00:13 »
0
Linux almacena la información relativa al proceso en una estructura task_struct. La intuición me dice que la ubicación de dicha estructura se encuentra en el espacio de direcciones del núcleo para evitar errores y manipulaciones indebidas por parte del proceso. ¿La estructura task_struct de un proceso en que espacio de direcciones se encuentra, en el del proceso o en el de usuario?

Gracias.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ubicación y obtención de task_struct
« Respuesta #1 en: Domingo 25 de Octubre de 2009, 01:33 »
0

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

marcialre

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Ubicación y obtención de task_struct
« Respuesta #2 en: Domingo 25 de Octubre de 2009, 01:56 »
0
Si que lo está... La idea era obtener el puntero mm_struct *mm (entre otras cosas) para conocer el mapa de memoria del proceso.

Por ahora la mejor opción es leer /proc/self/maps. Seguiré investigando.

EI: juntando mensajes.

La estructura task_struct (<2.6) o thread_info (=2.6) se encuentra al final de al pila del núcleo, es decir, no es accesible en modo usuario. Para acceder a ella no queda más remedio que programar una llamada al sistema. Una cosa es no hacer uso de la librería estándar y limitarse a las llamadas al sistema y otra muy diferente es añadir llamadas al sistema... Portabilidad = 0.

Gracias por la ayuda.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ubicación y obtención de task_struct
« Respuesta #3 en: Domingo 25 de Octubre de 2009, 06:55 »
0
O escribir un modulo de modo Kernel, pero no sabemos para que querias acceder a la estructura, tal vez exista servicios que provean parte de la informacion que contiene la estructura ... *NIX no es lo mio  :comp:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

marcialre

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Ubicación y obtención de task_struct
« Respuesta #4 en: Domingo 25 de Octubre de 2009, 15:37 »
0
No tiene muchas utilidades acceder a la estructura task_struct o hacerse un mapa de la memoria (excepto en depuradores). Como bien dices en el otro hilo, un mecanismo de protección de memoria en el espacio de usuario puede ocultar las causas de los errores y hacer muy difícil la depuración. Mis preguntas son simplemente para saber algo más, curiosidad.

Gracias otra vez.