아이노드
아이노드(“index node”의 줄임말)는 Linux에서 파일에 관한 정보를 저장하는 데 사용하는 데이터 구조입니다. 각 아이노드에는 Linux 파일 시스템의 개별 파일이나 기타 객체를 식별하는 고유 ID가 있습니다.
아이노드에는 다음 정보가 포함됩니다.
- 파일 유형 - 파일, 폴더, 실행 프로그램 등
- 파일 크기
- 타임스탬프 - 생성, 액세스, 수정 시간
- 파일 권한 - 읽기, 쓰기, 실행
- 액세스 제어 목록 - 특정 사용자 또는 그룹에 대한 권한
- 파일 보호 플래그
- 파일 위치 - 파일이 저장된 디렉터리 경로
- 링크 수 - 아이노드에 연결된 하드 링크의 수
- 추가 파일 메타데이터
- 파일 포인터 - 파일 내용을 저장하는 저장 블록의 주소
중요한 점은 아이노드에 파일 이름이나 실제 데이터가 포함되지 않는다는 것입니다. Linux 파일 시스템에서 파일이 생성되면 아이노드 번호와 파일 이름이 할당됩니다. 이 연결된 쌍 덕분에 시스템의 파일 ID에 영향을 주지 않고 파일 이름을 변경할 수 있습니다. Linux에서는 디렉터리도 파일로 취급되므로 디렉터리 이름을 변경할 때도 마찬가지입니다.
파일 데이터는 저장 장치의 하나 이상의 블록에 나누어 저장됩니다. 아이노드에는 이 데이터를 가리키는 포인터가 포함되지만 실제 데이터는 포함되지 않습니다. 따라서 아이노드가 식별하는 파일의 크기와 관계없이 모든 아이노드는 비교적 작습니다.
NOTE: 각 Linux 저장 장치에는 아이노드 제한이 있으며, 이 제한은 디스크를 포맷할 때 정해집니다. 드문 경우지만 작은 파일을 많이 만들면 전체 저장 용량을 다 사용하기 전에 아이노드 제한에 도달할 수 있습니다.
지식 테스트하기