[問題] kernel system call open

看板Linux作者 (非常念舊)時間8年前 (2016/06/10 10:30), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
最近想追一下 kernel ,就從網路上常見的 chrdev driver 開始看起 知道在 init_xxx(){ register_chrdev(major, name, &fops) } module_init(init_xxx) 註冊 driver 。到 register_chrdev 去看,裡面的內容大致說---註冊 struct cdev 到系統,以及對 cdev 的成員賦值。例如: kobject 或者 file operation 等等.. 另外在 write 奧秘這篇網誌我看到,他open file 後會得到 file descriptor, 再透過 file descriptor 得到 file 結構,再透過 file 結構內的 ops 得到 driver method。 綜合上面兩個,我還是不知道他是如何透過 open 將 file 結構和 driver 內的 file_operations 結構關聯在一起,能有大大指點嗎? 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.115.110.72 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1465525829.A.D7A.html

06/10 13:25, , 1F
ok,從 sys_open開始 trace,有說到了最後是透過
06/10 13:25, 1F

06/10 13:26, , 2F
inode 去找到驅動程式的 method,並回傳 fd
06/10 13:26, 2F
文章代碼(AID): #1NMYP5rw (Linux)