![Linux 裝置驅動程式「域」之間的關係是什麼?](https://rvso.com/image/31664/Linux%20%E8%A3%9D%E7%BD%AE%E9%A9%85%E5%8B%95%E7%A8%8B%E5%BC%8F%E3%80%8C%E5%9F%9F%E3%80%8D%E4%B9%8B%E9%96%93%E7%9A%84%E9%97%9C%E4%BF%82%E6%98%AF%E4%BB%80%E9%BA%BC%EF%BC%9F.png)
當我閱讀有關 Linux 裝置驅動程式和電源管理 API 的內容時,我不斷遇到「系統級」、「子系統」、「平台」、「類別」等術語。
他們之間是什麼關係?該系統是平台的子類型嗎?還是系統和平台是平行存在,沒有包含關係? 「類」與「系統」有何不同?每個網域都有什麼好處(即,如果我想實現某個功能,它應該是類別層級功能,還是平台功能,還是其他一些功能)?
簡而言之,有人可以向我解釋這些不同的東西是什麼嗎?
答案1
這些都很難定義。一般來說,在設備枚舉的上下文中,
「平台」裝置通常在 PC 上或 Raspberry Pi 上找到。
核心開始尋找它們,因為核心已編譯為在 PC 或 RPi 上運行。一些主機板組件、CPU 和記憶體都屬於此類。
「子系統」基本上是一組針對不同硬體具有相似功能的驅動程式。
然後,各個驅動程式可以依序使用另一個子系統的驅動程式。例如,「聲音」子系統驅動程式處理各個聲卡並提供通用聲卡接口,而驅動程式可以使用 PCI 子系統來查找聲卡,無論使用哪種類型的南橋晶片。
“類”驅動程式處理來自不同供應商的實現公共介面的設備。
這對於 USB 裝置來說是典型的,其中存在例如大容量儲存裝置的標準,並且單一驅動程式處理聲稱相容的所有裝置。