As I'm reading about the Linux device drivers and power management API I keep encountering terms like "system level", "subsystem", "platform", "class", and so on.
What is the relation between them? Is the system a subtype of platform? Or is system and platform exist in parallel with no inclusion relation? How does "class" differ from "system"? What each domain is good for (i.e. if I want to implement a certain functionality, should it be a class level functionality, or or platform functionality, or some other etcetera)?
In short, can someone explain to me what these different things are?