Knjižnica (računalništvo)

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje
Za druge pomene glejte knjižnica (razločitev).

Knjižnica (angleško library) ali tudi programska knjižnica je v računalništvu zbirka podprogramov (oziroma funkcij) za pomoč pri izdelavi oziroma razvoju programske opreme. Knjižnice vsebujejo kodo in podatke, ki se jih da uporabiti v neodvisnih programih. Zaradi tega se programi izmenjujejo in spreminjajo modularno. Neketere izvršne datoteke so lahko oboje, samostojni programi ali knjižnice, vendar večina knjižnic ni izvršljivih.

Da dobimo izvršno datoteko v določenem izvršnem zapisu strojne kode, je potrebno uporabiti programsko opremo povezovalnika (angl. linker), katerega naloga je povezati ustrezne datoteke, ki vsebujejo objektno kodo, s programskimi knjižnicami. Na ta način dobimo izvršno datoteko programske opreme v specifičnem izvršnem zapisu (bodisi ELF, PE, Mach-o, MZ, NE in podobno).

Glede na to ali se podprogrami knjižnic neposredno implementirajo v algoritem programske opreme ali pa se samo določijo poti, kjer lahko algoritem ustrezne subrutine eksterno pridobi, ločimo process statičnega in dinamičnega povezovanja.

V primeru dinamičnega povezovanja, ki je pogostejše, programska oprema povezovalnika poveže objektne datoteke in programske knjižnice dinamično; specificira kje natančno se izven izvorne kode programske opreme nahajajo ustrezne subrutine. Algoritem se po potrebi oziroma glede na tok izvajanja nato sklicuje na eksterne subrutine v programskih knjižnicah, ki se nahajajo nekje na pomnilniškem mediju. Dinamično povezovanje ima določene prednosti in slabosti. Prednost opredeljuje kompleksnost oziroma velikost končne programske opreme; le-ta je manjša, saj se ustrezne funkcije in subrutine nahajajo eksterno. Slabost predstavlja odvisnost od zunanjih API vmesnikov oziroma programskih knjižnic.

Pri statičnem povezovanju povezovalna programska oprema veže ustrezne programske knjižnice in objektne datoteke statično; definicije subrutin, ki so opredeljene v knjižnicah, implementira v sam algoritem programske opreme. Proces omogoča prednost neodvisnosti od zunanjih programskih knjižnic, slabost pa predstavlja premosorazmerna večja velikost programske opreme.

Večina sodobnih operacijskih sistemov ima za velik del sistemskih opravil knjižnice. Tako je skoraj vsa koda, ki jo uporabljajo sodobni programi, zapisana v knjižnicah.

Pregled[uredi | uredi kodo]

Knjižnice lahko razdelimo na to kako se izmenjujejo, kako so povezane in kdaj so povezane.