File System

00SNU3K·2021년 8월 6일
0

File System(파일 시스템)

  • FAT(File Allocation Table) : 옛날 DoS에서 쓰는 파일시스템

    • FAT16

      • 대부분의 ms os에서 호환되며 단순 구조
      • 최대 2GB까지만 지원
      • 암호화 및 압축 불가능
      • 파일명 최대 길이는 영문 8자
    • FAT32

      • 최대 2TB까지 지원
      • 암호화 및 압축 불가능
      • 파일명 최대 길이는 영문 256자
  • NTFS(New Technology File System) : 윈도우에서 쓰는 파일시스템

    • 암호화 및 압축 가능, 대용량 파일 시스템
    • 트랜잭션 로깅을 통한 복구/오류 수정 가능
    • Windows NT 이상에서 지원
  • EXT(Extended File System) : 리눅스에서 쓰는 파일시스템

    • EXT

      • MINIX File System을 보완, 최대 2GB 지원
      • 파일명 최대 255byte 가능
      • 사용할수록 단편화가 심해짐
    • EXT2

    • EXT3

      • 이때부터 Journaling 파일 시스템 기능 도입하여 데이터 복구 확률 높임
      • Journaling은 파일 시스템을 변경하기 전에 원래의 로그를 기록하여 변경을 추적 관리하고 복구할 수 있는 시스템
    • EXT4

      • 제일 최신
  • UFS(Unix File System) : 유닉스에서 쓰는 파일시스템



Linux 의 File System = EXT

  • 리눅스의 파일 종류

    • 루트 파일 시스템

    • 일반 파일

      • editor -> txt file
      • compiler -> binary file(exe)
    • 디렉터리

      • 파일들 저장
    • 특수파일

      • USB나 CPU, 메모리등 하드웨어 장치를 관리
  • 리눅스 파일 시스템 세부 내용

    • 부트 블록

      • 운영체제를 메모리에 로드를 해야되는데 그걸 해주는것이 부팅 프로세스다.
      • 첫번째로 디스크에서 부트 블록을 메모리로 로드한다
      • 부트 블록은 디스크의 섹터 0번에 저장되어있음. 이를 변형하거나 파괴하면 부팅이 안되게 할 수 있는데 실제로 방송사에 NVR 공격을 통해 부트블록을 훼손시켜 부팅이 안되게 한 APT 공격 사례가 있음
      • 부트 블록이 메모리에 로드되면 init 프로세스가 구동되고 process ID 번호 1을 부여받는다.
    • 슈퍼 블록

      • 얼마나 유휴 공간들이 있는지 프리 공간의 정보
      • 파일 시스템이나, 디스크의 이름을 가짐
    • 아이 노드

      • 운영체제가 메모리에 로드되고 파일들에 대한 정보를 띄어야되는데 이때, 파일이나 디렉터리에 대한 모든 정보를 가지고 있음
      • 리눅스 커널이 현재 사용하는 자료구조를 유지하는 구조체
      • ls -il ===> inode Number , 권한, 소유자, 그룹, 생성일자, 파일 이름
      • 이 외에도 파일 크기, 최근 변경/사용 시간, 파일이 링크된 수, 데이터 블록 주소등이 있음
      • 기능
        • 할당 및 적용 : 파일 구성 블록에 대한 물리적 위치 정보
        • 파일 생성 : 파일이 생성되면 해당 inode가 i-list에 만들어지며 inode의 inode Num, 파일 이름, 디렉토리가 등록됨
        • 파일 링크 : 기존 파일과 링크하면 inode Number가 복사됨
        • 파일 삭제 : inode의 파일 링크 수가 하나 감소되고 Directory Entry에서 해당 파일의 inode Number가 0으로 변경
      • 링크
        • Symbolic Link
          • 바로가기와 같은 긴 파일명, 긴 directory명을 대신하여 링크 정보만 가지고 있는 새로운 inode가 만들어지고 원래 파일의 Pointer 주소 정보만을 가짐
          • 만약 원본 삭제되면 심볼링 링크 삭제
        • Hard Link
          • 동일한 inode 만듬
          • 만약 원본 삭제되어도 하드 링크는 남음
    • 데이터 블록

      • 실제 데이터가 저장되어 있는 파일 형태
  • 리눅스 File System 생성
    • fdisk
      • 파일시스템 생성을 위해 하드 디스크 초기화 및 파티션 생성
    • mkfs
      • 해당 디스크에 파일시스템 생성
    • fsck
      • 파일 시스템의 무결성 검사
    • mount
      • 특정 디렉터리를 파일 시스템과 연결하여 사용하는 것을 mount라고 함
      • CDROM, USB같은 장치를 연결할때도 mount 명령어를 실행하여 연결 수행
      • mount를 수행할때 fstab 파일을 참조하여 file system mount에 관한 정보를 가져옴
    • umount
      • 마운트 해제
      • CDROM 뺄때도 mount->umount->eject 순으로 실행함
profile
네트워크 전문가를 꿈꾸며

0개의 댓글