일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스
- 프론트엔드
- 자바스크립트
- alexnet
- 해시테이블
- 프로세스
- 알고리즘
- 웹팩
- 배열
- 코딩테스트
- RT scheduling
- 연결 리스트
- pytorch
- 연결리스트
- 큐
- vue3
- 포인터
- 타입스크립트
- C
- 릿코드
- APOLLO
- Machine Learning
- 브라우저
- cors
- 이진탐색
- 자료구조
- GraphQL
- 스택
- 컨테이너
- RxJS
- Today
- Total
프린세스 다이어리
[OS] inode 방식과 가상 파일 시스템 본문
inode란 Linux/Unix의 파일 시스템에서 사용되는 자료구조를 말한다. inode 방식에는 크게 3가지 블록 타입이 있는데, 슈퍼 블록(super block), 아이노드 블록(inode block), 데이터 블록(data block)으로 나뉜다.
1. 슈퍼 블록
슈퍼 블록은 파일 시스템 전체를 대표하는 블록으로, 파일 시스템 정보 및 파티션 정보 등을 포함하고 있다. 리눅스 터미널에서 df 명령어를 치면 슈퍼블록 정보를 볼 수 있다.
파일 시스템이 뭐가 있는지, 512Byte짜리 블록이 몇 개인지, 사용되고 있는 용량과 남아있는 용량은 얼마인지, 각각의 파일 시스템은 어디에 마운티드 되어 있는지 등의 정보를 보여준다.
2. inode 블록
inode 블록은 inode가 모여 있는 공간이다. 모든 파일이나 디렉토리는 하나씩 inode를 가지고 있고, 각 파일마다 inode 번호가 할당돼 있다. 한 개의 inode는 64byte로 이루어져 있으며, 해당 파일의 소유권, 허가원, 파일 종류, 실제 데이터의 주소 등을 가지고 있다. 이것이 메타 데이터다.
우리는 외부적으로 파일 이름만 아는 상태로 파일을 읽고 쓰지만, 내부적으로는 inode 정보를 참조해서 처리된다. 마치 프로세스와 프로세스 id가 매칭된 것과 같이 모든 파일에는 inode 번호가 매칭돼 있다. 프로세스 처리를 위해 PCB에 있는 정보를 기반으로 처리하듯이, 응용 프로그램이 특정 파일에 액세스하기 위해서는 해당 파일의 정보가 담긴 inode를 참조한다.
3. 데이터 블록
실제 파일 내용이 저장되는 디스크 블록의 집합을 의미한다.
'운영체제, 컴퓨터 구조' 카테고리의 다른 글
On-Chip Memory: 레지스터, 캐시 메모리, 스크래치패드 (0) | 2023.04.04 |
---|---|
[OS] inode 구조와 파일 데이터를 연결하는 방법 (0) | 2022.02.07 |
[OS] 파일 시스템이란? 파일을 저장하는 방법과 파일 시스템의 종류 (0) | 2022.02.05 |
[OS] 작은 C언어 코드가 실행될 때 어떻게 메모리를 사용하는지 설명 (0) | 2022.02.04 |
[OS] 가상메모리 메커니즘 중 하나인 세그멘테이션 기법 정리 (0) | 2022.02.03 |