escribiendo una api de glibc para una llamada al sistema [duplicar]
Posible duplicado:
Necesito ayuda con la fuente glibc
Entiendo cómo implementar nuestras propias llamadas de sistema en el kernel de Linux. Sé que podemos llamar a esto consyscall()
o con_asm()
en un programa de c
Pero quiero entender cómo escribir glibc api para esta nueva llamada al sistema.
Cómoopen()
yread()
La función glibc llama al mapeo en la llamada al sistema en el kernel?
char message[ ] = "Hello!\n";
int main( void )
{
write( 1, message, 7 );
exit( 0 );
}
Cuando convierto el programa anterior en ensamblador, está dando
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
movl $7, 8(%esp)
movl $message, 4(%esp)
movl $1, (%esp)
call write
movl $0, (%esp)
call exit
.size main, .-main
.ident "GCC: (Debian 4.3.2-1.1) 4.3.2"
.section .note.GNU-stack,"",@progbits
~
3, en "call write" creo que write es glibc call here? que pasa despues de eso ¿Cómo se asigna la llamada glibc a la llamada al sistema?