Системні бібліотеки містять в собі часто зустрічаються підпрограми і функції. Стосовно до програмування, в бібліотеках зберігаються поширені класи для роботи з графікою, масивами, діалогами і іншим.

Поняття системну бібліотеку застосовна як до окремих програм, так і до операційних систем в цілому, причому це стосується родин і 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, неможлива без статичних бібліотек.