슬랙 공간은 저장매체의 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간이다.
슬랙 공간은 의미가 조금씩 틀리게 해석되는 경우도 있지만, 일반적으로는 램슬랙, 드라이브 슬랙, 파일시스템 슬랙, 볼륨 슬랙으로 나눌 수 있다. 파일 슬랙이라는 용어가 램 슬랙과 드라이브 슬랙을 통합하여 부르는 용어이다. 이유는 램 슬랙과 드라이브 슬랙 모두 파일에 기반하여 나타나는 슬랙이기 때문이다.
램 슬랙(RAM Slack)은 램에 저장된 데이터가 저장매체에 기록될 때 나타나는 특성에 따라 붙여진 이름이다.
클러스터나 블록이라는 논리적인 섹터의 모음을 통해 데이터를 할당한다고 하더라도 물리적으로는 섹터(512 bytes) 단위로 데이터가 기록된다.
만약 클러스터의 크기가 2KB(2048 Bytes)인 시스템에서 712 Bytes의 크기의 파일을 기록한다고 할 때, 해당 파일의 물리적인 크기는 클러스터 크기 만큼의 2KB가 할당되지만, 실제로는 섹터 2개의 크기만큼만 데이터가 기록된다. 이 때, 첫 번째 섹터는 712 bytes의 첫 512 bytes가 기록되고, 다음 섹터에는 200 bytes가 기록된다.
두 번째 200 bytes는 200 bytes만 기록할 수 없기 때문에 나머지 312 bytes는 0으로 초기화 시킨 후 섹터 크기 만큼 기록한다. 이처럼 램에 존재하는 데이터가 저장매체에 기록될 때 섹터 단위로 기록되는 특징으로, 나머지 부분이 0으로 채워지는 특징을 램 슬랙이라고 한다.
드라이브 슬랙(Drive Slack)은 클러스터의 사용으로 인해 낭비되는 공간을 나타내는 용어이다.
위의 그림처럼 실제 712 bytes를 기록하기 위해 두 개의 섹터만 사용하면 되지만 2KB의 클러스터를 사용하기 때문에 2개의 섹터가 추가로 사용되었다.이 경우 나머지 두 개의 섹터는 아무런 작업도 수행하지 않는다.
만약 현재 파일이 이전 데이터 영역에 덮어 쓰여진다면 드라이브 슬랙에 이전 데이터가 남아 있을 수 있다. 또한 드라이브 슬랙은 낭비되는 빈 영역이지만 다른 용도로 사용할 수 없기 때문에 악의적인 목적으로 다른 데이터(악성 코드 등)을 기록해 두는 경우도 있다.
저장매체의 물리적인 공간을 사용하기 위해서는 파일시스템을 생성해야 한다. 이때 파일시스템의 크기는 클러스터의 크기에 따라 결정되는데 이때 파일시스템 마지막 부분에 사용할 수 없는 영역이 발생하곤 한다. 최근에는 파일시스템 슬랙 부분도 악성코드를 은닉하는데 많이 사용되고 있다.
볼륨 슬랙(Volume Slack)은 전체 볼륨 크기와 할당된 파티션 크기의 차이로 발생되는 낭비 공간이다.
파티션의 크기는 임의로 변경이 가능하기 때문에 다른 슬랙과 다르게 볼륨 슬랙의 공간은 임의로 변경할 수 있다.