Maybaygiare.org

Blog Network

co je to podložka?

shim je malá knihovna, která zachycuje a mění volání do jiné knihovny, hlavně pro podporu kompatibility.

udržování více verzí knihovny je nezbytné pro podporu vašich klientů. Shim knihovny přeložit staré do nové knihovny volání před předáním na novou knihovnu.

Příklad 1:

Instalace Linuxu obvykle přicházejí s jedinou verzí Ruby. Ruby vývojáři musí mít různé verze Ruby na svých mnoha aktivních projektech. Rbenv používá podložky k vyřešení tohoto problému.

spuštění příkazu Ruby v Linuxu znamená kontrolu spustitelného souboru v cestě-kterou vyhledává zleva doprava. Takže spuštění příkazu Ruby rails serverznamená, že Linux najde a spustí Rails, spustitelný soubor Ruby, v prvním adresáři.

Spuštění Rails Aplikace Normálně

Rbenv přidá shims adresář a načte to s shim skripty před prepending Cestu. Pro každou aplikaci Ruby existuje skript shim a spuštění aplikace Ruby nyní znamená spuštění odpovídajícího skriptu shim. Takže běh rails znamená spuštění skriptu Rails v adresáři shims a ne aplikace Rails v usr/local/bin. Skript vypracuje požadovanou verzi Ruby a poté spustí odpovídající aplikaci, v tomto případě Rails, pod touto očekávanou verzí Ruby.

Příklad 2:

Microsoft používá podložky k falešným voláním systému Windows aplikace. Když aplikace provede systémové volání, prochází „importní adresní tabulkou“.

aplikace volá do Oken z IAT

Můžete změnit tabulky a vyměnit Okna volání s volání na podložku. Vložka v příkladu je vložka „verze-lež“. Aplikace si myslí, že je na počítači se systémem Windows 7.

An application call redirected to shim from IAT

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.