[gugs] Bibliotecas

Quique quique en sindominio.net
Mie Oct 31 09:08:01 CET 2001


Isaac Clerencia Perez <463141 en cepsz.unizar.es> dijo:

> > ¿Qué significa .so? (No solo las siglas, sino el concepto)
> 
> pues .so son las bibliotecas compartidas. Cuando compilas una biblioteca
> puedes crear
> un fichero .a (biblioteca estatica) o .so (biblioteca dinamica).
> 
> Cuando luego compilas un programa que necesita usar esta biblioteca
> puedes enlazarlo con ella de manera estatica o dinamica:
> 
> Si lo haces de manera estatica estas incluyendo el codigo de la
> biblioteca en el nuevo ejecutable, de manera que aunque borres esa
> biblioteca tu programa seguira funcionando.

Entonces, si lo entiendo bien, supongo que todas (o prácticamente todas) las
bibliotecas que tengo en mi sistema serán dinámicas, y que las estáticas son
utilizadas únicamente por desarrolladores, y no por usuarios finales.
(Corregidme si estoy diciendo una barbaridad!)

Las DLLs de Windows son lo mismo, bibliotecas dinámicas, ¿no?


> Sin embargo, de esta manera cuando compilamos 20 programas que usan una
> biblioteca de 2 MB's pues estas malgastando
> 40 MBs.
> 
> Esto se soluciona con las bibliotecas .so, en el programa solo guardas
> que necesitas esa biblioteca (puedes sacar
> un listado de las bibliotecas dinamicas que necesita un programa
> haciendo 'ldd programa'). El SO se encarga de cargar esa biblioteca y de
> permitir el uso de los funciones a todos los programas que la necesiten,
> con lo cual ahorras espacio en disco y en memoria ...

Supongo también que, de esta manera, si hay un gazapo en la biblioteca basta
con sacar una nueva versión de ésta, mientras que si estuviera enlazada de
forma estática habría que sacar una nueva versión del programa. ¿correcto?


> espero haber ayudado ... y que alguien nos ersponda el resto de
> preguntas ...

Claro que has ayudado. Y Jordi ha respondido al resto. :)

 Quique


-- 
Cuando descubrimos las respuestas, nos cambiaron las preguntas.




Más información sobre la lista de distribución Gugs