반응형

파일 시스템 : 운영매체가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘

 

파일 시스템은 위와 같이 정의됩니다. 데이터들을 관리하기 위해 만들어진 시스템이죠.

저장된 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(마우스, 키보드) 기술도 파일을 읽고 쓰는 것같이 다루어진다.

반응형

+ Recent posts