파일시스템이란

파일 시스템(file system, 문화어: 파일체계)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말입니다.

컴퓨터에서 정보를 읽을때 하드디스크에서 **한섹터(0.5KB)**씩 읽을수 있습니다. 하지만 컴퓨터 기술이 발전하면서 사용하는 용량의 크기는 커지는데 이런 큰 용량을 읽는데 한섹터씩 읽으니 너무 오래걸려서 여러개의 섹터를 묶어서 읽어오자 하고 만든 단위가 **클러스터(Cluster)**입니다. (클러스터(Cluster) 와 블록(Block)은 같은 의미입니다.) 자세한건 하드디스크를 참조

이런 섹터나 클러스터에 정보를 저장하려면 어느 섹터,클러스터에 정보가 있는지 위치를 알아야합니다.

주소 지정 방식(Addressing)

주소 지정방식은 두가지로 나뉩니다. CHS(Cylinder Head Sector)LBA(Logical Block Addressing) 두가지가 있습니다.

CHS는 이름에서 알수 있듯이 cylinder의 주소와 head의 주소 sector의 주소를 지정하는방식입니다.

예를 들의 (4,5,3) 일경우 4번째cylinder의 5번째 head 3번째 sector를 뜻합니다. 말그대로 물리적인 디스크의 위치를 고려한 것이죠 그래서 물리적 주소 지정 방식 이라고도 불립니다. 사용자가 ATA방식으로 하드디스크를 시스템에 연결하고, 시스템의 바이오스는 CHS 어드레싱을 사용해서 하드디스크에 접근하게 되는데, 구조 상에서 용량제한 문제가 발생합니다.

ATA 규격상에서는 실린더를 65,536개까지 지원할 수 있지만 CHS 바이오스는 1024개의 바이오스만을 인식할 수 있었습니다. 그 결과, 사용할 수 있는 실린더의 수는 1024개로 제한되어 버렸고, 마찬가지로 헤드와 섹터에 있어서도 각각 16개와 63개로 제한이 걸리게 되었습니다. 결국 하드디스크가 가질 수 있었던 한계는 실린더 1024개, 헤드 16개, 섹터 63개가 되기 때문에 이를 바탕으로 용량을 계산해보면 528MB가 됩니다.

이러한 문제점을 느끼고 현재 쓰이는 것은 LBA입니다.

LBA는 Linear Block Addressing의 약자로 CHS처럼 물리적인 구조를 생각하지 않고 일렬로 연결되어 있다고 가정하는 구조입니다.

Untitled

파일 시스템 구조(File System Structure)

Untitled

파일 시스템의 구조는 종류에 따라 다르지만 기본적인 틀은 Meta AreaData Area두가지로 나뉩니다. Meta Area에는 Data Area에 기록된 파일의 이름, 위치, 크기, 시간정보, 삭제유무 등이 구조적으로 저장되어 관리된다. 리눅스의 inode와 비슷합니다. Data Area에는 실질적인 파일 내용 그자체가 들어있습니다. 여기서 검색기능을 써서 파일을 찾을때 Data 자체를 찾아보지 않고 Meta Area의 정보들을 검색합니다.

주요 파일 시스템

Windows : FAT(FAT12/16/32,exFAT), NTFS

Linux : ext(ext2/3/4) ext2부터 inode를 지원함

Mac OS : HFS, HFS+

Google : GFS