IT 그리고 정보보안/Knowledge base

아이노드 ( i-node )

plummmm 2021. 4. 18. 20:08
반응형

아이노드에 대해 한번 알아보자.

리눅스에서 파일 시스템을 관리하기 위해 사용되는 개체의 일종이라고 보면된다.

아이노드는 파일의 정보를 갖고있다.

 

파일은 기본적으로 실제 파일의 데이터 파일의 속성으로 이루어져 있다.

여기서 파일 속성을 가르키는 값을 아이노드(i-node) 라고 한다.

모든 파일들은 각자 1개의 아이노드를 갖고있다. 디렉토리도 물론 아이노드를 갖고있다.

아이노드가 가르키는 파일 속성에는

파일 크기, 접근 모드, 아이노드 넘버, 소유자 그룹 등의 정보가 들어있다.

 

 

이런 정보들을 담고있다.

다음은 아이노드 구조를 함 보자.

 

그림을 보면 알 수 있듯이, 아이노드는 아이노드 넘버 즉, 인덱스와 파일 속성으로 이루어져 있다.

인덱싱하는 건 아래에서 다시 자세히 얘기하겠다.

아래 그림은 하드디스크에 저장된 파일 데이터와 파일 속성에 대해 개략적인 그림으로 표현한 것이다.

 

하드디스크에 저 두개가 저장된다는 것은 알았다. 그리고

파일 데이터와 파일 속성은 하드디스크 상에 별도의 공간에 저장된다.

먼저 히드디스크를 1차원으로 표현하자면 아래 처럼 된다.

 

 

저기에 파일에 대한 내용들이 각각의 영역에 할당되게 된다.

보통 아이노드 영역 데이터 영역이 나누어져 있다.

 

 

 

그림에서 보다 시피 영역 이 나누어 져있다.

아이노드들의 크기는 일정하다. 어차피 인덱스 들이니까.

아이노드에 있는 인덱스들은 실제 파일데이터에 맵핑(mapping)된다.

 

여기에또 직접맵핑(Direct Mapping) 간접맵핑(Indirect Mapping)이 있다.

그림을 보고 이해합시다.

 

직접 맵핑은 그냥 직접 맵핑하는 것이다.

간접 맵핑은 직접 맵핑으로만 하면 갯수가 딸릴 것이 아닌가. 정말 방대한 용량을 가진 시스템이라면..

그래서 간접적으로 한번 둘러서 맵핑하는 것이다. 한번은 8배, 두번은 64배.. 뭐 이런식으로

훨씬더 많은 파일을 맵핑할 수 있기 때문에.

 

파일에 따라 아이노드 넘버가 다 있다고 했는데 그럼 예를 들어, 

/etc/inittab 이라는 곳에 엑세스 하려면 어떻게 따라가야 할까.

 

시작은 루트다. 루트는 아이노드 0번이다 (고정임)

루트 0인걸 알고 아래 그림처럼 따라가면 된다.

 

 

반응형