Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer 1

These are difficult to define. Generally, in the context of device enumeration,

  • "platform" devices are things typically found on a PC, or typically found on a Raspberry Pi.

    The kernel starts out looking for them, because the kernel has been compiled to run on a PC, or on an RPi. Some of the mainboard components, and CPU and memory fall under this category.

  • a "subsystem" is basically a group of drivers with similar functionality for different hardware.

    Individual drivers may then in turn use drivers from another subsystem. For example, the "sound" subsystem drivers handle individual sound cards and present a common sound card interface, while a driver can use the PCI subsystem to find the sound card, regardless of the type of southbridge chip used.

  • a "class" driver deals with devices from different vendors that implement a common interface.

    This is typical for USB devices, where there is e.g. a standard for mass storage devices, and a single driver handles all devices that claim to be compatible.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.