파일 시스템 : 운영매체가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘
파일 시스템은 위와 같이 정의됩니다. 데이터들을 관리하기 위해 만들어진 시스템이죠.
저장된 bit 단위의 데이터들이 모여 4kb(일반적)의 Block을 구성하며, Block들이 모여 파일을 구성합니다.
* 파일 저장 방법
: 물리적 공간이 허용하는 경우 연속적으로 데이터를 저장하는 것이 이상적이나, 데이터 크기/공간적인 제약때문에 불연속적인 공간에 저장해야 하는 경우가 많습니다. 따라서 아래와 같은 저장 방법을 활용합니다.
1. 블록 체인 : 블록을 링크드 리스트로 연결
2. 인덱스 블록 : 블록마다 위치 정보를 기록
* 운영체제별 파일시스템
1. Windows : FAT, FAT32, NTFS
- 블록 위치를 FAT라는 자료구조에 기록하는 방식
2. Linux(UNIX) : ext2, ext3, ext4
- 인덱스 블록 기법인 inode 방식을 사용
Linux의 파일시스템인 inode에 대하여 자세히 알아보겠습니다.
일반적인 파일시스템에서는 블록으로 이루어진 파일이라는 단위로 데이터를 관리합니다.
* inode 파일 시스템 구조 :
1. 수퍼 블록 : 파일 시스템 정보 및 파티션 정보
2. inode 블록 : 파일에 관한 상세 정보 (Mode, Owner Info, Size ...)
* inode에는 데이터 block들을 가리키는 다양한 구조가 있다. 바로 데이터를 가리키는 Direct Block도 있고, Direct Block들을 모아놓은 Single indirect 구조 등도 포함하고 있다.
3. 데이터 블록 : 실제 데이터
* 리눅스는 '모든 것은 파일'이라는 철학을 가지고 운영체제 상에서 일어나는 모든 interaction을 파일 시스템같이 구성해 놓았습니다. 따라서 모든 interaction은 파일을 읽고 쓰는 것처럼 이루어집니다.
ex) I/O device(마우스, 키보드) 기술도 파일을 읽고 쓰는 것같이 다루어진다.
'데이터 사이언스 > 패스트캠퍼스' 카테고리의 다른 글
패스트캠퍼스_컴퓨터공학_리눅스 (2)Shell 사용법 (0) | 2020.05.05 |
---|---|
패스트캠퍼스_컴퓨터공학_리눅스 (1)Linux란 (0) | 2020.04.21 |
패스트캠퍼스 - 컴퓨터공학 - 가상메모리 & 페이징 시스템 (0) | 2020.04.12 |
패스트캠퍼스 - 컴퓨터공학 - Scheduler & Thread (0) | 2020.04.10 |
패스트캠퍼스 - 컴퓨터공학_프로세스 구조(PCB) (0) | 2020.04.10 |