비트로 관리하기에는 오버헤드가 너무 크므로 초기에는 블록 단위로 저장 매체에 관리를 하게되었다. (보통 4KB) 블록마다 고유 번호를 부여하여 관리를 했다. 하지만 이마저도 용량이 늘어나면 각 블록 고유 번호를 관리하기 어려운 지경에 이르렀고 따라서 추상적(논리적) 객체가 필요하게 되었다.
사용자가 각 블록 고유 번호를 관리하기 어렵기 때문에 추상적(논리적) 객체인 파일로 구분하고 이에 사용자는 파일 단위로 컨트롤하지만 각 파일은 또 따로 블록 단위로 관리한다.
저장 매체에 효율적으로 파일을 저장하는 방법은 가능한 연속적인 공간에 파일을 저장하는 것이지만 외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능이 필요하다. 따라서 다음 두가지 방법 중 하나를 활용한다.
Windows : FAT, FAT32, NTFS (블록 위치를 FAT 이라는 자료 구조에 기록)
UNIX : ext2, ext3, ext4 (일종의 인덱스 블록 기법인 inode 방식 사용)