본문 바로가기

해시 트리

File System - Ext (13) 계속해서 Ext 파일시스템의 데이터 구조체들을 알아보자. [해시 트리] Ext 파일시스템에서 디렉토리의 엔트리들을 정렬하기 위해 사용하는 알고리즘으로, 각 노드는 디렉토리의 각 블록이다. 노드에는 노드 기술자라는 데이터 구조체가 있는데 노드 기술자는 다음 계층의 블록을 알려주는 역할을 한다. 노드 기술자는 헤더와 엔트리로 나누어 지는데 헤더는 디렉토리 엔트리 다음에 위치한다. [그림 1 - 노드 기술자 헤더 오프셋] 노드 기술자 엔트리는 노드의 최소 해시 값과 노드의 디렉토리 블록을 저장하고 있다. [그림 2 - 노드 기술자 엔트리 오프셋] 첫 번째 노드 기술자 엔트리의 경우 최소 해시 값이 0이어야만 해서 해시 값이 설정되지 않는다. 이러한 이유로 첫 번째 노드 기술자 엔트리의 구조는 [그림 2]와 조.. 더보기
File System - Ext (5) 이번 글에서는 파일 이름 참조 모델에 해당하는 데이터에 대해서 알아 보도록 하겠다. [디렉토리 엔트리] Ext 파일시스템에서는 파일과 디렉토리의 구분을 Inode에 있는 특별한 타입 값으로 구분 짓는다. 디렉토리들은 디렉토리 엔트리 데이터 구조체의 목록을 포함하는 블록들을 할당 받게 되는데, 디렉토리 엔트리는 파일 이름과 메타데이터가 어디 있는지 설명하는 데이터 구조체이다. * 참고 : 디렉토리 크기는 디렉토리 엔트리 구조체 목록을 포함하는 블록의 크기와 관련이 있다. 모든 디렉토리는 자신과 부모를 나타내는 ".', ".." 디렉토리 엔트리를 포함하고 또 이 두개를 엔트리 시작으로 삼는다. ".", ".." 다음으로는 디렉토리 내의 파일과 하위 디렉토리의 엔트리들이다. * 참고 : 루트 디렉토리는 항상 .. 더보기