Я лишь высказываю идею.Сообщение от GriV
Вон, Vitamin говорит что "не противоречит".
Динамический компоновщик.Сообщение от GriV
Загрузчик.
Что ещё нужно?
Попробуем объяснить иначе.Сообщение от GriV
Одни модули используют другие модули. Все модули в целом образуют иерархию. Модули более высокого уровня зависят от модулей нижних уровней. Но модули нижних уровней не зависят от модулей высших уровней. Программа зависит от библиотеки. Но библиотека не зависит от программы.
Если так будет понятнее, мы можем пронумеровать уровни иерархии. Вот например в iS-DOS "уровни ядра" - пронумерованы. И имеется документированный способ выгрузить несколько верхних уровней, чтобы освободить память. Некоторые тяжёлые программы делают. При этом нижние уровни не умирают.
Теперь пусть у нас есть динамический компоновщик. Всё точно так же. Только "ядро" и "уровни" не нужны, а есть просто модули.
Дело было так.Сообщение от GriV
Когда программист писал свою программу, библиотека B использовала C1.0.
И только после этого разработчики B выпустили новую версию, совместимую с предыдущей, но использующую C2.0. Программист не виноват.
Именно в этом смысл этого примера.
Совместимость по версии на один уровень нетранзитивна на несколько уровней.
Нужен пресс-релиз для народа.Сообщение от GriV
![]()




Ответить с цитированием