Linux File System

2025. 3. 4. 14:50Linux File System

fhs-2.3.pdf
0.49MB

🚀 Linux 파일시스템 개요 및 주요 개념 정리

🎯 1. 파일시스템 개념 및 필요성

파일시스템은 컴퓨터의 데이터를 저장 및 관리하는 구조를 의미하며, 운영체제(OS)가 디스크 저장 공간을 효율적으로 사용하고, 파일을 쉽게 찾을 수 있도록 도와줍니다.

파일시스템이 필요한 이유

  1. RAM은 휘발성(Volatile) 메모리이므로, 전원이 꺼지면 데이터가 손실됨 → 비휘발성(Non-Volatile) 저장 장치 필요
  2. RAM은 저장 공간 비용이 비싸기 때문에 대량의 데이터를 저장하기에 적합하지 않음
  3. 디스크 저장소는 RAM보다 저렴하고 용량이 크며, 영구적으로 데이터 저장 가능

🎯 2. Linux에서 "파일시스템"의 다양한 의미

"파일시스템"이라는 단어는 여러 의미로 사용됩니다.
다음과 같은 3가지 주요 의미로 구분할 수 있습니다.

1) 전체 디렉터리 구조

  • Linux는 단일 계층 디렉터리 구조(단일 루트 /) 를 가짐
  • 모든 파일과 디렉터리는 / (루트) 디렉터리를 중심으로 구성됨

2) 파일 저장 형식(파일시스템 종류)

  • EXT3, EXT4, XFS, BTRFS, NTFS 등 다양한 형식이 존재
  • Linux는 100개 이상의 파일시스템을 지원하며, 각 파일시스템은 데이터를 저장하는 고유한 메타데이터 구조를 가짐

3) 특정 파티션 또는 볼륨에 포맷된 파일시스템

  • 디스크의 특정 영역(파티션 또는 논리 볼륨)에 특정 파일시스템 형식으로 포맷하여 저장 공간 활용
  • mount 명령어를 사용하여 특정 디렉터리에 마운트하여 사용

🎯 3. 파일시스템의 주요 기능

파일시스템은 단순한 데이터 저장뿐만 아니라 다양한 기능을 제공합니다.

1) 네임스페이스 (Namespace)

  • 파일 및 디렉터리의 이름을 정하고, 조직화하는 방법
  • 허용 가능한 문자, 파일명 길이 등의 규칙 정의
  • 디렉터리(폴더) 구조를 사용하여 논리적으로 파일을 분류

2) 메타데이터 구조 (Metadata Structure)

  • 파일의 속성(파일 크기, 생성 날짜, 변경 날짜, 저장 위치 등) 저장
  • 디스크 블록의 사용 여부를 관리
  • 논리적 디렉터리 구조 유지

3) API 제공 (Application Programming Interface)

  • 시스템이 파일을 생성, 수정, 삭제, 이동하는 기능 제공
  • 파일 배치 및 조각화 최소화를 위한 알고리즘 포함

4) 보안 모델(Security Model)

  • 파일 및 디렉터리에 대한 접근 권한 설정 가능
  • 사용자 및 그룹별로 파일 접근 권한을 세분화하여 관리 가능
  • chmod, chown, chgrp 명령어를 통해 파일 권한 제어

5) 가상 파일시스템 (Virtual File System, VFS)

  • 커널이 다양한 파일시스템을 단일 인터페이스로 관리하는 계층
  • EXT3, EXT4, NTFS 등의 서로 다른 파일시스템을 통일된 방식으로 접근 가능하도록 설계

📌 VFS 구조

🎯 4. Linux의 주요 디렉터리 구조

Linux의 파일 및 디렉터리는 계층적 트리 구조로 구성되어 있으며, Filesystem Hierarchy Standard(FHS)를 준수합니다.

디렉터리 설명
/ (root) 최상위 디렉터리
/bin 실행 가능한 필수 명령어 (ls, cat, cp 등)
/boot 부팅 관련 파일 (커널, GRUB 등)
/dev 장치 파일 (하드디스크, USB 등)
/etc 시스템 설정 파일 (passwd, fstab 등)
/home 일반 사용자 계정의 홈 디렉터리
/lib 필수 공유 라이브러리 (glibc 등)
/media USB, CD-ROM 등 이동식 미디어 마운트 위치
/mnt 임시 마운트 디렉터리
/opt 추가 소프트웨어 패키지 설치 경로
/root root 사용자의 홈 디렉터리
/sbin 시스템 관리 명령어 (fdisk, iptables 등)
/tmp 임시 파일 저장소
/usr 공유 가능한 응용 프로그램 및 라이브러리
/var 로그, 이메일, 웹 서버 데이터 등 가변 파일 저장소

📌 Windows와 달리, Linux는 모든 저장 장치를 / 아래에 통합하여 관리
(예: /mnt/usb에 USB 드라이브를 마운트)

🎯 5. Linux 파일시스템 유형

Linux는 다양한 파일시스템을 지원하며, 각 파일시스템은 특정 용도에 최적화되어 있습니다.

파일시스템 유형 설명
EXT3 저널링 기능을 지원하는 Linux 파일시스템
EXT4 EXT3의 개선 버전, 현재 가장 많이 사용됨
XFS 대용량 파일에 최적화, 높은 성능 제공
BTRFS 스냅샷 및 압축 기능을 지원하는 최신 파일시스템
VFAT Windows와 호환되는 FAT 기반 파일시스템
NTFS Windows에서 주로 사용되는 파일시스템
ReiserFS 빠른 파일 검색이 가능한 파일시스템

📌 EXT4가 현재 Linux에서 가장 많이 사용되는 표준 파일시스템

🎯 6. 파일시스템 마운트 (Mounting)

Linux에서는 파일시스템을 특정 디렉터리에 "마운트(mount)"하여 접근합니다.

마운트 명령어 사용법

1️⃣ USB 드라이브 마운트 예제

sudo mount /dev/sdb1 /mnt/usb

/dev/sdb1 (USB 드라이브)을 /mnt/usb 디렉터리에 마운트

2️⃣ 자동 마운트 설정 (/etc/fstab 활용)

/dev/sdb1  /mnt/usb  ext4  defaults  0  0

✅ 부팅 시 자동으로 /mnt/usb에 마운트

3️⃣ 마운트 해제 (Unmount)

sudo umount /mnt/usb

/mnt/usb의 마운트 해제

🎯 7. 결론

Linux 파일시스템은 데이터를 효율적으로 저장하고 관리하는 핵심 요소
VFS(Virtual File System)를 통해 다양한 파일시스템을 통합적으로 관리
파일시스템에는 EXT4, XFS, BTRFS, NTFS 등 다양한 종류가 존재
마운트(Mount)를 통해 저장 장치를 디렉터리로 연결하여 사용
디렉터리 구조는 FHS(Filesystem Hierarchy Standard)를 준수

 

💡 Linux 파일시스템을 이해하면 데이터 저장 및 관리가 더욱 효과적으로 이루어집니다! 🚀

'Linux File System' 카테고리의 다른 글

inode  (0) 2025.03.04
EXT4  (0) 2025.03.04