파일 시스템은 운영체제에서 하드 디스크, CD, 등등의 다른 이동식 메모리 장치같은 물리적인 저장 매체를 파일과 폴더의 계층 구조처럼 보이게 하는 부분이다. 파일 시스템은 논리적 구성과 물리적 구현 간의 분리를 보여 주는 좋은 사례이다. 즉 다양한 종류의 장치에 정보를 조직화하고 저장하지만, 운영체제를 통해 모두 동일한 인터페이스로 표시해준다. 파일 시스템이 정보를 저장하는 방식은 우리는 잘 모르지만 실생활에 영향을 미칠 뿐더러 법적인 영향력을 가지기 때문에 우리가 알아두어야 한다.
윈도우 파일탐색기나 맥의 파인더를 사용하면 최상위폴더, C드라이브부터 시작하는 계층 구조를 보여주고 그 안에 폴더와 파일, 그 안에 폴더와 파일들이 보인다. 컴퓨터의 모든 정보는 이 파일 시스템에 저장되고 우린 이 파일 시스템을 통해서 정보에 접근한다. 파일 시스템은 이 모든 정보를 관리하면서 앱이나 운영체제의 나머지 부분이 정보를 읽고 쓸 수 있도록 접근 가능하게 만든다. 또한 파일에 대한 접근이 효율적으로 수행되고 서로 간섭하지 않도록 조정하고, 데이터의 물리적인 위치를 파악한다.
파일 시스템은 매우 다양한 물리적 시스템이 균일한 논리적 구조로 나타나게 하는 방법을 보여주는 사례다. 작동방법을 알아보자. 예시로 500GB의 드라이브는 5천억바이트를 담을 수 있다. 하지만 드라이브의 소프트웨어는 각각 1,000바이트 덩어리 또는 블록 5억개로 표시한다. 파일 시스템은 한 파일이 사용하는 바이트를 다른 파일이 사용하는 바이트와 같은 블록에 저장하지 않는데 만약에 블록이 꽉 차지 않는다면 약간의 공간이 낭비되겠지만 이건 파일 관리를 손수 관리해야하는 수고에 비하면 크지 않는 대가이다.파일에 대한 정보를 가지고 있는 파일 엔트리를 통해서 관리도 된다.
어떤 관점에서는 폴더 또한 파일이다. 폴더는 다른 폴더와 파일이 어디에 있는지 정보를 담고 있는 파일이기 때문이다. 가장 낮은 관점에서 보면 폴더는 그저 블록이고 모두 같은 메커니즘으로 관리되는 셈이다.
기존 파일에 접근하려 할 때는 계층 구조의 최상위부터 시작해서 파일 경로명의 각 요소에서 해당하는 폴더를 찾아가며 검색하게 된다. 교율적이며 검색의 범위를 좁혀갈 수 있고 작업 속도를 높이기 위해 캐싱도 가능하다.
프로그램이 새 파일을 생성하려고 하면, 파일 시스템에 요청을 해서 적절한 폴더에 새로운 엔트리를 넣으며 0의 크기를 가진 폴더를 만든다. 후에 프로그램이 파일에 데이터를 쓰면 파일 시스템은 요청된 정보를 담기에 충분한 수의 미사용 블룩을 찾아 데이터를 추가하고, 폴더의 블록에 그 블록들을 넣고, 애플리케이션으로 돌아간다.