I

6. 리눅스 파일 시스템 구조

안녕하세요. 하얀 도화지 남편입니다.

오늘은 리눅스 파일 시스템 구조에 대해 알아 볼까합니다.

요약

리눅스 파일 시스템 구조는 계층적 디렉토리를 통해 효율적으로 데이터를 관리하고, 다양한 하드웨어와 소프트웨어 요구를 충족하도록 설계되었습니다. 루트 디렉토리(/) 아래의 디렉토리는 각기 다른 역할을 담당하며, 시스템과 사용자가 조화를 이루어 작업할 수 있도록 돕습니다.

리눅스의 유연한 파일 시스템은 사용자와 개발자가 시스템을 최적화하거나 확장할 수 있도록 강력한 도구를 제공합니다.


리눅스 파일 시스템 구조

리눅스 파일 시스템 구조는 모든 데이터를 파일 형태로 관리하며, 계층적 디렉토리 구조(Hierarchical Directory Structure)를 기반으로 설계되었습니다. 루트 디렉토리(/)를 최상위로 하여 모든 파일과 디렉토리가 트리 구조를 이루고 있습니다. 이 구조는 데이터의 효율적 관리와 시스템 자원의 일관성을 유지하도록 설계되었습니다.


1. 리눅스 파일 시스템의 특징

  1. 계층적 구조
    • 루트 디렉토리(/)를 기준으로 모든 디렉토리와 파일이 연결됩니다.
    • 물리적 저장장치나 네트워크 자원도 루트 디렉토리 하위에 마운트됩니다.
  2. 파일과 디렉토리의 통합 관리
    • 리눅스에서는 모든 것을 파일로 취급합니다.
    • 예를 들어, 장치 파일(하드웨어), 소켓, 파이프도 파일 시스템 내에서 관리됩니다.
  3. 권한 및 소유권 관리
    • 각 파일과 디렉토리는 소유자, 그룹, 기타 사용자로 나뉘며, 읽기(r), 쓰기(w), 실행(x) 권한을 설정할 수 있습니다.
  4. 저널링
    • 대부분의 현대 리눅스 파일 시스템(ext4, XFS 등)은 저널링(Journaling)을 지원하여 데이터 손실을 최소화합니다.

2. 주요 디렉토리 구조

리눅스 파일 시스템의 루트 디렉토리(/) 아래에는 시스템과 사용자가 사용하는 다양한 하위 디렉토리가 존재합니다. 주요 디렉토리와 그 역할은 다음과 같습니다:

디렉토리 설명
/ 최상위 디렉토리로, 모든 파일과 디렉토리가 여기에 연결됩니다.
/bin 기본 명령어 파일이 위치하는 곳으로, 일반 사용자가 실행할 수 있는 바이너리 파일이 포함됩니다.
/boot 부팅에 필요한 파일(커널, 초기화 파일 등)을 저장합니다.
/dev 장치 파일(하드웨어 장치)을 포함하며, 하드 드라이브, USB, 프린터 등이 이 디렉토리에 나타납니다.
/etc 시스템 설정 파일과 구성 파일이 저장됩니다.
/home 일반 사용자의 홈 디렉토리로, 각 사용자의 개인 파일이 저장됩니다.
/lib 시스템과 프로그램이 사용하는 공유 라이브러리가 위치합니다.
/media CD, USB와 같은 이동식 장치가 자동으로 마운트되는 디렉토리입니다.
/mnt 임시로 외부 파일 시스템을 마운트할 때 사용하는 디렉토리입니다.
/opt 추가 애플리케이션 소프트웨어 패키지가 설치되는 디렉토리입니다.
/proc 시스템 프로세스 및 커널 정보를 가상 파일 형태로 제공하는 디렉토리입니다.
/root 시스템 관리자(root 사용자)의 홈 디렉토리입니다.
/sbin 시스템 관리자가 사용하는 시스템 바이너리 파일이 위치합니다.
/srv 시스템에서 제공하는 서비스 관련 데이터를 저장합니다.
/tmp 임시 파일을 저장하는 디렉토리로, 일정 시간이 지나면 자동 삭제됩니다.
/usr 사용자 애플리케이션 및 파일이 저장되며, 여러 하위 디렉토리를 포함합니다.
/var 로그 파일, 캐시 데이터, 메일 등 시스템이 동작하며 변화하는 데이터가 저장됩니다.

3. 파일 시스템의 핵심 디렉토리

  1. /bin/sbin
    • /bin은 일반 사용자가 실행 가능한 기본 명령어(예: ls, cp, mv)를 포함합니다.
    • /sbin은 시스템 관리자가 사용하는 명령어(예: reboot, ifconfig)를 저장합니다.
  2. /lib
    • /lib 디렉토리는 커널과 프로그램이 사용하는 필수 공유 라이브러리를 저장합니다.
    • 동적 링크 라이브러리(.so 파일)가 주로 여기에 있습니다.
  3. /proc
    • 가상 파일 시스템으로, 실행 중인 프로세스와 커널 정보를 파일 형태로 제공합니다.
    • 예: /proc/cpuinfo는 CPU 정보를, /proc/meminfo는 메모리 정보를 담고 있습니다.
  4. /var
    • 시스템의 로그 파일(/var/log), 메일 데이터(/var/mail), 캐시(/var/cache)가 저장됩니다.
    • 크기가 동적으로 변하는 데이터를 관리합니다.

4. 파일 시스템의 마운트

리눅스에서 파일 시스템은 마운트를 통해 디렉토리 계층에 연결됩니다. 마운트란 특정 장치(예: USB, 외장 하드 드라이브)를 특정 디렉토리에 연결하여 접근 가능하게 만드는 작업입니다.

  • 마운트 명령어:
    mount /dev/sdb1 /mnt
    
  • 자동 마운트:
    /etc/fstab 파일을 통해 부팅 시 특정 장치를 자동으로 마운트할 수 있습니다.

5. 파일 시스템 유형

리눅스는 다양한 파일 시스템을 지원하며, 각 파일 시스템은 특정 요구에 맞게 설계되었습니다.

파일 시스템 특징
ext4 가장 널리 사용되는 파일 시스템으로 안정성과 성능이 우수합니다.
XFS 고성능 파일 시스템으로 대용량 데이터 처리에 적합합니다.
Btrfs 스냅샷 및 디스크 중복 제거와 같은 고급 기능을 지원합니다.
NTFS Windows에서 사용하는 파일 시스템으로, 리눅스에서도 읽기/쓰기가 가능합니다.
FAT32 USB와 같은 이동식 장치에서 주로 사용됩니다.

 

Leave a Comment