12.3. 驅動程式、核心模組和設備

核心匯流排驅動程式會查探設備。核心會為每個偵測到的設備建立內部設備結構,而驅動程式核心會向 udev 精靈傳送 uevent。匯流排設備會以特殊格式的 ID 識別本身,表明其為何種設備。通常這些 ID 會包含廠商和產品 ID,以及其他子系統特定值。每個匯流排都會指定自己的 ID 配置,即所謂的 MODALIAS。核心會接收這些設備資訊、組織 MODALIAS ID 字串,並隨事件傳送該字串。例如,USB 滑鼠的 ID 字串將如下所示:

MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02

每個設備驅動程式都包含有設備可處理的已知別名清單。這份清單會包含在核心模組檔案本身。depmod 程式會讀取 ID 清單,並且為目前所有可用模組在核心的 /lib/modules 目錄中建立 modules.alias 檔案。透過此基礎結構,模組載入方式就會像在每次出現帶有 MODALIAS 識別碼的事件時呼叫 modprobe 一樣容易。如果是呼叫 modprobe $MODALIAS,此次呼叫就會比對設備的已組織設備別名和模組指定別名。如果有找到符合項目,該模組就可載入。這些動作都是由 udev 觸發,而且是自動發生。