Definition:

  • Loader reads executable from disk into memory
  • Initializes registers, stack, arguments to first function
  • Jumps to entry-point

Dynamic loading:

  • The entire program needs to be in memory to execute
    • Routine is not loaded until it is called
    • Unused routine is never loaded
    • All routines kept on disk in relocatable load format
  • Advantages:
    • Better memory-space utilization;
    • Useful when large amounts of code are needed to handle infrequently occurring cases
  • No special support from the operating system is required
    • Implemented through program design
    • OS can provide libraries to implement dynamic loading