가상 파일 시스템

리눅스 커널에서 파일 시스템의 중요성

  • 파일을 어떤 방식으로 관리하는지 파악하는 것은 매우 중요
  • 모든 객체를 파일로 관리

파일 시스템과 관련된 현업 업무

  • 파티션 테이블 작성(LUNn) 및 파티션 추가
  • fstab을 수정해 로지컬 파티션 설정
  • 커널 부팅 과정에서 파티션 마운트 확인
  • fs-verity

파일 시스템은 모두 VFS(가상 파일 시스템)에서 제공하는 API를 통해 접근

  • 슈퍼 블록
  • 아이노드
  • 디엔트리
  • 파일 객체

가상 파일 시스템이란

  • 커널에서 다양한 파일 시스템이 공존하며 동적으로 실행할 수 있
    는 가상 소프트웨어 계층
  • 가상 파일 시스템은 추상화된 파일 시스템임
  • 가상 파일 시스템은 유저 애플리케이션에서 open(), write(), read()
    같은 시스템 콜을 호출하면 다양한 파일 시스템으로 연결해주는 소
    프트웨어 계층

가상 파일 시스템의 주요 특징

  • 가상 파일 시스템을 통해서만 모든 파일 시스템에 접근할 수 있음
  • 여러 파일 시스템에서 공통으로 파일과 디렉터리를 관리할 수 있는 자료구
    조로 구성됨
  • 대부분의 디바이스 드라이버는 가상 파일 시스템과 연동돼 동작
  • 파일 시스템을 관리할 수 있는 공통 자료구조(슈퍼블록 객체, 아이노드 객체,
    파일 객체, 덴트리 객체)로 파일 시스템의 속성을 관리하며, 함수 오퍼레이션
    을 써서 파일 시스템별 세부 함수를 호출

리눅스 시스템 구조 관점에서 가상 파일 시스템의 역할

  • 새로운 파일 시스템을 적용해도 유저 애플리케이션이나 디바이스 드라이버
    코드는 호환성을 유지하며 개발
  • 유저 애플리케이션에서 open(), write() 함수를 호출하면 시스템 콜이 실행
    되고 가상 파일 시스템 계층에 접근

유저 프로세스 입장에서 가상 파일 시스템

  • 유저 애플리케이션 입장에서는 리눅스 시스템에서는 파일 시스템이 하나인
    것처럼 느낄 수 있음
  • 유저 공간에서 open(), read(), write() 함수를 호출하면 가상 파일 시스템에
    서 각각 파일 시스템별로 구현된 함수를 호출
  • 모든 파일 시스템은 가상 파일 시스템을 통해서만 접근 가능

0개의 댓글