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 se dobi 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 se dobi 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, se loči proces 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 točno se zunaj 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; ta je manjša, saj se ustrezne funkcije in subrutine nahajajo eksterno. Slabost predstavlja odvisnost od zunanjih vmesnikov API 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 se lahko razdeli na to kako se izmenjujejo, kako so povezane in kdaj so povezane.

Primer je skupina knjižnic za .NET, ki vsebuje knjižnice, ki temelijo na ogrodju .NET. Takšne knjižnice se lahko uporabljajo v drugih knjižnicah in aplikacijah za .NET, ne glede na to, v katerem jeziku so napisane. V osnnovi so takšne knjižnice prenosljive med različimi platformami zaradi prenosljivosti različnih izvedb ogrodja .NET.