Что такое системная библиотека?

3 ноября 2014 г. Просмотров: 470

В общем смысле системная библиотека представляет собой хранилище данных, используемых операционными системами или прикладным программным обеспечением в процессе работы или компиляции.

Системные библиотеки содержат в себе часто встречающиеся подпрограммы и функции. Применительно к программированию, в библиотеках хранятся распространенные классы для работы с графикой, массивами, диалогами и прочим. Понятие системная библиотека применима как к отдельным программам, так и к операционным системам в целом, причем это касается семейств и Windows, и UNIX, и Mac.Определение «библиотека» впервые появилось в 1951 году в книге М. Уилкса , Д. Уиллера и С. Гилла «Составление программ для электронных счётных машин»По принципу действия системные библиотеки делятся на динамические и статические.Динамические библиотекиДинамически подключаемые библиотеки — это компонент, который загружается в память по запросу работающей программы. Таким образом нет нужды копировать код подпрограммы в каждое приложение — наиболее распространенные функции хранятся в качестве библиотеки.Кроме того, загруженная в оперативную память библиотека может использоваться одновременно несколькими приложениями, что экономит ресурсы системы. Это было особенно актуально на заре развития вычислительной техники.Файлы динамических библиотек в OC Windows имеют расширение .dll (Dynamic Link Library) и хранятся в каталоге system32. Аналогичные компоненты в UNIX подобных системах называются общие объекты (shared objects) и имеют расширение .so, в Mac OS - .dlyb.Морис Уилкс с соавторами дал следующее определение библиотеке - короткая, заранее заготовленная программа для отдельных, часто встречающихся (стандартных) вычислительных операций.Всех преимуществ модульного подхода к выполнению программ получить не удалось. Виной тому явление, известное как DLL hell, при котором программа запрашивает одновременно разные версии одной библиотеки (DLL). Это приводит к сбоям и уменьшению надежности ОС.В современных ОС семейства Windows, во избежание конфликтов, разрешено использование разных версий библиотек, что повышает надежность, но противоречит самому принципу модульности.Статические библиотекиСтатические библиотеки также хранят в себе коды подпрограмм и функций, но в отличие от динамических, используются они при компиляции программ. То есть необходимый код целиком включается в программу. Приложение становится автономным, независимым от динамических библиотек, но увеличивается в размерах.Как правило в Windows файлы таких библиотек имеют расширение .lib, в UNIX-подобных системах - .a.Работа с большинством компилируемых языков, например, C, C++, Pascal, невозможна без статических библиотек.

Оцените статью!