Electronic Engeneering/Operating System (OS)

[OS / Linux] 아이노드 (i-node) / 하드 링크, 심볼릭 링크

굠민 2024. 8. 25. 20:59

아이노드 (i-node)

 

 i-node Index node의 줄임말로, 유닉스 기반 시스템 내에서 파일을 빠르게 찾기 위해 사용되는 데이터 구조이다. 위 그림에서 disk block는 각 정보를 의미하는데, i-node의 정보 구성으로는 파일 형식, 파일 권한, 링크 수, 파일 소유주, 파일 그룹, 파일 크기, 파일 생성 시간이 있다. 이 정보들을 이용하여 i-node는 파일 및 디렉토리의 관리와 접근을 가능하게 한다. 리눅스에서 다루는 모든 파일은 고유한 i-node를 가지고 있으며 ls -i 명령어를 통해 확인할 수 있다.

 

> i-node 테이블

 i-node 테이블은 파일이나 디렉터리에 대한 정보를 저장한 곳으로, 전체 파일들의 모든 i-node를 가지고 있다. 따라서 시스템에 저장될 수 있는 파일 및 디렉터리 수는 이 테이블의 크기에 따라 한정된다. i-node 테이블은 i-node 정보들를 이용하여 파일이나 디렉터리의 실제 데이터가 저장된 위치를 가리키는 포인터 역할을 할 수 있고, 파일과 디렉터리의 관리와 접근을 용이하게 한다.

 

 

하드링크 (Hard Link)  /  심볼릭 링크(Symbolic Link)

    • 하드 링크 : 기존 파일에 대한 새로운 경로
      하드링크와 원본은 별도의 파일이 아닌 하나의 파일에 대한 링크로, 하드링크의 파일을 바꾸면 원본도 바뀐다. 둘 중 하나를 삭제했을 경우 나머지 파일이 사진과 같이 동일한 i-node를 가지고 있기에 원래 기능을 그대로 사용할 수 있다. 하드링크는 기존 파일을 대표하는 i-node를 가리켜 구현하므로 한 파일 시스템 내에서만 사용 가능하다는 단점이 있다.
    • 심볼릭 링크 : 실체는 없지만 원본의 경로명을 저장하고 있는 파일
      하드링크의 문제점을 개선하기 위한 심볼릭(소프트) 링크는ln -s [원본 파일] [링크파일 이름]을 통해 생성할 수 있다. 심볼릭링크는 윈도우의 바로가기와 비슷한 기능으로, 원본을 삭제했을 경우 소프트 링크는 기능을 잃는다. 따라서 심볼릭 링크의 주의점으로는 원본 파일이나 디렉터리를 실수로 삭제할 경우 복구가 불가능하다는 점이다.