Okey, let me explain the difference between them. There is a typo actually, ServiceManager - >GenericServiceManager.
GenericServiceManager is a manager for all service on host, you can list all service by GenericServiceManager.list(). and you can start any service by GenericServiceManager.start(service_name).
But SpecificServiceManager concentrate on one service, then we can not access other service nor list the all service. You can start the service by SpecificServiceManager.start().

I will add more comment here for it, Thank you