본문 바로가기
TIL

241107 TIL 운영체제 파일 시스템

by 민경현(John) 2024. 11. 7.

파일 시스템

파일 시스템은 운영체제가 저장 매체의 데이터를 구성, 관리 및 검색하는 방법을 제공함. 이를 통해 사용자와 에플리케이션은 계층 구조로 파일을 저장하고, 공간을 효율적으로 관리하고, 엑세스를 제어하고, 데이터를 빠르고 안전하게 검색

가능한 연속적인 공간에 파일을 저장하는 것이 좋음

외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능 지원 필요 ex) 블록 체인, 인덱스 블록 기법

  • 파일 : 문서, 이미지, 비디오 등과 같은 데이터 저장의 개별 단위. 각 파일은 고유한 이름과 확장자로 식별
  • 디렉터리(폴더) : 파일 및 기타 디렉터리를 트리 구조로 구성하여 논리적인 배열이 가능한 컨테이너
  • 메타데이터 : 이름, 크기, 생성 날짜, 수정 날짜, 권한 등과 같은 파일에 대한 정보
  • 블록 : 디스크의 가장 작은 저장 공간 단위. 효율적인 저장 및 검색을 위해 파일은 하나 이상의 블록으로 분할
  • 파티션 : 별도의 파일 시스템을 가질 수 있는 저장 장치의 논리적 분할로, 단일 장치에서 여러 운영 체제 또는 다양한 저장 목적을 허용

유형

FAT(File Allocation Table, 파일 할당 테이블) : 오래되고 단순한 시스템에서 사용되며 플래시 드라이브 및 이전 버전과의 호환성이 좋음.

NTFS(New Technology File System, 신기술 파일 시스템) : Windows 시스템 표준으로, 더 큰 파일, 보안 권한 및 데이터 복구 기능을 지원

HFS+(Hierarchical File System Plus) : 구형 Mac 시스템에서 사용 됨

APFS(Apple File System) : 플래시 및 SSD 스토리지에 최적화되어 암호화 및 스냅샷과 같은 기능을 지원하는 Apple 장치용 최신 파일 시스템

EXT(확장 파일 시스템) : Linux 배포판에서 일반적이며 EXT3, EXT4와 같은 버전에서는 데이터 무결성을 위한 저널링을 제공

exFAT: NTFS와 FAT 사이의 격차를 해소하는 파일 시스템으로, 대용량 파일과 플랫폼 간 호환성(Windows 및 macOS)에 이상적

기능

파일 관리 : 파일 및 디렉터리의 생성, 삭제, 이름 바꾸기 및 조작.

데이터 엑세스 및 구성 : 경로와 디렉터리 구조를 사용하여 파일을 찾고 엑세스 함.

공간 할당 : 파일이 저장되거나 삭제될 때 블록을 할당하고 할당 해제하여 디스크 공간을 효율적으로 관리

파일 권한 : 데이터 보안을 위해 파일을 읽고, 쓰고, 실행할 수 있는 사람을 정의

데이터 복구 : 일부 파일 시스템은 데이터 손상을 방지하고 장애 발생후 복구를 용이하게 하기 위해 저널링 또는 변경 사항 로깅을 지원

inode 방식 파일 시스템

Unix 및 Linux 시스템에서 일반적으로 사용되는 디스크의 파일을 관리하는 방법

 

구성 요소

수퍼 블록

  • inode 및 데이터 블록의 총 개수
  • 각 데이터 블록의 크기
  • 파일 시스템의 상태, 버전, 마지막으로 마운트 되거나 확인된 시간에 관한 매타데이터
  • 수퍼 블록이 손상되면 파일 시스템을 읽을 수 없거나 사용할 수 없게 됨.

아이 노드 블록

  • inode는 여기에 저장되며 각 inode는 개별 파일이나 디렉터리를 나타냄
  • 파일 형식, 권한, 소유자 정보, 파일 크기, 타임 스탬프, 링크 수 데이터 블록에 대한 포인터에 대한 내용을 포함

데이터 블록

  • 파일의 실제 데이터를 저장

