< 파일 시스템 >
: 파일이나 자료를 쉽게 발견하고 접근할 수 있도록 보관 또는 조직하는 체제
→ 리눅스에서는 주로 파티션을 나누고 정리하는데 사용된다.
: 파일 + 디렉토리 구조
: 파일 구조
① 부트 블록 ( boot block )
- 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어 있는 영역
→ 윈도우의 부트 레코드와 유사
- 운영체제를 부팅시키기 위해 필요한 코드를 저장한다.
- 대부분의 파일 시스템들은 부트블록으로 시작한다.
- 하드웨어가 부팅에 필요한 코드를 부트블록에서 찾는다.
② 슈퍼 블록 ( super block )
- 디스크에 대한 다양한 정보(파일 시스템의 전체적인 정보)를 저장하고 있는 곳
- 블록 그룹의 가장 앞에 위치한다.
- 리눅스 운영체제는 슈퍼블록의 정보를 사용하여 파일 시스템을 관리한다.
- 슈퍼블록이 소유한 정보
→ 파일 시스템 크기, 블록 수, 이용 가능한 빈 블록 목록 → 빈 블록 목록에서 그 다음 빈 블록을 가리키는 인덱스 → inode 목록 크기, 파일 시스템에서 빈 inode 수와 목록 → 빈 inode 목록에서 그 다음 빈 inode 수와 목록 → 빈 블록과 빈 inode 목록들에 대한 록 필드 → 슈퍼 블록들이 수정되었는지에 대한 플래그 → 파일 시스템 이름 및 디스크 이름 |
③ 아이노드 블록 ( inode)
- inode들을 모아놓은 곳; 한 블록에 여러 개의 inode를 저장하고 있다.
- 파일이나 디렉토리에 대한 모든 정보를 가지고 있는 구조체
- 파일 하나당 하나의 아이노드가 사용되며 여러 파일의 참조(link)가 가능하다.
- 파일을 처리할 때 파일 이름이 아닌 아이노드 번호를 이용한다.
- 아이노드가 소유한 정보
→ 파일크기 → 생성시간, 사용시간, 변경시간 → 접근권한 → 사용자 ID, 그룹 ID → 파일 링크 수 → 데이터 블록 주소 |
- 아이노드의 기능
1. 파일을 생성하면 inode가 "아이노드 리스트"에 만들어지고 inode-Number 및 파일 이름, 디렉토리가 등록됨. 2. 파일을 삭제하면 inode 파일 링크 수가 하나 감소되고 해당 파일의 inode-Number는 0으로 바뀜. 3. 원본 파일을 하드 링크하면 동일한 inode-Number임. |
- 아이노드 블록 관리 방법
→ 단일/이중/삼중 간접 블록 포인터
→ 아이노드 블록을 몇번 거쳐가냐의 차이 (링크로 연결하여 관리)
④ 데이터 블록 ( data block )
- 일반적인 파일과 디렉토리, 간접 블록을 저장하는 디스크 영역
- 실제 데이터가 파일의 형태로 저장되는 공간
- 간접 블록 : 추가적인 데이터 블록을 위한 포인터들이 사용할 동적으로 할당되는 공간
- 홀 : 아이노드나 간접 블록 안의 데이터 블록의 주소로 특별한 값을 저장
- 파일 이름과 아이노드 번호를 저장하기 위해서 사용된다.
'2020-1 STUDY > Linux Study' 카테고리의 다른 글
Linux Study Week 3 - 2 (0) | 2020.05.24 |
---|---|
Linux Study Week 3 - 1 (0) | 2020.05.24 |
Linux Study Week 2 - 3 (0) | 2020.05.18 |
Linux Study Week 2 - 2 (0) | 2020.05.18 |
Linux Study Week 2 - 1 (0) | 2020.05.18 |