Linux 裝置驅動程式「域」之間的關係是什麼?

Linux 裝置驅動程式「域」之間的關係是什麼?

當我閱讀有關 Linux 裝置驅動程式和電源管理 API 的內容時,我不斷遇到「系統級」、「子系統」、「平台」、「類別」等術語。

他們之間是什麼關係?該系統是平台的子類型嗎?還是系統和平台是平行存在,沒有包含關係? 「類」與「系統」有何不同?每個網域都有什麼好處(即,如果我想實現某個功能,它應該是類別層級功能,還是平台功能,還是其他一些功能)?

簡而言之,有人可以向我解釋這些不同的東西是什麼嗎?

答案1

這些都很難定義。一般來說,在設備枚舉的上下文中,

  • 「平台」裝置通常在 PC 上或 Raspberry Pi 上找到。

    核心開始尋找它們,因為核心已編譯為在 PC 或 RPi 上運行。一些主機板組件、CPU 和記憶體都屬於此類。

  • 「子系統」基本上是一組針對不同硬體具有相似功能的驅動程式。

    然後,各個驅動程式可以依序使用另一個子系統的驅動程式。例如,「聲音」子系統驅動程式處理各個聲卡並提供通用聲卡接口,而驅動程式可以使用 PCI 子系統來查找聲卡,無論使用哪種類型的南橋晶片。

  • “類”驅動程式處理來自不同供應商的實現公共介面的設備。

    這對於 USB 裝置來說是典型的,其中存在例如大容量儲存裝置的標準,並且單一驅動程式處理聲稱相容的所有裝置。

相關內容