Některé aplikace nepoběží na Windows 2000. Proč?
( článek, 4. 5. 1999 )
Co můžete očekávat od svých osvědčených aplikací pod Windows 2000?
Abychom pochopili, kde mohou vězet příčiny potíží, budeme potřebovat poněkud hlubší, "rentgenový" vhled do problematiky. Pojďme si tedy na to posvítit.
Windows 2000 používá stejné aplikační rozhraní (API), jako Windows NT a Windows 98, alespoň pro základní systémové služby. Standardně naprogramovaná aplikace pro Win32 (tak se toto rozhraní jmenuje) by měla pod novým systémem správně pracovat.
Abychom byli úplně přesní, musíme uznat, že rozhraní Win32 nikdy nebylo úplně jednotné, protože oba hlavní operační systémy, které ho podporují - NT i 98 - dodnes nabízí některé vlastnosti exkluzivně. Například podporu více procesorů umí jenom NT a na druhé straně USB zařízení připojíte jenom k Windows 98. Windows 2000 by měl být tím vytouženým ideálem slučujícím nejlepší vlastnosti z obou světů. Skutečně: Více procesorů bude podporovat lépe, než Windows NT 4.0 a USB bude podporovat lépe, než Windows 98. Přesto však nemusíte svoji oblíbenou aplikaci spustit. Proč?
Odpověď tkví ve větě, kterou jste četli nahoře v prvním odstavci: "Standardně naprogramovaná aplikace..." Skutečně, fungující program ještě nemusí být program kvalitně napsaný, to my programátoři víme velice dobře...
Kolik jsme si při vytváření aplikací dovolili zkratek, ošizení, fint, zjednodušení práce! A kolik nám systém Windows NT umožnil, o Windows 98 nemluvě! Není každá havárie vašeho systému důvodem k nadávání na Billa Gatese! (Ale že se přitom člověku uleví, nemám pravdu?)
Windows 2000 je zkrátka přísnější. Provětrá temné kouty disku a paměti a mnohé kostlivce vytáhne na denní světlo. Představte si, že v den D spadne na vašem PC s Windows 98 aplikace A, která řadu dní spolehlivě pracovala. Uvědomujete si, že chybu mohla klidně způsobit aplikace B, kterou jste použil(a) naposledy včera? Po upgrade na Windows 2000 se chování počítače změní. Jednoduše se vám nepodaří spustit aplikaci B. Možná.
Podívejme se na několik možných příčin nekompatibility staršího programového vybavení s Windows 2000:
Přísnější bezpečnostní politika
Souborový systém Windows NT a Windows 2000 - NTFS ("NT File System") - umožňuje přístup ke každému souboru jenom těm aplikacím, které mají oprávnění. Aplikace standardně získá oprávnění od uživatele, který ji spustí. Některé, zvláště serverové, aplikace mají vlastní uživatelské účty.
Windows NT 4.0 po instalaci nadefinuje velmi benevolentní přístupová práva v systémových adresářích. Je běžné, že administrátoři ihned po instalaci systému podle určitých doporučení tato práva "zpřísňují". Přitom si však musí dát pozor, aby aplikacím ponechali přístup k souborům, které pro svoji práci potřebují. Při špatném nastavení práv lze dokonce zabránit systému nastartovat!
Snad již tušíte, v čem může být potíž. Skutečně, Windows 2000 standardně nastavují souborová práva přísněji. To je v zásadě správné, ale může to způsobit nefunkčnost těch programů, vyvinutých původně pro Windows 98 nebo NT, které počítají s benevolentnějšími právy.
Řešení tohoto problému není obtížné - spočívá opět v pečlivém nastavení přístupových práv k souborům. Jde ovšem o nouzovou opravu - definitivní náprava je na tvůrcích aplikací.
Ochrana systémových souborů
Aplikace pro Windows jsou tradičně značně neotesané a mají tendenci chovat se v systému nikoliv jako slušně vychovaní hosté, ale jako domácí páni. Poměrně běžným se stalo i tak hrubé chování, jako je přepisování systémových knihoven DLL vlastními verzemi. Na omluvu nevychovaných programátorů lze uvést snad jen to, že mají špatný vzor v aplikacích producenta Windows, Microsoftu, které se nechovají o nic lépe. Přepisování sdílených knihoven funkcí šetří místo na disku, ale vede k situaci příznačně zvané "peklo DLL" ("DLL hell"), kdy nesmírně záleží i na pořadí instalace různých aplikací a kdy snad žádné dva Windows systémy nejsou už po instalaci několika málo programů totožné.
Nový domácí pán vašeho počítače, Windows 2000, je konečně přísnější a takové chování nedovolí. Adresář System32 je pod ochranou bezpečnostní agentury, která každé DLL nekompromisně legitimuje. Dokonce je schopna poškozený (z hlediska aplikace ovšem třeba jenom inovovaný) soubor nahradit původním. Aplikace mají nyní přesně definovaná místa, kam umístí svá DLL - do vlastních adresářů.
To dnes mnohé bohužel nedovedou. A nepodaří se vám je nainstalovat.
Důslednější správa paměti
Aplikace pro Windows 98 nezřídka při podrobném pohledu analytickými nástroji připomínají podivné zmetky, které spíše náhodou fungují. Nejsou to příliš silná slova! Smutně v tomto ohledu prosluly např. některé verze Netscape Navigatoru. Opět však platí, že nedostatky v dosavadních systémech řady Windows takové chování tolerují, ba podporují.
Konkrétním příkladem chyby, kterou systém aplikaci povolí, je špatná práce s pamětí. Aplikace požaduje od operačního systému potřebné množství paměti a systém jí vyhoví, může-li. Nemá-li dost paměti, vyhovět by neměl, ale... někdy rozdává i z toho, co nemá. Přesněji řečeno: Paměť sice oficiálně neposkytne, ale umožní do ní zapisovat. Nekvalitní aplikace si nevšimne červeného světla a jede dál. Kupodivu nemusí narazit ona, ale třeba některá úplně jiná. Řekněme to odborně: Správa haldy paměti ("heap management") ve Windows umožňuje přetečení při zápisu a tedy vznik vadné ("corrupted") oblasti paměti.
Windows 2000 to neumožňuje. Špatně naprogramované aplikace tedy pod ním havarují.
Používání nedokumentovaných funkcí systému
Některé klíčové programy, velmi často např. antiviry, používají funkce Win32, které sice v dnešních Windows fungují, ale nejsou popsány v dokumentaci a dodavatel systému neručí za jejich funkčnost v dalších verzích. A skutečně - dobře udělal, že neručil! Ve Windows 2000 nefungují.
Řešení? Nová verze nekompatibilního programu.
Nekompatibilní ovladače
To je stará písnička, tentokrát o hardware. Obecně platí, že ve Windows 2000 byste pokud možno měli najít přiložený ovladač k vašemu zařízení. Nebo použít ovladač pro Windows 2000 dodaný výrobcem.
Nebo - a pozor, tady je vidět, že se v této oblasti Microsoft opravdu snaží - můžete zkusit ovladač pro Windows 98. Pokud tento ovladač používá moderní specifikaci WDM ("Windows Driver Model"), měl by fungovat jak pod Windows 98, tak pod Windows 2000. (Za pokus to stojí, co říkáte?) Poslední možnost, paradoxně asi méně nadějná, je zkusit ovladač pro Windows NT 4.0. Ovladače pro Windows 95 ani zkoušet nemusíte.
Řešení? Webová stránka výrobce zařízení, stejně jako služba Windows Update, vám při troše štěstí mohou doručit správný ovladač.
Kontrola verze systému při instalaci
Některé aplikace se při instalaci táží na verzi systému a vtipně vyžadují např. systém verze "NT 4.0". Ubohému programu nic nebrání běžet pod Windows 2000 (vzhledem k aplikaci se tváří jako verze "5.něco"), ale není dostatečně inteligentní, aby to pochopil.
Jak si pomoci?
Probrali jsme několik hrozících příčin nekompatibility a jistě to nejsou všechny. Představitelé Microsoftu říkají, že kompatibilita pro ně při vývoji Windows 2000 byla velmi důležitá, ... ale až po spolehlivosti. Volali jsme po tom - máme, co jsme chtěli. Dovolím si předpovědět, že aplikací nepracujících s Windows 2000 bude asi více, než si v této chvíli myslíme.
Přesto mám ze strategie Microsoftu spíše radost. Cokoliv, co učiní z operačního systému spolehlivější a bezpečnější základnu naší každodenní práce, bychom měli vřele vítat. Při zachování sebezáchovného odstupu, přirozeně.
Na této stránce najdete formulář, kde se můžete informovat o kompatibilních aplikacích:
http://www.microsoft.com/windows/professional/deploy/compatible/
Dnes, tj. 4. května 1999, tam nenajdete skoro nic. Doufejme, že kompatibilní aplikace zatím jenom nestihli do databáze formuláře zanést.
Tedy na závěr moje doporučení: Ptejte se! Ptejte se společnosti Microsoft, ptejte se prodejců Windows 2000, ptejte se prodejců aplikací. Většina "živých" výrobců aplikací bude nabízet záplaty, opravy, servisní balíčky, nebo aspoň nové kompatibilní verze. Někdy možná postačí návod na opravu, kterou si provedete sami. Ledacos se jistě objeví v diskuzních skupinách na Internetu. Kontaktujte webové stránky producentů vašeho software. Neexistují? Ruce pryč od takového programu!
Ve větších firmách pak testujte. Testujte a plánujte. Windows 2000 beta 3 by se neměla už téměř vůbec lišit od finálního produktu a můžete se k testovacímu programu připojit. Informace, jak to udělat, by se měly objevit zde:
Samozřejmě máte ještě jednu možnost - upgrade na Windows 2000 neprovést. Možností je více: Zůstat při starém systému? Koupit RedHat Linux? Rozhodnutí je na vás, ale pamatujte, že Windows 2000 bude pravděpodobně velice kvalitní volbou, kterou byste neměli opomenout zvážit.
Související články:
Informace na Internetu:
http://www.microsoft.com/windows/server/
http://www.microsoft.com/windows/professional/
http://www.microsoft.com/cze/
Odkazy vedou na stránky společnosti Microsoft, které jsou v anglickém jazyce.