• Jueves 28 de Marzo de 2024, 21:21

Autor Tema:  Llamadas al systema den Linix x86_64  (Leído 2040 veces)

marcialre

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Llamadas al systema den Linix x86_64
« en: Domingo 25 de Octubre de 2009, 00:01 »
0
He visto que hay dos métodos para realizar una llamada al sistema en Linux x86_64. Uno hace uso del tradicional int $0x80 y otro hace uso de la instrucción syscall. ¿Cuál es más adecuado?

También he visto que el orden de los parámetros es diferente si se utiliza el segundo método. ¿Cuál es el nuevo orden?

Gracias.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Llamadas al systema den Linix x86_64
« Respuesta #1 en: Domingo 25 de Octubre de 2009, 01:12 »
0
syscall (o sysenter) es mejor, es una instruccion especificamente creada para pasar rapidamente a modo Kernel. Los parametros dependen de la convencion de llamada y no de la instruccion en si misma (salvo rcx en syscall), por ejemplo Windows usa stdcall, en 32 bits un registro (eax) indica el numero de servicio y otro (edx) indica el puntero a la pila con los parametros, en 64 bits usa registros tal como establece la convencion para los parametros excepto para el primero (rcx) que usa (r10), esto se debe a que syscall guarda en rcx la instruccion a la que retornar. Por lo que puedo leer en Wikipedia Linux sigue la convencion de la ABI de AMD64 (RDI, RSI, RDX, RCX, R8 and R9 + pila, asumo que ponen rcx en otro lado por logica).

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: Llamadas al systema den Linix x86_64
« Respuesta #2 en: Domingo 25 de Octubre de 2009, 01:52 »
0
Mil gracias. En un día me has solucionado 4 dudas... :good:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Llamadas al systema den Linix x86_64
« Respuesta #3 en: Domingo 25 de Octubre de 2009, 06:55 »
0
De nadas  B)

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.