WINSXS, que nhaca é essa?

Author Photo
9:11 am - 03 de fevereiro de 2009

Um felizardo amigo comprou há seis meses um notebook DELL XPS, um pequeno avião!! O que mais chama a atenção é o disco rígido, rígido de verdade, um SSD (solid state drive) de 64 Gbytes. Nem preciso falar da velocidade do disco, soberba. Mas 64 Gbytes até que não é tanto espaço assim. Após carregá-lo com diversos programas e arquivos e usá-lo por poucos meses o sinal de alerta ficou amarelo!! O espaço no disco estava acabando. Mas como se restavam muitos gigabytes meses atrás?? Usando um programa velhinho, mas ainda muito útil, o SPACEMONGER (escrevi sobre ele em 2007) , obtive um “mapa” de seu disco e descobri uma pasta gigante que sozinha ocupava mais de 5 Gbytes, uma tal de WINDOWSWINSXS.Na ocasião gastei poucos minutos investigando o que seria aquilo e me deparei com frases do tipo “é área interna do Windows e não deve ser apagada”. Como apagar arquivos dos outros nunca fez bem para mim (vide Não apague minha lixeira de jeito nenhum! ), falei para ele deixar quieto e fazer ele mesmo uma faxina das boas no seu disco. Assunto encerrado. E me esqueci disso até semana passada.

Um grande amigo me mandou um e-mail semana passada sugerindo um tema que segundo ele é “revoltante”. E lá veio a tal da pasta WINSXS de novo!! Ele pediu manter seu nome em sigilo mas me permitiu expor sua revolta.

No meu PC eu não quero essas coisas e me ofende profundamente não poder tirá-las. Causa-me horror existir-pela primeira vez – uma área no meu computador sobre a qual eu não sei o que acontece, apenas “que é melhor para mim”. E que consome uma pancada de disco, boa parte dele inutilmente segundo qualquer definição (por exemplo, uma DLL de um aplicativo que você desinstalou ou apagou). E que com certeza é uma das causas da lerdeza e consumo de memória assustadores do Vista e do Win2k8.

UAU!!!! Pegou pesado!!

Seu tom rude e áspero se justifica pelo fato de ter sido pego sem espaço em seu notebook de trabalho em um momento crítico!!Por causa destes fatos todos resolvi investigar um pouco mais o problema. Comecei pelo meu notebook. São duas partições, uma de 60 Gbytes para o sistema operacional e outra de 240 Gbytes para dados. Usando o velho SPACEMONGER fotografei minha pasta WINSXS.

[singlepic id=7768 w=320 h=240 float=]

Dos 58.5 Gb do disco, 23 Gb estão livres MAS só a pasta WINDOWSWINSXS ocupa 9.2 Gb (44400 arquivos) !!!!!!!!!! Fiquei estarrecido!!! Meu Windows é Vista Ultimate 64 bits SP1. Dá para perceber “visualmente” que é de longe a MAIOR PASTA do PC. Maior que ARQUIVOS DE PROGRAMAS e maior que WINDOWS (tirando a própria WINSXS). Resolvi olhar em um Windows Server 2008 Small Business e descobri a mesma pasta ocupando 7.0 Gb (36813 arquivos).

Não sou e nem pretendo ser especialista na arquitetura do Windows, mas tentei estudar um pouco o assunto para buscar alguma luz. Este seria um tema maravilhoso para conversar com Mark Russonovich , Microsoft Technical Fellow, este sim um MESTRE E GURU sobre o assunto…

Para meu espanto ao efetuar buscas, respostas, explicações no site da Microsoft, tanto no como não achei referências OFICIAIS ao tema. Achei somente dezenas de BLOGs técnicos e fóruns da MS nos quais também havia pessoas inconformadas com o “problema” (será que é problema-afinal todos são inocentes até prova em contrário, certo?).

Olhando nos XPs que tenho em volta (dois desktops e meu notebook antigo) a tal pasta WINSXS existe mas no pior caso ocupa apenas 34 Mbytes, bem mais palatável. Nas minhas leituras a respeito encontrei algumas explicações razoáveis para a “nhaca”, mas que não esgotam as dúvidas.

Nos primórdios da programação em Windows os desenvolvedores se encantaram com uma nova entidade que fora batizada de DLL-Dinamic Link Library. Era genial. Vários programas que poderiam compartilhar uma única biblioteca compilada de rotinas, que outrora precisariam estar repetidas em diversos programas diferentes. Melhor que isso. Bastaria mudar ou atualizar a DLL que TODOS os programas naquele PC beneficiar-se-iam da alteração. Mas isso tudo só escondia o que viria a ser o “DLL HELL”, ou seja, o INFERNO DAS DLLs. Quem já não passou pela situação de instalar um programa e este singelo ato ter feito outro programa que outrora funcionava deixar de funcionar direito?? Comum, né? Isso porque normalmente o WINDOWS guarda as DLLs da pasta WINDOWSSYSTEM32 e um programa que foi feito usando uma versão mais nova da DLL pode ser “quebrado” se outro programa (mesmo mais novo) instalar uma versão mais antiga da mesma DLL… já percebeu o imbróglio!! Este é o “inferno das DLLs”.

