Mostrando postagens com marcador DLL. Mostrar todas as postagens
Mostrando postagens com marcador DLL. Mostrar todas as postagens

terça-feira, 4 de agosto de 2015

WINDOWS 7 – DESEMPENHO – ARQUIVOS DLL - MITO OU VERDADE?

A TRAGÉDIA DA VIDA É QUE FICAMOS VELHOS CEDO DEMAIS E SÁBIOS TARDE DEMAIS.

Computador lento, claudicante, que demora uma eternidade para iniciar e outro tanto para abrir aplicativos tem jeito? Sem dúvida: Basta instalar esse ou aquele programinha "milagroso" ou fazer alguns ajustes prodigiosos para a máquina voltar ao que era nos primeiros dias de uso. Mas será mesmo? Infelizmente, a resposta é não. Embora existam procedimentos capazes de melhorar o desempenho do sistema e suítes de manutenção que cumprem o que promete, é preciso saber separar o joio do trigo para não ir buscar lã e voltar tosquiado. Por isso, veremos a seguir alguns exemplos de dicas populares que, além de não surtirem o efeito desejado, podem tornar a emenda pior do que o soneto.

Costuma-se dizer que, quando um aplicativo é encerrado, os arquivos DLL que ele utiliza permanecem carregados na memória, diante da possibilidade de o usuário tornar a abrir o programa mais adiante, e que, com o passar do tempo, resulta num desperdício significativo de memória. Então, a solução consiste abrir o programa de configuração do Registro (ou regedit, para os mais íntimos), navegar até HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\ CurrentVersion\Explorer, adicionar o valor DWORD "AlwaysUnloadDLL" e configurá-lo para 1 (um), de maneira a forçar a remoção das DLLs e liberar espaço na memória.

Antes de prosseguir, vale lembrar que a sigla "DLL" (de Dynamic Link Library) remete a uma solução mediante a qual a maioria das funções utilizadas pelos aplicativos não é codificada no corpo de cada programa, mas sim armazenada em "bibliotecas" pré-compiladas e compartilhadas pelos executáveis, dando origem a arquivos menores e mais fáceis de atualizar. Para gerar o executável, o programador informa ao compilador a localização dessas bibliotecas e combina o código das funções com o do programa propriamente dito.

Observação: No alvorecer da computação, um programa era constituído apenas pelo executável, que continha todas as instruções necessárias ao seu funcionamento. Mais adiante, com a adoção generalizada da interface gráfica e o aumento de tamanho dos softwares, a simples divisão de um aplicativo em múltiplos executáveis deixou de ser uma solução viável, já que os respectivos códigos não podiam ser compartilhados.

Numa analogia rudimentar, as DLLs estariam para o para o software assim como os drivers para o hardware: enquanto estes últimos fazem uma “ponte” entre os dispositivos e o SO, as primeiras fazem o mesmo em relação ao sistema e aplicativos. Toda DLL tem sua função específica: algumas tratam da entrada e saída de arquivos no disco (salvar, abrir etc.), outras cuidam do desenho das janelas na tela ou do tráfego de internet, e assim por diante. De certa forma, o próprio Windows é uma vasta coleção DLLs, já que sua função precípua (como a de qualquer SO) é garantir que as demais aplicações funcionem sem que tenham de "se preocupar com os detalhes de suas tarefas rotineiras". O kernel32.dll, por exemplo, é encarregado de salvar arquivos e gerenciar o uso da memória RAM, enquanto o user32.dll gerencia a área de transferência do sistema e cuida dos menus exibidos na tela, do papel de parede e do ponteiro do mouse. As DLLs podem ter diversas versões, e um software compilado para operar com uma delas nem sempre funciona corretamente com uma versão mais nova, mais antiga, ou mesmo de idioma diferente. Embora os desenvolvedores incluam em seus programas de instalação todas as DLLs necessárias ao aplicativo – e elas possuam informações sobre suas versões, de maneira a prevenir que as mais antigas sobrescrevam as mais recentes –, sempre existe a possibilidade de programas que rodavam sem problemas passarem a apresentar comportamento errático ou mesmo deixar de funcionar.

Voltando à vaca fria, a dica retrocitada funciona ─ ao menos no que diz respeito a liberar espaço na memória ─, mas daí a otimizar o desempenho do PC já é outra história, pois as bibliotecas terão de ser recarregadas a partir do HD quando algum aplicativo precisar delas, e como o HD é milhares de vezes mais lento que a RAM, a conclusão é óbvia. Ainda assim, a reconfiguração sugerida não causa malefício algum, e em determinadas situações pode até proporcionar resultados positivos. Implementá-la, ou não, fica a critério de cada um.

Abraços e até mais ler.

terça-feira, 31 de janeiro de 2012

Não confunda...

