운영체제 기본/Linux/파일 시스템 콜/시스템 콜과 파일 디스크립터: 두 판 사이의 차이

Linux 계층형 경로에 맞춰 문서 링크 갱신
 
1번째 줄: 1번째 줄:
{{이전 다음 문서
{{이전 다음 문서
|이전=첫 문서
|이전=첫 문서
|목차=[[운영체제 기본/Linux의 파일 시스템 콜|파일 시스템 콜 목차]]
|목차=[[운영체제 기본/Linux/파일 시스템 콜|파일 시스템 콜 목차]]
|다음=다음 문서 →<br />[[운영체제 기본/Linux의 파일 시스템 콜/openat과 경로 탐색|openat과 경로 탐색]]
|다음=다음 문서 →<br />[[운영체제 기본/Linux/파일 시스템 콜/openat과 경로 탐색|openat과 경로 탐색]]
}}
}}


69번째 줄: 69번째 줄:
== 공통 VFS와 대상별 연산 ==
== 공통 VFS와 대상별 연산 ==


가상 파일시스템(Virtual File System, VFS)은 열린 파일과 연산의 공통 틀을 제공한다. <code>read()</code>는 <code>vfs_read()</code>를 거쳐 <code>f_op</code>의 읽기 함수를 고르고, <code>write()</code>도 <code>vfs_write()</code>에서 쓰기 함수를 고른다. 이때 실제 구현은 ext4, procfs, 장치 드라이버 등에 따라 달라진다. inode·dentry·마운트의 관계는 [[운영체제 기본/Linux의 파일시스템/VFS와 파일 객체|VFS와 파일 객체]]에서 자세히 다룬다.
가상 파일시스템(Virtual File System, VFS)은 열린 파일과 연산의 공통 틀을 제공한다. <code>read()</code>는 <code>vfs_read()</code>를 거쳐 <code>f_op</code>의 읽기 함수를 고르고, <code>write()</code>도 <code>vfs_write()</code>에서 쓰기 함수를 고른다. 이때 실제 구현은 ext4, procfs, 장치 드라이버 등에 따라 달라진다. inode·dentry·마운트의 관계는 [[운영체제 기본/Linux/파일시스템/VFS와 파일 객체|VFS와 파일 객체]]에서 자세히 다룬다.


<code>openat()</code>은 아직 fd가 없으므로 경로 탐색에서 시작하고, <code>close()</code>는 fd 테이블의 연결을 제거한다. 모든 시스템 콜이 똑같은 함수열을 통과하는 것은 아니지만, 이들이 만들고 사용하는 <code>struct file</code>이 파일 접근의 수명을 연결한다.
<code>openat()</code>은 아직 fd가 없으므로 경로 탐색에서 시작하고, <code>close()</code>는 fd 테이블의 연결을 제거한다. 모든 시스템 콜이 똑같은 함수열을 통과하는 것은 아니지만, 이들이 만들고 사용하는 <code>struct file</code>이 파일 접근의 수명을 연결한다.
78번째 줄: 78번째 줄:
{{이전 다음 문서
{{이전 다음 문서
|이전=첫 문서
|이전=첫 문서
|목차=[[운영체제 기본/Linux의 파일 시스템 콜|파일 시스템 콜 목차]]
|목차=[[운영체제 기본/Linux/파일 시스템 콜|파일 시스템 콜 목차]]
|다음=다음 문서 →<br />[[운영체제 기본/Linux의 파일 시스템 콜/openat과 경로 탐색|openat과 경로 탐색]]
|다음=다음 문서 →<br />[[운영체제 기본/Linux/파일 시스템 콜/openat과 경로 탐색|openat과 경로 탐색]]
}}
}}


{{운영체제 기본 둘러보기}}
{{운영체제 기본 둘러보기}}