The key difference is control flow: in a library, your code controls execution (you call library functions). In a framework, the framework controls execution and calls your code at specific points (hooks, callbacks). Option D captures this. Options A, B, and C are false - libraries don't necessarily have default behavior, extensibility varies by design, and library code can often be modified if source-available.