본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
File System; 파일 시스템
저장 장치에 파일을 어떤 이름과 구조로 저장하고 찾고 지울지 정한 방식과, 그것을 처리하는 운영체제의 구성 요소

디스크는 그 자체로는 번호가 붙은 블록(섹터)의 나열일 뿐이다. 파일시스템은 그 위에 파일과 디렉터리라는 논리적 단위를 만들어, 사용자가 블록 번호 대신 이름으로 데이터를 다루게 한다.

운영체제에서의 위치

편집 원본 편집

리눅스·유닉스 시스템은 흔히 커널, 셸, 파일 시스템 세 요소로 설명한다.

구성 요소 하는 일
커널 하드웨어·프로세스·메모리·장치를 직접 관리하는 운영체제의 핵심
셸 사용자가 입력한 명령을 읽어 해석하고 실행하는 명령 해석기. 그 자체로 프로그래밍 언어로도 쓴다
파일 시스템 파일과 디렉터리를 계층(트리) 구조로 저장·관리한다. 리눅스는 장치도 파일처럼 다룬다

응용 프로그램은 open·read·write 같은 시스템 호출로 커널의 파일시스템 기능을 쓴다. 명령어를 해석하는 것은 셸의 일이지 파일시스템의 일이 아니다.

  • 이름 관리 : 파일 이름과 디렉터리 계층을 관리한다
  • 공간 할당 : 파일에 블록을 배정하고 빈 공간을 추적한다
  • 메타데이터 관리 : 크기, 소유자, 권한, 만든·고친 시각을 기록한다
  • 접근 제어 : 소유자·그룹·기타 사용자별 읽기·쓰기·실행 권한을 검사한다
  • 무결성 유지 : 갑작스러운 전원 차단에도 구조가 깨지지 않게 저널링 등으로 보호한다

유닉스 계열 파일시스템의 구조

편집 원본 편집
영역 내용
부트 블록 부팅에 필요한 코드
슈퍼 블록 파일시스템 전체의 정보(크기, 블록 수, 빈 블록·아이노드 수)
아이노드(inode) 블록 파일마다 하나씩, 소유자·권한·크기·시각과 데이터 블록의 위치를 담는다. 파일 이름은 아이노드가 아니라 디렉터리에 들어 있다
데이터 블록 실제 파일 내용

주요 파일시스템

편집 원본 편집
이름 주로 쓰는 곳 특징
FAT32 이동식 저장 장치 호환성이 좋으나 파일 하나가 4GB 를 넘지 못한다
exFAT USB 메모리·SD 카드 4GB 넘는 파일 지원, 여러 운영체제에서 읽는다
NTFS 윈도우 접근 권한, 암호화, 압축, 저널링
ext4 리눅스 ext3 의 후속. 저널링, 큰 파일과 큰 볼륨 지원
XFS 리눅스 서버 대용량·병렬 입출력에 강하다
APFS macOS·iOS SSD 에 맞춘 설계, 스냅숏