A Shared Object (.so) is an indivisible unit that is generated from one or more Relocatable Objects. Shared objects can be bound with dynamic executables to form a runable process. As their name implies, shared objects can be shared by more than one application.
See: Shared Library and Static Library