Linux VFS

less than 1 minute read

VFS

kernel에서 모든 unix standard filesystem을 불러올 수 있게 하는 layer입니다. 이 VFS layer덕분에 서로 다른 파일 시스템이 양립이 가능합니다. 왜냐하면 똑같은 유저 인터페이스를 유저 프로세스에게 제공합니다. 그리고 서로 다른 파일 시스템에 각각 맞는 abstraction을 제공합니다. 즉 kernel안에서 서로 다른 file system들이 같이 사용될 수 있게 하는 것입니다.

이러한 VFS덕분에 file system이 system call을 handle할 수 있고 모든 파일들과 파일 시스템의 자료 구조를 다룰 수 있습니다. 또한 파일 시스템 관장이 편해지고 파일 시스템 참조가 쉬워집니다. 특정 파일 시스템 모듈과도 소통할 수 있게 해줍니다.

이런 VFS는 리눅스에서 4가지 오프젝트로 이루어져있습니다.

superblock object: 전체 file system tree의 최 상단에 존재하는 오브젝트로 mounted된 파일 시스템의 정보를 가지고 있습니다.

inode object: 각각의 파일의 메타정보를 가지고 있습니다.

file object: 정보를 담고 있는 파일들입니다.

dentry object: 각 파일의 디렉토리 링크를 가지고 있습니다. 그리고 디렉토리 간의 링크도 가지고 있습니다.

Leave a comment