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.