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


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Ivan Barra dito

    Com o "strike" que você deu para [ENTER], os anões que o pc assustou e começaram a trabalhar com o dobro da velocidade de antes, você fala usar PRELINK, mas seu sistema é baseado no terror ... hahaha!

    Saudações e excelente postagem

    Obrigado por compartilhar.

    1.    caminhoneiro dito

      Umm, com o barulho que faz, eu não me perguntaria se havia uma mina no meu computador XD.

    2.    caçador dito

      A piada épica, é verdade que ele estava com muita vontade de entrar, hehe.

  2.   Sheosi dito

    Eu gostaria de comentar que há um tempo eu fiz um benchmarking, e pude ver que as diferenças eram quase nulas (use como testes eu acho e afunde os bits do firefox e do Nautilus).
    Se houver interesse, publicarei o arquivo (não publiquei na hora por preguiça).

    1.    caminhoneiro dito

      Umm, nem todos os arquivos podem melhorar, mas pelo menos o sistema tende a inicializar mais rápido.

  3.   dia dito

    Houve um tempo em que usei o e4rat e ele melhorou o startup por alguns segundos, pois é um hdd começa muito rápido pelo que vejo, atualmente tenho um pequeno ssd com kaos e em xfs e quando vi o startup vez que eu não conseguia acreditar.
    http://i.imgur.com/ds6WqIT.png

    1.    Joao dito

      Exijo saber o tema da área de trabalho que você está usando e o conjunto de ícones (em boas vibrações)

      1.    caminhoneiro dito

        Eu juro que o tema é hélio.

      2.    dia dito

        O tema e os ícones do plasma são chamados de Dynamo e a próxima janela fina.
        http://sta.sh/02ful04ags1
        http://hombremaledicto.deviantart.com/art/Dynamo-Plasma-beta-473014317
        http://kde-look.org/content/show.php?content=164722

        Desculpe ao autor da música pela primeira vez 🙂

    2.    Jose-Rod dito

      Como é chamado esse lançador de aplicativos? 🙂

      1.    caminhoneiro dito

        Acho que é um chamado iniciador qml simples.

      2.    dia dito

        Como roader diz, é o QML

      3.    Jose-Rod dito

        Obrigado 😉

  4.   eliotime3000 dito

    Dica muito boa, embora o KDE execute maravilhas no Arch e no Slackware (eu tentei e eles são realmente incríveis).

  5.   Azureus dito

    Ótimo, muito obrigado. Eu experimentei no meu Arch, fiz um prelink geral e devo dizer que a melhora é muito boa e me sinto muito confortável hehe

  6.   Ianpocks dito

    Não sei se sou eu…. mas não noto nenhuma diferença e com systemd-analise ainda demora mais para começar ...

    1.    caminhoneiro dito

      Bem, deve haver algum problema no seu SO, sabe, prelink -au e tudo está resolvido.

  7.   blablabla dito

    Pelo que eu sei (por experiência própria), pelo menos no Gentoo você não precisa criar um novo arquivo para passar o valor da variável KDE_IS_PRELINKED. Apenas descomente a linha KDE_IS_PRELINKED = 1 em /etc/env.d/43kdepaths (não tenho certeza se esse é o caminho exato, já que não tenho minha máquina no momento).

    Cada vez que o KDE é completamente compilado, você deve verificar o arquivo, pois alguns dos pacotes que ele instala sobrescreverão o arquivo que mencionei.

    1.    caminhoneiro dito

      E provavelmente está em muitas distribuições. mas fazendo da maneira que fiz, garanto que esta configuração não será alterada.

  8.   Estático dito

    Excelente postagem, parabéns

    Eu sugiro que você crie um tutorial para instalar o Gentoo

    1.    caminhoneiro dito

      Levar isso em conta . Obrigado

  9.   Cristianhcd dito

    utilitário muito bom, embora não me sirva, porque eu tenho: nojento para o KDE

  10.   Javier dito

    O golfinho vai aumentar a velocidade? Sempre pareceu lento para começar

    1.    caminhoneiro dito

      Deveria, não sei, sempre uso por padrão. Eu uso o gentoo, portage, se ele detectar que o pré-link está instalado, ele faz o pré-link dos binários automaticamente, então, não faço ideia.

  11.   Pepo dito

    Interessante, obrigado!

    PD- Biblioteca = Biblioteca, não biblioteca 😉
    Bem, a área de trabalho é chamada de Plasma Desktop, não KDE. Ok, eu paro xD

    1.    caminhoneiro dito

      No jargão da informática é uma falha aceita, afinal, as línguas são pragmáticas, principalmente nas traduções.
      https://es.wikipedia.org/wiki/Librería_(desambiguación)

  12.   dtulf dito

    Boa. Eu estava prestes a testá-lo no ArchLinux KDE (base, não o DE completo) e me deu «Erro ao salvar '/etc/cron.daily/ Erro ao salvar' /etc/cron.daily/prelink ': o arquivo ou diretório de pré-link não existe ': O arquivo ou diretório não existe ». Não tenho o "cron" instalado e no wiki [1] falam sobre cronie, fcron e outras variantes. O que preciso instalar ou fazer para concluir o tutorial?

    [1] https://wiki.archlinux.org/index.php/cron#Installation