본문 바로가기
컴퓨터공학기초 개념/운영체제

37. 파일 시스템 - inode 방식과 가상 파일시스템

by devraphy 2021. 7. 9.

1. inode 파일 시스템

- inode 방식의 파일 시스템은 다음 세가지의 블럭을 갖고 있다.

    ▶ 슈퍼 블록: 파일 시스템의 전체 정보를 가진 블록 

    ▶ 아이노드 블록: 각 파일의 상세 정보를 가진 블록

    ▶ 데이터 블록(= 디스크 블록): 실제 데이터를 가진 블록

 

a) 슈퍼 블록

- 슈퍼블록은 파일 시스템의 전체적인 정보와 파티션 정보를 갖고 있다. 

- df라는 리눅스 명령어는 슈퍼블록의 정보를 받아오는 명령이다.

- 해당 명령어를 이용하여 터미널에서 위의 사진과 같은 파일시스템의 전체적인 정보를 받아 올 수 있다.  

 

 b) inode와 파일의 관계 

-  각 파일은 inode의 번호를 할당 받는다. 

    ▶ 프로세스가 생성되면 프로세스ID를 할당 받는 것 처럼, 파일도 생성과 함께  inode 번호를 할당 받는다. 

    ▶ [파일이름 : inode번호] 의 구조를 갖고 있어, 파일 이름은 inode 번호와 매칭된다. 

    ▶ 파일 시스템에서는 파일 이름이 아닌 inode 번호를 기반으로 파일을 검색하고 엑세스하게 된다.

    ▶ inode 기반의 메타데이터가 저장된다. 

inode의 블록구조

 

 

c) inode  메타 데이터란? 

- 파일권한, 소유자정보, 파일사이즈, 생성시간, 수정시간, 데이터 저장위치 등의 파일의 상세 정보를 의미한다. 


2. inode 파일 시스템의 작동방식

클릭하면 확대됩니다. 

a) cat files.txt

- 해당 명령어는 files.txt의 내용을 검색하는 것이다.

- 즉, 데이터 블록을 조회한다. 

   

1. 해당 파일의 inode 번호를 확인하여 해당 inode 블록을 찾는다. 

2. inode 블록에서 데이터 블록 영역에서 데이터를 반환받는다. 

 

b) ls -al files.txt

- 해당 명령어는 files.txt의 메타데이터를 검색하는 것이다. 

- 즉, 메타 데이터가 담겨지 있는 블록을 조회한다. 

 

1. 해당 파일의 inode 번호를 확인하여 해당 inode 블록을 찾는다. 

2. inode 블록에서 메타 데이터 블록 영역의 데이터를 반환받는다. 


3. inode 블록의 구조 

클릭하면 확대됩니다. 

 

a) Mode, Owner Info, Size, Timestaps

- inode 메타 데이터가 기록되는 영역

 

b) Direct Blocks(12개)

- 12개의 주소공간을 갖는다. (파일시스템에 따라 다를 수 있다.)

- 각 주소 공간이 실제 데이터 블록을 가리키게 된다. 

- 각 데이터 블록은 4KB의 크기를 갖는다. 

- 12개로 구성되어 있기 때문에 총 48KB 용량의 영역을 갖는다. 

 

c) Single Indirect Block 

- Single indirect block은 1개로 구성되어 있으니, 총 4kb의 크기를 갖는다. 

- 데이터 블록의 주소를 가리키는 4byte 단위의 포인터로 구성되어 있다. 

- 4kb의 공간을 4byte 짜리 포인터로 채운다면, 총 1024개의 포인터를 채울 수 있다. 

- 1024개의 포인터가 4kb짜리 데이터 블록을 가리키므로, 1024 * 4kb = 4MB의 용량을 관리할 수 있다.   

 

d) Double Indirect Block 

- Double indirect block은 1개로 구성되어 있어, 총 4kb의 크기를 갖는다. 

- single indirect block을 가리키는 포인터로 구성되어 있다.

- 그러므로 1024 * 1024 * 4kb = 4GB의 용량을 관리할 수 있다. 

 

e) Triple Indirect Block

- Single indirect block, Double indirect block과 동일한 방식으로 작동한다. 

- Double indirect block을 가리키는 포인터로 구성되어 있다. 

- 그러므로 1024 * 1024 * 1024 * 4kb = 4TB의 용량을 관리할 수 있다. 


4. 파일시스템 - 디렉토리 엔트리(DEntry)

- 모든 파일은 각각의 경로를 가지고 있다. 

- 파일의 경로를 관리하는 곳을 디렉토리 엔트리 또는 덴트리라고 부른다. 

- 터미널에 파일경로를 입력하여 파일을 찾아내는 과정도 Dentry 검색을 통해 inode 번호를 찾아내는 것이다.


5. 가상 파일 시스템(Virtual File System)

- 네트워크 뿐만 아니라 모든 디바이스를 파일 시스템 인터페이스(VFS interface)를 통해 관리할 수 있다. 

- 마우스, 키보드 등 모든 디바이스를 파일처럼 다룰 수 있다.

- 모든 자원을 추상 인터페이스로써 파일 인터페이스를 활용할 수 있다.   

 

a) 디바이스의 종류

▶ 블록 디바이스

    - HDD, CD/DVD와 같이 블록 또는 섹터 등 정해진 단위로 데이터 전송하는 디바이스

    - 송수신 속도가 빠름 

 

▶ 캐릭터 디바이스

    - 키보드, 마우스와 같이 byte 단위로 데이터를 전송하는 디바이스

    - 송수신 속도가 느림

댓글