Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

136199
1107
135864


[리눅스커널] 가상파일시스템: 덴트리 객체 소개 13. 가상 파일 시스템

유저 공간에서 다양한 디렉터리 패스 정보가 포함된 파일 정보를 인자로 시스템 콜로 호출합니다. 만약 유저 공간에서 다음 06번째 줄 코드와 같이 파일 오픈 요청을 한다고 가정합시다.
01 int main() 
02 {
03    int fd = 0;
04    ssize_t read_buf_size;
05   
06    fd = open("/home/pi/sample_text.text", O_RDWR);
...
07 }

물론 유저 공간에서 open() 함수를 호출하면 커널 공간에서 시스템 콜 핸들러인 sys_open() 함수를 호출할 것입니다. 이 과정에서 덴트리 객체는 다음과 같은 동작을 수행합니다. 
"/home" 디렉토리에서 pi 디렉토리를 검색
pi 디렉토리가 유효하고 접근 가능한지 점검
pi 디렉토리 내 sample.txt 파일이 있는지 체크
디렉토리의 상관 관계도 정확히 점검해 덴트리 구조를 생성: "/home" 하위 디렉토리에 pi가 있고 pi 하부 디렉토리에 sample_text.txt 

이렇게 디렉토리 경로를 해석하고 디렉토리 간 관계를 점검하는 동작을 덴트리 객체를 이용해서 수행합니다.

덴트리에 대해 소개를 했으니 다음 소절에서 덴트리 자료 구조를 알아보겠습니다.


"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)


Reference(가상 파일시스템)

가상 파일시스템 소개
파일 객체
파일 객체 함수 오퍼레이션 동작
프로세스는 파일객체 자료구조를 어떻게 관리할까?
슈퍼블록 객체
아이노드 객체
덴트리 객체
가상 파일시스템 디버깅

핑백

덧글

댓글 입력 영역