티끌모아 태산

Chapter 11 : Linux File System 본문

CS 지식/시스템프로그래밍

Chapter 11 : Linux File System

goldpig 2023. 12. 25. 19:12
728x90

File System

The kernel sub-system that manages file system directories in kernel and external memory; 커널 하위 시스템은 커널과 외부 메모리에서 파일 시스템 디렉터리를 관리합니다. and Linux supports many file system types, instances. There are several file systems; Disk-based file systems, Network-based file systems, and special file system.

File System Software Architecture

VFS Layer

  • Virtual File System(VFS)
    • 표준 UNIX 파일 시스템과 관련된 모든 시스템 호출(All system calls)을 처리하는 커널 소프트웨어 레이어입니다.
  • Purpose
    • 사용자 모드 프로세스에 동일한 인터페이스를 제공
    • 다양한 파일 시스템 구현에 대한 커널 추상화를 제공
  • 기능
    • 파일 및 파일 시스템 관련 시스템 호출을 서비스합니다.
    • 모든 파일 및 파일 시스템 관련 데이터 구조를 관리합니다.
    • 파일 시스템을 효율적으로 검색하고 순회하는 루틴을 제공합니다.
    • 특정 파일 시스템 모듈과 상호 작용합니다.

Four Basic VFS Objects

  1. superblock: about a file system
    • 각 마운트된 파일 시스템은 자신의 superblock 객체를 가지고 있습니다.
  2. inode: about a particular file
    • 모든 파일은 디스크 상에 inode 레코드로 표현됩니다.
    • 일부 inode는 커널 메모리에 inode 객체로 로드됩니다.
  3. dentry: about directory tree structure
    • 디렉터리 내의 각 엔트리(즉, 경로의 단일 구성 요소)는 dentry로 표현됩니다.
    • 경로명에서 inode로의 매핑을 위해 사용됩니다.
    • A dentry is a specific component in a path
  4. file: about an open file owned by a process
    • 각 작업은 파일 핸들을 통해 열린 파일을 추적합니다.

VFS는 다양한 파일 시스템을 통합하여 운영 체제가 파일에 대한 작업을 일관된 방식으로 처리할 수 있도록 하는 추상화 계층을 제공합니다. 이 네 가지 기본 객체는 파일 시스템의 다양한 측면을 나타내며, 파일의 저장, 검색 및 관리를 가능하게 합니다.

VFS Object Relationships

dentry와 inode

  • dentry는 커널 메모리에만 존재합니다.
  • inode는 디스크에 존재하지만 접근을 위해 메모리로 로드됩니다(변경 사항은 디스크에 다시 커밋되어야 합니다).
  • 디스크 파일(disk file)과 inode 사이에는 일대일 매핑 관계가 있습니다.
  • 하나의 파일(inode)은 여러 dentry를 가질 수 있습니다(예: 하드링크).
더보기

a. VFS는 무엇이고, 왜 사용하는가?

  VFS(가상 파일 시스템)는 표준 UNIX 파일 시스템과 관련된 모든 시스템 호출을 처리하는 커널 소프트웨어 레이어입니다. VFS의 주요 목적은 사용자 모드 프로세스에 동일한 인터페이스를 제공하고, 다양한 파일 시스템 구현에 대한 커널 추상화를 제공하는 것입니다. 이를 통해 사용자 모드 프로세스는 표준 open/close/read/write 시스템 호출을 유지할 수 있으며, 커널의 다른 부분들은 파일 시스템 외부에서 동일한 추상 인터페이스를 즐길 수 있습니다. VFS는 파일 및 파일 시스템 관련 데이터 구조를 관리하고, 특정 파일 시스템 모듈과 상호 작용하는 등의 기능을 수행합니다.

b. VFS를 구성하는 4가지 자료구조를 쓰고, 설명하고, 자료구조 간 관계에 대해 설명하라.

  1. superblock: about a file system
    • 각 마운트된 파일 시스템은 자신의 superblock 객체를 가지고 있습니다.
  2. inode: about a particular file
    • 모든 파일은 디스크 상에 inode 레코드로 표현됩니다.
    • 일부 inode는 커널 메모리에 inode 객체로 로드됩니다.
  3. dentry: about directory tree structure
    • 디렉터리 내의 각 엔트리(즉, 경로의 단일 구성 요소)는 dentry로 표현됩니다.
    • 경로명에서 inode로의 매핑을 위해 사용됩니다.
    • A dentry is a specific component in a path

dentry는 커널 메모리에만 존재하며, inode는 디스크에 존재하지만 접근을 위해 메모리로 로드됩니다(변경 사항은 디스크에 다시 커밋되어야 함). 디스크 파일(disk file)과 inode 사이에는 일대일 매핑이 있습니다. 파일(inode)은 여러 dentry(예: 하드링크)를 가질 수 있습니다. 각 VFS 객체는 일련의 연산(함수 포인터)을 제공하며, 이는 기본 파일 시스템이 VFS 레이어에 제공하는 인터페이스 입니다.

728x90

'CS 지식 > 시스템프로그래밍' 카테고리의 다른 글

Chapter 10 : Process Address Space  (1) 2023.12.26
Chapter 6 : Signals  (0) 2023.12.25
Chapter 5 : System Calls  (0) 2023.12.25