[운영체제] '파일 시스템'이란 무엇인가? (파일 시스템, 파일 관리자, 파일 테이블, 파일 디스크립터, 파일 헤더)

2025. 10. 23. 10:16·소프트웨어/운영체제

디스크를 포맷해본 경험이 있다면 한번쯤은 봤을 메뉴화면이다. FAT32, NTFS 그리고 리눅스의 경우 ext2, ext3. 파일 시스템이란 무엇인가?

 

파일 시스템? 파일 관리자? 파일 디스크립터??

운영체제는 사용자가 다른 사용자의 파일을 훼손하는 경우를 방지하기 위해 '응용 프로그램의 직접적인 파일 접근을 불허'한다. 그 대신, 파일을 관리하고 보관하는 '파일 관리자'를 두어 저장장치의 관리를 맡기는데 이를 '파일 시스템'이라고 한다.

 

가상 메모리에서 MMU(메모리 관리 유닛)가 메모리 매핑 테이블을 이용해 가상 주소를 물리 주소로 변환하듯, 저장장치는 파일 시스템의 '파일 관리자'라는 녀석이 '파일 테이블'을 사용해 파일의 생성, 수정, 삭제 등을 수행한다. 또한 사용자가 파일을 사용하고자 할 때 읽기, 쓰기, 실행과 같은 다양한 접근 방법을 제공하기도 한다. 사용자는 특정 파일에 접근하기 위해 파일 관리자로부터 접근 권한(정수 형태의 키)를 받아야 하는데, 이 파일 접근 권한을 '파일 디스크립터'라고 한다. 파일 디스크립터는 로우레벨에서 파일을 식별할 수 있는 정보로, 0 이상의 정수형을 띈다. 그래서 특정 프로세스가 현재 어떤 파일을 할당받아 실행중인지는 그 프로세스가 할당받은 파일 디스크립터를 통해 알 수 있는것이다.

 

파일 시스템의 구체적인 기능

파일 시스템이 파일 관리자를 두고, 파일 관리자는 파일 테이블을 활용해 사용자에게 다양한 읽기, 쓰기, 실행과 같은 접근 권한을 제공한다는 점을 알았다. 이러한 파일 시스템이 제공하는 구체적인 기능으로는 다음이 있다.

기능 설명
파일 구성 사용자의 요구에 따라 파일과 디렉터리를 만든다.
파일 관리 파일 생성, 수정, 삭제 등의 관리를 하고, 수시로 조각 모음을 하여 사용자가 파일에 빨리 접근할 수 있도록 한다.
접근 권한 관리 다른 사용자로부터 파일을 보호하기 위해 접근 권한을 관리한다.
접근 방법 제공 파일을 읽고 쓰고 실행할 수 있도록 사용자에게 접근 방법을 제공한다.
무결성 보장 파일의 내용이 손상되지 않도록 관리한다.
백업과 복구 사고로부터 파일을 보호하기 위해 백업과 복구 작업을 한다.
암호화 파일을 암호화하여 악의적인 접근으로부터 파일을 보호한다.

 

 

유닉스(리눅스) 계열 파일의 특징

내가 자주 사용하는 리눅스 파일의 특징을 정리하며 글을 마무리한다.

유닉스(리눅스)계열 OS는 윈도우와 달리 파일에 확장자가 없다. 하지만 비스무리한 것은 있다. 아래 사진의 붉은 박스 부분인 `ll` 명령어가 출력해주는 '접근 패턴'이 유닉스 계열의 확장자이다. 이 접근 패턴을 통해 어떤 파일인지 구분할 수 있다.

접근 패턴을 구분하는 법은 간단하다.

아래서 세번째 접근 패턴을 봐 보자.

lrwxrwxrwx

접근 패턴의 맨 앞자리(이 경우 l)는 파일의 종류를 나타낸다.

- : 일반 파일

d : 디렉터리

l : 링크(윈도우의 바로가기와 같은 기능)

 

