Monday, February 21, 2011

What is Linux Driver Model ?

The Linux Device model is built around the concept of busses, devices and drivers. All devices in the system are connected to a bus of some kind. The bus does not have to be a real one; busses primarily exist to gather similar devices together and coordinate initialization, shutdown and power management.

When a device in the system is found to match a driver, they are bound together. The specifics about how to match devices and drivers are bus-specific. The PCI bus, for example, compares the PCI Device ID of each device against a table of supported PCI IDs provided by the driver. The platform bus, on the other hand, simply compares the name of each device against the name of each driver; if they are the same, the device matches the driver.

Binding a device to a driver involves calling the driver’s probe() function passing a pointer to the device as a parameter. From this point on, it’s the responsibility of the driver to get the device properly initialized and register it with any appropriate subsystems.

Devices that can be hot-plugged must be un-bound from the driver when they are
removed from the system. This involves calling the driver’s remove() function passing a pointer to the device as a parameter. This also happens if the driver is a dynamically loadable module and the module is unloaded. All device driver callbacks, including probe() and remove(), must follow the return
value.


2 comments:

  1. Thanks. Very simple explanation

    ReplyDelete

  2. شركة نقل عفش من الرياض الى الامارات شركة نقل عفش من الرياض الى الامارات
    شركة نقل عفش من الرياض الى الاردن شركة نقل عفش من الرياض الى الاردن
    شركة نقل عفش من جدة الى الطائف شركة نقل عفش من جدة الى الطائف
    شركة نقل عفش من المدينة المنورة الى جدة شركة نقل عفش من المدينة المنورة الى جدة


    شركة شحن عفش من الرياض لمصر شركة شحن عفش من الرياض لمصر
    شركة نقل عفش شرق الرياض شركة نقل عفش شرق الرياض
    افضل شركة نقل عفش بجدة افضل شركة نقل عفش بجدة

    ReplyDelete