... a fragata do capitão com a gravata do cafetão (risos).
No ambiente Windows, o termo biblioteca remete tradicionalmente aos arquivos DLL (para mais detalhe, clique aqui), mas, no Seven, designa também um implemento que permite organizar melhor – e localizar mais facilmente – os arquivos que acessamos com maior frequência.
Por padrão, as bibliotecas oferecidas pelo sistema são Documentos, Imagens,  Musica e Vídeos (para acessá-las, clique em Computador / Bibliotecas), mas você pode criar outras dando um clique direito numa biblioteca qualquer, selecionando Propriedades e clicando em Incluir uma pasta.

Observação: Além de facilitar o acesso a suas pastas-padrão, esse recurso inovador permite criar pastas "virtuais" e organizar arquivos acessados com maior frequência sem deslocá-los "fisicamente" de suas posições originais.

Para quem mantém “toneladas” de fotos no HD, o melhor é recorrer à Galeria de Fotos do Windows Live (saiba mais em http://explore.live.com/windows-live-photo-gallery); já para quem guarda e-mails antigos como esquilos armazenam avelãs, o Live Mail permite separar as mensagens por assuntos, distribuí-las em pastinhas com o auxílio de filtros e regras predefinidas, e muito mais (veja detalhes em http://explore.live.com/windows-live-mail).
Um ótimo dia a todos e até a próxima, se Deus quiser.  

quarta-feira, 26 de outubro de 2011

De volta às DLLs

Programas” são conjuntos de instruções (em linguagem de máquina) que permitem ao usuário interagir com o computador. O sistema operacional também é um programa, embora funcione como uma espécie de “software-mãe”, dando suporte a todos os demais aplicativos. Nos primórdios da computação, um programa era constituído apenas pelo executável e continha todas as instruções necessárias ao seu funcionamento, mas o advento das interfaces gráficas e o aumento de tamanho dos softwares fizeram com que a simples divisão dos aplicativos em múltiplos executáveis deixasse de ser eficaz (até porque os respectivos códigos não podem ser compartilhados). A sigla “DLL” (de Dynamic Link Library) remete a uma solução desenvolvida pela Microsoft – e incorporada ao ambiente Windows – onde a maioria das funções utilizadas pelos aplicativos não é codificada no corpo de cada programa, mas sim armazenada em “bibliotecas” pré-compiladas e compartilhada pelos executáveis. Isso resulta em arquivos menores e mais fáceis de atualizar – para gerar o executável, o programador informa ao compilador a localização dessas bibliotecas, e este combina o código das funções com o código do programa propriamente dito.
Numa analogia rudimentar e não muito exata, as DLLs estão para o para o software como os drivers estão para o hardware: enquanto estes últimos fazem uma “ponte” entre os dispositivos e o SO, as DLLs fazem o mesmo em relação ao sistema e os aplicativos. Toda DLL tem sua função específica: enquanto algumas tratam da entrada e saída de arquivos no disco (salvar, abrir etc.), outras cuidam do desenho das janelas na tela ou do tráfego de internet, e assim por diante.
A famosa API do Windows (Application Programming Interface) é, em grande parte, baseada neste tipo de arquivo - e nela que estão predefinidas as informações de como devem ser desenhadas as barras de rolagem, os botões e caixas de diálogos, por exemplo, dando menos trabalho aos programadores e promovendo a padronização das interfaces dos aplicativos. De certa forma, o próprio Windows é uma vasta coleção DLLs, já que sua função precípua (como a de qualquer SO) é garantir que as demais aplicações funcionem sem que tenham de “se preocupar com os detalhes de suas tarefas rotineiras”. O kernel32.dll, por exemplo, é encarregado de salvar arquivos e gerenciar o uso da memória RAM, enquanto o user32.dll gerencia a área de transferência do sistema e cuida dos menus exibidos na tela, do papel de parede e do ponteiro do mouse.
As DLLs podem ter diversas versões, e softwares compilados para operar com uma delas nem sempre funcionam corretamente com outra mais nova, mais antiga, ou mesmo de idioma diferente. Embora os desenvolvedores incluam em seus programas de instalação todas as DLLs necessárias ao aplicativo – e elas possuam informações sobre suas versões, visando prevenir que as mais antigas sobrescrevam as mais recentes –, sempre existe a possibilidade de programas que rodavam sem problemas passarem a apresentar comportamento errático ou mesmo deixarem de funcionar.
O XP conta com uma ferramenta para verificação de integridades dos arquivos do sistema; para convocá-la, clique em Iniciar > Executar, digite “sigverif.exe” (sem as aspas), pressione o botão “OK” e, na tela seguinte, clique no botão “Iniciar” e aguarde até que o “Verificador de Assinatura de Arquivo” apresente seu relatório. Para tentar solucionar problemas com DLLs corrompidas ou ausentes, visite o site http://www.dll-files.com/.
Do ponto de vista da segurança, o problema ocorre quando os programadores não tomam medidas para conferir se as bibliotecas carregadas são as originais (a Microsoft disponibiliza uma ferramenta paliativa que permite ajustar este comportamento, tanto no sistema quanto para cada aplicação; saiba mais em http://support.microsoft.com/kb/2264107). Uma brecha antiga – que já vem sendo discutida há mais de uma década, mas que continua sendo amplamente explorada – permite que DLLs “legítimas” sejam substituídas por versões maliciosas. Para tanto, basta fazer com que o arquivo modificado seja inserido na mesma pasta do original – ou, melhor ainda, que o substitua. Digamos que um programa de áudio precise de determinada DLL, e que alguém acrescente a ela um código malicioso e a distribua através do KaZaA ou de outro programinha de compartilhamento de arquivos (P2P). Quando a DLL em questão for requisitada, o Windows pode ser “enganado” e levado executar a versão contaminada.
Resguardadas as devidas proporções, isso vale também para as famosas vulnerabilidades dos arquivos ActiveX do IE – que, de certa forma, também são DLLs –, mas vamos deixar esse assunto para outra hora.
Um ótimo dia a todos e até a próxima.

segunda-feira, 4 de abril de 2011

DLLs

Se você utiliza o Windows há algum tempo, provavelmente já teve o dissabor de receber mensagens de erro do tipo “Este programa causou um erro na 'nome estranho'.DLL e será fechado”, por exemplo, e sido forçado reiniciar o computador para contornar o problema. No entanto, pouca gente sabe o que são esses enigmáticos arquivos DLL, de modo que eu resolvi abordá-los nesta postagem.

Para entender isso melhor, é preciso ter em mente que os “programas” são conjuntos de instruções, em linguagem de máquina, que permitem ao usuário operar o computador. O sistema operacional também é um programa, mas funciona como uma espécie de “software-mãe”, que dá suporte a todos os demais aplicativos.
Nos primórdios da computação, os aplicativos eram constituídos por arquivos executáveis que continham todas as instruções necessárias ao seu funcionamento. No entanto, com a adoção generalizada da interface gráfica e o aumento do tamanho dos softwares, sua simples divisão em múltiplos executáveis deixou de ser eficiente (até porque seus respectivos códigos não podiam ser compartilhados).
Diante disso, os engenheiros da Microsoft criaram as DLLs (Dynamic Link Library), ou seja,“bibliotecas dinâmicas” que permitem aos programadores tirar vantagem da "linkagem dinâmica", onde o código das funções reside numa biblioteca pré-compilada e compartilhada por vários executáveis, gerando arquivos menores e mais fáceis de atualizar.
Numa analogia elementar e tecnicamente inexata, mas que ajuda a entender melhor o assunto, as DLLs estão para o para o software como os drivers estão para os componentes físicos do computador. Em outras palavras, se os drivers fazem uma “ponte” entre o hardware e o SO, as DLLs fazem o mesmo em relação ao SO e os aplicativos, sendo responsáveis por exibir as janelas dos programas, criar sons, conectar o computador à Internet, salvar e carregar arquivos, e por aí vai.
De certa forma, o próprio Windows é uma vasta coleção DLLs, já que sua função precípua (como a de qualquer SO) é garantir que as demais aplicações funcionem sem que tenham de “se preocupar com os detalhes de suas tarefas rotineiras”. (O kernel32.dll, por exemplo, é encarregado de salvar arquivos e gerenciar o uso da memória RAM, enquanto o user32.dll gerencia a área de transferência do sistema e cuida dos menus exibidos na tela, do papel de parede e do ponteiro do mouse).
As DLLs podem ter diversas versões, e aplicativos compilados para operar com uma delas podem não funcionar corretamente com outra mais nova, mais antiga, ou de idioma diferente. Ainda que elas incluam instruções para que somente as mais recentes sobrescrevam as antigas, algumas atualizações podem resultar em comportamento errático ou mesmo inviabilizar o funcionamento de determinados programas.
As versões 9x/ME do Windows eram bem mais susceptíveis ao "inferno das DLLs" do que as mais recentes, mas não custa lembrar que o XP possui uma ferramenta para verificação de integridades dos arquivos do sistema – para convocá-la clique em Iniciar > Executar, digite "sigverif.exe" (sem as aspas) e pressione o botão "OK"; no quadro que se abre em seguida, clique no botão "Iniciar" e aguarde até que o "Verificador de Assinatura de Arquivo" apresente seu relatório.
Outra boa opção para tentar solucionar problemas com DLLs corrompidas ou ausentes é visitar o site http://www.dll-files.com/.
Bom dia a todos e até mais ler.