Un file di oggetto condiviso, identificato dall'estensione .so, è una libreria collegata dinamicamente utilizzata principalmente 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. Questo permette a più programmi di condividere lo stesso codice di libreria, riducendo la dimensione complessiva degli eseguibili e risparmiando spazio su disco. Inoltre, gli oggetti condivisi possono essere aggiornati indipendentemente dai programmi che li utilizzano, consentendo di distribuire correzioni di bug e miglioramenti delle funzionalità senza richiedere la ricompilazione delle applicazioni dipendenti. Il linker dinamico, tipicamente ld-linux.so, è responsabile della risoluzione delle dipendenze e del caricamento degli oggetti condivisi necessari nello spazio di indirizzi del programma. Gli oggetti condivisi contengono codice compilato, dati e informazioni di rilocazione che consentono al linker dinamico di posizionare correttamente il codice e i dati in memoria. Essi costituiscono un componente fondamentale del sistema Linux, fornendo un modo modulare ed efficiente per gestire il riutilizzo del codice e le dipendenze.