운영체제 기본/Linux/파일시스템/procfs의 파일 읽기: 두 판 사이의 차이
잔글 관리자님이 운영체제 기본/Linux의 파일시스템/procfs의 파일 읽기 문서를 운영체제 기본/Linux/파일시스템/procfs의 파일 읽기 문서로 이동했습니다: Linux 각론 제목을 계층형 경로로 통일 |
잔글 Linux 각론 경로 변경에 따른 본문·목차·틀 링크 갱신 |
||
| 1번째 줄: | 1번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/ | |이전=← 이전 문서<br />[[운영체제 기본/Linux/파일시스템/ext4의 파일 읽기|ext4의 파일 읽기]] | ||
|목차=[[운영체제 기본/ | |목차=[[운영체제 기본/Linux/파일시스템|파일시스템 목차]] | ||
|다음=다음 문서 →<br />[[운영체제 기본/ | |다음=다음 문서 →<br />[[운영체제 기본/Linux/파일시스템/페이지 캐시|페이지 캐시]] | ||
}} | }} | ||
| 9번째 줄: | 9번째 줄: | ||
== 같은 파일 객체, 다른 연산 구현 == | == 같은 파일 객체, 다른 연산 구현 == | ||
<code>/proc</code>에 procfs가 마운트되어 있다면 경로 탐색은 그 마운트를 통해 procfs의 이름 공간으로 들어간다. <code>uptime</code>도 inode로 표현되며, 열면 열린 파일을 나타내는 <code>struct file</code>과 파일 디스크립터를 얻는다. [[운영체제 기본/ | <code>/proc</code>에 procfs가 마운트되어 있다면 경로 탐색은 그 마운트를 통해 procfs의 이름 공간으로 들어간다. <code>uptime</code>도 inode로 표현되며, 열면 열린 파일을 나타내는 <code>struct file</code>과 파일 디스크립터를 얻는다. [[운영체제 기본/Linux/파일 시스템 콜/read와 write|파일 읽기]]에서 본 것처럼 프로그램은 파일 디스크립터, 받을 버퍼, 읽을 길이를 <code>read()</code>에 전달한다. 프로그램이 별도의 ‘커널 상태 읽기’ 시스템 콜을 선택할 필요는 없다. | ||
달라지는 지점은 파일 객체에 연결된 연산이다. procfs에는 VFS가 호출하는 <code>struct file_operations</code>와 개별 항목이 제공하는 <code>struct proc_ops</code>가 따로 있다. 전자는 VFS 쪽 입구이며, 그 래퍼 함수가 후자의 콜백으로 요청을 넘긴다.<ref name="proc-inode">[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/inode.c?h=v6.12 Linux v6.12 fs/proc/inode.c], proc_get_inode, proc_iter_file_ops, proc_reg_open, proc_reg_read_iter.</ref> | 달라지는 지점은 파일 객체에 연결된 연산이다. procfs에는 VFS가 호출하는 <code>struct file_operations</code>와 개별 항목이 제공하는 <code>struct proc_ops</code>가 따로 있다. 전자는 VFS 쪽 입구이며, 그 래퍼 함수가 후자의 콜백으로 요청을 넘긴다.<ref name="proc-inode">[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/inode.c?h=v6.12 Linux v6.12 fs/proc/inode.c], proc_get_inode, proc_iter_file_ops, proc_reg_open, proc_reg_read_iter.</ref> | ||
| 55번째 줄: | 55번째 줄: | ||
{{이전 다음 문서 | {{이전 다음 문서 | ||
|이전=← 이전 문서<br />[[운영체제 기본/ | |이전=← 이전 문서<br />[[운영체제 기본/Linux/파일시스템/ext4의 파일 읽기|ext4의 파일 읽기]] | ||
|목차=[[운영체제 기본/ | |목차=[[운영체제 기본/Linux/파일시스템|파일시스템 목차]] | ||
|다음=다음 문서 →<br />[[운영체제 기본/ | |다음=다음 문서 →<br />[[운영체제 기본/Linux/파일시스템/페이지 캐시|페이지 캐시]] | ||
}} | }} | ||
{{운영체제 기본 둘러보기}} | {{운영체제 기본 둘러보기}} | ||