Képzeljük el, hogy van egy bináris fájlunk, amely a QtCore könyvtártól függ, miután végrehajtottunk rajta egy előzetes linket, először a prelink által kijelölt helyen keres, és abban az esetben, ha nem találja meg (egy frissítés, például példa) a hagyományos módon fogja megkeresni.
Az előcsatlakozás bármely POSIX-kompatibilis rendszeren működik, például a GNU / linuxon vagy a BSD-ken.
Hogyan alkalmazzuk az előlinket
A rendszer prelinkkel történő optimalizálása meglehetősen egyszerű, optimalizálhatunk egy bináris fájlt (root-ként):
prelink binario
De a teljes rendszer optimalizálásához végre kell hajtanunk:
prelink -amvR
Valami ilyesmit fog látni:
Itt van egy részletes magyarázat a paraméterek jelentésére:
- a: egyenlő –minden, az egész rendszerre alkalmazhatóvá teszi
- m: egyenértékű a –konzerv-memóriával, működésének magyarázata összetett, de helyet takarít meg
- v: egyenértékű a –verbose értékkel, lehetővé teszi számunkra, hogy megtudjuk, melyek az előre összekapcsolt könyvtárak
- V: A -véletlen értékkel egyenértékű, növelje a biztonságot azáltal, hogy egy értéket véletlenszerűen tesz. Nem tudom a működésének részleteit
A bináris fájl előzetes összekapcsolásának visszavonása (leválasztása)
prelink -u
Az egész rendszer:
prelink -au
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # Flash Player beépülő modul -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
Optimalizálja a KDE-t
Amit ígérnek, az az adósság. Ha már előre összekapcsolta a rendszerét, akkor valószínűleg nem észlelt különbséget a KDE betöltési idejében. Ez azért van így, mert a KDE a kdeinit nevű segédprogramként szolgál az összes szükséges könyvtár betöltéséhez. Az eszköz használatának elkerülése érdekében tudatnunk kell a KDE-vel, hogy előre összekapcsolt. Ehhez (rootként) létre kell hoznunk egy változó fájlt:
nano /etc/profile.d/kde-prelink.sh
Amelybe beillesztjük a következő sort
export KDE_IS_PRELINKED=1
És megadjuk neki a megfelelő engedélyeket (nem akarunk semmiféle rosszat hozzáadni rm-rf /)
chmod 755 /etc/profile.d/kde-prelink.sh
És ha nem hiszel nekem, itt van egy videó a KDE rendszerről történő indításáról:
- HDD 7200 ford / perc sebességgel
- Gentoo
- XFS
- A Ksplash letiltva (a videó fekete képernyőjének oka
Cron és előlink
Ha olyan rendszert használ, mint az Archlinux, ahol a frissítések nagyon gyakoriak, érdekes lehet egy olyan cron hozzáadása, amely minden nap futtatja az előlinket.
Így megnyitjuk a cron fájlt nano-val (root-ként):
nano /etc/cron.daily/prelink
És beillesztjük a következőket:
#! / bin / bash [[-x / usr / bin / prelink]] && / usr / bin / prelink -amR &> / dev / null
Ezután megadjuk a megfelelő engedélyeket (már említettem, hogy senki sem akarja, hogy valaki rosszindulatú kódot adjon hozzá):
chmod 755 /etc/cron.daily/prelink
A cikk olvasása során jó szokás azt kutatni, hogy a forgatókönyv pontosan mit csinál. Jó szokás, amikor megírja, hogy elmagyarázza, mire szolgál. Itt a bontás
- Az első sor arra szolgál, hogy megmondja a rendszernek, mi az a bash szkript, és a tolmács helyét.
- A második miatt a bash végrehajt egy alhéjat debug módban, nem tudom miért, de ajánlott, kockázat nélkül megszüntethető. Az && azt jelenti, hogy amikor a parancs befejeződik, futtassa a következőket.
- Végezze el az előlinket néhány már megmagyarázott paraméterrel, a &> / dev / null minden kimenetet átirányít a / dev / null helyre, azaz elveti