Prelink: различия между версиями
(Новая страница: «==Prelink== Большинство приложений в Linux используют динамически загружаемые библиотеки, кото…») |
Нет описания правки |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Большинство приложений в Linux используют динамически загружаемые библиотеки, которые содержат различные функции, необходимые для их работы. При каждом запуске приложения должны быть также загружены эти библиотеки. В случае тяжелых приложений, имеющих большое количество связей, этот процесс может занять определенное время. При этом выполняемые для связывания библиотек действия одинаковы, если сами библиотеки не меняются. Утилита prelink позволяет прописать связи с библиотеками непосредственно в исполняемый файл, что ускорит запуск приложения. Выполняется это без перекомпиляции приложений. | Большинство приложений в Linux используют динамически загружаемые библиотеки, которые содержат различные функции, необходимые для их работы. При каждом запуске приложения должны быть также загружены эти библиотеки. В случае тяжелых приложений, имеющих большое количество связей, этот процесс может занять определенное время. При этом выполняемые для связывания библиотек действия одинаковы, если сами библиотеки не меняются. Утилита prelink позволяет прописать связи с библиотеками непосредственно в исполняемый файл, что ускорит запуск приложения. Выполняется это без перекомпиляции приложений. | ||
Устанавливаем Prelink | Устанавливаем Prelink | ||
apt-get install prelink | apt-get install prelink | ||
Чтобы запускать команду без полного пути (программа устанавливается в sbin) сделаем символьную ссылку: | |||
ln /usr/sbin/prelink /usr/bin/prelink | |||
Запускаем команду: | Запускаем команду: | ||
prelink -avfmR | |||
*-a — All, применить предварительное связывание ко всем выполняемым файлам. | *-a — All, применить предварительное связывание ко всем выполняемым файлам. | ||
*-m — Сохраняет пространство виртуальной памяти. Это требуется, если вы имеете много библиотек, которые необходимо связать. | *-m — Сохраняет пространство виртуальной памяти. Это требуется, если вы имеете много библиотек, которые необходимо связать. | ||
Строка 16: | Строка 19: | ||
*[https://habr.com/ru/post/108454/ Хабр] | *[https://habr.com/ru/post/108454/ Хабр] | ||
*[https://linuxnow.ru/view.php?id=86 linuxnow.ru] | *[https://linuxnow.ru/view.php?id=86 linuxnow.ru] | ||
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 12:29, 11 апреля 2020
Большинство приложений в Linux используют динамически загружаемые библиотеки, которые содержат различные функции, необходимые для их работы. При каждом запуске приложения должны быть также загружены эти библиотеки. В случае тяжелых приложений, имеющих большое количество связей, этот процесс может занять определенное время. При этом выполняемые для связывания библиотек действия одинаковы, если сами библиотеки не меняются. Утилита prelink позволяет прописать связи с библиотеками непосредственно в исполняемый файл, что ускорит запуск приложения. Выполняется это без перекомпиляции приложений.
Устанавливаем Prelink
apt-get install prelink
Чтобы запускать команду без полного пути (программа устанавливается в sbin) сделаем символьную ссылку:
ln /usr/sbin/prelink /usr/bin/prelink
Запускаем команду:
prelink -avfmR
- -a — All, применить предварительное связывание ко всем выполняемым файлам.
- -m — Сохраняет пространство виртуальной памяти. Это требуется, если вы имеете много библиотек, которые необходимо связать.
- -f — Вынуждает повторить предварительное связывание для файлов, которые уже подвергались ему. Это необходимо, т.к. программа prelink прекращает обработку существующих старых связанных файлов, зависимые библиотеки которых могли измениться.
- -R — Random, выбирает случайный порядок адресов, это увеличивает безопасность против атак переполнений буферов.
Prelink необходимо запускать после каждого обновления библиотек и/или приложений.