프로니어 | Security is a people problem...
슬랙 공간 (Slack Space)
슬랙 공간은 저장매체의 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간이다. 다시 말해, 물리적으로는 할당된 공간이지만 논리적으로는 사용할 수 없는 공간을 의미한다. 잘 이해가 안갈 수 있지만 예를 통해 이해하기 바란다. 슬랙 공간은 각 논문이나 리포트를 살펴보면 조금 의미가 틀리게 해석되는 경우도 있지만, 일반적으로 다음과 같이 4가지로 구분해 볼 수 있다.
1. 램 슬랙 (RAM Slack)
램(휘발성메모리)은 512 바이트의 페이지 단위로 데이터를 기록한다. 쉽게 말해, 100 바이트의 데이터를 램에 로드했을때에도 512 바이트의 램 페이지가 할당되는 것이다. 이렇게 할당될 때 윈도우 운영체제(2000, XP, 2003, Vista, 2008, 7)의 경우 100 바이트를 제외한 나머지 공간(412 바이트)은 0 으로 초기화 시키게 된다.
이렇게 램에 저장된 데이터들은 실제 저장매체로 저장될 때에는 다시 섹터 단위(=램 페이지 단위)로 기록이 된다. 물론, 파일시스템에서는 저장장치의 효율을 위해 클러스터(Unix-like OS 에서는 블록) 단위로 관리하지만, 실제 물리적인 저장매체에 기록될 때에는 섹터 단위로 기록이 된다.
이와 같이 기록 되면, 램 페이지의 데이터가 그대로 기록되므로 유효한 데이터를 제외한 나머지 데이터는 0 으로 기록된다. 아래 그림에서 보는 바와 같이 실제 데이터는 100 바이트이다. 하지만 나머지 412 바이트는 0으로 초기화된 데이터가 기록된다. 이렇게 0 으로 초기화된 부분을 램 슬랙이라 한다. 흔히 이를 512 바이트라는 공간적인 의미로 섹터 슬랙(Sector Slack) 이라고 부르는 경우도 종종 있다.
2. 파일 슬랙 (File Slack)
파일 슬랙은 클러스터의 사용으로 인해 낭비되는 공간을 나타내는 용어로 드라이브 슬랙(Drive Slack)이라고도 부른다. 위의 그림에서 실제 100 바이트를 기록하기 위해서는 하나의 섹터만 사용하면 되지만 4 KB의 클러스터를 사용하기 때문에 3개의 섹터가 추가로 사용되었다.
이 경우 실제 저장매체에는 100 바이트 기록을 위해 한 섹터를 램페이지 데이터로 기록하고 나머지 3개의 섹터는 아무런 작업도 수행하지 않는다. 파일 슬랙에 아무런 작업도 수행하지 않는 이유는 실제 파일 데이터에 아무런 영향도 미치지 않기 때문이다. 만약, 파일 저장 시 파일 슬랙에 별도의 초기화 작업을 한다면 또 다른 오버헤드가 될 것이다.
이러한 이유로 만약 현재 파일이 이전 데이터 영역에 덮여쓰여진다면 파일 슬랙에 이전 데이터가 남아 있게 된다. 그리고 파일 슬랙은 빈 영역이지만 다른 용도로 사용할 수 없기 때문에 악의 적인 목적으로 다른 데이터를 기록해 둘 수도 있다. 이렇게 파일 슬랙을 이용하는 경우는 해당 파일이 지워진 후 다시 재사용되면 안되기 때문에 운영체제 설치후 변하지 않는 시스템 파일의 슬랙 영역을 이용하는 경우가 많다.
3. 파일시스템 슬랙 (File System Slack)
저장매체의 물리적인 공간을 사용하기 위해서는 파일시스템을 생성해야 한다. 이때 파일시스템의 크기는 클러스터의 크기에 따라 결정되는데 이때 파일시스템 마지막 부분에 사용할 수 없는 영역이 발생하곤 한다.
만약, 1,024 KB의 볼륨에 4 KB의 클러스터를 사용하는 파일 시스템을 생성한 경우 마지막 2 KB는 사용할 수 없는 영역이 된다. 이렇듯 파일시스템의 할당 크기와 파티션 크기의 차이로 발생되는 낭비 공간을 파일시스템 슬랙이라 한다.
4. 볼륨 슬랙 (Volume Slack)
볼륨 슬랙은 전체 볼륨 크기와 할당된 파티션 크기의 차이로 발생하는 낭비 공간이다. 파티션의 크기는 임의로 변경이 가능하기 때문에 다른 슬랙과 다르게 볼륨 슬랙의 공간도 임의로 변경할 수 있다.
'File Systems' 카테고리의 다른 글
| 슬랙 공간 (Slack Space) (0) | 2010/02/07 |
|---|---|
| 클러스터 (Cluster) (0) | 2010/02/06 |
| 섹터 주소 지정 방식 (Sector Addressing) (0) | 2010/02/05 |
| 파일시스템 구조 (File System Structure) (0) | 2010/02/04 |
| 파일시스템 소개 (File System Introduction) (0) | 2010/02/04 |
| 디렉터리 엔트리(Directory Entry) 분석 (4) | 2009/09/28 |
댓글을 달아 주세요