Llamadas al Sistema
Ante todo no dudes en preguntar, la idea es subir un poco el nivel de los posts, lo unico que solicito es que las preguntas sean ajustadas al tema, si buscan proponer otro topico, me abro otro post
La llamada al Sistema es una llamada al Kernel
Es una llamada particular, dado que el kernel accede a recursos como el CPU en el llamado Kernel Mode.
Que quiere decir esto? El CPU reconoce distinto las llamadas del Kernel que de cualquier otro dispositivo.
Los famosos anillos son siempre dibujados para comprender los modos de seguridad que protegen el acceso a los recursos.
Pero vamos a lo nuestro.
Estamos en un programa, por ejemplo DF, que ya lo deben conocer de memoria.
Es el programa que nos permite ver el uso del disco en un Unix.
Lo cierto es que el programa DF una vez presionado enter, va a buscar a glibc.
GLIBC es la famosa libreria WRAPPER (envoltura). Que quiere decir envoltura?
Quiere decir que GLIBC y no DF se va a encargar de tratar con el KERNEL.
Otro Grafico?
No es el mejor, el mejor lo tengo en el manual de Programacion de API de Linux, pero es dificil extraer ese grafico.
Quizas no se lee bien, pero la columna izq es USER MODE y la derecha KERNEL MODE. Es decir.. DF se encarga de contactar GLIBC, y esta a su vez llama al la famosa instruccion 0x80, es decir, CPU DETENTE de lo que haces (Si mal no recuerdo 0x80 ademas es un conocido hacker en el uso de botnets).
Una vez interrumpido el CPU, GLIBC le guarda al cpu en %EAX (un registro dentro del CPU) la instruccion, que luego ejecutara.
Si quieres verlo.. realmente en tu PC, basta con que corras el programa strace
Noten a MMAP, la llamada de Sistema (System Call), para asignar y declarar espacion de paginacion de Memoria.
Si les gusta ver en procesos reales el uso de Wrappers lo que pudieran hacer es usar el comando LDD, para ver las dependencias de librerias
Si tienen alguna duda, o buscan un uso mas practico de las llamadas al sistema me avisan.
Evite fuera un manual de programacion.
Atento a comentarios.
Saludos.
Ante todo no dudes en preguntar, la idea es subir un poco el nivel de los posts, lo unico que solicito es que las preguntas sean ajustadas al tema, si buscan proponer otro topico, me abro otro post
La llamada al Sistema es una llamada al Kernel
Es una llamada particular, dado que el kernel accede a recursos como el CPU en el llamado Kernel Mode.
Que quiere decir esto? El CPU reconoce distinto las llamadas del Kernel que de cualquier otro dispositivo.
Los famosos anillos son siempre dibujados para comprender los modos de seguridad que protegen el acceso a los recursos.
Pero vamos a lo nuestro.
Estamos en un programa, por ejemplo DF, que ya lo deben conocer de memoria.
Es el programa que nos permite ver el uso del disco en un Unix.
Lo cierto es que el programa DF una vez presionado enter, va a buscar a glibc.
GLIBC es la famosa libreria WRAPPER (envoltura). Que quiere decir envoltura?
Quiere decir que GLIBC y no DF se va a encargar de tratar con el KERNEL.
Otro Grafico?
No es el mejor, el mejor lo tengo en el manual de Programacion de API de Linux, pero es dificil extraer ese grafico.
Quizas no se lee bien, pero la columna izq es USER MODE y la derecha KERNEL MODE. Es decir.. DF se encarga de contactar GLIBC, y esta a su vez llama al la famosa instruccion 0x80, es decir, CPU DETENTE de lo que haces (Si mal no recuerdo 0x80 ademas es un conocido hacker en el uso de botnets).
Una vez interrumpido el CPU, GLIBC le guarda al cpu en %EAX (un registro dentro del CPU) la instruccion, que luego ejecutara.
Si quieres verlo.. realmente en tu PC, basta con que corras el programa strace
Noten a MMAP, la llamada de Sistema (System Call), para asignar y declarar espacion de paginacion de Memoria.
Si les gusta ver en procesos reales el uso de Wrappers lo que pudieran hacer es usar el comando LDD, para ver las dependencias de librerias
Si tienen alguna duda, o buscan un uso mas practico de las llamadas al sistema me avisan.
Evite fuera un manual de programacion.
Atento a comentarios.
Saludos.