Assim, vamos imaginar que temos um binário que depende da biblioteca QtCore, uma vez que tenhamos executado o pré-link sobre ele, ele irá primeiro pesquisar no espaço designado por prelink, e caso não o encontre (uma atualização, por exemplo) irá procurá-lo da maneira tradicional.
O Prelink funciona em qualquer sistema compatível com POSIX, como GNU / linux ou BSDs.
Como aplicar o pré-link
Otimizar o sistema com pré-link é bastante simples, podemos otimizar um binário usando (como root):
prelink binario
Mas, para otimizar todo o sistema, devemos realizar:
prelink -amvR
Você verá algo assim:
Aqui está uma explicação detalhada do significado dos parâmetros:
- a: igual a -all, faz com que se aplique a todo o sistema
- m: equivalente a –conserve-memory, a explicação de como funciona é complexa, mas economiza espaço
- v: equivalente a –verbose, permite-nos saber quais são as bibliotecas pré-ligadas
- R: Equivalente a –random, aumente a segurança tornando um valor aleatório. Não sei os detalhes de seu funcionamento
Para desassociar (desvincular) um binário
prelink -u
Todo o sistema:
prelink -au
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # Plug-in do 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
Otimize o KDE
Promessa é dívida. Se você já havia pré-linkado seu sistema, provavelmente não notou nenhuma diferença nos tempos de carregamento do KDE. Isso ocorre porque o KDE serve como um utilitário chamado kdeinit para carregar todas as bibliotecas necessárias. Para evitar o uso desta ferramenta, devemos informar ao KDE que ela está pré-vinculada. Para fazer isso, devemos (como root) criar um arquivo de variável:
nano /etc/profile.d/kde-prelink.sh
Na qual colamos a seguinte linha
export KDE_IS_PRELINKED=1
E damos as permissões adequadas (não queremos nenhum travesso para adicionar rm-rf /)
chmod 755 /etc/profile.d/kde-prelink.sh
E se você não acredita em mim, aqui está um vídeo do KDE inicializando no meu sistema:
[especificações] Detalhes do sistema:- 7200 RPM HDD
- Gentoo
- XFS
- Ksplash desativado (causa da tela preta do vídeo
Cron e pré-link
Se você usa um sistema como o Archlinux, no qual as atualizações são muito frequentes, pode ser interessante adicionar um cron que executa o pré-link todos os dias.
Assim, abrimos o arquivo cron com nano (como root):
nano /etc/cron.daily/prelink
E colamos o seguinte:
#! / Bin / bash [[-x / usr / bin / prelink]] && / usr / bin / prelink -amR &> / dev / null
Em seguida, damos a ele as permissões apropriadas (já mencionei que ninguém quer que alguém adicione código malicioso):
chmod 755 /etc/cron.daily/prelink
Um bom hábito ao ler um artigo é pesquisar o que exatamente o script faz. Um bom hábito ao escrevê-lo é explicar para que serve. Aqui está a repartição
- A primeira linha é para informar ao sistema o que é um script bash e a localização do interpretador.
- O segundo faz com que o bash execute um subshell em modo de depuração, não sei por que, mas é recomendado, pode ser eliminado sem risco. O && significa que quando o comando terminar, execute o seguinte.
- Execute o pré-link com alguns parâmetros já explicados, o &> / dev / null redireciona qualquer saída para / dev / null, ou seja, descarta-o