Proporcjonalna czcionka Temat: Re: katalog 'WINSXS' ?
Autor: Piotr Palusiński Data: 10 Lut
Odwołania: 1
In news:jh2g3o$ani$1@inews.gazeta.pl, *AA* <i7i@op.pl> typed:
> W w7 w kat. gł. WINDOWS jest taki podkatalog WINSXS 'waży' ponad 7GB > ....... co to za katalog i czy jest konieczny ?
Cytat z wypowiedzi Roberta Winklera: Katalog WinSxS jest bardzo ważny dla systemu operacyjnego. Przez długie lata wszyskie systemy borykały się z poważnym problemem tak zwanym DLL Hell. Projektanci systemów przyjeli, iż biblioteki używane przez kilka programów powiny byż umieszczane w katalogu /Windows/System32 dla systemów Windows czy też /lib, /usr/lib dla systemów unix i jego pochodnych, np. linux Miało to w teorii w znacznym stopniu zaoszędzić miejsce na dysku twardym i pamięć operacyjną (jedna biblioteka uzytkowana przez wiele programów ładowana była by tylko raz do pamiecu, do obszary systemu operacyjnego, i uzytkowana przez wszystkie programy). Teoria świetna, życie pokazało jednak jej ciemne strony. Bardzo często okazywalo sie iz kilka programów wymagało do pracy tej samej bibloteki, ale różnej jej wersji a co gorsza wersje te nie były między sobą zgodne co w rezultacie powodowało konflikty i dziwne błędy, np. dostepu do niezainicjowanych obszarów pamiec operacyjnej. Przez ostatnie kilkanaście lat programisciu próbowali w różny sposób rozwiązac ten problem przykładowo tworząc dedykowane katalogi użytkowane tylko przez programu jednek firmy (np: Program Files\Common Files) albo zminiajac nazwy plików przy dystrybucji kolejnej wersji danej biblioteki. Od wersji XP systemu rodziny windows, programiści otrzymali do swojej dyspozycji nowy mechanizm w ramach systemu operacyjnego pozwalajacy na wielokrotną instalacje i rejestracje jednej biblioteki w różnych wersjach mowa tu wlaśnie o katalogu WinSxS, sercu mechanizmu Side-by-side Od tego momenty program mógł zadecydować z kótrej z wersji danej biblioteki bedzie korzystał Niestety sam Windows XP, oraz otaczajace go programu w bardzo niewielkim stopniu korzystają z tego mechanizmu Dopiero Windows Vista i jego serwerowa odmiana czyli Windows 2008 Server w pełni korzystają z tego mechanizmu. Poszły nawet dalej i dla tych systemów katalog WinSxS jes ważniejszy niż Windows32 Systemy te korzystają ze specjalnej właściwosci systemu plików NTFS nie dostepnej na partycjach FAT mianowicie z Hard Lików (nie mylić ze skrótami czy też z Directory Junctions) funkcji pozwalajacej jeden obszar na dysku przedstawic jako dwa rózne pliki System Windows Vista mógłby nie posiadać katalogu Windows32 lecz aby zapewnić zgodność ze starymi programami, napisanych przez programisót zbyt leniwych aby korzystać z mechanizmów Side-by-side abo napisanych w ubiegłum stuleciu, kiedy mechanizm ten nie był jeszcze dostępny, pozostawiono ten katalog, aby aby nie zajmować podwójnie miejsca na dysku zawiera on tak naprawde jedynie linki do najnowszych wersji bibliotek znajdujacych się w WinSxS PS. Identyczną role jak dla systemu operacyjnego i Side-by-side na folder WinSxS, dla środowiska Microsoft .NET Framework pełni katalog Windows/assembly. Folder winsxs można zmniejszyć ale tylko za pomocą systemowych narzędzi. Instalując Service Pack 1 do systemu został dodany nowy program %windir%\system32\vsp1cln.exe służy on do usunięcia plików systemowych w wersji wcześniejszej niż te jakie wchodziły w skład SP1 Po instalacji Service Pack 2 pojawił sie jego nowszy odpowiednik %windir%\system32\compcln.exe Uruchomienie jednego z tych poleceń ma jednak poważne konsekwencje z systemu zostaną usunięte pliku wymagane do deinstalacji Service Pack-ów, oraz może przestać działać cześć programów, korzystających z mechanizmu Side-by-Side które nie zostały uaktualnione po aktualizacji i dalej korzystają ze starych wersji bibliotek.
Piotr Palusiński [Microsoft MVP - Windows Expert-Consumer] https://mvp.support.microsoft.com/profile/Piotr.Palusinski http://answers.microsoft.com/pl-pl/default.aspx Nigdy nie kłóć się z głupcem, bo ludzie mogą nie dostrzec różnicy