본문 바로가기
컴퓨터

[Linux] File System (파일 시스템)

by Luyin 2013. 8. 7.

파일 시스템(File System)이란 운영체제가 디스크에 파일을 효율적으로 저장하기 위해 사용하는 방법으로 조직화된 자료 구조 이다.


파일 시스템은 다양한 역할과 기능을 제공한다. 공유 및 보호, 파일의 무결성(파일 중복 방지), 백업, 복구, 암호화, 복호화, 압축, 압축해제 기능 등을 가지고 있다.


또한, 저장공간을 할당하고 가능한 연속성을 보장하여 조각화 현상을 억제한다.


파일 시스템은 일반적으로 크기가 일정한 블록들의 배열(섹터)에 접근할 수 있는 자료 보관 장치 위에 생성되어 이러한 배열들을 조직함으로 파일이나 디렉터리를 만들며 어느 부분이 파일이고 어느부분이 공백인지를 구분하기 위하여 각 배열에 표시를 해둔다.

섹터 : 일정한 블록, 통상 512 바이트, 1024바이트, 2048바이트 같이 2의 제곱한 수만큼의 크기를 갖는다.


리눅스/유닉스 파일시스템은 기존의 파일 시스템에 다른 파일시스템을 마운트 하는 과정을 통하여 하나의 디렉터리 구조로 통합한다. 이러한 마운트 지점의 디렉토리를 마운트 디렉터리 또는 마운트 포인트라고 부른다. 


유닉스 파일시스템은 다음과 같은 세부사항을 가진다.

Super block : 전체적인 파일시스템에 대한 정보를 포함

directory block : 파일이름과 아이노드 번호로 구성

inode : 몇개의 데이터 블록 번호 만 포함, 부족한 부분은 동적으로 indirection block을 생성하여 보관

data block : 파일에서 데이터를 저장하기 위해 사용

indirection block : 아이노드에서 부족했던 블록 번호를 갖고 있다.