유닉스 파일 시스템
보이기
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Disambig_grey.svg/23px-Disambig_grey.svg.png)
개발사 | CSRG |
---|---|
정식 명칭 | 유닉스 파일 시스템 |
도입 | - 4.2BSD |
구조 | |
디렉터리 내용 | 테이블 |
제약사항 | |
최대 볼륨 크기 | 273 바이트 (8 ZB) |
최대 파일 크기 | 273 바이트 (8 ZB) |
최대 파일 이름 길이 | 255 바이트 |
기타 | |
지원 운영 체제 | A/UX, 드래곤플라이BSD, FreeBSD, FreeNAS, HP-UX, NetBSD, 리눅스, OpenBSD, 솔라리스, SunOS, Tru64 UNIX, 유닉스 시스템 V 등 |
유닉스 파일 시스템(UNIX File System, UFS)는 유닉스 및 유닉스 계열 운영 체제에 쓰이는 파일 시스템 또는 그 개념을 말한다. 유닉스 커널은 모든 파일들을 바이트 단위의 스트림으로 간주한다.
파일 유형
[편집]UFS에는 다음과 같이 4가지 파일 유형이 있다.
- 일반(ordinary) : 사용자 프로그램, 시스템 유틸리티 프로그램에 의해 입력된 정보를 포함하는 파일이다.
- 디렉터리(directory) : 파일의 이름과 아이노드를 위한 포인터를 포함한다. 디렉터리는 계층적으로 구성되며, 디렉터리 파일은 쓰기 보호 속성을 가진 일반 파일로서 파일 시스템만이 이 파일에 기록을 할 수 있고, 사용자 프로그램은 읽기만 허용된다.
- 특별(special) : 터미널이나 프린터와 같은 입출력 장치들의 접근을 위해 사용된다.
- 지명(named) : 지명 파이프이다.
구성 요소
[편집]UFS는 다음과 같은 구성요소를 가진다.
- 부트 블록(boot block)
- 파일 시스템으로부터 UNIX 커널을 적재시키기 위한 프로그램이 저장되어 있다.
- 슈퍼 블록(super block)
- 파일 시스템을 기술하는 정보를 저장한다.파일 시스템마다 하나씩 존재한다. 슈퍼 블록의 자료 구조, 파일 시스템의 크기, 블록의 수, 이용가능한 빈 블록 목록, 빈 블록 목록에서 그 다음의 빈 블록을 가리키는 인덱스, 아이노드 목록의 크기, 빈 아이노드의 수, 빈 아이노드 목록, 빈 아이노드 목록에서 그 다음의 빈 아이노드를 가리키는 인덱스, 빈 블록과 빈 아이노드 목록들에 대한 록 필드들, 슈퍼 블록들 수정되었는지 나타내는 플래그, 파일 시스템의 이름, 디스크 이름 정보들이 저장된다.
- 아이노드(inode)
- 파일이나 디렉터리에 대한 모든 정보를 가지고 있는 구조체이다.
- 데이터 블록
- 실제 데이터가 파일의 형태로 저장되는 공간이다.
파일 할당
[편집]UFS에서 파일 할당은 블록을 기본 단위로 하여 필요할 때 동적으로 할당된다. 그러므로 파일 블록들이 하드 디스크 상에 연속적으로 있을 필요가 없다. 색인 기법을 통해 파일의 아이노드에 저장된 색인을 유지한다. 아이노드는 3바이트 짜리 주소 13개, 또는 포인터로 구성된 39바이트 주소 정보 1개를 가진다. 처음 10개의 주소는 파일에서 맨처음 10개의 데이터 블록을 가리킨다. 만약 파일이 블록 10개보다 크면 하나 이상의 간접 수준이 사용된다.