
💡 Chapter 15. 파일 시스템
위의 챕터를 6주차에 학습하였고, 새롭게 알게되고 어려웠던 점은 아래와 같습니다.
◼️ 파일과 디렉터리
📁 파일 (File)
파일은 보조기억장치에 저장된 의미 있는 정보들의 논리적 단위로,
단순히 데이터 덩어리가 아니라, 운영체제가 체계적으로 관리하는 정보 단위
📌 파일의 구성요소
| 구성 요소 | 설명 | 예시 |
| 내용(Content) | 실제 파일의 데이터 | 텍스트, 이미지, 실행 코드 등 |
| 속성(Properties) | 파일과 관련된 부가 정보 | 크기, 권한, 생성일시 등 |
| 메타데이터(Metadata) | 파일을 관리하기 위한 정보 | 위치, 형식, 소유자 등 |
📌주요 파일 속성들

| 구분 | 설명 |
| 유형(Type) | 확장자를 통해 힌트 제공 (.txt, .jpg, .exe 등) |
| 크기(Size) | 바이트 단위로 표현 |
| 권한(Permissions): | 읽기/쓰기/실행 권한 |
| 시간 정보 | 생성, 수정, 마지막 접근 시간 |
| 소유자 정보 | 파일 생성자 및 소유자 |
| 위치 정보 | 물리적 저장 위치 |
📁 디렉터리 (Directory)
디렉터리는 파일들을 체계적으로 관리하기 위한 구조로, 윈도우에서는 '폴더'라고도 부른다.
디렉터리도 운영체제 관점에서는 특수한 형태의 파일이다.
내부에 포함된 파일과 디렉터리 목록 정보를 담고 있는 파일인 셈이다.
📌경로의 종류
| 종류 | 설명 | 예시 (Linux/Mac) | 예시 (Windows) |
| 절대 경로 | 루트 디렉터리부터 시작 | /home/user/document.txt | C:\Users\user\document.txt |
| 상대 경로 | 현재 디렉터리 기준 | ./docs/readme.md | .\docs\readme.md |
📌특수 경로 기호
| 기호 | 의미 | 설명 |
| . | 현재 디렉터리 | 현재 작업 중인 디렉터리 |
| .. | 상위 디렉터리 | 한 단계 위의 부모 디렉터리 |
| ~ | 홈 디렉터리 | 사용자의 홈 디렉터리 (Linux/Mac) |
cd ./project # 현재 디렉터리의 project 폴더로 이동
cd ../other-project # 상위 디렉터리의 other-project로 이동
cd ~/Documents # 홈 디렉터리의 Documents로 이동
📌디렉터리 테이블과 엔트리
- 디렉터리는 내부적으로 테이블 구조를 가짐
- 한 행 = 디렉터리 엔트리 (Directory Entry)
- 엔트리 정보
- 항목 이름 (파일/디렉터리 이름)
- 항목의 저장 위치 (블록 주소 등)
- 일부 파일 시스템에서는 속성 정보까지 포함

