Разделяемая библиотека
Материал из Википедии — свободной encyclopedia
Разделяемая библиотека или общая библиотека — это файл, который предназначен для совместного использования программами. Модули, используемые программой, загружаются из отдельных общих объектов в память, а не копируется компоновщиком, когда он копирует один исполняемый файл для программы.
Эту страницу предлагается объединить со страницей Библиотека (программирование). |
Совместно используемые библиотеки могут быть статически связаны, что означает, что ссылки на библиотечные модули разрешаются, и модулям выделяется память при создании исполняемого файла. Но часто связывание разделяемых библиотек откладывается до их загрузки.
Некоторые старые системы, например, Burroughs MCP[англ.], Multics, также имеют только один формат для исполняемых файлов, независимо от того, являются ли они общими. Они имеют файлы общей библиотеки того же формата, что и исполняемые файлы. Это даёт два основных преимущества: во-первых, для каждого из них требуется только один загрузчик, а не два (наличие отдельного загрузчика приносит дополнительную сложность). Во-вторых, он также позволяет использовать исполняемые файлы в качестве разделяемых библиотек, если у них есть таблица символов. Типичные форматы комбинированных исполняемых и совместно используемых библиотек: ELF и Mach-O (оба в Unix) и PE (Windows).
В некоторых более старых средах, таких как 16-битная Windows или MPE[англ.] для HP 3000, в коде с общей библиотекой допускались только данные на основе стека (локальные), или другие существенные ограничения были наложены на код разделяемой библиотеки.