글
(1) 파일시스템 관련 자료구조
: task_struct 내에는 파일을 다루기위한 멤버 변수로 files 와 fs 가 존재한다.
○ struct fs_struct *fs;
○ struct files_struct *files; ==> 파일을 관리하는데 사용
○ fs_struct 구조체 내에 이 구조체를 사용하는 프로세스의 수에 대한 정보와 루트 디렉토리와 작업 디렉토리등의 정보를 담은
멤버변수들로 구성되 있다.
- files_struct 구조체의 멤버변수 가운데 fd_array 변수는 <struct file *fd_array>
- fd_array[0] : 첫번째 항 = 표준입력
- fd_array[1] : 두번째 항 = 표준출력
- fd_array[2] : 세번째 항 = 표준에러
- fd_array[3] : 네번째 항부터 내스크가 새로운 파일을 열때마다 할당되서 사용된다.
- file 구조체 안에 f_dentry , f_pos , f_op 들이 있다.
- NR_OPEN_DEFAULT 는 32 로 정의되 있는데, 한번에 열 수 있는 파일의 수를 의미한다.
- struct dentry *f_dentry -> 이 구조체 안에 d_inode변수가 inode를 가리킨다.
- struct file_operations *f_op -> 이 구조체는 lseek, read, write, open 등과 같은 파일연산을 나타내는 변수로 구성.
리눅스는 다양한 유형의 파일을 지원하고,
커널은 각 파일의 유형에 따라 적합한 함수를 사용해야한다.
이때 file_operation 자료구조가 이용된다.
※ 출처 : http://idkkangjs.blog.me/30091117058
'L inux > Kernel' 카테고리의 다른 글
파일시스템 - proc 파일시스템 (0) | 2011.09.28 |
---|---|
파일시스템 - NFS 파일시스템 (0) | 2011.09.28 |
파일시스템 - ext2 파일시스템 (0) | 2011.09.28 |
파일시스템 - 개요 (0) | 2011.09.27 |
메모리 관리 - 페이지 할당 / 교체 (0) | 2011.09.27 |
RECENT COMMENT