Ist der Kernel selbst von den Standard-C-Bibliotheken abhängig?

Ist der Kernel selbst von den Standard-C-Bibliotheken abhängig?

Ich beschäftige mich eingehender mit der tatsächlichen Funktionsweise von Linux, insbesondere auf eingebetteten Geräten, mit all den verschiedenen Komponenten, die für ein voll funktionsfähiges System erforderlich sind.

Mir ist bewusst, dass eine standardmäßige C-Bibliotheksimplementierung wie glibc separat ist und erforderlich ist, damit meine Anwendung im Benutzerbereich mit dem Linux-Kernel kommunizieren und somit zusammenarbeiten kann.

Aber ist der Linux-Code selbst tatsächlich von dieser Standardbibliothek abhängig? Kann Linux auch ohne diese Bibliothek selbstständig ausgeführt werden?

Antwort1

Nein, der Kernel ist nicht von der Standard-C-Bibliothek (oder einer anderen Bibliothek) abhängig, er ist in sich geschlossen. Auch Programme im Benutzerbereich sind nicht unbedingt von der C-Bibliothek abhängig. Die C-Bibliothek bietet praktische Wrapper für Systemaufrufe, diese können jedoch direkt aufgerufen werden, ohne die C-Bibliothek zu durchlaufen, und andere Laufzeitumgebungen können ihre eigenen Wrapper bereitstellen.

(Das bedeutet, dass der Kernel die Implementierung einiger Funktionen enthält, die man normalerweise von der C-Bibliothek erwarten würde, manchmal in vereinfachten Versionen, die besser zum Kernel passen. Siehediese FAQ für Kernel-Neulingefür Details.)

verwandte Informationen