-
- 이점
VFS
라는 추상화 계층을 추가함으로써 하나의 운영체제에서 여러 파일시스템에 대해 공통 인터페이스를 제공한다.- 사용자는 통일된
VFS
시스템 호출로 다양한 파일시스템을 사용할 수 있다.
VFS
는 파일시스템의 일반적인 기능과 동작을 나타내는 공통 파일 모델 을 제공한다.- 이러한 인터페이스 를 구현한 파일시스템을
VFS
의 추상화 계층 밑에 두면, 사용자 입장 에서는 동일한 인터페이스 로 여러 파일시스템을 사용할 수 있다.
- 이러한 인터페이스 를 구현한 파일시스템을
VFS
가 제공하는 공통 파일 모델 덕분에 동일한 인터페이스로 여러 파일시스템을 사용할 수 있다. - 이점
-
- 해당 파일시스템 전체에 대한 메타데이터 를 저장한다.
- 블록 사이즈, 아이노드 테이블 위치, 파일시스템 종류 등
- 슈퍼블록 객체 는 물리적인 공간과 대응된다.
- 디스크의
슈퍼블록
또는제어 블록
- 디스크의
- 해당 파일시스템 전체에 대한 메타데이터 를 저장한다.
-
- 커널이 파일 을 관리하는 데 필요한 모든 정보를 담고 있다.
리눅스
에서는 모든 것이 파일 이며 디렉토리 또한 파일 이름과 아이노드 번호의 매핑 정보를 갖는 파일 이다. - 아이노드 가 없는 파일시스템은
VFS
추상화 인터페이스를 제공하기 위해 직접 파일의 정보를 수집하여 메모리 상에 아이노드 객체 를 구축해야 한다. - 아이노드 객체 또한 물리적인 공간과 대응된다.
- 디스크의
아이노드
- 디스크의
- 커널이 파일 을 관리하는 데 필요한 모든 정보를 담고 있다.
-
-
파일을 포함한 경로 상의 모든 항목을 덴트리 객체 라 부른다.
/bin/vi
경로에서/
,bin
,vi
모두가 덴트리 객체 이다. -
VFS
가 디렉토리 관련 작업을 하면서 필요할 때 경로를 보고 동적으로 덴트리 객체 를 생성한다. -
대응되는 물리적인 공간이 없다.
- 객체의 변경 상태 혹은 디스크 저장 필요 여부를 나타내는 플래그가 없다.
-
사용 상태
,미사용 상태
,부정 상태
의 3가지 상태를 가지며미사용 상태
,부정 상태
는 효과적인 캐싱을 가능하게 해주나 메모리 확보가 필요한 경우 폐기될 수 있다. -
- 탐색 작업이 자주 발생한다는 것을 고려해야 한다. 아이노드는 경로 정보 외에 많은 정보를 담고 있으며 아이노드를 이용한 탐색은 많은 절차를 거치기에 덴트리 객체를 이용한다.
- 덴트리 객체를
dcache
라고 부르는 덴트리 캐시에 저장해 재사용성을 높여 더 빠른 탐색을 가능하게 해준다.
-
-
-
프로세스가
open
한 파일을 표현하는 객체이다.- 프로세스는 슈퍼블록, 아이노드, 덴트리 가 아닌 파일 을 직접 다룬다.
-
파일 객체 는 열린 파일을 메모리 상에 나타낸 것이다.
- 여러 프로세스에서 하나의 파일을 동시에 열 수 있기 때문에, 같은 파일에 대해 여러 개의 파일 객체 가 존재할 수 있다.
-
파일 객체 는 열린 파일을 프로세스 관점 에서 표현해주는 것 뿐이다.
- 프로세스는 파일 객체 를 직접 다루지만, 실제로 열린 파일은 파일 객체 가 가리키는, 덴트리 객체 가 가리키는 아이노드 객체 가 표현한다. VFS 객체 도식
-
대응되는 물리적인 공간이 없다.
- 객체의 변경 상태 혹은 디스크 저장 필요 여부를 나타내는 플래그가 없다.
f_dentry
포인터를 통해 해당 덴트리 객체를 표시하며 그 덴트리 객체가 가리키는 아이노드를 통해 파일의 변경 여부를 표시한다.
-