int $ 0x80 idea llamada al sistema

1, Fundamentos

     modo de usuario y modo kernel

          buques modernos tienen varios niveles de ejecución de instrucciones de la CPU diferente, Linux dividido en un total de cuatro niveles de ejecución de la instrucción: núcleo en ejecución en el nivel 0, nivel 1, el valor por defecto no está en marcha, el programa de usuario se ejecuta en 3 niveles.
          En el código de instrucción de ejecución nivel de núcleo puede ejecutar una instrucción privilegiada, acceder a cualquier dirección física.
          En las instrucciones de uso de nivel de ejecución, controlar el alcance del código será limitado. Sólo dentro de los límites del nivel correspondiente permitido.
          registro CS indica los dos bits más bajos del código actual nivel de privilegios: cada instrucción es leído por la CPU CS: EIP estos dos registros: donde cs es el registro de segmento de código seleccionado, EIP se compensa registro.
         La determinación se realiza por el hardware.

 

          En general, en Linux, el espacio de direcciones es una señal significativa: 0xc0000000 más espacio de direcciones accesible sólo en modo kernel, espacio de direcciones 0x00000000-0xbfffffff se puede acceder de dos estados.

2, int $ 80 instrucciones de montaje

          El programa de espacio de usuario I386CPU 0-3G espacio limitado, el kernel en 3G ~ 4G restringido espacio, logrando así el aislamiento entre el espacio de usuario y espacio de núcleo;
          ejecución del programa requiere el acceso a un sistema particular para llevar a cabo el programa de función correspondiente. Y el programa de usuario se ejecuta en modo usuario no puede acceder al programa de sistema en un estado específico. El programa cuenta con un usuario necesita para llevar a cabo el programa del sistema, lo que llevó a generar int $ 80:
          aplicaciones a 0x80 instrucción interactuar a través de int (interrupción suave) para lograr el espacio de usuario y el espacio del núcleo. Interrupción de la CPU suave será manejada como una trampa, la programación de interrupción tan suave, también conocido como anormal, int 0x80 que se puede utilizar para realizar llamadas al sistema.
Función Ejecutiva 3, int $ 80 de

     Int $ 80 al empujar el registro principal lograr:
Guardar: SS: ESP, CS: EIP , el eFlag contenido correspondiente a la pila de procesos del núcleo;
Comentario: SS: contenido esp system_call a la dirección base correspondiente a la pila del núcleo, CS : EIP: system_call leería la primera dirección de la instrucción, eFlag modificar el contenido del nuevo logotipo.
    

          En resumen, int $ 0x80 se genera cuando la llamada al sistema, para completar el modo de modo de núcleo de usuario de traspaso. Debido al proceso de usuario en las necesidades de ejecución de modo de usuario y modo kernel para corresponder pila del núcleo no utilizado, por lo que entonces las llamadas al sistema, es necesario guardar el modo de usuario última esp, EIP y otra información de estado con el fin de poner fin a la llamada del sistema para volver a la llamada al sistema de generación de direcciones continuar con la ejecución del programa de usuario, que es para guardar el contenido del registro int $ 0x80 completado.

          Cuando se ejecuta la llamada al sistema, el primer sistema de almacenado número de llamada para el registro EAX, y luego realizar int $ 0x80, luego fue trasladado system_call instrucción de llamada al sistema inicia la ejecución, para salvar system_call system_call núcleo de pila de acuerdo con el valor del número de llamada al sistema, en realizar la llamada al sistema manejador apropiado.
instrucción de proceso inverso Iret refiere int $ 0x80, el contenido de la instrucción int pop bloque de pila generados $ 0x80 a los registros correspondientes, las transferencias CPU de control en el núcleo del programa de usuario, la parte posterior estado de ejecución para el modo de usuario, el programa de usuario continúa ejecución. En este punto, la llamada al sistema, el sistema vuelve proceso termina.
----------------
responsabilidad: Este artículo es el original de los bloggers artículo CSDN "Xu brisa de lluvia", y siga CC 4.0 BY-SA acuerdo de derecho de autor, reproduce, por favor adjuntar la fuente original y el enlace esta declaración.
fuente original: https: //blog.csdn.net/xuyuqingfeng953/article/details/50999170

Supongo que te gusta

Origin www.cnblogs.com/feng9exe/p/12521350.html
Recomendado
Clasificación