Попереднє посилання (або як зробити завантаження KDE за 3 секунди)

Попереднє посилання це програма, утиліта якої полягає в тому, щоб швидше відкривати програми. Хоча пояснення того, як це робиться, було б вартим цілої статті, ми можемо сказати грубо, що воно вказує двійковому файлу, де спочатку шукати динамічні бібліотеки, які йому потрібно завантажити.

Отже, уявімо, що у нас є двійковий файл, який залежить від бібліотеки QtCore; після того, як ми виконали на ньому попереднє посилання, воно спочатку здійснить пошук у просторі, позначеному попереднім посиланням, а в тому випадку, якщо його не знайде (оновлення, наприклад), буде шукати його традиційним способом.

Попереднє посилання працює на будь-якій сумісній з POSIX системі, як-от GNU / linux або BSD.

Як застосувати попереднє посилання

Оптимізація системи з попереднім посиланням досить проста, ми можемо оптимізувати двійковий файл, використовуючи (як root):

prelink binario

Але для оптимізації всієї системи ми повинні виконати:

prelink -amvR

Ви побачите приблизно таке:

Попереднє посилання

Попереднє посилання

Ось детальне пояснення значення параметрів:

  • a: дорівнює –всі, робить це застосовним до всієї системи
  • m: еквівалентно –conserve-memory, пояснення того, як це працює, є складним, але економить простір
  • v: еквівалент –verbose, це дозволяє нам знати, які є попередньо зв’язані бібліотеки
  • В: Еквівалентно –случайному, збільште безпеку, зробивши значення випадковим. Я не знаю деталей його роботи
Термінал - Якуаке, на випадок, якщо комусь буде цікаво.

Щоб скасувати попереднє зв’язування (від’єднати) двійкового файлу

prelink  -u

Вся система:

prelink -au

Багато дистрибутивів, таких як Ubuntu, пропонують cron, який періодично попередньо зв'язує всі системні двійкові файли, якщо встановлено попереднє посилання
Попереднє посилання може спричинити проблеми у декількох власних двійкових файлах, тому за замовчуванням вони зазвичай пропускаються. У будь-якому випадку, переконайтесь, що файл /etc/prelink.conf містить такі рядки:
# 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

Хороша звичка при читанні статті - досліджувати, що саме робить сценарій. Хороша звичка при її написанні - пояснювати, для чого вона потрібна. Тут розбивка

  1. Перший рядок - повідомити системі, що таке скрипт bash та розташування інтерпретатора.
  2. Другий змушує bash виконувати під оболонку в режимі налагодження, я не знаю чому, але рекомендується, його можна усунути без ризику. && означає, що після завершення команди виконайте наступне.
  3. Виконайте попереднє посилання з деякими поясненими параметрами, &> / dev / null перенаправляє будь-який вихід на / dev / null, тобто відкидає його

Посилання, що цікавлять