Biblioteca compartida

Una biblioteca compartida o objecte compartit és un fitxer que està pensat per ser compartit per fitxers executables i altres fitxers d'objectes compartits. Els mòduls utilitzats per un programa es carreguen des d'objectes compartits individuals a la memòria en temps de càrrega o en temps d'execució, en lloc de ser copiats per un enllaçador quan crea un únic fitxer executable monolític per al programa.[1]

Les biblioteques compartides es poden enllaçar estàticament durant el temps de compilació, el que significa que les referències als mòduls de la biblioteca es resolen i els mòduls s'assignen memòria quan es crea el fitxer executable. Però sovint l'enllaç de biblioteques compartides es posposa fins que es carreguen.[2]

La majoria dels sistemes operatius moderns poden tenir fitxers de biblioteques compartides del mateix format que els fitxers executables. Això ofereix dos avantatges principals: en primer lloc, requereix fer només un carregador per a tots dos, en lloc de dos (que tenir un sol carregador es considera que val la pena la seva complexitat afegida). En segon lloc, permet utilitzar els executables també com a biblioteques compartides, si tenen una taula de símbols. Els formats típics combinats d'executable i de biblioteca compartida són ELF i Mach-O (tots dos en Unix) i PE (Windows).

En alguns entorns antics, com ara Windows de 16 bits o MPE per a l'HP 3000, només es permetien les dades basades en la pila (locals) al codi de biblioteca compartida o es van posar altres restriccions significatives al codi de biblioteca compartida.[3]

  1. «Shared Libraries» (en anglès). [Consulta: 9 desembre 2023].
  2. Kili, Aaron. «Understanding Shared Libraries in Linux» (en anglès americà), 30-10-2017. [Consulta: 9 desembre 2023].
  3. «Difference between static and shared libraries?» (en anglès). [Consulta: 9 desembre 2023].

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne