Vyšlo v týdeníku Computerworld č. 4/94 v roce 1994
Vytištěno z adresy: http://www.earchiv.cz/a94/a404c120.php3

Shim

Podvádět se nemá - ani vydávat se za někoho jiného. Alespoň ve světě lidí by tomu tak rozhodně mělo být. Ale co ve světě počítačů?

Také zde může docházet k tomu, že se někdo se zlým úmyslem vydává za někoho jiného, než kým ve skutečnosti je. Například v počítačové síti může určitý uzel předstírat, že je jiným uzlem, a přijímat jemu určená data. Nebo i uživatel se může vydávat za někoho jiného, zná-li jeho uživatelské jméno i k němu příslušející heslo.

Na druhé straně ovšem existují ve světě počítačů i takové situace, kdy záměrné klamání, předstírání a vydávání se za někoho jiného je motivováno dobrými úmysly. Například v prostředí operačního systému MS DOS existuje program SETVER, který má za úkol klamat ostatní programy - snaží se jim namluvit, že pracují s jinou verzí operačního systému, než jaká je na daném počítači skutečně nainstalována. Má to svou logiku: mnohé programy (utility) se operačního systému dotazují na jeho verzi, a je-li tato verze jiná (obecně novější), než pro kterou jsou určeny, odmítají pracovat. Je samozřejmě možné vytvořit nové verze těchto programů, ale často je výhodnější je jednoduše "oblafnout" - zařídit věci tak, aby na jejich dotaz o verzi operačního systému reagoval program SETVER a odpověděl jim tím, co chtějí slyšet (tedy takovým číslem verze operačního systému, pro jakou byly původně vytvořeny).

Další oblastí, ve které se s úspěchem využívá podobné "podvádění", je vzájemné přizpůsobení síťových programů a nejrůznějšího síťového hardwaru, zejména pak síťových adaptérů. Každý síťový program se totiž musí nějakým způsobem dorozumět s tím síťovým hardwarem, který má k dispozici. Pokud například "nezná" příslušný síťový adaptér, nemůže si dovolit jej ovládat přímo a sám. Místo toho musí využít služeb ovladače, který výrobce síťového adaptéru dodal spolu se svým produktem. V dnešní době existují tři hlavní druhy ovladačů síťových adaptérů: tzv. paketové ovladače (packet drivers), NDIS ovladače (NDIS drivers), a ODI ovladače (ODI drivers). Všechny tři jsou samozřejmě jiné, a vytvářejí vlastní specifické rozhraní k síťovým programům, které jejich prostřednictvím pracují se síťovými adaptéry. Na druhé straně však s konkrétním typem ovladače musí počítat i samotný síťový program. Mnohé z těchto programů dokáží pracovat se všemi z nich, ale na druhé straně je i velmi mnoho těch, které vyžadují jen jeden konkrétní typ ovladače (nebo dva, ale ne všechny tři).

No a podle nepsaného zákona schválnosti se právě vám poštěstí ta nejméně žádoucí kombinace: váš síťový program bude vyžadovat takový ovladač, jaký ke svému síťovému adaptéru nemáte - například bude vyžadovat tzv. NDIS ovladač, zatímco vy jste ke své kartě dostali jen tzv. ODI ovladač. Naštěstí ale není nic ztraceno, protože dnes již existují i takové programy, které dokáží vzít ovladač jednoho typu a úspěšně jej vydávat za ovladač jiného typu. Dosahují toho tak, že původní ovladač "překryjí", a samy se pak vydávají za požadovaný druh ovladače. Síťový program, který vyžaduje určitý konkrétní druh ovladače, si tak přijde na své, zatímco se síťovou kartou bezprostředně pracuje ten ovladač, který je k dispozici.

Program, zajišťující právě naznačené překrytí ovladače jednoho typu a předstírání typu jiného, se v angličtině označuje jako shim (což v doslovném překladu znamená: vložka, podložka, odštěpek, klínek apod.). K dispozici přitom již jsou shim-y pro převod mezi kteroukoli dvojicí ovladačů ze třech výše uvedených typů.

Anglické "shim" se přitom používá i jako sloveso (to shim), ve smyslu: předstírání, převádění, vyrovnávání.