가상 파일시스템 


 PC를 사용하다보면 하나의 OS에서 여러 개의 파일 시스템에 접근해야 할 경우가 종종 있다. 최근의 윈도우 OS의 경우 FAT32 파일시스템 위에 OS가 설치되어 있다고 하더라도 별도의 설정 없이도 다른 파티션에 있는 NTFS를 읽고 쓸 수 있다. 또한 리눅스의 경우 지원하는 파일 시스템의 종류를 보면 10여 가지에 달한다. 이것은 OS 차원에서 가상 파일시스템(Virtual FileSystem)이라는 상위 레벨의 파일시스템 인터페이스가 존재하기 때문에 응용 프로그램에서는 아무 구분 없이 OS의 시스템 콜을 호출하면 커널은 미리 등록되어 있는 파일 시스템 함수를 호출하여 그 종류에 상관없이 같은 결과를 볼 수 있다. 만약 가상 파일시스템이 없다면 일단 OS를 설치하고 나면 다른 파일시스템에 설치된 파티션을 인식할 수 없을 뿐만 아니라 다른 파일시스템의 인식을 위해서 별도로 컴파일된 파일시스템 모듈을 덮어씌워야 할 것이다.

사용자 삽입 이미지


그림은 가상 파일스스템과 일반 파일시스템의 레이어 구조를 나타낸 것이다. 가상 파일 시스템은 로컬 영역이나 원격 영역의 파일 시스템을 실제로 제어하지 않기 때문에 OS 부팅 시에 사용 가능한 파일시스템 함수를 가상 파일시스템 쪽으로 등록해 주어야 한다. 일반적으로 하드디스크에서 사용하는 파일 시스템뿐만 아니라 CD-ROM 파일 시스템과 네트워크 파일시스템 등 기본적으로 등록하는 파일시스템이 여러 가지 있다.

가상 파일시스템의 아이디어가 최초 적용된 OS는 1986년 Sun Microsystems의 SunOS2.0이다. 당시 SunOS에서 로컬 영역의 UFS와 Remote 영역의 NFS를 동시에 지원하면서 그 개념이 도입되었고, 이후 대부분의 유닉스 계열의 OS들이 가상 파일시스템을 지원하였다.

+ Recent posts