Jaettu kirjasto tai jaettu kirjasto on tiedosto , joka on tarkoitettu jaettavaksi . Ohjelman käyttämät moduulit ladataan erillisistä jaetuista objekteista muistiin sen sijaan , että linkittäjä kopioi niitä, kun se kopioi yksittäistä suoritettavaa ohjelmaa.
Jaetut kirjastot voidaan linkittää staattisesti, mikä tarkoittaa, että viittaukset kirjastomoduuleihin selvitetään ja moduuleille varataan muistia suoritettavaa tiedostoa luotaessa. Mutta usein jaettujen kirjastojen linkittäminen viivästyy, kunnes ne ladataan.
Joissakin vanhemmissa järjestelmissä, esim. Burroughs MCP , Multicsissa , on myös vain yksi formaatti suoritettaville tiedostoille, olivatpa ne yleisiä vai eivät. Heillä on jaetut kirjastotiedostot samassa muodossa kuin suoritettavat tiedostot. Tällä on kaksi pääetua: ensinnäkin jokainen niistä vaatii vain yhden käynnistyslataimen, ei kahta (erillinen käynnistyslatain lisää monimutkaisuutta). Toiseksi se mahdollistaa myös suoritettavien tiedostojen käytön jaettuina kirjastoina, kunhan niillä on symbolitaulukko . Tyypilliset yhdistetyt suoritettavat ja jaetut kirjastomuodot ovat ELF ja Mach-O (molemmat Unixissa) ja PE (Windows).
Joissakin vanhemmissa ympäristöissä, kuten 16-bittisessä Windowsissa tai HP 3000 :n MPE :ssä , vain pinopohjaiset (paikalliset) tiedot sallittiin kirjastokoodissa tai jaetulle kirjastokoodille asetettiin muita merkittäviä rajoituksia.
Kirjastokoodi voidaan jakaa muistissa prosessien kanssa sekä levyllä. Jos käytetään virtuaalimuistia, prosessit suoritetaan fyysisellä RAM-sivulla, joka on kartoitettu eri prosessin osoiteavaruuksiin. Tästä on etunsa. Esimerkiksi OpenStep -järjestelmässä sovellukset ovat usein vain muutaman sadan kilotavun kokoisia ja latautuvat nopeasti; suurin osa heidän koodistaan oli kirjastoissa, jotka käyttöjärjestelmä oli jo ladannut muihin tarkoituksiin.
Ohjelmat voivat jakaa RAM -muistia itsenäisen koodin avulla , kuten Unixissa , mikä johtaa monimutkaiseen mutta joustavaan arkkitehtuuriin. Tämä varmistaa, että erilaisten temppujen, kuten osoitetilan esikartoituksen ja sivuvarausten avulla jokaiselle jaetulle kirjastolle, on suurempi mahdollisuus jaettavaksi. Kolmas vaihtoehto on yksitasoinen tallennus , jota IBM System/38 ja sen seuraajat käyttävät.
Joissakin tapauksissa jaettujen kirjastojen eri versiot voivat aiheuttaa ongelmia, varsinkin kun eri versioiden kirjastoilla on sama tiedostonimi ja niitä käyttävät eri järjestelmään asennetut sovellukset, joista jokainen vaatii eri version. Tällainen komentosarja tunnetaan nimellä DLL helvetti , joka on nimetty Windowsin ja OS/2 :n DLL :ien mukaan . Useimmissa nykyaikaisissa vuoden 2001 jälkeisissä käyttöjärjestelmissä on puhdistusmenetelmiä tällaisten tilanteiden käsittelemiseksi tai ne käyttävät sovelluskohtaisia "yksityisiä" kirjastoja.