Maybaygiare.org

Blog Network

Hvad er en shim?

et shim er et lille bibliotek, der opfanger og ændrer opkald til et andet bibliotek, primært for at hjælpe Kompatibilitet.

vedligeholdelse af flere versioner af et bibliotek er nødvendigt for at understøtte dine kunder. Shim-biblioteker oversætter gamle til nye biblioteksopkald, før de videresendes til det nye bibliotek.

eksempel 1:

Linuks-installationer leveres normalt med en enkelt Ruby-version. Ruby udviklere skal have forskellige Ruby versioner på deres mange aktive projekter. Rbenv bruger shims til at løse dette problem.

at køre en Ruby — kommando betyder at kontrollere den eksekverbare i stien-som den søger fra venstre mod højre. Så kører Ruby-kommandoen rails server betyder, at Linuk finder og kører Rails, en Ruby-eksekverbar, i den første mappe.

Running Rails App Normally

rbenv tilføjer en shims mappe og indlæser det med shim scripts før prepending stien. Der er et shim-script til hver Ruby-applikation, og at køre en Ruby-applikation betyder nu at køre det matchende shim-script. Så running rails betyder at udføre Rails-scriptet ishims – mappen og ikke Rails-applikationen iusr/local/bin. Scriptet udarbejder den krævede Ruby-version og kører derefter sin matchende applikation, i dette tilfælde skinner, under den forventede Ruby-version.

eksempel 2:

Microsoft bruger shims til at falske en applikations vinduer opkald. Når ET program foretager et systemopkald, går det gennem ‘Importadressetabellen’.

en applikation, der ringer til vinduer fra iat

Du kan ændre tabellen og erstatte vinduerne opkald med et opkald til en shim. Shim i eksemplet er en’ version-lie ‘ shim. Ansøgningen mener, at det er på en Vinduer 7 maskine.

An application call redirected to shim from IAT

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.