OS

[ Linux ] FHS - 파일시스템 계층 구조 표준

jogaknabi_1023 2024. 11. 10. 23:52

FHS-Filesystem Hierarchy Standard

모든 디렉토리가 루트 디렉토리 (/)의 하위 디렉토리이다.
특징: compartmentalization, writability, shareability

  • /bin : 일반 사용자를 위한 명령어 바이너리
    /bin/bash : bash shell
    /bin/cat : display file contents
    /bin/cp : 파일 복사
    /bin/dd : copy files byte-wise (데이터의 모든 바이트를 그대로 복사. 주로 메모리에서 메모리로 데이터 복사할 때 사용)
    /bin/gzip : 파일 압축
    /bin/mount : 파일 시스템 마운트
    /bin/rm : 파일 삭제
    /bin/vi : 파일 편집
  • /dev : 장치 파일
    character-oriented 파일 - 프린터, 테이프, 마우드 등등
    block-oriented 파일 - 하드디스크, DVD
    - 장치 드라이버에 대한 연결은 장치 번호를 통해 커널에서 구현된다. 과거에는 mknod 명령으로 수동으로 생성되었는데 요즘에는 커널에서 장치를 발견하면 자동으로 생성된다.
    /dev/null - null device (걍 쓰레기통이라 생각하면 됨)
    /dev/zero - zero device
    /dev/console
    /dev/tty1 - virtual terminal
    /dev/ttyS0 - parallel port
    /dev/lp0 - 플로피 디스크 드라이브
    /dev/sda - 하드디스크
    /dev/sda1 - 하드디스크 파티션
    /dev/scd0 - CD-ROM 드라이브
  • /etc : 시스템 전반적인 설정 파일. 거의 모든 파일이 ASCII파일들.
    - 일반 사용자도 읽을 수 있지만 몇몇 파일들은 루트 계정으로 들어가야함.
    - 어디에도 속하지 않는 파일들을 모아두는데 shell scripts는 포함되지 않음.
    - 거의 설치된 서비스들은 /etc 및 하위 디렉토리에서 찾을 수 있음.
    /etc/SuSE-release : 설치된 시스템 버전
    /etc/DIR_COLORS : 커맨드 색깔
    /etc/fstab : 파일 시스템 정보 저장. 마운트 정보 저장
    /etc/profile : 쉘 로그인 스크립트
    /etc/password : 사용자 데이터베이스, 패스워드 제외
    /etc/shadow : 패스워드 정보
    /etc/group : 사용자 그룹의 데이터베이스
    /etc/cups : Common Unix Printing System
    /etc/hosts : 호스트 이름과 IP 주소
    /etc/motd : 로그인 후 메시지
    /etc/issue : 로그인 전 메시지
    /etc/sysconfig : 시스템 구성 파일
  • /lib : 시스템 부팅과 /bin, /sbin 디렉토리에 있는 바이너리 파일들을 실행해주는 공유 라이브러리.
    커널 모듈은 /lib/modules 에 있음.
  • /sbin : 시스템 바이너리 (실행파일) 시스템 관리의 중요한 프로그램들 포함. 루트 사용자에 의해 실행됨.
    /sbin/yast : 관리 도구
    /sbin/fdisk : 파티션 수정
    /sbin/fsck : 파일시스템 확인
    /sbin/mkfs : 파일 시스템 생성
    /sbin/shutdown : 시스템 셧다운
  • /lib64
    /lib 이랑 비슷.
  • /usr : UNIX System Resource. 시스템이 아닌 사용자가 실행할 프로그램들이 저장됨.
    /usr/X11R6 : X Window System Files
    /usr/bin : 실행 파일
    /usr/lib : 프로그램들이 의존하는 라이브러리 파일들
    /usr/local : 기본 os 시스템이 사용하지 않는 파일. 로컬로 설치된 것들.
    /usr/sbin : 시스템 관리 프로그램들
    /usr/share/doc : 문서
    /usr/src : 커널 및 프로그램들 소스코드
    /usr/share/man : 메뉴얼 페이지
  • /opt : Optional Application Directory
    외부 응용 프로그램을 설치 및 저장할 때 사용. 주로 시스템 전체 소프트웨어 설치에 사용되는 /usr 와 달리 핵심 운영 체제의 일부가 아닌 소프트웨어 설치를 위한 지정된 위치를 제공한다.
  • /boot : 부트로더 파일들
    부트로더는 시스템이 부팅될 때 처음으로 구동되는 시스템으로 운영체제가 본격적으로 구동되지 전 필요한 작업을 수행하고 운영체제 커널에서 필요한 제어 정보를 커널 프로그램에 전송하는 역할을 한다.
  • /home : 여러 사용자의 홈 디렉토리가 모여 있는 디렉토리. 리눅스에 처음 로그인하면 접속되는 위치.
  • /run : CD_ROM 이나 USB 같은 외부 장치를 연결하는 디렉토리
  • /mnt : 파일 시스템을 임시로 연결하는 디렉토리
  • /srv : Service Data Directories. 서비스 하위 디렉토리들
  • /var : Variable files. 시스템 실행 중에 발생한 데이터와 로그가 저장되는 디렉토리
  • /tmp : 시스템 운영 중에 발생한 데이터와 로그가 저장되는 디렉토리
  • /proc : 메모리에만 존재하는 가상 파일 시스템. 시스템에서 실행 중인 프로세스의 현재 상태를 표시하는데 사용된다.
    - 개별 프로세스에 대한 정보가 들어있는 디렉토리는 프로세스의 pid 번호에 따라 이름이 지정된다.일부 값은 실행 방식 변경하도록 수정할 수 있는데 변경한 내용은 reboot 될 때 손실된다.
    /proc/cpuinfo - cpu 정보
    /proc/dma - dma(Direct Memory Access : 특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능이다.)
    /proc/interrupts
    /proc/ioports
    /proc/filesystems
    /proc/mounts
    /proc/modules
    /proc/net/*
    /proc/partitions
    /proc/bus/scsi
    /proc/bus/pci
    /proc/sys/*
    /proc/version
  • /sys
    hardware buses, hardware devices, active devices, drivers 와 관련된 내용을 포함하고 있다.

'OS' 카테고리의 다른 글

[ Linux ] Remote SSH  (0) 2024.11.12
[ Linux ] CLI - Command Line Interface  (0) 2024.11.11
[ Linux ] Boot Process - BIOS VS UEFI  (1) 2024.11.09
[ Storage ] DAS NAS SAN  (0) 2024.11.08
[ Linux ] 로그 아키텍처 (Log Architecture)  (4) 2024.11.06