Отже, уявімо, що у нас є двійковий файл, який залежить від бібліотеки QtCore; після того, як ми виконали на ньому попереднє посилання, воно спочатку здійснить пошук у просторі, позначеному попереднім посиланням, а в тому випадку, якщо його не знайде (оновлення, наприклад), буде шукати його традиційним способом.
Попереднє посилання працює на будь-якій сумісній з POSIX системі, як-от GNU / linux або BSD.
Як застосувати попереднє посилання
Оптимізація системи з попереднім посиланням досить проста, ми можемо оптимізувати двійковий файл, використовуючи (як root):
prelink binario
Але для оптимізації всієї системи ми повинні виконати:
prelink -amvR
Ви побачите приблизно таке:
Ось детальне пояснення значення параметрів:
- a: дорівнює –всі, робить це застосовним до всієї системи
- m: еквівалентно –conserve-memory, пояснення того, як це працює, є складним, але економить простір
- v: еквівалент –verbose, це дозволяє нам знати, які є попередньо зв’язані бібліотеки
- В: Еквівалентно –случайному, збільште безпеку, зробивши значення випадковим. Я не знаю деталей його роботи
Щоб скасувати попереднє зв’язування (від’єднати) двійкового файлу
prelink -u
Вся система:
prelink -au
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # Плагін Flash Player -b /usr/lib/mozilla/plugins/libflashplayer.so # NVIDIA -b / usr / lib / libGL .so * -b /usr/lib32/libGL.so* -b //usr/lib/libOpenCL.so* -b //usr/lib32/libOpenCL.so* -b / usr / lib32 / vdpau / -b / usr / lib / vdpau / -b /usr/lib/xorg/modules/drivers/nvidia_drv.so -b /usr/lib/xorg/modules/extensions/libglx.so* -b / usr / lib / libnvidia- * - b / usr / lib32 / libnvidia- * # Catalyst -b / usr / lib / libati * -b / usr / lib / fglrx * -b / usr / lib / libAMDXvBA * -b /usr/lib/libGL.so* - b / usr / lib / libfglrx * -b /usr/lib/xorg/modules/dri/fglrx_dri.so -b /usr/lib/xorg/modules/drivers/fglrx_drv.so -b / usr / lib / xorg / modules / extensions / fglrx / -b /usr/lib/xorg/modules/linux/libfglrxdrm.so -b /usr/lib/xorg/modules/extensions/libglx.so
Оптимізуйте KDE
Обіцяно борг. Якщо ви вже попередньо зв’язали свою систему, ви, мабуть, не помітили жодної різниці в часі завантаження KDE. Це тому, що KDE служить утилітою під назвою kdeinit для завантаження всіх необхідних бібліотек. Щоб уникнути використання цього інструменту, ми повинні повідомити KDE, що він попередньо зв’язаний. Для цього ми повинні (як root) створити файл змінної:
nano /etc/profile.d/kde-prelink.sh
У який ми вставляємо наступний рядок
export KDE_IS_PRELINKED=1
І ми надаємо йому належні дозволи (ми не хочемо, щоб будь-який неслухняний додавав rm-rf /)
chmod 755 /etc/profile.d/kde-prelink.sh
І якщо ви не вірите мені, ось відео про завантаження KDE в моїй системі:
- Жорсткий диск при 7200 об / хв
- Gentoo
- XFS
- Ksplash вимкнено (причина чорного екрану відео
Cron і попереднє посилання
Якщо ви використовуєте таку систему, як Archlinux, в якій оновлення дуже часті, може бути цікаво додати cron, який запускає попереднє посилання щодня.
Таким чином, ми відкриваємо файл cron за допомогою nano (як root):
nano /etc/cron.daily/prelink
І ми вставляємо наступне:
#! / бін / баш [[-x / usr / bin / prelink]] && / usr / bin / prelink -амР &> / dev / null
Тоді ми надаємо йому відповідні дозволи (я вже згадував, що ніхто не хоче, щоб хтось додавав зловмисний код):
chmod 755 /etc/cron.daily/prelink
Хороша звичка при читанні статті - досліджувати, що саме робить сценарій. Хороша звичка при її написанні - пояснювати, для чого вона потрібна. Тут розбивка
- Перший рядок - повідомити системі, що таке скрипт bash та розташування інтерпретатора.
- Другий змушує bash виконувати під оболонку в режимі налагодження, я не знаю чому, але рекомендується, його можна усунути без ризику. && означає, що після завершення команди виконайте наступне.
- Виконайте попереднє посилання з деякими поясненими параметрами, &> / dev / null перенаправляє будь-який вихід на / dev / null, тобто відкидає його