srijeda, 4. ožujka 2009.

winsxs mistery! VISTA (hrvatski)

uzeto: link

Uvod (Problem)
Imao sam jednu particiju rezervisanu za testiranja operativnih sistema, odlaganje slika virtuelnih mašina i sl. Tih 15GB odlučim popuniti Vista OS-om i to AMD64 verzijom. Nije me brinulo koliko
Vista zauzima RAM-a, sa 4GB to nije bio problem. Nisam ništa “tweak”-ao, želio sam uživati u svim čarima koje je vista nudila (Aero fazoni i sl.).

Jedna stvar me ipak zabrinula - zazuzeće prostora na disku. Od 15GB presotalo mi je samo 2GB. Provjerim Recycle Bin, isključim korištenje korpe za C:\, te provjerim Pagefile - Vista ga stavila na drugu particiju, isključim System Restore… ista stvar. Skinem jedan program za pregled direktorija/prikaz veličine i zapazim zabrinjavajuću stvar. Unutar “windows” direktorija postoji jedan drugi pod nazivom “winsxs” koji (u mom slučaju) zauzimao 8.5GB.

Pretražujući po internetu primjetio sam da se svi Vista korisnici žale na istu stvar a to je da im je ovaj folder prevelik, i to varira od ~5GB do ~8GB. Treba napomenuti da se ovaj direktorij “napuše” do 8GB nakon čiste instalacije i skidanja najnovijih update-a.

Čemu služi ovaj direktorij?
Uh, hu, huuu! WinSxS je skračenica od “Windows Side-by-Side“. U začecima Windows je imao problema sa dijeljenim “.dll” datotekama, gdje se dešavalo da jedan program pri deinstalaciji obriše, za njega nepotrebne, “.dll”-ove a koji su neophodni za ispravan rad drugog programa na računaru. Izdavanjem novijih verzija Windows-a stvar je sve bolje riješavana i stavljena pod kontrolu. “winsxs” direktorij kod WinXP-a iznosi svega ~50MB.

Vista nema i386 folder za keširanje datoteka, i korištenje “.ini” datoteka je prevaziđeno i umjesto toga se koriste XML katalozi sa detaljnim opisom čemu i za šta služi datoteka te za koju je platformu namjenjena.

Sa Vista OS-om, napravljen je korak dalje, a to je da se zasebno čuvaju različite verzije istih “.dll”-ova kako bi se povečala kompatibilnost i stabilnost. Nadalje povečana je sigurnost u odnos na WinXP i Server 2003. Sada jedini vlasnik/grupa nad ovim direktorijem je SID pod nazivom “Trusted Installer”, u prevodu ovo znači da (u normalnim okolnostima) ni administrator ne može brisati/mijenjati datoteke, direktorije i sl.

Ako pogledate unutar ovog foldera, primjetit ćete mnogo foldera istovjetnog naziva sa razlikom u zadnjih osam karaktera koji su najčešće nasumični nizovi brojeva i slova.

Šta možemo uraditi?

a) Pazit koliko instaliramo (koja bolest)
Očajnički sam tražio odobrenje i opravdanje da počnem brisati sumnjive datoteke i direktorije iz winsxs-a, ali nisa mogao nać. Za sada sve što ćete nači na internetu po forumima je da se držite podalje od ovog direktorija i da ga ne dirate jer bi pojedine aplikacije a i sam Windows mogli kolapsirati. Kod Vista SP1, brisanje pojedinih datoteka iz ovog direktorija ili njegovo izmještanje izaziva BSoD. Jer mnoge sistemske datoteke unutar %windows%\system32 direktorija su samo “hard link*”-ovane na one koji se nalaze unutar %windows%\winsxs direktorija, pa njegovo izmještanje ili brisanje pojedinih datoteka automatski prekida i veze ka njemu.

Najbolje bi bilo da vaš Vista OS pogurate “dohranite” diskom večeg kapaciteta i zaboravite na ovaj direktorij. Dalje potrebno je da korigujete svoje navike, ako ste od onih ljudi koji vole eksperimentisati programima/aplikacijama - winsxs će zasigurno da se brzo puni. Dakle što manje instalacija i deinstalacija!

*hard link - jedna od mogućnosti datotetičnih sistema koja omogučava kreiranje više (naziva) datoteka koji ustvari upućuju na jednu datoteku.

b) VSP1CLN.EXE,

The only way to safely reduce the size of the WinSxS folder is to reduce the set of possible actions that the system can take – the easiest way to do that is to remove the packages that installed the components in the first place. This can be done by uninstalling superseded versions of packages that are on your system. Service Pack 1 contains a binary called VSP1CLN.EXE, a tool that will make the Service Pack package permanent (not removable) on your system, and remove the RTM versions of all superseded components. This can only be done because by making the Service Pack permanent we can guarantee that we won’t ever need the RTM versions.