가상 파일 시스템
리눅스 커널에서 파일 시스템의 중요성
- 파일을 어떤 방식으로 관리하는지 파악하는 것은 매우 중요
- 모든 객체를 파일로 관리
파일 시스템과 관련된 현업 업무
- 파티션 테이블 작성(LUNn) 및 파티션 추가
- fstab을 수정해 로지컬 파티션 설정
- 커널 부팅 과정에서 파티션 마운트 확인
- fs-verity
파일 시스템은 모두 VFS(가상 파일 시스템)에서 제공하는 API를 통해 접근
가상 파일 시스템이란
- 커널에서 다양한 파일 시스템이 공존하며 동적으로 실행할 수 있
는 가상 소프트웨어 계층
- 가상 파일 시스템은 추상화된 파일 시스템임
- 가상 파일 시스템은 유저 애플리케이션에서 open(), write(), read()
같은 시스템 콜을 호출하면 다양한 파일 시스템으로 연결해주는 소
프트웨어 계층
가상 파일 시스템의 주요 특징
- 가상 파일 시스템을 통해서만 모든 파일 시스템에 접근할 수 있음
- 여러 파일 시스템에서 공통으로 파일과 디렉터리를 관리할 수 있는 자료구
조로 구성됨
- 대부분의 디바이스 드라이버는 가상 파일 시스템과 연동돼 동작
- 파일 시스템을 관리할 수 있는 공통 자료구조(슈퍼블록 객체, 아이노드 객체,
파일 객체, 덴트리 객체)로 파일 시스템의 속성을 관리하며, 함수 오퍼레이션
을 써서 파일 시스템별 세부 함수를 호출
리눅스 시스템 구조 관점에서 가상 파일 시스템의 역할
- 새로운 파일 시스템을 적용해도 유저 애플리케이션이나 디바이스 드라이버
코드는 호환성을 유지하며 개발
- 유저 애플리케이션에서 open(), write() 함수를 호출하면 시스템 콜이 실행
되고 가상 파일 시스템 계층에 접근
유저 프로세스 입장에서 가상 파일 시스템
- 유저 애플리케이션 입장에서는 리눅스 시스템에서는 파일 시스템이 하나인
것처럼 느낄 수 있음
- 유저 공간에서 open(), read(), write() 함수를 호출하면 가상 파일 시스템에
서 각각 파일 시스템별로 구현된 함수를 호출
- 모든 파일 시스템은 가상 파일 시스템을 통해서만 접근 가능