뒷 9자리는 rwx 세 덩어리로 구성된다. 여기서 r은 read, w는 write, x는 execute의 약자며, 각각 읽기, 쓰기, 실행 의 권한의 의미다.

rwx 세 덩어리 중 첫 째 덩어리는 파일의 소유자(owner) 권한을, 두 번째는 소유자가 속한 그룹(group)의 권한을, 세 번째는 소유자도 아니고 같은 그룹도 아닌 others의 권한을 나타낸다.

 

예를 들어, -rw-r--r-- 의 경우라면, 이 파일은 일반 파일이고, owner은 읽고 쓸 수 있고, 그룹과 others는 읽을 수 있는 권한의 파일인 것이다. 참고한 책의 저자는 owner가 execute의 권한이 없는 파일이라면 이는 실행이 불가능한 데이터파일이라고 한다. 

 

이런 시스템 구조는 왜 존재하는거지? (Owner, Group, Others)

여기서 의문이 들었다. 리눅스는 왜 owner, group, others로 파일의 권한을 분류해야했을까? 개인용 랩탑만 사용하는 나는 이 부분이 이해가 어려웠다. 이 부분은 리눅스의 탄생 배경(?)을 조사해보며 궁금증을 해결할 수 있었다.

 

리눅스는 원래 대형 서버를 위해 만들어진 OS라고 한다. 따라서 한 컴퓨터에 여러 사람이 접근해 사용하는 환경이 기본적이기 때문에 이렇게 여러 사용자들에 대한 권한을 분류해놓은 것이라 한다.

따라서, owner는 파일을 생성한 주체를 말하고, group은 나와 같은 그룹에 속한 사람들(ChatGPT 서버를 예로 들면 유료 결제자와 무료 사용자로 나뉠 수 있겠지 싶다), others는 주체자도 그룹도 아닌 사람의 접근 권한을 지칭하는 거였다.

 

 

Reference

1. 조성호. (2020). "쉽게 배우는 운영체제". 한빛아카데미

2. https://wikidocs.net/232343

3. https://en.wikipedia.org/wiki/Linux

'소프트웨어 > 운영체제' 카테고리의 다른 글

[운영체제] '이미지'란 무엇인가? (디스크 이미지, 커널 이미지)  (0) 2025.10.21
운영체제 기술면접 질문 모음  (0) 2025.09.17
'소프트웨어/운영체제' 카테고리의 다른 글
  • [운영체제] '이미지'란 무엇인가? (디스크 이미지, 커널 이미지)
  • 운영체제 기술면접 질문 모음
jh-rrr
jh-rrr
기술의 깊이에 집중하며 성장하길 지향합니다.
  • jh-rrr
    Embedded World
    jh-rrr
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • 소프트웨어 (17)
        • 프로그래밍 (2)
        • C (10)
        • Python (1)
        • 운영체제 (3)
        • 네트워크 (0)
      • Embedded Systems (16)
        • 리눅스 (10)
        • MCU 기본 (2)
        • 임베디드 레시피 (0)
      • Projects (1)
        • Cortex-M3 (1)
        • 재난 구조 로봇 (0)
      • AI (11)
        • Computer Vision (2)
        • Deep Learning (3)
        • cs224n (2)
        • cs231n (2)
      • 취업 준비 (0)
        • 프로젝트 & 자격증 (1)
      • 엔지니어링 뉴스 (3)
      • Paper Reviews (4)
      • Insights (8)
        • Seminar ! (2)
        • 서평 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    stm32f 시리즈를 이용한 arm cortex-m3/m4 구조와 응용
    OS 이미지
    essential deep learning paper reading
    리눅스 오류
    리눅스
    커널 이미지란
    커널 이미지
    conda: command not found
    일귀
    kernel image 란
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jh-rrr
[운영체제] '파일 시스템'이란 무엇인가? (파일 시스템, 파일 관리자, 파일 테이블, 파일 디스크립터, 파일 헤더)
상단으로

티스토리툴바