Inode 기반 파일 시스템의 주요 이점

효율적인 메타데이터 관리: 메타데이터(inode에 저장됨)와 파일 이름(디렉토리 항목에 저장됨)을 분리하여 이름 바꾸기와 같은 작업이 효율적 하드 링크 지원: 여러 디렉토리 항목이 동일한 inode를 가리킬 수 있으므로 서로 다른 이름이 동일한 파일 콘텐츠를 참조할 수 있음

제한사항

고정된 Inode 수: inode 수는 파일 시스템이 생성될 때 결정됩니다. inode가 부족하면 디스크 공간이 여전히 사용 가능한 경우에도 새 파일이 생성되지 않을 수 있다. 대형 파일의 복잡성: 포인터의 여러 레이어(특히 이중 및 삼중 간접)를 탐색하면 오버헤드가 추가될 수 있다.

디렉토리 엔트리

파일 이름을 해당 inode 번호에 매핑하기 위해 디렉터리 내에서 사용되는 데이터 구조

가상 파일 시스템(Virtual File System)

다양한 유형의 파일 시스템에 균일한 인터페이스를 제공하는 운영 체제 내의 추상화 계층

사용자 응용 프로그램과 다양한 유형의 파일 시스템 사이의 브리지 역할을 함

VFS는 어떻게 작동할까?

VFS 레이어: 애플리케이션이 파일 작업 요청(예: open("file.txt"))을 하면 해당 요청은 먼저 VFS에 의해 처리.

파일 시스템 드라이버: VFS는 요청 처리를 담당하는 파일 시스템(예: ext4, NFS)을 결정하고 작업을 해당 파일 시스템 드라이버에 위임.

아이노드 및 파일 설명자: VFS는 가상 아이노드(vnode) 및 _파일 설명자_와 같은 구조를 사용하여 파일 및 디렉터리에 대한 참조를 유지.

작업 위임: VFS는 특정 파일 시스템 유형을 기반으로 파일 읽기, 쓰기, 삭제와 같은 작업에 적합한 방법을 호출.

가상 파일 시스템 사용의 이점:

이식성: VFS를 사용하면 운영 체제가 애플리케이션에 액세스하는 방법을 수정할 필요 없이 여러 파일 시스템을 지원

유연성: 사용자는 다양한 저장 장치 및 파일 시스템의 파일을 원활하게 사용

단순성: 개발자는 각 파일 시스템 구현의 세부 사항에 대해 걱정하지 않고 파일에 액세스하는 애플리케이션을 작성할 수 있다.

 

참조

파일 시스템 개념과 inode 작동 방식 이해

 

파일 시스템 개념과 inode 작동 방식 이해

파일 시스템의 개념과 역할. 운영체제에서 파일 시스템은 파일의 저장, 조직, 관리를 담당하는 체계입니다. 파일 시스템은 운영체제와 하드웨어 간의 인터페이스 역할을 하며, 파일을 사용자에

wooooozin.tistory.com

 

11-5 운영체제의 파일시스템 관리

 

11-5 운영체제의 파일시스템 관리

운영체제의 파일시스템 관리 기능은 데이터를 저장, 검색, 공유하고 보호하는 데 필수적인 역할을 합니다. 이러한 기능은 사용자와 응용 프로그램이 파일시스템에 저장된 데이터에 효과적…

wikidocs.net

 

[운영체제] 파일 시스템, inode 방식에 대하여

 

[운영체제] 파일 시스템, inode 방식에 대하여

운영체제에서 사용하는 파일 시스템을 디테일하게 들어가봐요.

velog.io

 

37. 파일 시스템 - inode 방식과 가상 파일시스템

 

37. 파일 시스템 - inode 방식과 가상 파일시스템

1. inode 파일 시스템 - inode 방식의 파일 시스템은 다음 세가지의 블럭을 갖고 있다. ▶ 슈퍼 블록: 파일 시스템의 전체 정보를 가진 블록 ▶ 아이노드 블록: 각 파일의 상세 정보를 가진 블록 ▶ 데

devraphy.tistory.com