Während ich über die geteilte Bibliothek studierte, las ich eine Aussage
Obwohl der Code einer gemeinsam genutzten Bibliothek unter mehreren geteilt wird Prozesse, seine Variablen sind nicht. Jeder Prozess, der die Bibliothek verwendet hat eigene Kopien der globalen und statischen Variablen, die definiert sind in der Bibliothek.
Ich habe nur wenige Zweifel.
Ich bin nur ein Anfänger, also bitte hilf mir zu verstehen.
Danke!
Gemeinsam genutzte Bibliotheken werden in einen Prozess geladen, indem sie die Datei in einen Teil des Adressraums des Prozesses mappen. Wenn mehrere Prozesse dieselbe Bibliothek laden, lässt das Betriebssystem sie einfach denselben physischen RAM teilen.
Teile der Bibliothek, die modifiziert werden können, wie z. B. statische globale Variablen, werden im Allgemeinen im Copy-on-Write-Modus geladen, so dass beim Versuch eines Schreibvorgangs ein Seitenfehler auftritt, indem der Kernel die betroffene Seite kopiert eine andere physikalische Seite des RAM (nur für diesen Prozess), das Mapping wird auf die neue Seite umgeleitet, und dann ist die Schreiboperation abgeschlossen.
Um Ihre spezifischen Punkte zu beantworten:
Tags und Links c++ linux shared-libraries