◼️파일 시스템
✅ 파티셔닝
보조기억장치를 논리적 단위로 나누는 작업으로,
하나의 물리적 드라이브를 여러 개의 가상 드라이브로 분할하는 것
📌파티셔닝을 하는 이유
- 서로 다른 운영체제 설치 가능
- 데이터와 시스템 영역 분리
- 백업과 복구 용이성
- 성능 최적화
✅ 포맷팅(Formatting)
파티션에 파일 시스템을 설정하는 과정
| 포맷팅 종류 | 설명 | 주체 |
| 저수준 포맷 | 물리적 섹터 구조 생성 | 제조사에서 수행 |
| 고수준 포맷 | 파일 시스템 설정 | 사용자가 수행 |
✅ 파일 할당 방법
운영체제는 파일을 블록(Block) 단위로 관리하므로,
하나의 파일이 여러 블록에 분산되어 저장될 수 있어서, 이를 효율적으로 관리하는 방법이 필요
| 방식 | 설명 | 장점 | 단점 |
| 연속 할당 (Contiguous Allocation) |
파일을 연속된 블록에 저장 | 빠른 접근 | 외부 단편화 발생 |
| 연결 할당 (Linked Allocation) |
블록마다 다음 블록 주소를 저장 (연결리스트) | 외부 단편화 없음 | 임의 접근 느림, 블록 손상 시 위험 |
| 색인 할당 (Indexed Allocation) |
색인 블록에 모든 블록 주소 저장 | 임의 접근 빠름 | 색인 블록 크기 제한 |
✅ 실제 파일 시스템 구조
📌 FAT(File Allocation Table) 시스템
- 연결 할당 방식을 개선한 시스템
- USB, SD 카드 등에 주로 사용
- 시스템 구조
| 영역 | 역할 |
| 부트 섹터 | 파일 시스템 정보 |
| FAT 영역 | 블록 연결 정보 테이블 |
| 루트 디렉터리 | 최상위 디렉터리 정보 |
| 데이터 영역 | 실제 파일 데이터 |
📌 유닉스 파일 시스템
- 색인 할당 방식을 기반으로하며, 아이노드(inode)라는 개념을 사용
- 아이노드(inode)의 구조
| 번호 | 내용 | 설명 |
| 1-12 | 직접 블록 | 파일 데이터 블록 직접 주소 |
| 13 | 단일 간접 블록 | 주소들을 담은 블록의 주소 |
| 14 | 이중 간접 블록 | 간접 블록들의 주소를 담은 블록 |
| 15 | 삼중 간접 블록 | 이중 간접 블록들의 주소 |
◼️추가 학습
✅ 파일 디스크립터(File Descriptor)
프로세스가 파일에 접근할 때 사용하는 정수값으로,
운영체제가 열린 파일들을 관리하기 위한 식별자를 의미
int fd = open("example.txt", O_RDWR); // 파일 열기
read(fd, buffer, sizeof(buffer)); // 파일 읽기
close(fd); // 파일 닫기
✅ 링크(Link) 시스템
| 링크 종류 | 설명 | 특징 |
| 하드링크 | 같은 아이노드를 가리키는 추가 이름 | 원본 삭제해도 접근 가능 |
| 심볼릭링크 | 다른 파일의 경로를 담은 특수 파일 | 원본 삭제 시 깨진 링크 |
ln original.txt hardlink.txt # 하드링크 생성
ln -s original.txt symbolic.txt # 심볼릭링크 생성
✅ 파일 권한 시스템
유닉스 계열 시스템의 권한 체계
| 권한 | 의미 | 숫자 표현 |
| r (read) | 읽기 | 4 |
| w (write) | 쓰기 | 2 |
| x (execute) | 실행 | 1 |
chmod 755 script.sh # rwxr-xr-x (소유자: 모든권한, 그룹/기타: 읽기+실행)
chown user:group file # 소유자와 그룹 변경
✅ 저널링 파일 시스템
시스템 장애 시 데이터 손실을 방지하기 위해 변경 사항을 미리 로그에 기록하는 방식
대표적인 저널링 파일 시스템
- ext3, ext4 (Linux)
- NTFS (Windows)
- HFS+ (macOS)
최신 파일 시스템
| 파일 시스템 | 특징 | 주요 기능 |
| Btrfs | Linux용 고급 파일 시스템 | 스냅샷, 압축, 중복 제거 |
| ZFS | Sun에서 개발 | 데이터 무결성, RAID 기능 내장 |
| APFS | Apple 최신 파일 시스템 | SSD 최적화, 암호화 |
✅ 가상 파일 시스템(VFS)
Linux에서는 서로 다른 파일 시스템들을 통일된 인터페이스로 접근할 수 있게 해주는 추상화 계층
응용 프로그램
↓
가상 파일 시스템 (VFS)
↓
ext4, NTFS, FAT32, NFS 등
덕분에 개발자는 파일 시스템의 종류와 관계없이 동일한 시스템 호출을 사용할 수 있음.
✅ 실무에서의 파일 시스템 고려사항
성능 최적화
- 블록 크기 선택: 작은 파일이 많으면 작은 블록, 큰 파일이 많으면 큰 블록
- SSD vs HDD: SSD는 랜덤 액세스가 빠르므로 단편화 영향 적음
- 캐싱: 자주 사용하는 파일은 메모리에 캐시
백업과 복구
rsync : 증분 백업의 핵심
tar : 압축 아카이브 백업
# rsync를 이용한 증분 백업
rsync -av --delete /source/ /backup/
# tar를 이용한 아카이브 생성
tar -czf backup.tar.gz /important/data/
모니터링
# 디스크 사용량 확인
df -h
# 디렉터리별 용량 확인
du -sh /path/to/directory
# 파일 시스템 상태 확인
fsck /dev/sda1
📎 참고
- "혼자 공부하는 컴퓨터 구조+운영체제" 책 : https://hongong.hanbit.co.kr/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/
- "혼자 공부하는 컴퓨터 구조+운영체제" 강의 : https://www.youtube.com/watch?v=bls_GjX-4U8&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl
'사이버 보안 > 컴퓨터 구조' 카테고리의 다른 글
| [혼공컴운] 6주차 정리1 > 가상 메모리 (4) | 2025.08.17 |
|---|---|
| [혼공컴운] 5주차 정리 (6) | 2025.08.09 |
| [혼공컴운] 4주차 정리 (3) | 2025.07.26 |
| [혼공컴운] 3주차 정리 (0) | 2025.07.19 |
| [혼공컴운] 2주차 정리 (1) | 2025.07.12 |
댓글