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