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