파일 시스템

taeyul_de·2025년 2월 25일
0

🗂️ 1. 파일 시스템(File System)이란?

파일 시스템은 운영체제가 보조기억장치에 있는 데이터를 파일과 디렉터리 형태로 관리하는 체계다.

• 데이터가 무질서하게 저장되면 찾기 힘들고 관리도 어려움
• 파일 시스템이 이름, 경로, 속성 등으로 데이터를 효율적으로 관리
손상 방지, 빠른 접근성, 데이터 보안까지 가능하다

운영체제파일 시스템 종류
WindowsNTFS, FAT32
LinuxEXT4, XFS
macOSAPFS

2. 파일과 디렉터리

2-1. 파일(File)

파일은 데이터를 저장하는 기본 단위.

구성 요소:

파일 이름: 사용자가 파일을 구별하는 이름
메타데이터(Metadata): 파일의 속성 정보 (파일 크기, 위치, 생성일, 수정일, 권한 등)
데이터(Data): 실제 내용 (문서, 이미지, 실행 파일 등)

메타데이터가 왜 중요하냐

• 파일 검색 속도 증가
• 보안 설정 가능 (읽기/쓰기 권한 등)
• 수정 및 접근 이력 관리

2-2. 디렉터리(Directory)

디렉터리는 파일과 다른 디렉터리를 조직적으로 모아 놓은 컨테이너.

Windows: 폴더
Mac,Linux: 디렉터리라고 부른다

디렉터리 구조

트리 구조(Tree Structure): 계층적인 구조
루트 디렉터리(/): 최상위 폴더
서브 디렉터리: 하위 폴더

경로(Path)

절대 경로: 루트(/)부터 시작 → /home/user/docs/file.txt
상대 경로: 현재 위치 기준 → ../docs/file.txt

중요! 디렉터리도 결국 “파일”이다

• 디렉터리 = 파일 목록을 담고 있는 특별한 파일
디렉터리 엔트리(Directory Entry)파일 이름 + 파일 위치 정보 포함


3. 파일 디스크립터(File Descriptor)와 시스템 콜

3-1. 파일 디스크립터(File Descriptor)

파일을 사용할 때 운영체제가 파일을 식별하기 위해 부여하는 정수 값이다.

• Linux/Unix: 파일 디스크립터
• Windows: 파일 핸들(File Handle)

대표적인 파일 디스크립터 번호

번호의미설명
0표준 입력(stdin)사용자 입력 처리
1표준 출력(stdout)화면 출력
2표준 오류(stderr)오류 메시지 출력

3-2. 시스템 콜(System Call)

응용 프로그램이 운영체제의 자원을 요청할 때 사용하는 인터페이스.

파일 관련 주요 시스템 콜:

open(): 파일 열기 → 파일 디스크립터 반환
write(): 파일 쓰기 → 디스크립터 필요
read(): 파일 읽기
close(): 파일 닫기

왜 시스템 콜을 사용하냐

• 사용자 프로그램이 직접 메모리나 하드 접근 못하게 막아서 보안 강화
운영체제가 권한 관리하고 자원 낭비 방지


4. 파일 할당 방식 (보조기억장치에 파일 저장 방법)

4-1. 블록 단위 저장

보조기억장치 → 블록(Block) 단위로 데이터를 저장
블록 크기: 보통 4KB
하나의 파일 = 여러 블록에 분산 저장 가능

4-2. 파일 할당 기법

(1) 연속 할당(Contiguous Allocation)

연속된 블록에 파일을 저장

장점: 빠른 접근

단점: 외부 단편화 발생, 파일 크기 예측 어려움


(2) 연결 할당(Linked Allocation)

• 각 블록에 다음 블록의 주소 저장

장점: 단편화 해결

단점: 임의 접근 속도 느림 (순차 접근만 빠름)


(3) 색인 할당(Indexed Allocation)

모든 블록 주소를 색인 블록에 저장

장점: 빠른 임의 접근 가능

단점: 색인 블록이 커질 수 있음


5. 아이노드(Inode)와 EXT4 파일 시스템

5-1. 아이노드(Inode)란?

Linux와 macOS 같은 시스템에서는 아이노드라는 구조체로 파일 정보를 관리한다.

아이노드에 저장된 정보:

• 파일 크기, 생성일, 수정일
• 파일 권한 및 소유자
데이터 블록 주소(중요!)

아이노드에는 “파일 이름”이 없음

→ 파일 이름은 디렉터리 엔트리에서 관리

5-2. EXT4 파일 시스템 구조

EXT4는 Linux에서 가장 널리 쓰이는 파일 시스템

구성 요소

구성 요소설명
슈퍼 블록(Superblock)파일 시스템 전체 정보 (크기, 상태, 버전)
블록 그룹(Block Group)데이터 블록 묶음
아이노드 테이블(Inode Table)파일의 메타데이터 저장
데이터 블록(Data Block)실제 파일 내용 저장
블록 비트맵(Block Bitmap)사용 중인 블록 여부 추적

5-3. 아이노드와 디렉터리 관계

디렉터리 엔트리 구조

