파다 평범일상

리눅스 파일시스템 (Linux File System) 본문

컴퓨터 IT

리눅스 파일시스템 (Linux File System)

파다 평범일상 2024. 10. 20. 17:01
반응형

운영 체제 (os), 컴퓨터에 전원을 공급하는 소프트웨어는 파일 시스템이라는 중요한 요소가 있다. 데이터를 효율적으로 관리, 저장 검색하는 가상 조직 도구이다. 리눅스에서는 다양한 파일 시스템이 있고, 각각은 특정 요구 사항과 선호 사항을 충족하도록 제작되었다. 사용자가 리눅스 운영 체제의 역동적인 환경을 탐색하는 정보에 입각한 선택을 있도록 지원한다.

리눅스 파일 시스템이란?

리눅스 파일 시스템 (Linux File System) 가지 필수 계층으로 구성된 다면적인 구조이다. 기본적으로 논리적  파일 시스템 (Logical File System) 사용자 애플리케이션과 파일 시스템 간의 인터페이스 역할을 하며 파일 열기, 읽기, 닫기와 같은 작업을 관리한다. 위에 가상 파일 시스템 (Virtual File System) 여러 물리적 파일 시스템의 동시 작동을 용이하게 하여 호환성을 위한 표준화된 인터페이스를 제공한다. 마지막으로 물리적 파일 시스템 (Physical File System) 디스크의 물리적 메모리 블록을 실질적으로 관리하고 저장하여 효율적인 데이터 할당과 검색을 보장한다. 이러한 계층은 함께 응집력 있는 아키텍처를 형성하여 리눅스 운영 체제에서 데이터를 체계적이고 효율적으로 처리한다.

리눅스 파일 시스템 구조

파일 시스템은 주로 3개의 계층으로 구성된다

 

논리적  파일 시스템 (Logical File System, LFS)은 사용자 애플리케이션과 파일 시스템 자체 간의 인터페이스 역할을 한다. 파일 열기, 읽기, 닫기와 같은 필수 작업을 용이하게 한. 기본적으로 사용자 친화적인 프런트엔드 역할을 하여 애플리케이션이 사용자 기대에 부합하는 방식으로 파일 시스템과 상호 작용할 있도록 한다.

 

가상 파일 시스템 (Virtual File System, VFS)은 여러 개의 물리적 파일 시스템 인스턴스의 동시 작동을 가능하게 하는 중요한 계층이다. 표준화된 인터페이스를 제공하여 서로 다른 파일 시스템이 공존하고 동시에 작동할 있도록 한다. 계층은 기본 복잡성을 추상화하여 다양한 파일 시스템 구현 간의 호환성과 응집력을 보장한다.

 

물리적 파일 시스템 (Physical File System)은 디스크의 물리적 메모리 블록에 대한 실질적인 관리 저장을 담당한다. 데이터를 저장하고 검색하는 저수준 세부 사항을 처리하고 하드웨어 구성 요소와 직접 상호 작용한다. 계층은 물리적 저장 리소스의 효율적인 할당 활용을 보장하여 파일 시스템의 전반적인 성능과 안정성에 기여한다.

 

File System 구조 (출처, geeksforgeeks.org)

 

파일 시스템의 특성

  • 공간 관리 : 데이터가 저장 장치에 저장되는 방식. 메모리 블록과 여기에 적용되는 단편화 관행에 관한 내용.
  • 파일 이름 : 파일 시스템에는 파일 이름 길이, 특수 문자 사용, 대소문자 구분 등 파일 이름에 대한 특정한 제한이 있을 수 있다.
  • 디렉토리 : 디렉토리/폴더는 해당 디렉토리나 하위 디렉토리에 포함된 모든 파일의 인덱스 테이블을 유지하면서 선형 또는 계층적 방식으로 파일을 저장할 수 있다.
  • 메타데이터 : 저장된 각 파일에 대해 파일 시스템은 데이터 길이, 액세스 권한, 장치 유형, 수정된 날짜-시간 및 기타 속성과 같은 해당 파일의 존재에 대한 다양한 정보를 저장한다. 이를 메타데이터라고 한다.
  • 유틸리티 : 파일 시스템은 파일 및 폴더의 초기화, 삭제, 이름 바꾸기, 이동, 복사, 백업, 복구, 액세스 제어 기능을 제공한다.
  • 설계 : 구현상의 이유로 파일 시스템은 저장할 있는 데이터 양에 제한이 있다.

파일 시스템의 종류

파일 시스템 기능
msdos MS-DOS 파티션을 사용하기 위한 파일 시스템
iso9660 CD-ROM, DVD 표준 파일 시스템이며 읽기 전용으로 사용
nfs Network File System으로 원격 서버의 디스크를 연결할 사용
vfat 윈도 95, 98, NT 지원하기 위한 파일 시스템
hpfs HPFS 지원하기 위한 파일 시스템
ntfs - 암호화 및 압축을 지원하며, 대용량 파일 시스템을 지원
- Windows NT 이상 OS를 지원하기 위한 파일 시스템
sysv 유닉스 시스템V 지원하기 위한 파일 시스템
hfs 컴퓨터의 hfs 파일 시스템을 지원하기 위한 파일 시스템
EXT (Extended File System)
- 최대 2GB까지의 파일 시스템 크기를 지원
- 255byte까지의 파일명을 지원
- 접근제어, inode 수정, 타임스탬프 수정 기능이 불가능
- 단편화가 심해짐
EXT2 (Second Extended File System) - 최대 2GB까지의 파일 시스템 크기를 지원, 서브 디렉터리 개수 제한 증가
- FSCK를 사용한 파일 시스템 오류 수정을 지원
- FSCK를 이용한 파일 복구 시간에 많은 시간이 소요 (전체 섹터 검사)
EXT3 (Third Extended File System) - EXT2에 저널링 기능 추가 및 온라인 파일 시스템 증대
- 파일 시스템 변경 시 저널에 수정 내용 기록
- 온라인 조각 모음이 불필요
- 디스크 조각화를 최소화
EXT4 (Fourth Extended File System) - 최대 16TB까지 파일 시스템을 지원
- Block Mapping 방식 및 Extends 방식 지원
- 저널 체크섬 기능이 추가되어 안정성이 강화
- EXT2, 3와의 호환
UFS (Unix File System) Unix File System으로 유닉스의 표준 파일 시스템

- 부트 블록 (Boot Block)
- 슈퍼 블록 (Super Block)
- 아이노드 (inode)

 

리눅스 환경에서 지원하는 가상 파일 시스템의 종류

파일 시스템 기능
swap - 스왑 영역을 관리하기 위한 파일 시스템
tmpfs - Temporayry File System으로 메모리에 임시 파일을 저장하기 위한 파일 시스템이며, 시스템이 재시작할 때마다 기존 내용 없어짐
proc - 커널의 현재 상태를 나타내는 파일을 가지고 있으며, /proc 디렉터리
ramfs - 램디스크를 지원하는 파일 시스템
rootfs - Root File Ststem으로 / 디렉터리
- 시스템 초기화 관리에 필요한 내용 관리

 

Comments