Unmanaged packages
Unmanaged packages are typically used to distribute open-source projects or application templates to provide developers with the basic building blocks for an application.
Managed packages
Managed packages are typically used by Salesforce partners to distribute and sell applications to customers.