항목설명
파일 이름파일 구분을 위한 이름
아이노드 번호(Inode Number)파일 위치 및 속성 찾기 위한 열쇠

디렉터리는 결국 “아이노드 번호 목록”을 가진 파일이라고 보면 된다.


?? 아이노드와 파일 디스크립터 비교

아이노드(Inode) vs 파일 디스크립터(File Descriptor)

아이노드와 파일 디스크립터, 둘 다 “파일과 관련된 정보”지만 역할이 완전히 다르다

구분아이노드(Inode)파일 디스크립터(File Descriptor)
정의파일의 메타데이터(속성 정보)를 담은 데이터 구조체프로세스가 파일을 열 때 운영체제가 부여하는 식별 번호
저장 위치디스크(보조기억장치)에 저장운영체제(커널)의 메모리 공간에 저장
역할파일의 크기, 권한, 생성일, 수정일, 데이터 위치 정보 제공열려 있는 파일을 프로세스가 사용할 수 있도록 식별 및 관리
파일 이름 포함?❌ 포함하지 않음 (이름은 디렉터리 엔트리가 관리)❌ 이름 포함 없음 (아이노드와 연결된 내부 정보만 참조)
언제 사용?파일 자체 정보 확인이나 저장 시 사용프로세스가 파일을 읽거나 쓸 때 사용
수명파일이 존재하는 동안 계속 유지파일 열 때 생성, 닫으면 사라짐
비유책의 도서관 카드 (책 위치와 정보 기록)도서관에서 책을 빌릴 때 받는 대출 번호표 (임시로 사용하는 표)
관계아이노드는 파일에 대한 정적 정보(속성) 제공파일 디스크립터는 프로세스가 파일을 조작할 때 임시로 생성되는 번호

아이노드: 파일의 영구적인 정보 (크기, 위치, 권한 등)를 관리
디스크립터: 파일을 현재 열고 있는 프로세스가 사용하기 위한 임시 번호

쉽게 정리하자면

아이노드: 파일의 주민등록번호 카드항상 존재 & 영구 정보
디스크립터: 파일 열 때 받는 일회용 번호표작업 끝나면 사라짐

커피를 고를 때 메뉴판 보고 주문하면 진동벨을 받는 것처럼
아이노드로 파일 위치를 확인하고 디스크립터로 파일을 다룬다.


6. 링크 파일: 하드 링크 vs 심볼릭 링크

6-1. 하드 링크(Hard Link)

같은 아이노드를 공유하는 다른 이름의 파일
원본 삭제 시에도 데이터 유지 (링크가 남아 있으면 파일 유효)

6-2. 심볼릭 링크(Symbolic Link)

원본 파일 경로를 저장한 파일 (Windows 바로가기 개념)
원본 삭제 시 링크 깨짐

링크 종류아이노드 공유원본 삭제 시특징
하드 링크(Hard Link)공유데이터 유지같은 파일, 다른 이름
심볼릭 링크(Symbolic Link)미공유링크 깨짐경로만 참조 (바로가기)

7. 마운트(Mount)

7-1. 마운트란?

외부 저장장치(USB, 외장하드 등)를 운영체제에 연결해 사용하는 과정

예: USB 연결 시 /mnt/usb 경로에서 접근 가능

자동 마운트 vs 수동 마운트

구분자동 마운트수동 마운트
작동 방식USB 꽂으면 자동 연결사용자가 직접 명령어 입력 필요
사용 환경Windows, macOS 데스크탑Linux 서버, 전문가용 환경에서 사용
편의성✅ 편리함 (초보자 친화적)❌ 불편하지만 세밀한 설정 가능
예시USB 꽂자마자 자동 인식mount 명령어로 수동 연결 필요

마운트와 링크 파일의 차이

비교 항목마운트(Mount)링크 파일(하드/심볼릭)
역할외부 장치를 시스템에 연결다른 파일을 참조하거나 여러 이름으로 접근
적용 대상USB, 외장하드, CD 등 저장장치 연결파일 또는 디렉터리 내부 참조
연결 해제 시umount 하면 접근 불가하드 링크는 삭제해도 작동, 심볼릭 링크는 깨짐
비유새로운 방에 들어가는 문을 만들기집에 출입문 추가(하드 링크) or 표지판 설치(심볼릭)

마무리.

개념설명
파일 시스템보조기억장치를 파일 및 디렉터리로 관리하는 체계
파일이름, 메타데이터, 실제 데이터로 구성
디렉터리파일 목록을 가진 특수 파일, 트리 구조로 계층 관리
파일 디스크립터운영체제가 파일을 식별하기 위해 부여하는 정수
할당 방식연속 할당, 연결 할당, 색인 할당 등 다양한 방식으로 블록 관리
아이노드파일의 메타데이터와 데이터 블록 주소를 저장, 이름은 디렉터리 관리
링크 파일하드 링크: 같은 아이노드, 심볼릭 링크: 경로 참조
마운트외부 파일 시스템을 내부 파일 시스템에 연결
profile
이래서 되겠나 싶은 개발지망생

0개의 댓글