[Linux] struct file* 질문

jkw1234의 이미지

"linux struct file *flip 은 각 파일마다 하나씩 존재하나요?"가 질문입니다.

task -> fd array -> file -> dentry -> inode 와 같은 구조를 가지고 있다고 알고있습니다.

그리고 file struct에는 f_op 즉 오퍼레이션이 있고, f_pos는 이제 각 task마다 파일을 처리 할 때 offset? 을 가지고 있다고 알고있습니다.

그리고 현재 특정 파일에 접근 할 때 다른 operation을 등록하기 위해서 f_op을 수정하는 작업을 하고있습니다.

그런데 궁금한점이 있습니다.

예를들어 하나의 LKM에서 "/" 루트 폴더의 file struct를 구해서 f_op를 수정하였다고 하면,

다른 LKM에서도 "/" 접근 할 때 변조된 f_op에 접근되는거 같은데..

그러면 각 파일마다 고유한 f_op를 가지고 있는 건가요?

디바이스 드라이버 같은 경우는.. 각 장치파일마다 고유한 f_op가 있다지만..

저렇게 "/" 파일 마다 고유한게 있는지 궁금합니다.

두서 없이 질문해서 죄송합니다ㅏ.