Maybaygiare.org

Blog Network

ce este un shim?

un shim este o bibliotecă mică care interceptează și schimbă apelurile către o altă bibliotecă, în principal pentru a ajuta la compatibilitate.

menținerea mai multor versiuni ale unei biblioteci este necesară pentru a vă sprijini clienții. Bibliotecile Shim traduc apelurile vechi în cele noi ale bibliotecii înainte de a le redirecționa către noua bibliotecă.

Exemplul 1:

instalările Linux vin în mod normal cu o singură versiune Ruby. Dezvoltatorii Ruby trebuie să aibă diferite versiuni Ruby pe numeroasele lor proiecte active. Rbenv folosește lamele pentru a rezolva această problemă.

rularea unei comenzi Ruby în Linux înseamnă verificarea executabilului din cale — pe care îl caută de la stânga la dreapta. Deci, rularea comenzii Rubyrails serverînseamnă că Linux găsește și rulează Rails, un executabil Ruby, în primul director.

rulează șine App în mod normal

Rbenv adaugă un shims directorul și îl încarcă cu scripturi Shim înainte de a pregăti calea. Există un script shim pentru fiecare aplicație Ruby și rularea unei aplicații Ruby înseamnă acum rularea scriptului shim potrivit. Deci, rularea rails înseamnă executarea scriptului Rails în directorul shims și nu aplicația Rails în usr/local/bin. Scriptul elaborează versiunea Ruby necesară și apoi rulează aplicația sa de potrivire, în acest caz Rails, sub acea versiune Ruby așteptată.

Exemplul 2:

Microsoft folosește lamele pentru a falsifica apelurile Windows ale unei aplicații. Atunci când o aplicație face un apel de sistem trece prin ‘Import Address Table’.

o aplicație care apelează în Windows de la IAT

puteți schimba tabelul și înlocui apelul Windows cu un apel către un shim. Shim-ul din exemplu este un shim ‘version-lie’. Aplicația crede că este pe o mașină Windows 7.

An application call redirected to shim from IAT

Lasă un răspuns

Adresa ta de email nu va fi publicată.