在系統中新增一個 driver,即代表是在 kernel 中註冊一個位置,此刻會在 /dev/ 目錄底下建立一個檔案,同時賦予這個 driver 相對的 maojr 與 minor number。例如註冊一個 character driver 使用的 register_chrdev() 函數 (定義在 linux/fs.h 中):
int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);
unsigned int major 是 driver 的 major number,const char *name 是 driver 的名稱 (會出現在 /proc/devices 中),而 struct file_operations *fops 指向 kernel 定義的 file_operations 結構中。這個檔案結構定義了 driver 的所有檔案操作的動作。而我們要知道,這裡所指的檔案跟一般在 user space 中的檔案不同。