개발자는 기록이 답이다

혼공 컴퓨터구조 + 운영체제 15. 파일시스템 본문

CS/운영체제

혼공 컴퓨터구조 + 운영체제 15. 파일시스템

slow-walker 2024. 2. 11. 23:31

 

1. 파일과 디렉터리

 

우리가 사용하던 파일과 디렉터리는 모두 운영체제 내부 파일 시스템이 관리하는 존재다. 파일과 디렉터리는 보조기억장치에 있는 데이터 덩어리일 뿐인데, 운영체제는 이를 어떻게 파일과 디렉터리로 관리하는 걸까? 파일과 디렉터리에 대해 학습해보자.

 

 

파일


우리는 일상적으로 컴퓨터를 이용할 때는 파일 단위로 이용한다.

 

파일이란?

하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미한다.

즉, 파일은 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미한다.


그렇다면 파일을 이루는 정보에는 어떤 것들이 있을까?

모든 파일에는 이름과 파일을 실행하기 위한 정보, 그리고 파일 관련 부가정보가 있다. 이 부가 정보를 속성(attribute) 또는 메타데이터(metadata)라고 부른다.


윈도우 운영체제를 사용한다면 파일 속성을 한 번쯤 접해 본 경험이 있을 것이다. 임의의 파일에서 마우스 오른쪽 버튼을 클릭한 후 [속성]을 선택해보면 다음과 같은 대화상자가 나타난다.

 

파일 형식, 위치, 크기 등 파일과 관련된 다양한 정보가 나타나지요? 이러한 정보가 바로 파일 속성이다.

파일 속성과 유형


운영체제마다 유지하는 파일 속성은 조금씩 차이가 있지만, 대표적인 속성의 종류는 다음과 같다. 운영체제, 그중에서 파일 시스템은 파일별로 다음과 같은 속성을 유지하고 관리한다.

 

파일 속성 중 파일 유형은 운영체제가 인식하는 파일 종류를 나타낸다.

같은 이름의 파일일지라도 텍스트 파일, 실행 파일, 음악 파일 등 유형이 다르면 실행 양상도 달라진다.

그래서 파일을 실행할 운영체제에 파일 유형을 알려주어야 한다.

파일 유형을 알리기 위해 가장 흔히 사용하는 방식은 파일 이름 뒤에 붙는 확장자 extension를 이용하는 것이다.

 

확장자는 파일 종류가 무엇인지 운영체제에 알려주는 힌트와도 같다. 예를 들어 myfile.o는 o라는 확장자를 통해 운영체제에 목적 코드를 담고 있는 목적 파일임을 알려주는 셈이고, myfile.exe는 exe라는 확장자를 통해 운영체제에 실행 파일임을 알려주는 셈이다.

 

 

파일 연산을 위한 시스템 호출


파일을 다루는 모든 작업은 운영체제에 의해 이뤄집니다. 어떤 응용 프로그램도 임의로 파일을 조작할 수 없으며 파일을 다루려면 운영체제에 부탁해야 합니다. 이를 위해 운영체제는 다음과 같은 파일 연산을 위한 시스템 호출을 제공한다.

  1. 파일 생성
  2. 파일 삭제
  3. 파일 열기
  4. 파일 닫기
  5. 파일 읽기
  6. 파일 쓰기
디렉터리

 


파일들을 일목요연하게 관리하기 위해 디렉터리 directory를 이용할 수 있다. 윈도우 운영체제에서는 디렉터리를 폴더 folder라고 부른다. 옛날 운영체제에서는 하나의 디렉터리만 존재했다. 모든 파일이 하나의 디렉터리 아래에 있었죠. 이와 같은 디렉터리 구조를 1단계 디렉터리 single-level directory라고 부른다.


하지만 실제로 이렇게 사용하는 컴퓨터는 거의 없죠. 컴퓨터 용량이 커지다 보니 저장할 수 있는 파 일도 많아지고, 1단계 디렉터리로는 많은 파일을 관리하기가 어렵기 때문에 다음과 같이 여러 계층을 가진 트리 구조 디렉터리 tree-sinictured directory가 생겨나게 되었다.