Általános értelemben a rendszerkönyvtár az operációs rendszerek vagy az alkalmazásszoftver által a működés vagy az összeállítás során használt adatok tárháza.
A rendszerkönyvtárak gyakran használt alprogramokat és függvényeket tartalmaznak. Ami a programozást illeti, a könyvtárak közös osztályokat tárolnak grafikákkal, tömbökkel, párbeszédablakokkal és egyebekkel való munkavégzéshez.
A rendszerkönyvtár fogalma alkalmazható mind az egyes programokra, mind az operációs rendszerek egészére, és ez vonatkozik mind a Windows, mind a UNIX és a Mac családokra.
A "könyvtár" meghatározása először 1951-ben jelent meg M. Wilkes, D. Wheeler és S. Gill könyvében "Programozás az elektronikus számológépekhez".
A működési elv szerint a rendszerkönyvtárak dinamikusak és statikusak.
Dinamikus könyvtárak
A dinamikus hivatkozási könyvtárak egy olyan összetevő, amelyet egy futó program kérésére betöltenek a memóriába. Így nincs szükség az alprogram kódjának másolására az egyes alkalmazásokba - a leggyakoribb funkciókat könyvtárként tároljuk.
Ezenkívül a RAM-ba betöltött könyvtárat egyszerre több alkalmazás is felhasználhatja, ami megtakarítja a rendszer erőforrásait. Ez különösen igaz volt a számítás kezdeti napjaiban.
A Windows OC rendszerben található dinamikus linkkönyvtár fájlok kiterjesztése.dll (dinamikus hivatkozási könyvtár), és a system32 könyvtárban vannak tárolva. A UNIX-szerű rendszerek hasonló összetevőit megosztott objektumoknak nevezzük, és a.so kiterjesztésűek a Mac OS-ben -.dlyb.
Maurice Wilkes et al. A következő meghatározást adta át egy könyvtárnak - egy rövid, előre elkészített program egyedi, gyakran előforduló (szokásos) számítási műveletekhez.
Nem sikerült megszerezni a program végrehajtásának moduláris megközelítésének összes előnyét. Ennek oka a DLL pokol néven ismert jelenség, amelynek során a program egyidejűleg ugyanazon könyvtár (DLL) különböző verzióit kéri. Ez hibákhoz és az operációs rendszer megbízhatóságának csökkenéséhez vezet.
A Windows család modern operációs rendszereiben a konfliktusok elkerülése érdekében megengedett a könyvtárak különböző verzióinak használata, ami növeli a megbízhatóságot, de ellentmond a modularitás elvének.
Statikus könyvtárak
A statikus könyvtárak szubrutint és funkciókódokat is tárolnak, de a dinamikusaktól eltérően a programok fordításakor használják őket. Vagyis a teljes szükséges kód benne van a programban. Az alkalmazás önállóvá válik, független a dinamikus könyvtáraktól, de növekszik a mérete.
Rendszerint a Windows rendszeren az ilyen könyvtárak fájljai.lib kiterjesztéssel rendelkeznek, UNIX-szerű rendszereken -.a.
Statikus könyvtárak nélkül lehetetlen a legtöbb fordított nyelvvel dolgozni, például C, C ++, Pascal.