Файл общего объекта, идентифицируемый расширением .so, представляет собой динамически подключаемую библиотеку, используемую преимущественно в Linux и других Unix-подобных операционных системах. В отличие от статических библиотек, которые компонуются с программой на этапе компиляции, общие объекты загружаются в память во время выполнения, когда программа запускается. Это позволяет множеству программ совместно использовать один и тот же библиотечный код, уменьшая общий размер исполняемых файлов и экономя дисковое пространство. Более того, общие объекты могут обновляться независимо от использующих их программ, что позволяет внедрять исправления ошибок и улучшения функций без необходимости перекомпиляции зависимых приложений. Динамический компоновщик (линкер), обычно ld-linux.so, отвечает за разрешение зависимостей и загрузку необходимых общих объектов в адресное пространство программы. Общие объекты содержат скомпилированный код, данные и информацию о релокации (перемещении), которая позволяет динамическому компоновщику корректно разместить код и данные в памяти. Они являются фундаментальным компонентом системы Linux, обеспечивая модульный и эффективный способ управления повторным использованием кода и зависимостями.