Maybaygiare.org

Blog Network

mi az a shim?

a shim egy kis könyvtár, amely elfogja és megváltoztatja a hívásokat egy másik könyvtárba, elsősorban a kompatibilitás elősegítése érdekében.

A könyvtár több verziójának fenntartása szükséges az ügyfelek támogatásához. A Shim könyvtárak lefordítják a régi könyvtári hívásokat, mielőtt továbbítanák az új könyvtárba.

1. példa:

a Linux telepítésekhez általában egyetlen Ruby verzió tartozik. A Ruby fejlesztőknek különböző Ruby verziókkal kell rendelkezniük sok aktív projektjükön. Az Rbenv alátéteket használ a probléma megoldására.

A Ruby parancs futtatása Linuxban azt jelenti, hogy ellenőrizni kell a futtatható fájlt az elérési úton — amelyet balról jobbra keres. Tehát a Ruby parancs futtatása rails server azt jelenti, hogy a Linux megtalálja és futtatja a Rails-t, egy Ruby futtatható fájlt az első könyvtárban.

futó sínek alkalmazás általában

Rbenv hozzáad egy shims könyvtár és betölti azt shim szkriptekkel, mielőtt előkészítené az elérési utat. Van egy shim script minden Ruby alkalmazás fut egy Ruby alkalmazás most azt jelenti, fut a megfelelő shim script. Tehát a sínek futtatása a sínek parancsfájl végrehajtását jelenti a shims könyvtárban, nem pedig a sínek alkalmazást a usr/local/binkönyvtárban. A szkript kidolgozza a szükséges Ruby verziót, majd futtatja a megfelelő alkalmazást, ebben az esetben Rails, a várt Ruby verzió alatt.

2. Példa:

a Microsoft alátéteket használ az alkalmazás Windows-hívásainak hamisításához. Amikor egy alkalmazás rendszerhívást kezdeményez, az az ‘import Címtáblán’megy keresztül.

egy alkalmazás, amely az IAT-ból Windows-ba hív

meg lehet változtatni a táblázatot, és cserélje ki a Windows hívás egy hívást egy alátét. A példában szereplő alátét egy ‘verzió-hazugság’ alátét. Az alkalmazás úgy gondolja, hogy egy Windows 7 gépen van.

An application call redirected to shim from IAT

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.