본문 바로가기
정상을향해/OS·Kernel Driver·Rootkit

파일시스템 (File System)

by 사이테일 2013. 11. 11.

파일시스템

파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 및 관리하는 방법을 말한다.

 

다시말해 파일을 읽고 쓰는 방법에 대한 내용이라 보면 된다.

 

우리가 많이 쓰는 윈도우와 리눅스는 이러한 파일시스템이 각각 존재한다.

 

 

윈도우 파일시스템

윈도우 운영체제에서 사용하는 파일시스템은 익숙한 FAT16, FAT32, NTFS 등이 있다.

 

FAT 파일시스템은 1976 Microsoft사의 빌게이츠에 의해 구현되었다.

 

FAT12 : 1980년대 초, 플로피 디스크용으로 처음 개발

처음에는 FAT12로 베이직(BASIC) 언어를 지원하기 위해 개발되었고, 이는 플로피 디스크용으로 사용되었다.

 

FAT16 : 1980년대 말, 하드디스크를 지원하기 위해 개발

1988년 MS-DOS 4.0 이후에 FAT16 버전을 발표한다.

 

FAT16에서는 클러스터(Cluster)를 표현하는 비트수가 12개에서 16개로 늘어나서,

 

2^16인 65,535개 클러스터로 표현 가능하였다.

 

FAT32 : 1996년, VFAT를 확장해서 개발, 고용량 하드디스크를 지원

Windows95 사용자가 2GB가 넘는 하드디스크 사용을 위해서 FAT32를 사용하였다.

 

FAT32는 2TB까지 인식하지만 최대용량을 32GB로 제한하고 있다.

 

NTFS : 현재 윈도우 파일시스템의 기본형태

NTFS는 FAT32에서 가능하지 않은 일부 디스크 관련 오류를 자동으로 복구가 가능하다.

 

또한 대용량 디스크에 대한 지원이 향상되었으며, 보안성이 향상되었다.

 

 

리눅스 파일시스템

리눅스에서 사용하는 파일시스템은 minix, ext2, ext3, 저널링 파일시스템 등이 있다.

 

minix

리눅스에서 처음 사용한 파일시스템. 파일이름 최대 30자, 파일시스템 당 최대 64MB 지원.

 

ext2

ext3가 나오기 전까지 대부분의 리눅스에서 채택한 파일시스템.

 

256바이트 길이의 파일이름 사용이 가능하다. 또한 2GB 단일 파일을 지원하고, 4TB 디스크 사용이 가능하다.

 

하지만 시스템이 비정상적으로 종료되었을 때, e2FSCK를 실행하여 파일시스템의 일관성을 검사하게 되는데,

 

이 작업은 검사시간이 오래 걸리고 그 동안 아무런 작업을 할 수 없다는 단점이 있다.

 

ext3

kernel 2.4 부터 지원하고 있는 파일시스템이다.

 

ext2 파일시스템에서 저널링 기능을 추가하였다.

 

ext2에 비해 데이터 신뢰성이 강화되고 빠른 속도로 작업할 수 있게 되었다.

 

- 저널링 파일 시스템

시스템이 데이터를 쓰고 있는 중에 비정상적으로 종료가 되었을 때,

파일 시스템 손상이 될 가능성이 있는데 이 손상을 복구할 수 있는 시스템을 말한다.