본문 바로가기

디렉토리 엔트리

File System - UFS (9) 이번 글에서는 UFS의 마지막 데이터 구조체인 디렉토리 엔트리에 대해서 알아 보도록 하겠다. [디렉토리 엔트리] 디렉토리 엔트리는 파일과 디렉토리에 이름을 저장하고 해당 블록에 위치하고 있다. 디렉토리 엔트리는 inode 주소도 포함하는데 이러한 디렉토리 엔트리의 오프셋 구조는 아래와 같다. [그림 1 - 디렉토리 엔트리 오프셋 구조] - 파일 타입 : 파일이나 디렉토리의 타입을 결정 짓는 필드로 해당 필드의 들어가는 값들은 아래와 같다. [그림 2 - 파일타입 플래그 목록] 이렇게 해서 UFS의 모든 참조 모델과 데이터 구조체를 알아보았다. UFS와 Ext 파일시스템은 비슷하지만 UFS에서 조금 더 큰 필드들과 많은 비 필수 데이터가 있는 것을 알 수 있었다. 어떻게 보면 필요 없는 정보들이겠지만 이러.. 더보기
File System - UFS (5) 이번 글에서는 파일 이름 참조 모델과 파일 복구, 일관성 검사에 대해서 다루어 볼 것이다. [디렉토리 엔트리] UFS의 디렉토리 엔트리는 Ext 파일시스템과 동일하게 파일이름, inode 주소, 유형 값을 포함한다. 디렉토리 엔트리의 길이는 파일 이름 길이가 255개 문자인 파일 이름 길이를 참조하여 결정된다. 이름은 ASCII 형식으로 저장되는데 Ext 파일의 이름은 NULL로 끝나지 않는 반면 UFS 파일이름은 NULL로 끝난다. 디렉토리 엔트리의 위치는 디렉토리에 할당 된 블록이다. 파일과 디렉토리의 구분은 모드 필드로 할 수 있다. UFS도 Ext 파일시스템과 동일하게 각 엔트리의 레코드 값이 다음 엔트리 시작을 가리키고 있으며 마지막 디렉토리 엔트리의 레코드 값은 블록 마지막을 가리키고 있다. .. 더보기
File System - Ext (5) 이번 글에서는 파일 이름 참조 모델에 해당하는 데이터에 대해서 알아 보도록 하겠다. [디렉토리 엔트리] Ext 파일시스템에서는 파일과 디렉토리의 구분을 Inode에 있는 특별한 타입 값으로 구분 짓는다. 디렉토리들은 디렉토리 엔트리 데이터 구조체의 목록을 포함하는 블록들을 할당 받게 되는데, 디렉토리 엔트리는 파일 이름과 메타데이터가 어디 있는지 설명하는 데이터 구조체이다. * 참고 : 디렉토리 크기는 디렉토리 엔트리 구조체 목록을 포함하는 블록의 크기와 관련이 있다. 모든 디렉토리는 자신과 부모를 나타내는 ".', ".." 디렉토리 엔트리를 포함하고 또 이 두개를 엔트리 시작으로 삼는다. ".", ".." 다음으로는 디렉토리 내의 파일과 하위 디렉토리의 엔트리들이다. * 참고 : 루트 디렉토리는 항상 .. 더보기
File System - FAT (10) 이번 글에서는 디렉토리 엔트리에 대해서 알아 볼 것이다. 디렉토리 엔트리에는 디렉토리의 이름과 여러 데이터를 대신 설명 해주는 메타데이터가 포함되어 있다. 이러한 엔트리들은 파일과 디렉토리 모두에 할당이 되며 엔트리 위치는 할당 된 파일이나 디렉토리의 부모 디렉토리 클러스터에 위치하게 된다. 엔트리에 저장되는 이름의 최대 길이는 확장자를 제외하고 8글자이며, 확장자는 최대 3글자이다. 디렉토리 엔트리의 바이트 오프셋은 아래와 같으며 부가적 설명이 필요한 항목은 따로 설명을 하도록 하겠다. [그림 1 - 디렉토리 엔트리 바이트 오프셋] - 파일이름의 첫 문자 또는 할당 상태 : 이 항목은 디렉토리나 파일의 이름 첫 번째 문자가 설정되는 부분이며 해당 디렉토리 엔트리가 비 할당 상태일 시 문자대신 "0xE5.. 더보기