SPRAB89A September 2011 – March 2014
As described in Section 14.3, program loading is performed by some external agent. On Linux and probably other OS-based systems, the agent responsible for performing this function is stored in the executable itself as the PT_INTERP tag of the program header. Usually this is the dynamic loader, for example ld.so.
Bare-metal executables do not rely on an interpreter; the system is responsible for knowing how to load the program. A bare-metal dynamic executable may contain dynamic information in a PT_DYNAMIC segment but not have at PT_INTERP entry.