GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra una chiamata di libreria e una chiamata di sistema in Linux?

Non esiste davvero una "chiamata in biblioteca". È possibile chiamare una funzione collegata a una libreria condivisa. E questo significa solo che il percorso della libreria viene cercato in fase di esecuzione per determinare la posizione della funzione da chiamare.

Le chiamate di sistema sono chiamate del kernel di basso livello gestite dal kernel.


Se digiti man man nella tua shell, vedrai l'elenco delle sezioni del manuale

2 Chiamate di sistema (funzioni fornite dal kernel)

3 Chiamate di libreria (funzioni all'interno delle librerie di programma)

Ad esempio, troverai chmod nella sezione 2 del manuale digitando man chmod . E fprintf nella sezione 3.


Le chiamate di sistema sono gestite direttamente dal kernel.

Le chiamate alla libreria sono gestite da una libreria dinamica (o collegata staticamente). Il programma che effettua la chiamata alla libreria deve prima importare quella libreria, prima che la chiamata funzioni. Le stesse chiamate di libreria possono utilizzare chiamate di sistema.

A volte le librerie vengono fornite come "front-end" alle chiamate di sistema, per fornire funzionalità extra o facilità d'uso non fornite dal kernel.


Linux
  1. Qual è la differenza tra "trova" e "trova" in Linux?

  2. Qual è la differenza tra procfs e sysfs?

  3. Qual è la differenza tra ls e l?

  4. Qual è la differenza tra chiamate probabili e improbabili nel kernel?

  5. Qual è la differenza tra Unix, Linux, BSD e GNU?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Rsync e BTRFS in Linux?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Che cosa sono le chiamate di sistema Linux e le funzioni di libreria?

Qual è la differenza tra chiamata di sistema e chiamata di libreria?