Відповідь 1:

ОС може мати можливість:

  1. Для динамічного завантаження модулів він використовує завантаження часових зв'язків модулів, необхідних додатку. Робоче динамічне пов'язування модулів, яким потрібна програма, якщо і коли вона насправді потребує їх. Динамічне завантаження модулів, які він використовує
  • ОС може завантажувати деякі драйвери вводу-виводу та інші сервісні модулі при запуску ОС на основі списку. Він також може завантажувати інші модулі залежно від потреби, наприклад, коли підключено певний пристрій.

2. Завантажте час зв’язку модулів, необхідних додатку

  • Деякі операційні системи дозволяють користувачеві викликати основний модуль коду об'єкта, навіть якщо він ще не був відредагований посиланнями з іншими модулями, які йому потрібні для повного виконання. Зв'язуючий завантажувач завантажує цей початковий модуль, перевіряє його, щоб знайти потрібні йому модулі, завантажує їх у пам’ять та фіксує необхідні адреси викликів функцій, щоб змусити їх працювати разом. Це продовжує, що для модулів, які викликають інші модулі за потребою. Все це в пам’яті. Результат не зберігається на диску для подальшого повторного використання в цілому.

3. Динамічне пов'язування модулів у часі виконання програми, яке потрібно додатку, якщо і коли воно насправді їм потрібно.

  • Багато операційних систем передбачають створення та програми для використання «Бібліотеки динамічних посилань» (DLL). Це окремі бібліотеки, до яких запущена програма може запитати ОС за назвою. Після завантаження ОС бібліотекою (або, можливо, вона вже була в пам'яті) програма може викликати функції в бібліотеці. DLL-пам’яті, як правило, не є приватними, для використання одним екземпляром однієї програми. Один і той же екземпляр може обслуговувати безліч примірників багатьох різних програм.

Відповідь 2:

Я думаю, що трохи більше контексту допоможе, оскільки існує багато разів використання обох термінів для різних речей.

Для ядра динамічне завантаження призведе до завантаження драйвера на вимогу… Але тоді драйвер все ще повинен бути належним чином пов'язаний з ядром або він не працюватиме.

Ще одне місце, в якому використовуються терміни, - це коли запускається виконуваний файл.

Потім завантажувач буде відповідати необхідним спільним бібліотекам і забезпечити зв'язок між додатком та різними бібліотеками. Завантажувач часу фактично не завантажує всю програму - він завантажує сторінки зі стартовою адресою… Потім передає виконання на стартову адресу. Тепер, коли програма запускається, це призводить до помилок сторінки - які динамічно завантажують необхідні виконувані інструкції або дані, які необхідні.

Ще одне місце, яке використовується для додатків - це "динамічно" зв'язування та завантаження бібліотек як "плагін" для розширення функціональності програми.

Тож трохи більше контексту дозволить отримати кращі відповіді.