dadv: (Default)
Choose your future ([personal profile] dadv) wrote2012-10-14 03:22 pm
Entry tags:

Разделяемые библиотеки

...такие разделяемые!

% locate libxul.so | xargs ls -li
  47187 -rwxr-xr-x  1 root  wheel  37776160  6 июн 00:11 /usr/local/lib/firefox/libxul.so
  47251 -rwxr-xr-x  1 root  wheel  37776160  5 июн 23:56 /usr/local/lib/firefox/sdk/lib/libxul.so
1746564 -rwxr-xr-x  1 root  wheel  22464192  1 июл  2011 /usr/local/lib/libxul/libxul.so
2309926 -rwxr-xr-x  1 root  wheel  22464192  1 июл  2011 /usr/local/lib/libxul/sdk/lib/libxul.so
1841860 -rwxr-xr-x  1 root  wheel  38010448  2 июл  2011 /usr/local/lib/thunderbird/libxul.so
2026750 -rwxr-xr-x  1 root  wheel  38010448  2 июл  2011 /usr/local/lib/thunderbird/sdk/lib/libxul.so

Те файлы, что одинакового размера - побайтовые копии.

[identity profile] dmarck.livejournal.com 2012-10-14 09:42 am (UTC)(link)
[trollface]

dedup is da answa!

;-P

[identity profile] dadv.livejournal.com 2012-10-14 09:43 am (UTC)(link)
Компьютеры при умелом применении позволяют эффективно решать проблемы, возникшие с появлением компьютеров.

[identity profile] dmarck.livejournal.com 2012-10-14 09:45 am (UTC)(link)
... но не все!!! ;-P

[identity profile] miha-nax.livejournal.com 2012-10-14 11:44 am (UTC)(link)
нормально.
Так как до сих пор нормально не придумали и не стандартизировали решение проблемы "совместимости предыдущими версиями" всё будет ровно так и продолжаться.

[identity profile] dadv.livejournal.com 2012-10-14 12:03 pm (UTC)(link)
Зачем две идентичные копии?

И зачем вообще делать такие "разделяемые" библиотеки - линковать код статически, работать будет быстрее и памяти меньше жрать.

[identity profile] dadv.livejournal.com 2012-10-14 12:07 pm (UTC)(link)
Кстати, а я считал, что проблема совместимости с предыдущими версиями решается a) увеличением номера версии библиотеки (присутствующего в имени файла) при изменениях, ломающих ABI/API и b) при помощи ELF symbol versioning

[identity profile] bogdan-ermolaev.livejournal.com 2012-10-14 11:53 am (UTC)(link)
Unable to reproduce the problem:
% locate libxul.so | xargs ls -li
929980 -rw-r--r-- 1 root root 30130556 Sep 8 01:01 /usr/lib/firefox/libxul.so
923168 -rw-r--r-- 1 root root 33791792 Sep 12 04:54 /usr/lib/thunderbird/libxul.so

[identity profile] dadv.livejournal.com 2012-10-14 12:04 pm (UTC)(link)
Который линукс?

[identity profile] dadv.livejournal.com 2012-10-14 12:04 pm (UTC)(link)
В смысле, который дистрибутив?

[identity profile] bogdan-ermolaev.livejournal.com 2012-10-14 12:07 pm (UTC)(link)
Linux Mint 13 Maya (32-bit).

[identity profile] Владимир Иванов (from livejournal.com) 2012-10-16 09:11 am (UTC)(link)
vm@vm:~$ find /usr/ -name "libxul*" | xargs ls -li
49907443 -rw-r--r-- 1 root root 134140 Май 7 21:52 /usr/lib/icedove/libxul.so
49981432 -rw-r--r-- 1 root root 17759976 Май 11 21:05 /usr/lib/xulrunner-14.0/libxul.so
50323775 -rw-r--r-- 1 root root 13007012 Июн 2 14:56 /usr/lib/xulrunner-1.9.1/libxul.so

vm@vm:~$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l