Un file di oggetto condiviso, tipicamente con estensione .so, è una libreria collegata dinamicamente utilizzata in Linux e altri sistemi operativi Unix-like. A differenza delle librerie statiche, che vengono collegate a un programma al momento della compilazione, gli oggetti condivisi vengono caricati in memoria a runtime quando il programma viene eseguito. Ciò consente a più programmi di condividere lo stesso codice di libreria, riducendo la dimensione complessiva degli eseguibili e conservando le risorse di sistema. Gli oggetti condivisi sono essenziali per lo sviluppo software modulare, consentendo agli sviluppatori di creare componenti riutilizzabili che possono essere facilmente aggiornati e mantenuti indipendentemente dalle applicazioni che li utilizzano. Sono una parte fondamentale del sistema Linux, fornendo un meccanismo per il riutilizzo del codice e una gestione efficiente della memoria. Il processo di collegamento dinamico è gestito dal linker/loader dinamico, che risolve le dipendenze e carica gli oggetti condivisi necessari nello spazio di indirizzi del programma. Gli aggiornamenti agli oggetti condivisi possono essere distribuiti senza ricompilare le applicazioni che dipendono da essi, purché l'interfaccia binaria dell'applicazione (ABI) rimanga compatibile. Questo rende gli oggetti condivisi un componente cruciale dell'ecosistema Linux, facilitando gli aggiornamenti software e la manutenzione.