Ein ".so" (Shared Object) ist eine Bibliothek. Als solches stellt es eine definierte Schnittstelle für Programme bereit, die eine Verknüpfung herstellen, um die Funktionalität der Bibliothek, auch API genannt, zu nutzen . In Shared Objects ist diese API versioniert, sodass Programme, die die Bibliothek verwenden, eine Version verwenden können, mit der sie kompatibel sind. Siehe auch diese Antwort zu "Unix & Linux".
Die von Ihnen erwähnte Bibliotheksversion kann unabhängig von der API-Version sein. Die Bibliotheksversion würde den Code beschreiben, aus dem die Funktionalität der Bibliothek und die Implementierung besteht. Es kann sich erhöhen, wenn Fehler behoben oder Algorithmen optimiert werden. Gleichzeitig kann die API jedoch stabil bleiben, was bedeutet, dass die Funktionsnamen und ihre Parameter nicht geändert werden, sodass die API-Version unverändert bleibt.
Die Ziffer hinter dem .so beschreibt die API-Version.