Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

593
557
422264


[리눅스커널][가상파일시스템] 파일 객체: read() 함수 연산 세부 동작 분석 13. 가상 파일 시스템

파일 객체: read() 함수 연산 세부 동작 분석

유저 공간에서 read() 함수를 호출할 때 커널에서는 가상 파일시스템 관련 코드가 실행하는지 알아봅시다.

다음 그림과 같이 유저 공간에서 read() 함수를 호출하면 파일시스템별로 관리하는 파일객체에서 파일 오퍼레이션을 수행하는 방식입니다.
 

위 그림을 보면 유저 공간에서 read() 함수를 호출하면 각 파일시스템별 파일 오퍼레이션에 따라 다른 함수를 실행한다는 사실을 알 수 있습니다.

유저 공간에서 read() 함수를 호출하면 시스템 콜을 발생시키고 커널 공간에서 read() 함수에 해당하는 시스템 콜 핸들러인 sys_read() 함수를 실행합니다.

이제부터 sys_read() 함수부터 각 파일시스템 내 파일 종류별로 설정한 vfs_read() 함수까지 실행 흐름을 알아보겠습니다. 

먼저 sys_read() 함수를 분석하겠습니다. sys_read() 함수를 살펴보기 전에 함수 선언부를 소개합니다.

https://elixir.bootlin.com/linux/v4.14.70/source/include/linux/syscalls.h
asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count);

 

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

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


Reference(가상 파일시스템)

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


# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2



repository:
http://rousalome.egloos.com/10026102


핑백

덧글

댓글 입력 영역