파일시스템의 구조
모든 프로세스는 커널의 프로세스 테이블에 엔트리를 가진다. 각 프로세스 테이블 엔트리는 열려있는 파일디스크립터에 대한 테이블을 가진다.
모든 파일테이블의 엔트리는 다음의 정보를 가진다.
- 열려있는 파일의 상태플래그(read, write, ...)
- 현재 열려있는 파일의 오프셋
- 파일에 대한 v노드 테이블에 대한 포인터
- a.out이라는 프로세스가 파일을 연 상황
- b.out이라는 프로세스가 a.out와 동일한 파일을 연 상황
파일을 유일 하게 가리키는 vnode가 있고 파일디스크립터는 프로세스에서 vnode를 바라보는 창문과 같다. 자바의 객체와 참조변수의 관계와 비슷하다고 생각하면 될 듯