Com o surgimento do DOT NET FRAMEWORK como plataforma de desenvolvimento este problema foi atacado E RESOLVIDO de forma magistral. Cada programa pode ter a sua própria DLL, em sua pasta, sem necessidade de registrá-la (uma formalização da instalação da DLL no Windows), bastando copiar o programa e DLLs para instalá-lo e somente apagar a pasta para desinstalá-lo.

Mas isto que torna ainda mais inexplicável a nhaca do WINSXS, pois APARENTEMENTE esta incompreendida pasta serve para resolver o problema das diversas versões de objetos (incluindo DLLs) no sistema operacional. Veja a tela abaixo, com um pedaço da pasta WINSXS.

[singlepic id=7769 w=320 h=240 float=]

Veja que a mesma DLL está armazenada quatro vezes, quatro versões (ou builds) distintas. O fato de a Microsoft ter dedicado imensa energia com isso é louvável, pois o problema de versões de objetos era muito crítico. Mas porque somente na era de DOT NET 3.0 (mais de seis anos após o lançamento do DOT NET que ACABA COM O INFERNO DA DLL) que isso apareceu (veio com o Vista e W2008 Server)??

E sabem de outra coisa? Nunca mais achei no VISTA aquelas pastas que eram comuns no W2000, XP, W2003, que tinham nomes como $xxxxxx que eram para desinstalar atualizações do sistema operacional (cada elemento do Windows Update). Estas pastas podiam ser apagadas sem dó nem piedade e não causava mal nenhum esta ação (alguém já precisou desfazer alguma atualização?). Estas mesmas pastas não existem no VISTA e W2008. Será?? Tudo indica que estas pastas que antes podiam ser apagadas estão “escondidas” em WINSXS, sem forma clara de achá-las e limpá-las. O problema é que não se pode fazer nada nesta pasta sem “tomar a propriedade” (que tradução esquisita para- take ownership) e mesmo assim os nomes de subpastas e arquivos são “cifrados”, dificultando muito sua manutenção.

Eu posso estar cometendo uma grande injustiça por conta de meu conhecimento restrito do tema. Lembro que no próprio site da MS é muito difícil achar referências e documentação clara a respeito. Por isso apelo aos amigos do ForumPCs que já tenha tropeçado no mesmo assunto, caso tenham desvendado mais deste mistério, que dividam conosco e vamos aprender juntos. Alguém também se habilita a inspecionar sua pasta WINSXS para nos contar seu tamanho??

E para encerrar, mostro mais um pouco dos comentários revoltados, inconformados, ácidos e inteligentes de meu grande amigo. Não conhecesse eu a “figura”, juraria que tais comentários eram do meu colunista internacional favorito, o John Dvorak!!

Mas e o WINSXS? O que vão fazer a respeito? O Windows 7 também tem essa *COMPLETA DESGRAÇA* de WINSXS. Um jeito de mitigar a lambança seria:

? Suprir um utilitário para gerenciá-lo. (A falta disso beira o inacreditável)

? Documentar o monstro para que algum bom samaritano faça o tal utilitário em um projeto Open Source.

? Adicionar um ou mais itens ao “Disk Cleanup” para usuários leigos e criar um software de gerenciamento para usuários mais sofisticados.

Veja, esta área não só contém arquivos de utilidade duvidosa, como por exemplo, back-up de atualizações, como coisas indubitavelmente inúteis, como cópias (ou no mínimo referências) a DLLs de programas apagados.

===========================================================================

A RESPOSTA RECEBIDA DA MICROSOFT

Como falei antes eu encaminhei para a Microsoft formalmente a pergunta sobre a pasta WINSXS o Gerente de Produto Windows, responsável pelo VISTA no Brasil nos deu uma explicação :

“O Windows SXS (WINSXS) representa a instalação e a manutenção de estado de todos os componentes do sistema no computador. O diretório não ocupa tanto espaço quanto aparenta, na verdade, ele é um ?hard link? para os arquivos instalados em outras partes do sistema.

O WINSXS é importante pois, a partir dele, o Windows pode determinar informações importantes sobre o estado do sistema, como o que está instalado, ou disponível para ser instalado (componentes opcionais, sobre os mais recentes), quais versões e atualizações. Esta funcionalidade acrescida ao serviço oferece confiabilidade e desempenho. O diretório também permite manutenção offline.”

Ricardo Wagner, gerente de produto Windows da Microsoft Brasil

MAS NÃO PENSEM QUE ISSO RESOLVEU A QUESTÃO. A POLÊMICA VAI LONGE!!! Não fosse isso não teriam sido escritos mais de 150 comentários nesta discussão!!

===========================================================================

===========================================================================

PS : Hoje dia 03 de fevereiro de 2009 faz QUATRO ANOS (fevereiro de 2005) que comecei a participar e escrever aqui nesta deliciosa comunidade que é o FORUMPCs!! Tudo começou com

“Prisioneiros no exterior! Dá para acreditar ?? , um “causo” ainda atual, o primeiro entre tantos outros que vieram depois. Agradeço aos leitores por prestigiarem meu trabalho e participarem das animadas discussões que muitas vezes acontecem em resposta às minhas colunas!!!

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.