파일시스템 소개 (File System Introduction)
앞으로 파일시스템에 대한 이해와 윈도우의 파일시스템으로 널리 알려진 FAT, NTFS에 대해서 자세히 살펴볼 예정이다. 혹시나 내용 중 자신의 생각과 다르다거나 추가적인 의견이 있으신 분들은 댓글로 답변해 주길 바란다. 간혹, 글 후반부에 해당 내용에 대해 몇가지 질문이 던져질 수 있다. 관심성 댓글이 심히 필요한 부분이다. ^^
데이터는 현재 파일이나 디렉터리 형태로 저장매체에 저장된다. 이러한 개념은 그동안 데이터를 파일 관리하면서 그 효율성이 입증된 계층적인 구조이다. 저장매체라는 것이 개발된 이후 초기에는 물론 파일시스템이라는 개념이 존재하지 않았을 것이다. 그때의 초점은 파일의 효과적인 관리라기 보다는 데이터를 저장할 수 있다는 것 자체가 큰 이슈였기 때문이다.
데이터는 현재 파일이나 디렉터리 형태로 저장매체에 저장된다. 이러한 개념은 그동안 데이터를 파일 관리하면서 그 효율성이 입증된 계층적인 구조이다. 저장매체라는 것이 개발된 이후 초기에는 물론 파일시스템이라는 개념이 존재하지 않았을 것이다. 그때의 초점은 파일의 효과적인 관리라기 보다는 데이터를 저장할 수 있다는 것 자체가 큰 이슈였기 때문이다.
이후 저장할 데이터가 많아지면서 파일이라는 개념을 사용하여 데이터를 구분해 저장하기 시작한다. 이때에도 단순히 순차적으로 데이터를 기록한 후 데이터의 시작위치와 크기(혹은 마지막 위치)만 알고 있다면 해당 파일을 다룰 수 있을 것이다. 하지만 단순한 백업 용이 아니라 데이터는 수시로 지워졌다가 재기록 된다.
또한 저장매체의 용량이 커지면서 개인이 관리하는 파일의 수가 수만~수십만개를 초과하고 있다. 수많은 파일에서 자신이 필요한 파일을 순식간에 접근하여 읽어야 하며, 또는 기록해야 한다. 이렇듯 파일시스템은 데이터를 효과적으로 관리하기 위해 사전에 정의한 기록 방식이다. 효과적인 관리를 위해 최근에는 압축, 암호화, 저널, 동적 할당, 다국어 지원 등 다양한 기능을 보유하고 있다.
현재 운영체제를 통해 파일에 데이터를 기록하고, 파일을 어느 순간 읽고, 지우고, 암호화하고, 복사하는 등의 작업이 원활이 이루어질 수 있는 것은 수년~수십년동안 개선되어온 현재의 파일시스템 덕분이다. 파일시스템은 운영체체나 저장매체 혹은 사용환경에 따라 고유한 파일시스템이 사용된다. 다음은 운영체제나 저장매체 별로 사용하는 파일시스템이다.
저장매체 | 운영체제 | 파일시스템 |
디스크장치 | Windows | FAT(FAT12/16/32,exFAT), NTFS |
Linux | ext(ext2/3/4) | |
Unix-like | UFS | |
OS2 | HPFS | |
Mac OS | HFS, HFS+ | |
Solaris | ZFS | |
AIX | JFS | |
IRIX | XFS | |
HP-UX | ODS-5, Veritas File System(VxFS) | |
광학장치 | ISO 9660, UDF |
물론 위의 파일시스템이 모두 각 운영체제에 고정적으로 사용되는 것은 아니다. 경우에 따라서 서로 포팅되어 사용될 수 있다. 게다가 여기서 언급한 파일시스템 외에도 스마트폰과 같이 임베디드 장비에 사용되는 EFS(Embedded File System)를 비롯, 휴대폰, 게임기, MP3, PMP 등마다 다양한 파일시스템이 사용될 수도 있다. 이러한 파일시스템은 표준에 대한 필요성이 없어서 인지 각 벤더들마다 조금씩 변형하여 독자적으로 사용하는 경우가 많이 있다.
분석가 입장에서는 이러한 부분으로 인해 파일시스템을 분석하는데 어려움을 겪곤 한다. 앞으로는 위의 다양한 파일시스템 가운데 윈도우 운영체제의 파일시스템으로 널리 사용되는 FAT와 NTFS에 대해서 중점적으로 살펴볼 예정이다.
0 개의 댓글