파일 시스템

파일 시스템(File system)은 컴퓨터의 저장 장치(하드 디스크, SSD, 플래시 메모리 등)에 데이터를 조직·관리하고, 사용자와 응용 프로그램이 파일 형태로 데이터를 접근·조작할 수 있도록 하는 논리적 구조 및 방법을 말한다. 파일 시스템은 물리적 블록(섹터)과 논리적 파일·디렉터리 구조 사이의 매핑을 담당하며, 파일의 생성·삭제·읽기·쓰기·검색·보호 등을 지원한다.

개념 및 기능

  • 저장 공간 관리 – 물리적 저장 매체를 논리적인 블록이나 클러스터 단위로 나누어 할당하고 해제한다.
  • 파일 및 디렉터리 구조 – 파일을 계층적 디렉터리(폴더) 구조에 배치하여 이름 기반 탐색을 가능하게 한다.
  • 데이터 무결성 – 파일 헤더, 체크섬, 저널링 등 메커니즘을 통해 전원 장애나 시스템 오류 시 데이터 손상을 최소화한다.
  • 보안 및 접근 제어 – 파일 소유자, 그룹, 권한(읽기·쓰기·실행) 등을 정의하여 사용자의 접근을 제한한다.
  • 메타데이터 관리 – 파일의 크기, 생성·수정 시간, 접근 시간, 권한, 위치 정보 등을 저장한다.

역사

초기 컴퓨터에서는 단순히 연속된 레코드 형태의 데이터 저장 방식이 쓰였으며, 1971년 IBM의 도스(DOS) 파일 시스템(FAT)이 대중적인 파일 시스템 구조로 등장했다. 이후 1974년 AT&T 벨 연구소에서 개발한 UNIX 파일 시스템(UFS)이 계층적 디렉터리와 파일 권한 모델을 도입하면서 현대 파일 시스템의 기본 개념이 정립되었다. 1990년대에는 NTFS(Microsoft Windows), ext2/ext3/ext4(Linux), HFS+/APFS(Apple macOS) 등 다양한 파일 시스템이 각 운영체제와 저장 매체의 특성에 맞춰 개발되었다.

주요 종류

파일 시스템 주요 특징 사용되는 운영체제·장치
FAT12/16/32 간단한 구조, 넓은 호환성, 파일 크기·볼륨 제한 초기 DOS, 플래시 메모리, 외장형 저장 장치
NTFS 저널링, 파일 압축·암호화, 권한 제어, 대용량 지원 Microsoft Windows
exFAT FAT 계열의 확장형, 대용량 파일·볼륨 지원 Windows, macOS, 모바일 장치
ext2 저널링 없는 리눅스 파일 시스템 초기 Linux 배포판
ext3 저널링 추가, 안정성 향상 Linux
ext4 대용량 파일·볼륨, 연속 할당 최적화, 저널링 개선 최신 Linux
XFS 대용량 파일·볼륨, 고성능 메타데이터 처리 Linux, 일부 BSD
Btrfs 스냅샷·복제·압축·다중 디스크 풀링 지원 Linux (실험적/일부 배포판)
APFS 스냅샷·클론·암호화, 효율적 공간 관리 macOS, iOS
ZFS 풀 기반 스토리지, 데이터 무결성 검증, 스냅샷·복제 Solaris, FreeBSD, 일부 Linux 배포판

구조

  1. 슈퍼블록(Superblock) – 파일 시스템 전체 메타데이터(총 블록 수, 블록 크기, 사용 가능한 블록 등)를 저장한다.
  2. 인덱스 노드(Inode) 혹은 메타데이터 블록 – 개별 파일에 대한 속성(소유자, 권한, 타임스탬프, 데이터 블록 포인터 등)을 관리한다.
  3. 디렉터리 엔트리 – 파일 이름과 해당 파일의 inode 번호를 매핑한다.
  4. 데이터 블록 – 실제 파일 내용이 저장되는 영역이다.
  5. 저널링(Journal) 영역(저널링 파일 시스템의 경우) – 파일 시스템 메타데이터 변경 기록을 일시적으로 저장해 비정상 종료 시 복구를 돕는다.

파일 시스템 선택 기준

  • 용량 및 파일 크기 요구 – 대용량(테라바이트 이상) 및 초대용량 파일(4 GB 이상) 지원 여부.
  • 성능 – 순차/랜덤 접근 속도, 메타데이터 처리 효율.
  • 호환성 – 여러 운영체제 간 데이터 교환 필요성.
  • 신뢰성·복구 – 저널링, 스냅샷, 데이터 무결성 검사 기능.
  • 보안 – 암호화, 접근 제어 리스트(ACL) 지원 여부.

표준 및 참고 문헌

  • POSIX.1-2001 – 파일 시스템 인터페이스와 권한 모델 정의.
  • IEEE 1667 – 보안 저장 장치 인터페이스 표준.
  • Microsoft Open Specifications – NTFS 구조와 동작에 대한 상세 기술.
  • The Design and Implementation of the Second Extended File System – ext2 설계 문서.

파일 시스템은 저장 매체와 운영체제 사이의 핵심 인터페이스이며, 데이터 보관의 효율성·신뢰성·보안을 좌우한다. 최신 스토리지 환경(SSD, NVMe, 클라우드 스토리지)에서는 전통적인 블록 기반 구조 외에도 키-값 스토어형식, 객체 스토리지 인터페이스 등 새로운 형태의 파일 시스템 연구가 진행되고 있다.

둘러보기

더 찾아볼 만한 주제