1. 程式人生 > >應用層到驅動層

應用層到驅動層

1、應用層—->VFS——>驅動層——–>硬體層;
2、應用層的程式要想跟底層的硬體打交道必須要有裝置檔案;在應用層通過open開啟一個裝置檔案時,在VFS層會建立inode結構體和file結構體,前者是靜態的描述裝置的一些資訊(如:裝置號,節點指標,裝置型別以及cdev結構體),後者則會描述裝置型別的一些動態資訊(如:檔案方法集,讀寫位置,許可權,私有屬性等)。注意file結構體中有inode的地址。
3、此時根據inode結構體中的裝置號在核心的chrdevs陣列中找到對應的cdev結構體;然後將找到的cdev結構體的地址賦值給inode中的i_cdev成員。同時將cdev中的file方法集的地址複製給file結構體中的f_op(這是關鍵的一步)。
4、最後,VFS層返回一個與file結構體相對應的檔案描述符fd給應用程式,應用程式就通過這個fd找到VFS中的file結構體,再進一步找到file結構體中的file方法集,從而找到字元裝置的函式介面了。