Duda implementacion de trap (en syscall)

Re: Duda implementacion de trap (en syscall)

de Pedro Liber Antonio Carrasco Aguilar -
Número de respuestas: 0

Ahi esta yo habia pensado en la segunda forma que decis de implementarlo. Como si las sistemCalls fuesen shared librerias de kernell que se cargan en memoria de kernel y cuando mi programa que hace syscalls compila se genera la tabla de simbolos donde esas syscalls apuntan a addres del kernell, (o cuando linkedita dependiendo de si es estatica o dinamica la asignacion).

En fin al ejecutar mi programa y llamar la syscall (el proceso) tiene un PC con la add de espacio de kernell y la MMU interrumpe (modo monitor) generando una page fault, donde el handler de PageFault se fija si el add del PC corresponde a alguna func de las sharedlibraries del kernell (y le pasa el control) y sino te mata

Bueno lo de te mata es porque el handler de la pageFault tengo entendido que si no es tu memoria te mata.

Ademas me parece mejor que te mate (se implemente como se implemente) porque sino yo podria hacer un programa que haga todo el tiempo syscalls invalidas (donde el context switch de usr a kernell es pesado) y si el handler que atiende la interrupcion DESHABILITA interrupciones, estaria degradando la performance del sistema no? xq "mis intrucciones" demoran mas tiempo que las de un proceso "normal" (que no hace tantas syscall).

Esta bien esto ultimo?

Salu2

Buscando (recien) systemcall atack en google me salto entre otras cosas algo como esto (no lo lei pero por los dibujitos) parece que tiene un monitor de syscalls

https://www.cs.jhu.edu/~s/papers/iago2013/iago2013.pdf