Provides the general interfaces which are implemented by the specific drivers.