IT/👨‍💻Computer Science

파일 시스템(File System)이란

지식모아이령 2023. 2. 15. 12:16

 

파일시스템(File System)이란?

파일 시스템(File System)은 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말입니다.

 

즉, 파일 시스템은 '도서관'으로 생각할 수 있습니다. 도서관에서는 책을 적절한 공간에 보관하고, 필요한 도서를 찾아서 대여할 수 있도록 정리합니다. 파일시스템도 이와 유사하게, 우리가 컴퓨터에서 작성한 문서나 이미지 등의 파일을 적절한 공간에 저장하고, 이를 필요할 때 찾아서 사용할 수 있도록 정리합니다.

 

예를 들어, 우리가 컴퓨터에서 문서 파일을 작성하면, 파일시스템은 이 문서 파일의 크기를 측정하고, 그 크기에 따라 저장할 수 있는 공간을 찾아서 파일을 저장합니다. 이렇게 파일시스템은 파일을 쉽게 저장하고, 필요할 때 찾아서 사용할 수 있도록 도와줍니다.

따라서, 파일시스템은 컴퓨터에서 파일을 저장하고 관리하는 데 매우 중요한 역할을 하며, 우리가 파일을 사용하는 데 있어서 매우 필수적인 기능입니다.

 

*운영체제에서 사용되는 파일시스템 구조는 다양하지만, 아래는 대표적인 파일시스템 구조입니다.

*각각의 파일시스템은 특징이 다르며, 성능, 안정성, 확장성 등을 고려하여 선택됩니다.

Windows: FAT, NTFS, exFAT
macOS: HFS+, APFS
Linux: ext2, ext3, ext4, XFS
BSD: UFS, ZFS
Android: ext4

 

Linux 파일시스템

(ext2, ext3, ext4, XFS)

ext4(Extended File System 4)는 리눅스 운영 체제에서 사용되는 파일 시스템입니다. ext4는 이전 ext2 및 ext3 파일 시스템의 한계를 극복하기 위해 만들어졌습니다. ext4는 파일 시스템 크기를 1EB(약 1억GB)로 제한을 늘리고, 파일 시스템을 더 빠르고 안정적으로 만드는 기술적 개선이 이루어졌습니다.

ext4는 대부분의 리눅스 배포판에서 기본 파일시스템으로 사용되며, 안정성과 성능 면에서 우수한 평가를 받고 있습니다.  비교적 작은 파일 시스템에서 잘 작동합니다. ext4는 더 적은 디스크 공간을 차지하며, 작은 파일을 다룰 때 더 빠르게 작동합니다. ext4는 일반적으로 서버나 데스크탑 컴퓨터에 사용됩니다.

 

XFS는 큰 파일 시스템에서 높은 성능을 제공합니다. XFS는 파일의 크기가 큰 경우 더 빠르게 작동하며, 복잡한 디스크 구조에서 더 잘 작동합니다. XFS는 더 큰 파일 시스템을 처리하는 데 더 적합합니다.

 

Linux 파일 시스템 구조

Standard unix filesystem

리눅스 파일 시스템은 일반적으로 트리 구조를 따르며, 각 디렉토리와 파일은 하나의 루트 디렉토리에서 시작하여 브랜치를 형성합니다. 가장 상위 디렉토리는 루트 디렉토리("/")이며, 이 아래에 하위 디렉토리와 파일이 존재합니다. 각 디렉토리에는 파일 및 하위 디렉토리를 저장하기 위한 엔트리가 있습니다.

 

리눅스 파일 시스템에서 각 디렉토리는 파일 시스템의 노드이며, 각 노드에는 파일과 하위 디렉토리를 나타내는 파일명과 함께 노드 고유의 번호(Inode)가 있습니다. 이 Inode(아이노드)는 파일이나 디렉토리의 메타 데이터와 링크된 정보를 포함합니다.

 

Linux 파일시스템 구성요소

크게 세 가지 구성 요소로 이루어져 있습니다.

1. Superblock: 파일 시스템의 전반적인 정보를 담고 있는 블록입니다. 이 블록은 파일 시스템이 생성될 때 생성되며, 파일 시스템의 크기, inode의 개수 등 파일 시스템의 기본 정보를 담고 있습니다.

2. Inode: 파일이나 디렉토리와 같은 개체에 대한 메타데이터를 저장하는 블록입니다. 이 블록은 파일 시스템 내에 저장된 파일이나 디렉토리의 이름, 소유자, 권한, 생성 시간 등에 대한 정보를 저장합니다.

3. Data block: 파일 시스템 내에 실제로 데이터를 저장하는 블록입니다. 이 블록은 파일 시스템 내에 저장된 파일의 내용을 저장합니다.

 

이러한 세 가지 블록을 조합하여 파일 시스템이 구성됩니다. 이때, 파일 시스템 구조는 파일 시스템의 종류에 따라 약간씩 다를 수 있습니다. 예를 들어, ext4 파일 시스템은 Superblock의 Backup Copy와 Journaling 기능 등이 추가된 형태로 발전하였습니다.