UNIX 아이노드 (Inode)
Jan 23, 2026 · Updated Feb 10, 2026
핵심 개념
섹션 제목: “핵심 개념”아이노드(index node)는 파일의 메타데이터와 데이터 블록 위치를 저장하는 디스크 상의 자료구조이다. 파일 데이터가 디스크 여러 곳에 흩어져 있을 수 있고 파일명만으로는 파일을 관리할 수 없으므로, 파일명과 파일 데이터를 분리하여 하드 링크와 효율적인 메타데이터 관리를 지원한다.
동작 원리
섹션 제목: “동작 원리”파일 시스템은 <장치 번호, 아이노드 번호> 쌍으로 파일을 고유하게 식별한다.
아이노드 내용
섹션 제목: “아이노드 내용”Inode 내부 구조
메타데이터
소유자 (UID, GID) 파일 유형 권한 (rwx) 타임스탬프 (3) 링크 카운트 파일 크기
블록 포인터
direct[0-11] single indirect double indirect triple indirect
15개 블록 포인터 구조
섹션 제목: “15개 블록 포인터 구조”- 12개: 직접 블록 (direct blocks) → 데이터 직접 참조
- 1개: 단일 간접 (single indirect) → 블록 포인터들의 블록
- 1개: 이중 간접 (double indirect)
- 1개: 삼중 간접 (triple indirect) → 4.2BSD에서는 불필요 (2^32 바이트 한계)
블록 포인터 참조 경로 (간접 블록)
1 Inode
indirect 포인터 읽기 2 간접 블록
포인터들의 블록 3 데이터 블록
실제 파일 데이터 아이노드는 “도서관 카드”와 같다. 책의 제목(파일명)은 별도 목록(디렉토리)에 있고, 카드에는 책의 위치(블록 포인터), 저자(소유자), 대출 기록(타임스탬프)이 기록된다.
4KB 블록 크기에서 최대 파일 크기:
4KB 블록 기준 최대 파일 크기
직접 블록 12 × 4KB = 48KB
단일 간접 1024 × 4KB = 4MB
이중 간접 1024² × 4KB = 4GB
총합 ≈ 4GB (32비트 오프셋 한계)
- 파일명과 메타데이터 분리로 하드 링크 지원
- 작은 파일은 직접 블록으로 빠른 접근, 큰 파일도 간접 블록으로 효율적 지원
- 단점: 큰 파일 접근 시 간접 블록 추가 I/O 발생, 아이노드 개수 고정(Version 7)
관련 개념
섹션 제목: “관련 개념”- VFS (Virtual File System) - 디스크 아이노드를 in-core inode 객체로 추상화하는 가상 파일 시스템 계층
- UNIX 파일 디스크립터 - fd → file → inode 참조 체인으로 아이노드에 접근하는 핸들
- BSD 실린더 그룹 - 아이노드와 데이터 블록을 인접 배치하여 seek를 줄이는 할당 단위
- NTFS 구조 - UNIX 아이노드에 대응하는 MFT Entry 기반의 Windows 파일 메타데이터 구조
- 저널링 파일 시스템 - 아이노드 등 메타데이터 변경을 로그로 보호하는 크래시 복구 기법