seegongsik
내 단어장
운영체제

파일 시스템: 평평한 디스크에 씌운 나무 모양 환상

지난 강에서 드라이버 덕분에 디스크 같은 장치와도 대화하게 됐죠. 그런데 디스크 속을 열어 보면 파일도 폴더도 없어요. 번호만 붙은 칸이 끝없이 늘어서 있을 뿐. 이 평평한 칸의 바다에서 내 사진 한 장을 어떻게 찾아낼까요?

01

디스크의 맨얼굴: 그냥 번호 붙은 칸

우리는 화면에서 파일을 아이콘으로 보고, 폴더를 열어 그 안에 또 폴더를 봅니다. 하지만 디스크 자체에는 그런 게 없어요. 디스크는 사실 똑같이 생긴 칸이 0번, 1번, 2번 번호 순서대로 평평하게 늘어선 거대한 보관함일 뿐이에요. 칸 하나하나를 블록이라고 불러요. 블록 안에는 데이터 조각이 들어가지만, 어떤 칸이 무슨 파일인지, 이름은 무엇인지 디스크 자신은 전혀 몰라요. 그냥 번호와 데이터, 그게 전부입니다.

디스크 · 원본 블록
번호와 데이터뿐. 이름도 폴더도 없음.

칸을 눌러 데이터를 넣어 보세요. 칸엔 번호만 있고 이름도 폴더도 없어요. 이게 디스크의 맨얼굴이에요.

눌러 보니 느낌이 오죠? 칸은 번호로만 구분되고, 내용물끼리 아무 연결도 없어요. 큰 파일은 칸 하나에 다 안 들어가고, 빈 칸도 여기저기 흩어져 있죠. 그러면 한 파일이 여러 칸에 쪼개져 들어가야 할 텐데, 흩어진 조각을 나중에 어떻게 다시 모을까요? 운영체제가 풀어야 할 첫 숙제입니다.

02

파일: 흩어진 블록을 묶는 이름표와 지도

해결책은 의외로 단순해요. 운영체제가 작은 메모를 하나 둡니다. "사진.jpg라는 이름의 파일은 3번, 7번, 12번 칸에, 이 순서로 들어 있다." 이 메모가 바로 지도예요. 이름을 주면 운영체제는 지도를 펼쳐 흩어진 칸을 순서대로 찾아가 조각을 모아 옵니다. 그러니까 파일이란 사실 두 가지의 합이에요. 하나는 칸에 흩어진 데이터 조각들, 다른 하나는 그걸 이름으로 묶어 주는 지도. 우리가 더블클릭하는 건 이 지도이고, 디스크는 지도가 가리키는 칸을 읽어 줄 뿐이죠.

이름표를 눌러 지도 따라가기
0
1
2
3 ▬
4
5
6
7 ▬
8
9
10
11

이름표를 누르면 지도를 따라 흩어진 칸(3,7,12)이 순서대로 모여 하나의 파일이 됩니다. 흩어진 블록이 모여 파일이 되는 걸 보세요.

지도 한 장이 흩어진 칸을 하나의 파일로 묶어 줬어요. 덕분에 우리는 칸 번호를 몰라도 이름만으로 파일을 부를 수 있죠. 그런데 파일이 한두 개가 아니라 수천 개라면? 이름표가 수천 장 쌓여 또 막막해집니다. 이 많은 이름표를 정리할 방법이 필요해요. 다음 단계의 주인공, 폴더가 등장할 차례입니다.

03

폴더: 파일을 담는, 또 하나의 파일

폴더라고 하면 파일과 전혀 다른 무언가 같지만, 비밀을 말하자면 폴더도 그냥 또 하나의 파일이에요. 다만 그 안에 든 내용이 특별하죠. 보통 파일은 사진이나 글자를 담지만, 폴더라는 파일은 "이 안에 든 파일들의 이름표 목록"을 담아요. 그래서 폴더를 연다는 건, 그 목록을 읽어 어떤 이름표가 들어 있는지 보는 일이에요. 폴더 안에 또 폴더를 넣을 수도 있어요. 그러면 가지가 갈라지는 나무, 즉 트리 모양이 생깁니다. 맨 위 뿌리에서 시작해 가지를 타고 내려가면 원하는 파일에 닿죠.

▾ 루트 /
▸ photos/
▸ docs/
폴더를 눌러 펼치기

폴더를 눌러 펼치면 그 안의 파일과 하위 폴더가 보여요. 뿌리에서 가지를 타고 원하는 파일까지 따라가 보세요.

