Pré-link (ou como fazer o KDE inicializar em 3 segundos)

Pré-link é um programa cuja utilidade é tornar os programas abertos mais rapidamente. Embora a explicação de como ele faz isso valha a pena um artigo completo, podemos dizer de uma maneira grosseira que diz ao binário onde procurar primeiro as bibliotecas dinâmicas que ele precisa carregar.

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:

Pré-link

Pré-link

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
O terminal é Yakuake, caso alguém esteja interessado.

Para desassociar (desvincular) um binário

prelink  -u

Todo o sistema:

prelink -au

Muitas distribuições como o Ubuntu oferecem um cron que pré-vincula periodicamente todos os binários do sistema se o pré-link estiver instalado
O pré-link pode causar problemas em vários binários proprietários, portanto, eles geralmente são ignorados por padrão. De qualquer forma, certifique-se de que seu arquivo /etc/prelink.conf contenha estas linhas:
# 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
[/ especificações]

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

  1. A primeira linha é para informar ao sistema o que é um script bash e a localização do interpretador.
  2. 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.
  3. Execute o pré-link com alguns parâmetros já explicados, o &> / dev / null redireciona qualquer saída para / dev / null, ou seja, descarta-o

Links de interesse