1580, 4/79 회원가입  로그인  
   arsenalkim
   http://arsenalkim.tistory.com
   Unix/Linux 의 파일을 관리하는 자료구조 inode.

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1874 [복사]


inode는 유닉스 운영체제에서 사용하는 자료 구조로, 파일 시스템 내부에 파일을 유지하는 중요한 정보를 담고 있다. 유닉스에서 파일 시스템을 생성할 때, 수 많은 inode 집합을 생성한다. 일반적으로 전체 파일 시스템 디스크 용량의 대략 1% 정도가 inode 테이블에 할당된다.

종종 사람들은 inode와 inumber를 섞어서 사용한다. 두 용어는 비슷하며, 서로 관련이 있지만 똑같은 개념을 나타내지는 않는다. inode는 자료 구조다. inumber는 실제 inode 인식 번호이므로 inode number나 inumber라고 부른다. inumber는 파일 정보를 담은 중요한 항목일 뿐이다. inode에서 몇 가지 다른 속성은 다음 절에서 설명한다.

inode 테이블은 개별 파일 시스템을 위한 모든 inode 숫자 목록을 포함한다. 사용자가 파일에 접근하려면, 유닉스 시스템은 올바른 inode 번호로 inode 테이블을 탐색한다. inode 번호를 발견하면, 사용자가 내린 명령이 inode에 접근해서 가능하다면 적절한 변경 작업을 진행한다.

예를 들어, vi로 파일을 변경하는 작업을 생각해보자. vi <filename>이라고 입력할 때, inode 숫자를 inode 테이블에서 찾아 inode를 연다. vi 편집 세션 중에서 몇 가지 속성이 변경되며, :wq로 작업을 종료할 때, inode가 닫히며 해제된다. 이런 식으로 사용자 두 명이 같은 파일을 동시에 편집하면, inode가 편집 세션을 연 사용자 ID에 할당되며, 다른 사용자는 inode가 해제되기를 기다려야만 한다.


inode 구조체
inode 구조체는 경험이 풍부한 유닉스 개발자나 관리자에게 상대적으로 쉽게 다가오지만, inode 내부에 대해 잘 모를 경우 깜짝 놀랄 만한 정보를 담고 있을지도 모르겠다. 다음 정의는 유닉스 사용자가 활용하는 inode에 담긴 중요한 정보 몇 가지를 설명한다.

•inode 번호
•stat C 함수에서 사용되는 파일 유형을 이해하기 위한 모드 정보
•파일 링크 숫자
•소유주 UID
•소유주 GID
•파일 크기
•파일이 사용하는 실제 블록 개수
•마지막으로 수정된 시각
•마지막으로 접근한 시각
•마지막으로 변경된 시각

기본적으로 inode는 파일의 실제 이름과 파일의 실제 내용을 제외한 파일에 대한 모든 정보를 담고 있다. 전체 inode 구조체는 AIX에서 헤더 파일인 /usr/include/jfs/ino.h에 담겨 있다.

위에서 정리한 정보는 유닉스에서 많이 사용하며 파일에 중요하다. 이런 정보 없이는 파일이 손상당하거나 사용 불가능한 상황에 놓인다.

디렉터리와 파일은 다른 운영체제와 비교해서 유닉스 시스템에서 조금 다르게 보일지도 모르겠지만 그렇지 않다. 유닉스에서 디렉터리는 실제로 inode에 몇 가지 추가 설정이 가해진 파일이다. 디렉터리는 기본적으로 다른 파일을 담고 있는 파일이다. 또한 모드 정보는 파일이 실제로 디렉터리라는 사실을 시스템에 알리는 플래그 집합을 포함한다.


1. inode로 작업하기
유닉스에서 inode로 작업하는 방법을 익히려면 시간도 많이 필요하며 짜증도 난다. 다음에 소개하는 명령어를 활용해 inode에 대해 모를 때 겪었던 두통거리 몇 가지를 완화해보자.

2. df 명령어
앞서 언급했듯이, 유닉스에서 파일 시스템을 생성할 때, 전체 디스크 공간의 대략 1%가 inode 테이블에 할당된다.
파일 시스템에서 파일을 만들 때마다, inode가 해당 파일에 할당된다.
일반적으로 파일 시스템에 할당된 inode 숫자는 충분하지만 inode가 다 떨어질 가능성도 항상 고려해야 한다. 이를 감시하기 위해 df 결과를 살펴본다.

df 명령어를 사용하면 특정 파일 시스템이나 모든 마운트된 파일 시스템을 살펴볼 수 있다.
명령 결과에서 각 파일 시스템에서 사용된 inode 숫자는 물론이고 전체 파일 시스템에서 사용된 비율도 볼 수 있다.

더 자세한 정보는 참고 url.





참고 url : http://arsenalkim.tistory.com/164

  Hit : 8759     Date : 2011/09/26 03:31



    
1520     [re] [잡] 네트워크 TCP     answp
01/01 6304
1519     [re] Linux 에서 APM(apache+php+mysql) 소스로 설치 하기     answp
01/01 6913
1518     [re] 윈도우즈xp 팁(1)     answp
01/01 6752
1517     [re] 앞으로 이어질 글에 대해서.....     answp
01/01 6274
1516     [re] 리눅스 설치하기 - RPM편     answp
01/01 6385
1515     [re] chenkim4의 유명한해커편     answp
01/01 6245
1514     [re] - 재밌는글 설린인터넷고     answp
01/01 6446
1513     [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 6822
1512       [re] [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 6137
1511         [re] [re] [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 7079
1510           [re] [re] [re] [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 6365
1509             [re] [re] [re] [re] [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 5960
1508             [re] [re] [re] [re] [re] 홈페이지 취약점 점검 및 조치방법#1     answp
03/15 6114
1507               [re] [re] [re] [re] [re] [re] 홈페이지 취약점 점검 및 조치방법#1[1]     answp
03/15 6580
1506   네트워크1급 자격증대비^^[5]     appleone
02/13 10149
1505   여러선배님들 좀도와주십시오..[2]     appleone
06/29 7194
1504   [리눅스] 너희들 FHS 라고 아니? [1]     arsenalkim
08/30 7913
  Unix/Linux 의 파일을 관리하는 자료구조 inode.     arsenalkim
09/26 8758
1502   [펌] 리눅스 페도라 - RCS 이용하기 ; check out/in 파일 수정하고 버전업 하기,     arsenalkim
09/26 6699
1501   [자작] 홈네트워크와 보안(1)[1]     arsenalkim
09/26 6519
[1][2][3] 4 [5][6][7][8][9][10]..[79]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com