[ATARI] Librerias dinamicas en sistemas Atari

Jesus Cea Avion jcea at argo.es
Tue Jan 14 19:18:03 CET 2003


> Tal vez lo que no he dicho es que el número de la versión jamás lo
> verás formando parte del nombre del archivo... La intuition.library
> v3.12 se llama "intuition.library", al igual que la versión 5.890 (por
> decir algo). El número de la versión está metido dentro del fichero,
> formando parte de una cadena que indica la versión del fichero 
> ($VER:)...

Es UNIX es igual. Una cosa es el nombre del fichero y otra el SONAME
(Shared Object NAME). El SONAME forma parte del fichero, no de su
nombre. Un SONAME "inteligente" hace referencia al nombre de la librería
y a la versión de su API. La versión del código estaría en el nombre del
fichero.

Un programa que use la librería, referencia su SONAME, no su nombre de
fichero.

Un ejemplo. BerkeleyDB 4.1.25:

1. Nombre del fichero real: libdb-4.1.so

2. Enlaces simbólicos a ese fichero desde "libdb-4.so" y "libdb.so".

3. Los programas que usen esa librería, CUANDO SE COMPILAN pueden
   buscar por "libdb.so", "libdb-4.so" "libdb-4.1.so", que apuntan
   al mismo fichero.

4. El SONAME de la librería es "libdb-4.1". No aparece 4.1.25 por ningún
  lado. Si mañana sale la 4.1.37, que corrige muchos bugs pero cuyo API
  es igual (es 4.1), pues su SONAME sería el mismo. Las librerías
  podrían reemplazarse de forma transparente (salvo que la versión
  nueva fallaría menos y sería más eficiente).

5. Una vez compilado el programa que usa las librerías, en su interior
   no se guarda el nombre del fichero. Ni siquiera su PATH. Se guarda
   su SONAME. En este caso, "libdb-4.1".

6. Cuando se ejecute el programa en la máquina del vecino, el sistema
   buscará la librería cuyo SONAME es "libdb-4.1", por todos los
   directorios de librerías. A lo mejor el usuario tiene instalada
   la 4.1.87 (ya han pasado dos años y la librería se ha ido
   modernizando) pero seguirá funcionando igual, porque su SONAME
   es "libdb-4.1" igualmente, y es compatible con el API versión 4.1.

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz




More information about the Atari mailing list