Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Llamadas al Sistema
1
Llamada al Sistema
3
Llamada al Sistema
5
Ejemplo de llamadas al sistema
section .text
global _start
_start:
mov eax, 4 ;cargamos el número de la llamada al sistema en el regitro eax
mov ebx, 1 ;cargamos el descriptor de fichero sobre el que queremos escribir
mov ecx, string ;cargamos en ecx la dirección de la cadena a imprimir
mov edx, length ;cargamos en edx el tamaño de la cadena a imprimir
int 80h ;se invoca a interrupción por software número 80
;que invoca al dispatcher de llamadas al sistema
mov eax, 1
mov ebx, 0
int 80h
section .data
string: db "Hola Mundo", 0x0A
lenght: equ 13
6
Ejemplo de llamadas al sistema
7
El Dispatcher
● El dispatcher, que forma parte del núcleo del SO, se
ejecuta cuando se invoca una llamada al sistema.
Cuando un proceso hace una llamada al sistema, el
dispatcher, se encarga de invocar la llamada que el
proceso ha solicitado.
● Tiene un comportamiento sincronizado, cuando
recibe una llamada se la pasa al sistema operativo y
hasta que no recibe respuesta no atiende otra
llamada.
● En el caso de x86, el dispatcher consulta el registro
eax e invoca a la llamada al sistema identificada
con dicha numeración.
8
• Ejemplo en Windows, la función
CreateProcess() de Win32, para crear un
nuevo proceso, lo que realmente hace es invocar
una llamada al sistema
• NTCreateProcess() del Kernel de Windows,
que tiene asociado un número a una tabla indexada,
devuelve el estado de la ejecución de la llamada y
los posibles valores de retorno.
9
Pasos al realizar una llamada al sistema
12
Algunas llamadas para el manejo de procesos
14
Algunas llamadas para el manejo de directorios
15
Algunas llamadas para otras tareas
16
Llamadas al sistema
• La forma de un shell:
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt */
read_command (command, parameters) /* input from
terminal */
17
Llamadas al sistema
18
Llamadas al sistema
19
Llamadas al Sistema
En resumen
20
Tipos de Llamadas al Sistema
23
Interrupciones
24