보다시피 평평했던 칸의 바다 위에, 이제 위아래로 갈라지는 깔끔한 나무가 섰어요. 폴더가 또 다른 파일일 뿐이라는 사실 덕분에, 운영체제는 새 장치를 만들 필요 없이 같은 파일 개념만으로 정리 구조를 세운 거예요. 그런데 한 가지 궁금한 게 남죠. 이렇게 만든 파일을 우리가 삭제하면, 디스크에서 그 데이터가 정말로 즉시 사라질까요? 다음 단계에서 그 비밀을 살짝 들춰 봐요.

04

지운다는 건? 지도만 지우고 데이터는 남는다

직관적으로는 파일을 지우면 디스크에서 데이터가 싹 사라질 것 같죠. 그런데 운영체제는 보통 그렇게 하지 않아요. 데이터가 든 칸을 하나하나 깨끗이 비우는 건 시간이 오래 걸리거든요. 그래서 빠르게 끝내려고 이름표와 지도만 지우고, 칸 안의 데이터는 그대로 둡니다. 대신 그 칸을 "이제 비었음, 재사용 가능"이라고 표시만 해 두죠. 지도가 사라지면 그 데이터로 가는 길이 끊겨서, 우리 눈엔 파일이 없어진 것처럼 보여요. 하지만 칸 안의 내용은 아직 그 자리에 남아 있습니다.

draft.txt ▸ 4,8
4 ▬
8 ▬

파일을 누르고 삭제해 보세요. 이름표와 지도는 흐려지지만(끊긴 길) 칸 속 데이터는 자리에 남아요. 새 파일이 그 칸을 덮어쓸 때 비로소 사라집니다.

그래서 가끔 복구 도구가 지운 파일을 되살리기도 해요. 지도만 다시 찾아 주면, 자리에 남아 있던 칸들을 도로 이어 붙일 수 있으니까요. 반대로, 새 파일이 그 칸들을 덮어쓰고 나면 원래 데이터는 영영 사라집니다. 결국 삭제의 핵심은 데이터를 지우는 게 아니라 데이터로 가는 지도를 지우는 일이었어요. 여기까지 보면, 파일도 폴더도 삭제도 전부 지도와 이름표라는 한 가지 아이디어 위에 서 있다는 게 보이죠.

05

평평한 디스크 위에 씌운 나무 모양 환상

한 발 물러나 전체를 볼까요. 디스크의 진짜 모습은 번호 붙은 평평한 칸들이었어요. 그 위에 운영체제가 세 가지 마법을 부렸죠. 첫째, 이름표와 지도로 흩어진 칸을 하나의 파일로 묶었어요. 둘째, 파일을 담는 또 다른 파일로 폴더를 만들어 트리를 세웠어요. 셋째, 지울 땐 데이터가 아니라 지도를 지웠죠. 이 세 가지 덕분에 우리는 칸 번호 따위 평생 몰라도, 이름과 폴더만으로 편하게 파일을 다룰 수 있어요.

1을 눌러 시작

세 장을 차례로 눌러 보세요. 평평한 블록에서, 이름표로 묶인 파일로, 다시 폴더 트리로. 환상이 어떻게 쌓이는지 한눈에 정리돼요.

가상메모리가 진짜보다 큰 기억을 보여 줬듯이, 파일 시스템은 평평한 칸을 잘 정돈된 나무로 보여 주는 환상이에요. 진짜는 단순하고, 편리함은 운영체제가 얹어 준 거죠. 그런데 이 깔끔한 트리를 한 대의 컴퓨터에서 여러 사람이 함께 쓴다면, 아무나 남의 파일을 열고 지워도 괜찮을까요? 다음 강에서는 누가 무엇을 읽고, 쓰고, 실행할 수 있는지, 그 질서를 지키는 권한 이야기를 시작해요.

한 줄 정리디스크의 맨얼굴은 번호 붙은 평평한 칸(블록)들이에요. 운영체제는 그 위에 이름표와 지도를 얹어 흩어진 블록을 하나의 파일로 묶고, 파일을 담는 또 다른 파일로 폴더(트리)를 만들죠. 파일을 지울 때도 보통은 지도만 지우고 데이터는 자리에 남겨 둬요. 우리가 보는 깔끔한 파일과 폴더는, 평평한 디스크 위에 운영체제가 씌운 잘 짜인 환상입니다.
운영체제
이 페이지가 도움 됐다면 후원하기