Astfel, să ne imaginăm că avem un binar care depinde de biblioteca QtCore, odată ce am executat prelinkul pe acesta, acesta va căuta mai întâi în spațiul desemnat de prelink și în cazul în care nu îl va găsi (o actualizare, pentru exemplu) o va căuta în mod tradițional.
Prelink funcționează pe orice sistem compatibil POSIX, cum ar fi GNU / linux sau BSD-urile.
Cum se aplică prelink
Optimizarea sistemului cu prelink este destul de simplă, putem optimiza un binar folosind (ca root):
prelink binario
Dar pentru a optimiza întregul sistem trebuie să realizăm:
prelink -amvR
Veți vedea așa ceva:
Iată o explicație detaliată a semnificației parametrilor:
- a: este egal cu -toate, îl face să se aplice întregului sistem
- m: echivalent cu –conserve-memory, explicația modului în care funcționează este complexă, dar economisește spațiu
- v: echivalent cu –verbose, ne permite să știm care sunt bibliotecile pre-conectate
- R: Echivalent cu -aleatoriu, creșteți securitatea făcând o valoare aleatorie. Nu cunosc detaliile funcționării sale
Pentru a deconecta (deconecta) un binar
prelink -u
Întregul sistem:
prelink -au
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # Flash Player Plugin -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
Optimizați KDE
Ceea ce se promite este datoria. Dacă v-ați conectat deja sistemul, probabil că nu ați observat nicio diferență în timpul de încărcare KDE. Acest lucru se întâmplă deoarece KDE servește ca un utilitar numit kdeinit pentru a încărca toate bibliotecile necesare. Pentru a evita utilizarea acestui instrument, trebuie să anunțăm KDE că este pre-legat. Pentru a face acest lucru, trebuie (ca root) să creăm un fișier variabil:
nano /etc/profile.d/kde-prelink.sh
În care lipim următoarea linie
export KDE_IS_PRELINKED=1
Și îi oferim permisiunile corespunzătoare (nu vrem să adăugăm nicio obraznicie rm-rf /)
chmod 755 /etc/profile.d/kde-prelink.sh
Și dacă nu mă credeți, iată un videoclip cu pornirea KDE pe sistemul meu:
- HDD la 7200 RPM
- Gentoo
- XFS
- Ksplash dezactivat (cauza ecranului video negru
Cron și prelink
Dacă utilizați un sistem precum Archlinux, în care actualizările sunt foarte frecvente, ar putea fi interesant să adăugați un cron care rulează prelink în fiecare zi.
Astfel, deschidem fișierul cron cu nano (ca root):
nano /etc/cron.daily/prelink
Și lipim următoarele:
#! / Bin / bash [[-x / usr / bin / prelink]] && / usr / bin / prelink -amR &> / dev / null
Apoi îi acordăm permisiunile corespunzătoare (am menționat deja că nimeni nu dorește ca cineva să adauge un cod rău intenționat):
chmod 755 /etc/cron.daily/prelink
Un obicei bun atunci când citești un articol este să cercetezi ce face exact scenariul. Un obicei bun atunci când îl scrii este să explici la ce folosește. Aici defalcarea
- Prima linie este de a spune sistemului ce este un script bash și locația interpretului.
- Al doilea face ca bash să execute un subshell în modul de depanare, nu știu de ce, dar este recomandat, poate fi eliminat fără risc. && înseamnă că atunci când comanda se termină, rulați următoarele.
- Executați prelink cu câțiva parametri deja explicați, &> / dev / null redirecționează orice ieșire către / dev / null, adică o elimină