GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la diferencia entre una llamada de biblioteca y una llamada de sistema en Linux?

Realmente no existe tal cosa como una "llamada de biblioteca". Puede llamar a una función que está vinculada a una biblioteca compartida. Y eso solo significa que la ruta de la biblioteca se busca en tiempo de ejecución para determinar la ubicación de la función a llamar.

Las llamadas al sistema son llamadas al kernel de bajo nivel manejadas por el kernel.


Si escribe man man en su shell, verá la lista de las secciones del manual

2 Llamadas al sistema (funciones proporcionadas por el núcleo)

3 Llamadas de biblioteca (funciones dentro de bibliotecas de programas)

Por ejemplo, encontrará chmod en la sección 2 del manual al escribir man chmod . Y fprintf en la sección 3.


Las llamadas al sistema son manejadas directamente por el kernel.

Las llamadas a la biblioteca son manejadas por una biblioteca dinámica (o enlazada estáticamente). El programa que realiza la llamada a la biblioteca primero debe importar esa biblioteca, antes de que funcione la llamada. Las propias llamadas de la biblioteca pueden usar llamadas del sistema.

A veces, las bibliotecas se proporcionan como "front-end" para las llamadas al sistema, para proporcionar funcionalidad adicional o facilidad de uso que no proporciona el kernel.


Linux
  1. ¿Cuál es la diferencia entre 'localizar' y 'buscar' en Linux?

  2. ¿Cuál es la diferencia entre procfs y sysfs?

  3. ¿Cuál es la diferencia entre ls y l?

  4. ¿Cuál es la diferencia entre llamadas probables e improbables en Kernel?

  5. ¿Cuál es la diferencia entre Unix, Linux, BSD y GNU?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Rsync y BTRFS en Linux?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?

¿Qué son las llamadas al sistema Linux y las funciones de biblioteca?

¿Cuál es la diferencia entre la llamada al sistema y la llamada a la biblioteca?