리눅스 파일 시스템

김명주·2024년 12월 27일
0

파일 시스템이란?

파일 시스템은 데이터를 저장하고 조직하는 방식.
리눅스는 트리 구조로 구성된 계층적 파일 시스템을 사용하여 모든 파일과 디렉토리가 루트 디렉토리 /에서 시작한다.

  • 트리 구조 : 루트 디렉토리 / 에서 시작해 하위 디렉토리가 연결되는 방식
  • 리눅스에서는 모든 것이 파일로 간주된다
    일반 파일 뿐 안이라 디바이스, 프로세스, 네트워크 소켓 등도 파일로 처리된다.

파일 시스템 유형

리눅스는 다양한 파일 시스템 유형을 지원한다. 각 파일 시스템은 특정 용도나 환경에 맞게 설계되었으며, 성능, 안정성, 확정성 등에서 차이가 있다.

특성ext4XFSBtrfsZFS
유형저널링 파일 시스템고성능 저널링 파일 시스템복사-on-write 파일 시스템복사-on-write 파일 시스템
주요 특징안정성과 성능이 뛰어남대용량 파일 처리에 적합한 고성능스냅샷과 데이터 무결성 기능 강화데이터 무결성, 스냅샷, RAID 지원
사용 환경데스크톱 환경에서 일반적으로 사용대규모 서버 환경에서 선호데이터 무결성과 스냅샷 기능이 중요한 환경(NAS 등)엔터프라이즈 스토리지, 서버 환경
최대 파일 크기16Tib8Eib16Eib16Eib
최대 파일 시스템 크기1Eib8Eib16Eib256Zib
내장 압축없음없음있음있음
자체 복구 기능제한적제한적있음있음
스냅샷 기능없음있음있음있음

주요 디렉터리 구조

/ (루트 디렉터리)

  • 모든 리눅스 파일 시스템의 최상위 디렉터리
  • 모든 파일과 디렉터리는 이 디렉터리에서 시작된다

/bin (binary)

  • 시스템의 기본 명령어가 저장되는 디렉터리
  • 시스템이 부팅될 때 필요한 기본 명령어들을 포함한다
    예: ls, cp, mv

/sbin (System Binary)

  • 시스템 관리자용 명령어들이 저장되는 디렉터리
  • 주로 시스템 설정, 네트워크 구성, 디스크 관리 등과 관련된 명령어들이 포함된다
    예 : fdisk, ifconfig, mount

/etc (Etc.)

  • 시스템의 설정 파일들이 저장되는 디렉터리
  • 사용자 계정, 네트워크 설정, 시스템 서비스 설정 등 중요한 설정 파일들이 이 디렉터리에 위치한다.
    예: passwd, hosts, fstab

/home (홈 디렉터리)

  • 일반 사용자들의 개인 디렉터리가 위치하는 곳
  • 각 사용자는 자신의 이름으로 된 하위 디렉터리를 가지며, 여기에 개인 파일과 설정을 저장
    예 : /home/username

/var (Variable)

  • 시스템의 가변적인 데이터를 저장하는 디렉터리
  • 로그 파일, 메일 큐, 임시 파일 등 시간에 따라 크기가 변하는 파일들이 저장된다.
    예 : /var/log (시스템 로그), /var/spool (프린트 스풀), /var/mail(메일 큐) 등

/tmp (Temporary)

  • 임시 파일들을 저장하는 디렉터리
  • 시스템이나 프로그램이 임시로 사용하는 파일들이 이 디렉터리에 저장됨
  • 시스템 재 부팅 시 이 디렉터리의 내용은 삭제된다.

/usr (User Binary and data)

  • 사용자의 시스템 관련 프로그램, 라이브러리, 문서 등이 저장되는 디렉터리
  • 시스템의 기본 운영에 필요한 대부분의 프로그램과 데이터가 이 디렉터리에 위치한다.
  • 주요 하위 디렉터리로는 /usr/bin (사용자 명령어), /usr/lib(라이브러리), /usr/share(공유 데이터) 등이 있다.

lib (Libraries)

  • 시스템의 핵심 기능을 수행하는 데 필요한 공유 라이브러리 파일들이 저장되는 디렉터리
  • 커널 모듈과 디바이스 드라이버도 이 디렉터리에 포함됨.
  • 예 :libc.so(C 라이브러리), ld-linux.so (동적 링커) 등

/dev (Device Files)

  • 시스템의 하드웨어 장치들을 파일로 표현한 디렉터리
  • 모든 하드웨어 장치는 이 디렉터리에 파일로 표현되어 있어, 프로그램이 하드웨어에 접근할 수 있게 한다.
  • 예 : /dev/sda (첫번째 하드디스크), /dev/tty(터미널), /dev/null (널 장치) 등

/proc (Process information)

  • 프로세스와 시스템 정보를 제공하는 가상 파일 시스템
  • 실행중인 프로세스의 정보와 시스템 리소스에 대한 실시간 정보를 포함한다.
  • 이 디렉터리의 내용은 실제로 디스크에 저장되지 않고, 커널에 의해 동적으로 생성된다.
  • 예 : /proc/cpuinfo (cpu 정보), /proc/meminfo(메모리 정보), /proc/[PID] (특정 프로세스 정보) 등

/sys (System)

  • 시스템 및 하드웨어 정보를 제공하는 가상 파일 시스템
  • 주로 장치 드라이버와 커널 모듈에 대한 정보를 포함
  • 하드웨어 설정을 변경하거나 시스템 정보를 조회할 때 사용된다
  • 예 :/sys/devices (시스템의 모든 장치), /sys/bus (시스템 버스 정보), /sys/class(장치 클래스 정보) 등
profile
개발자를 향해 달리는 사람

0개의 댓글