유닉스 파일시스템
태그 :
- 개념
- (부트블록, 슈퍼블록, i-node, 데이터블록) 운영 체제에서 보조 기억 장치와 그 안에 저장되는 파일을 관리하는 시스템의 통칭. 보조 기억 장치에 저장된 각 파일과 그 구조 Unix의 모든 파일은 파일명과 하나의 유일한 inode를 가짐
I. 운영체제에서 저장된 파일의 총체적 관리, 파일 시스템의 개요
가. 파일 시스템의 개념
- 운영 체제에서 보조 기억 장치와 그 안에 저장되는 파일을 관리하는 시스템의 통칭. 보조 기억 장치에 저장된 각 파일과 그 구조
- Unix의 모든 파일은 파일명과 하나의 유일한 inode를 가짐
나. Unix 파일 시스템의 특징
- 다중 사용자를 위해 수천개의 파일을 저장
- 계층적인 구조로 효과적인 파일 처리 및 접근의 편의성 제공
II. Unix 파일 시스템 구성 및 유형
가. Unix 파일 시스템 구성
구조 |
구성요소 |
상세 설명 |
계층적 구조 |
Boot Block |
시스템의 운영체제를 부트(boot)하거나 초기화라는 관련되는 Boot Strap코드를 저장 |
Super Block |
파일 시스템의 상태에 관한 종합적인 정보를 보관하는 영역(타입, 크기, 상태, metadata structure에 대한 포인터 등) |
|
Bitmap Block |
i-node와 data block의 할당 현황 표시 |
|
i-node |
파일과 디렉토리에 관한 속성 정보 영역. 파일명을 제외한 파일의 정보 |
|
Data Block |
파일과 디렉토리의 실제 데이터를 보관하는 영역 |
나. Unix 파일 시스템 유형
유형 |
내용 |
종류 |
일반 파일 |
실행가능한 프로그램 파일, 원시 프로그램 파일, 문서파일 등 사용자가 정의한 그대로의 파일을 디스크 등에 내용이 수록 |
- Text File - Binary File |
디렉토리 파일 |
기렉토리에 포함되어 있는 여러가지 파일들과 디렉토리에 관한 정보 등을 저장하는 논리적 영역 |
- /(루트디렉토리) - /bin(실행파일) - /dev(장치파일) |
특수 파일 |
주변 장치 또는 파이프와 소켓 같은 프로세스간 상호통신, 표준입출력 시스템 호출 |
- 문자 특수파일 - 블록 특수파일 |
inode (Index node) |
각 파일에 대한 정보를 기억하는 구조체 |
- 일반파일 inode - 특수파일 inode |
III. i-node의 개념과 구성요소
가. i-node의 개념도
- Unix에서 i-node는 파일/디렉토리의 정보를 통해 할당, 적용, 생성, 링크, 삭제의 역할을 수행함.
나. i-node의 구성요소
분류 |
내용 |
inode |
∙ 한 파일이나 디렉터리의 모든 정보 포함 ∙ 소유자 정보, 접근 정보, 파일 정보, 링크, 유형 |
inode table |
∙ 한 파일 시스템에서, 파일이나 디렉터리들의 전체 inode를 갖고 있는 테이블 |
i number |
∙ Inode 가 i-list 에 등록되는 entry number |
addressing |
∙ 블록위치 정도를 13개의 필드로 관리 ∙ Direct data block 10개 (0~9): 96kb data ∙ Single indirect data block 1개 (10): 16MB ∙ Double indirect data lock 1개 (11): 32GB ∙ Triple indirect data block 1개 (12): 70TB |
IV. i-node의 디스크 블록관리
분류 |
종류 |
상세 설명 |
직접데이터 블록 |
12개의 포인터 배열을 가지며 블록이 8,192byte경우 96KB 크기의 파일을 생성할 수 있음 |
|
간접데이터 블록 |
Single Indirect Block |
∙ index block을 가르킴 ∙ index block은 실제 데이터 블록을 가르키는 포인터들로 구성 |
Double Indirect Block |
∙ 인덱스블록이 2개의 레이어로 구성 ∙ 1st 인덱스블록: 2nd 인덱스블록을 가르키는 포인터 ∙ 2nd 인덱스: 실제 데이터블록을 가르키는 포인터 |
|
Triple Indirect Block |
∙ 인덱스 블록이 3개의 레이어로 구성 ∙ 1st, 2nd 인덱스블록: 다른 인덱스 블록을 가리키는 포인터 ∙ 3rd 인덱스블록: 실제 데이터 블록을 가르키는 포인터 |