GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen einem Bibliotheksaufruf und einem Systemaufruf in Linux?

Es gibt nicht wirklich so etwas wie einen "Bibliotheksbesuch". Sie können eine Funktion aufrufen, die mit einer gemeinsam genutzten Bibliothek verknüpft ist. Und das bedeutet nur, dass der Bibliothekspfad zur Laufzeit nachgeschlagen wird, um den Speicherort der aufzurufenden Funktion zu bestimmen.

Systemaufrufe sind Kernel-Aufrufe auf niedriger Ebene, die vom Kernel behandelt werden.


Wenn Sie man man eingeben In Ihrer Shell sehen Sie die Liste der Handbuchabschnitte

2 Systemaufrufe (vom Kernel bereitgestellte Funktionen)

3 Bibliotheksaufrufe (Funktionen innerhalb von Programmbibliotheken)

Beispielsweise finden Sie chmod in Abschnitt 2 des Handbuchs, wenn Sie man chmod eingeben . Und fprintf im Abschnitt 3.


Systemaufrufe werden direkt vom Kernel behandelt.

Bibliotheksaufrufe werden von einer dynamischen (oder statisch gelinkten) Bibliothek behandelt. Das Programm, das den Bibliotheksaufruf durchführt, muss zuerst diese Bibliothek importieren, bevor der Aufruf funktioniert. Die Bibliotheksaufrufe selbst können Systemaufrufe verwenden.

Manchmal werden Bibliotheken als "Front-Ends" für Systemaufrufe bereitgestellt, um zusätzliche Funktionalität oder Benutzerfreundlichkeit bereitzustellen, die der Kernel nicht bietet.


Linux
  1. Was ist der Unterschied zwischen „locate“ und „find“ in Linux?

  2. Was ist der Unterschied zwischen procfs und sysfs?

  3. Was ist der Unterschied zwischen ls und l?

  4. Was ist der Unterschied zwischen wahrscheinlichen und unwahrscheinlichen Aufrufen im Kernel?

  5. Was ist der Unterschied zwischen Unix, Linux, BSD und GNU?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Rsync und BTRFS unter Linux?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was sind Linux-Systemaufrufe und Bibliotheksfunktionen?

Was ist der Unterschied zwischen Systemaufruf und Bibliotheksaufruf?