Pe vremea Windows-ului pe 16 biți, multe componente de sistem erau redistribuibile, ceea ce înseamnă că programele care utilizau acele componente puteau include o copie a acelor componente de sistem și le puteau instala în sistem ca parte a programului de instalare.
Instrucțiunile pentru instalarea componentelor de sistem erau că, dacă programul de instalare găsește deja o copie a componentei de sistem în sistemul de operare, atunci ar trebui să compare numărul versiunii fișierului existent cu numărul versiunii fișierului instalat și apoi să suprascrie fișierul numai dacă fișierul instalat are un număr de versiune mai mare.
Dacă fișierul existent are un număr de versiune mai mare, atunci acesta ar trebui lăsat neschimbat.
Această regulă se bazează pe faptul că Windows menține compatibilitatea cu versiunile anterioare, astfel încât versiunea mai nouă funcționează chiar dacă este utilizată de un program mai vechi.
Acest lucru nu înseamnă că instalatorii au urmat de fapt aceste instrucțiuni.
Era obișnuit ca instalatorii de programe să suprascrie orice fișier care le stătea în cale, indiferent de numărul versiunii fișierului existent.
Când aceste programe de instalare rulau pe Windows 95, acestea înlocuiau versiunile Windows 95 ale componentelor cu versiunile Windows 3.1.
Vă puteți imagina cât de mare a fost dezastrul cauzat de acest lucru restului sistemului.
Windows 95 a rezolvat această problemă păstrând o copie de rezervă a fișierelor suprascrise frecvent într-un director ascuns C:\Windows\SYSBCKUP.
Ori de câte ori un program de instalare termina, Windows verifica dacă vreunul dintre aceste fișiere suprascrise frecvent fusese într-adevăr suprascris.
Dacă da, și înlocuirea are un număr de versiune mai mare decât cel din directorul SYSBCKUP, atunci înlocuirea era copiată în directorul SYSBCKUP pentru păstrare în siguranță.
În schimb, dacă înlocuirea are un număr de versiune mai mic decât cel din directorul SYSBCKUP, atunci copia din SYSBCKUP era copiată peste înlocuirea falsă.
Practic, Windows 95 aștepta ca fiecare program de instalare să se termine, apoi se întorcea și îi verifica funcționarea, corectând orice greșeli făcute de program.
Un design anterior bloca pur și simplu încercarea programului de instalare de a suprascrie fișierul, dar acest lucru a ajuns să creeze mai multe probleme.
Unele programe de instalare declarau că instalarea a fost un eșec și anulau procesul de instalare.
Altfel, afișau un mesaj de eroare utilizatorului și îl întrebau ce să facă în continuare. (Ca și cum utilizatorul știa ce să facă în continuare.)
Au existat chiar și programe de instalare care au luat măsuri și mai extreme și au spus:
„Bine, bine, nu pot suprascrie fișierul, așa că voi reporni sistemul și apoi voi suprascrie fișierul dintr-un fișier batch, vedeți dacă mă puteți opri.”
Redirecționarea scrierii către un fișier fictiv nu a funcționat deoarece unele programe de instalare aveau o etapă de validare în care verificau dacă fișierele de pe HDD au suma de control corectă, astfel încât să observe că încercarea lor de a suprascrie fișierul a eșuat și să genereze o eroare.
Cel mai bun mod de a funcționa a fost să lase instalatorul să suprascrie orice dorea și apoi să se întoarcă și să încerce să curețe mizeria.
Unele componente au rezolvat această problemă oferind propriul program de instalare pentru componentă și spunându-le celor care le-au instalat programul:
„Nu aveți voie să instalați direct aceste fișiere ale componentelor. În schimb, trebuie să rulați programul nostru de instalare personalizat. Da, acest lucru perturbă interfața utilizator a programului de instalare, dar autorii programului de instalare au demonstrat că nu puteți avea încredere să instalați fișierele singuri. Este vina voastră.”

Lasă un răspuns