본문 바로가기
[Public] 임베디드/Linux

[Linux] 파일 시스템 #1 (FAT, NTFS 무슨 차이가 있나요?)

by 차출발 2011. 2. 14.
반응형

 

PC를 사용함에 있어서 윈도우를 다시 한번 밀어 보는 경우가 있다.

여기에서 자주 보는 파티션을 나누는 파랑색 화면 광경을 자주 보지 않았는가?

 

 

 

FAT 와 NTFS이는 도대체 무엇이길래?

그냥 멋 모르고 우리는 NTFS로 빠른 포맷 눌려 이렇게만 배웠지…

그럼 이 FAT 과 NTFS가 무엇인지 알아보자

FAT과 NTFS가 무엇인지 알기 전 먼저 알아야 할 것이 있다.

 

 

 

우리가 일상에서 파일을 저장하는 거에 대해서 먼저 생각을 해보자!

우리는 보통 파일을 저장하기 위해서

컴퓨터의 HDD 하드디스크에 저장하고

음악을 저장하기 위해 CD에도 저장하고 (예전에는 테이프? ㅋㅋ)

요즘은 가장 많이 들고 다니는 USB

핸드폰 안에 들어 있는 SDCard 라던지

    등등 많은 파일을 저장할 수 있는 저장 매체가 있다.

 

 

 

한가지 예를 들어보자

 

내가 아이유의 3단콤보 노래를 매일 듣고 싶어서

친구에게 mp3 파일을 USB로 보내주라고 했어 ( HDD 안에 들어 있는 mp3 파일이 나의 USB로 전송)

난 이 파일을 내 컴퓨터에 다시 넣어두고 차에서도 듣고 싶어, 음악CD를 제작 (HDD에서 CD로 전송)

핸드폰 가지고 다니면서 듣고 싶어서 핸드폰에도 저장 (HDD 에서 SDCard 로 전송)


 

여기서 한가지 이상한 점을 발견하였어 파일은 다 똑같은데

서로 다른 매개체들 HDD , USB, SDCard는 이 파일을 기록하고 읽어 올 수가 있었어

어라! "서로 다른 매개체인데 이들은 공통적으로 규칙을 만들어 놓고 주고 받고 하구나"

 

 

 

이런 규칙을 만들어 놓았다면 이런 규칙을 머라고 하죠?

그건 바로 "파일시스템"

그럼 우리가 위에서 궁금했던

FAT과 NTFS는 파일시스템의 한 종류이다.

 

 

그렇다면 유명한 파일 시스템에는 어떤 것들이 있는지 알아보자

 

  1. FAT (File Allocation Table)
  • MS 에서 빌게이츠가 만들었고 전 세계적으로 가장 많이 사용되는 파일시스템
  • 최초 제작 시에는 저장장치의 크기가 매우 작았으며 여러 번의 발전을 거듭하여 제작
  • 매우 단순한 구조와 최근에는 대용량을 위해서 FAT16, FAT32 로 발전
  • 파일시스템에서는 사용되는 부가기능이 적고 제약사항이 많지만 가볍고 심플한 느낌
  • 하지만 연결리스트를 사용하는 자료구조는 검색시간이 오래 걸린다.
  • 데이터를 여기저기 흩어지는 단편화 현상이 심하기 때문에 디스크의 헤드가 여러 번 이동
  • 이를 위해 디스크조각모음 이라던지 부가적인 프로그램이 등장하지만 해결되지 않기에
  • 서버시스템에서는 사용되기 부족하다

 

 

  1. HPFS (High Performance File System)
  • IBM의 OS/2 1.2부터 사용되던 파일시스템으로 NTFS가 나오기 전 많은 영향을 준 파일 시스템
  • 제작당시 대용량에 적합한 구조로 효율적인 캐싱과 FAT에 비해 파일 손실과 단편화가 적기에
  • 서버시스템에 많은 요구를 충족 시키던 파일 시스템
  • 하지만 대용량을 타겟으로 잡기에 200MB 이하의 저장장치에서는 성능 저하
  • 섹터의 크기가 512Byte로 고정이기에 I/O단위를 변경할 수 없다는 것
  • OS/2 가 Window NT 한테 밀려서 실패한 비운의 파일시스템

 

 

  1. NTFS (New Technology File System)
  • MS에서FAT가 서버용으로 부족하자 이를 보완하기 위해 만든 파일시스템으로
  • Window NT에서 사용되는 파일시스템으로 윈도우 NT 및 2000 이상부터 대표적인 파일시스템으로 자리잡음
  • NTFS는 대용량 저장장치를 겨냥하여 제작되어 높은 안정성과 부가기능을 제공한다
  • FAT과 HPFS의 파일 시스템의 제약사항을 개선하였지만 MS에서는 이 파일시스템을 공개하지 않는다
  • 이로 인해 리눅스나 다른 OS에서 NTFS를 지원한다 해도 호환에 미흡한 부분이 생긴다.

     

     

     

  1. UFS (Unix File System)
  • UFS는 유닉스의 대표적인 파일시스템
  • 많은 유닉스 계열의 OS들이 UFS를 각각의 OS에 맞게 변형해서 사용하고 있다.
  • 빠른 속도와 안정성을 목표로 만들어졌다.
  • 저장장치 그룹화를 통하여 관련된 데이터끼리 최대한 가까운 위치에 자리잡아 헤드의 이동이 적다
  • 중요 데이터는 여러 그룹에 걸쳐 많은 백업을 저장하여 신뢰성을 높였다.
  • Berkeley대학의 FFS(Fast File System)을 근간으로 나중에 리눅스 파일시스템인 Ext2에 큰 영향을 준다.

 

 

  1. Ext2 (second Extended File System)
  • 현재 리눅스의 기본 파일시스템인 Ext3에서 저널링 기능을 뺀 파일 시스템
  • UFS의 유명무실한 구조를 제거하고 전체 구조보다 간략히 하여 속도와 안정성을 고루 갖춘다

     

 

 

이 밖에도 플래시 파일시스템과 CD-Rom 파일시스템, 네트워크 파일시스템, 가상 파일시스템 등등 이 있다.