Prelink (Русский)
Contents
Введение
Большинство приложений используют разделяемые библиотеки. Библиотеки могут быть интегрированы в программу при компиляции (статическое связывание), либо подгружаться при запуске программы (динамическое связывание). Одним из преимуществ динамической компоновки, является уменьшение размера исходной программы и более простое обслуживание, но при запуске программы возникает необходимость в поиске нужных библиотек. Так как библиотеки располагаются на диске в произвольных местах,- увеличивается время запуска программ и падает производительность. prelink, выполняя предварительное связывание, позволяет уменьшить этот недостаток. При возникновении проблем динамическое связывание всегда можно отменить. Не стоит забывать, что при обновлении библиотек процесс связывания необходимо запускать заново.
Установка
Установка Prelink при помощи pacman
pacman -S prelink
Настройка
Все настройки программы находятся в файле /etc/prelink.conf
Использование
Предварительное связывание
Команда prelink выполнит связывание всех бинарных файлов, расположенных в директориях, которые указанны в /etc/prelink.conf
# prelink -afmR
Опция | Описание |
---|---|
a | All, применить предварительное связывание ко всем выполняемым файлам. |
f | Вынуждает повторить предварительное связывание для файлов, которые уже подвергались ему. Это требуется т.к. программа prelink прекращает обработку существующих старых связанных файлов, зависимые библиотеки которых могли измениться. |
m | Сохраняет пространство виртуальной памяти. Это требуется, если вы имеете много библиотек, которые необходимо связать. |
R | Random, -- Выбирает случайный порядок адресов, это увеличивает безопасность против переполнений буферов. |
Для получения дополнительной информации о prelink выполните:
$ man prelink
Отмена предварительного связывания
Отменить предварительное связывание для всех бинарников:
# prelink -au
Советы & Решение проблем
Ускоряем KDE
Уменьшить время загрузки KDE можно выполнив предварительное связывание и отключив kdeinit (после связывания становится не нужен).
Создать файл ~/.kde4/env/имя_файла.sh
(имя файла может быть любое) следующего содержания:
#!/bin/bash export KDE_IS_PRELINKED=1
После связывания не работает программа
Можно добавить программу в список игнорируемых, для этого следует отредактировать файл /etc/prelink.conf
, добавив в него строку вида:
-b /путь_к_исполняемому файлу
Например:
-b /usr/bin/skype
Затем переустановить программу.