ezio
27-03-2009, 21:57
In Vista, come in Windows 7, è presente una cartella winsxs di notevoli dimensioni, che va man mano espandendosi nel tempo.
Tale cartella non va eliminata, modificata, spostata.
- A cosa serve?
Le applicazioni sono sviluppate appoggiandosi a specifiche componenti del sistema operativo, per lo più tramite l'utilizzo di appositi file con estensione ".dll"; versioni differenti di questi file potrebbero comprometterne la stabilità o il corretto caricamento/funzionamento.
Su Vista e 7 si è lavorato molto alla modularità e versatilità del sistema operativo, la cartella winsxs ne è un esempio.
Windows raccoglie in questa cartella tutte le versioni delle componenti (o dll) richiesti in fase d'installazione dai software e dagli hotfix di Microsoft.
In questo modo sono preservati i file principali del sistema operativo (che non vengono sovrascritti), e allo stesso tempo è garantita la corretta compatibilità dell'applicazione le cui chiamate ai file .dll (o altra estensione) verranno automaticamente reindirizzate nel rispettivo percorso tramite winsxs.
Anche le routine caricate dagli aggiornamenti Microsoft usufruiscono di questa cartella per individuare lo stato del sistema, eventuali file da aggiornare o possibili conflitti con gli update stessi (vedi i service pack che, in caso di qualche driver o software con noti problemi di compatibilità installati sul sistema, non vengono proposti tramite Windows Update).
In alcuni casi, la cancellazione del contenuto di Winsxs provoca l'errore 80070002 durante l'utilizzo di Windows Update impedendo l'aggiornamento del sistema.
- Come mai è così grande?
In realtà, è molto più piccola di quanto appaia.
Può capitare che più applicazioni richiedano la stessa versione della stessa componente o dll. In questo caso, anzichè creare un doppione, Windows è in grado di assegnare un "hard link", un "puntatore" che permetta all'applicazione di caricare il file corretto.
Supponiamo di avere due software, A e B. Entrambi richiedono la dll X. Verranno creati due puntatori in winsxs, uno per ogni applicazione, che fanno riferimento al file X.
Puntatori che ovviamente avranno una dimensione in termini di spazio occupato notevolmente inferiore al file originario.
Bene, ma perchè winsxs è così grande?
Perchè Windows Explorer, come qualsiasi altra shell e come le stesse applicazioni A e B, "vede" il puntatore come se fosse il file (X) vero e proprio.
Controllando la dimensione di winsxs, quindi, lo spazio occupato da X che appare a video sarà moltiplicato per il numero di puntatori creati nella cartella stessa.
In linea di massima, per installazioni normali la dimensione reale si aggira sui 400mb.
- Posso spostarla in un altra partizione o disco?
In rete si trova qualche guida, ma Vista (e di conseguenza Win7) supporta la gestione di winsxs solo nella partizione principale su cui è stato installato.
----
Fonti msdn:
- Link 1 (http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx)
- Link 2 (http://blogs.msdn.com/e7/archive/2008/11/19/disk-space.aspx)
Tale cartella non va eliminata, modificata, spostata.
- A cosa serve?
Le applicazioni sono sviluppate appoggiandosi a specifiche componenti del sistema operativo, per lo più tramite l'utilizzo di appositi file con estensione ".dll"; versioni differenti di questi file potrebbero comprometterne la stabilità o il corretto caricamento/funzionamento.
Su Vista e 7 si è lavorato molto alla modularità e versatilità del sistema operativo, la cartella winsxs ne è un esempio.
Windows raccoglie in questa cartella tutte le versioni delle componenti (o dll) richiesti in fase d'installazione dai software e dagli hotfix di Microsoft.
In questo modo sono preservati i file principali del sistema operativo (che non vengono sovrascritti), e allo stesso tempo è garantita la corretta compatibilità dell'applicazione le cui chiamate ai file .dll (o altra estensione) verranno automaticamente reindirizzate nel rispettivo percorso tramite winsxs.
Anche le routine caricate dagli aggiornamenti Microsoft usufruiscono di questa cartella per individuare lo stato del sistema, eventuali file da aggiornare o possibili conflitti con gli update stessi (vedi i service pack che, in caso di qualche driver o software con noti problemi di compatibilità installati sul sistema, non vengono proposti tramite Windows Update).
In alcuni casi, la cancellazione del contenuto di Winsxs provoca l'errore 80070002 durante l'utilizzo di Windows Update impedendo l'aggiornamento del sistema.
- Come mai è così grande?
In realtà, è molto più piccola di quanto appaia.
Può capitare che più applicazioni richiedano la stessa versione della stessa componente o dll. In questo caso, anzichè creare un doppione, Windows è in grado di assegnare un "hard link", un "puntatore" che permetta all'applicazione di caricare il file corretto.
Supponiamo di avere due software, A e B. Entrambi richiedono la dll X. Verranno creati due puntatori in winsxs, uno per ogni applicazione, che fanno riferimento al file X.
Puntatori che ovviamente avranno una dimensione in termini di spazio occupato notevolmente inferiore al file originario.
Bene, ma perchè winsxs è così grande?
Perchè Windows Explorer, come qualsiasi altra shell e come le stesse applicazioni A e B, "vede" il puntatore come se fosse il file (X) vero e proprio.
Controllando la dimensione di winsxs, quindi, lo spazio occupato da X che appare a video sarà moltiplicato per il numero di puntatori creati nella cartella stessa.
In linea di massima, per installazioni normali la dimensione reale si aggira sui 400mb.
- Posso spostarla in un altra partizione o disco?
In rete si trova qualche guida, ma Vista (e di conseguenza Win7) supporta la gestione di winsxs solo nella partizione principale su cui è stato installato.
----
Fonti msdn:
- Link 1 (http://blogs.technet.com/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx)
- Link 2 (http://blogs.msdn.com/e7/archive/2008/11/19/disk-space.aspx)