shim is a trivial EFI application that, when run, attempts to open andexecute another application. It will initially attempt to do this via thestandard EFI LoadImage() and StartImage() calls. If these fail (because secureboot is enabled and the binary is not signed with an appropriate key, forinstance) it will then validate the binary against a built-in certificate. Ifthis succeeds and if the binary or signing key are not blacklisted then shimwill relocate and execute the binary.shim will also install a protocol which permits the second-stage bootloaderto perform similar binary validation. This protocol has a GUID as describedin the shim.h header file and provides a single entry point. On 64-bit systemsthis entry point expects to be called with SysV ABI rather than MSABI, andso calls to it should not be wrapped.