리눅스 시스템 프로그래밍 - 파일시스템

김신·2022년 12월 28일
0
post-thumbnail

0. 파일 시스템

파일시스템은 파일과 디렉터리를 정형적이고 유효한 계층 구조 안에 모아놓은 것이다. 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제를 가리키는 말입니다. 파일 시스템은 통상 하드 디스크나 CD-ROM 같은 실제 자료 보관 장치를 사용하여 파일의 물리적 소재를 관리하는 것을 말합니다. 그러나 네트워크 프로토콜(NFS, SMB, 9P 등)을 수행하는 클라이언트를 통하여 파일 서버 상의 자료로의 접근을 제공하는 방식과 가상의 형태로서 접근 수단만이 존재하는 방식(procfs 등)도 파일 시스템의 범위에 포함될 수 있다.

0.1 다양한 파일시스템

리눅스는 메모리에만 존재하는 가상 파일시스템과 네트워크를 통해 다른 머신과 연결하는 네트워크 파일시스템을 지원하지만 일반적으로 파일시스템은 물리적으로 존재합니다. 물리적인 파일시스템은 CD, 하드 디스크, SD카드 같은 블록 저장 디바이스에 존재합니다. 리눅스는 일반 사용자가 흔히 접하기 쉽지 않는 다양한 파일시스템을 지원합니다. 여기에는 저장매체에 밀접한 파일시스템, 네트워크 파일시스템, 네이티브 파일시스템, 다른 유닉스에서 사용하는 파일시스템, 심지어 유닉스 계열이 아닌 파일시스템도 포함됩니다.

  • 저장매체 파일시스템: ISO9660
  • 네트워크 파일시스템: NFS
  • 네이티브 파일시스템: ext4
  • 다른 유닉스의 파일시스템: XFS
  • 유닉스가 아닌 파일시스템 : FAT

0.2 블록 디바이스의 최소 접근 단위: 섹터

블록 디바이스의 최소 접근 단위는 섹터입니다. 섹터는 디바이스의 물리적인 속성입니다. 섹터는 2의 승수로 나타대며 512가 가장 일반적입니다. 블록 디바이스는 섹터보다 더 작은 데이터 단위를 전송하거나 더 작은 데이터 단위에 접근하지 못합니다. 모든 블록 디바이스로부터의 입출력은 섹터 하나 이상을 기준으로 일어납니다.

0.3 파일시스템의 논리적인 최소 접근 단위: 블록

물리적인 최소 접근 단위가 섹터라면 파일시스템에서 논리적인 최소 접근 단위는 블록입니다. 블록은 파일시스템을 추상화한 개념으로 파일시스템이 존재하는 물리 매체와 무관합니다. 블록은 보통 섹터 크기의 2의 승수입니다. 블록은 일반적으로 센터보다 크지만, 페이지 크기보다는 작습니다. 보통 블록 크기는 512바이트, 1024바이트, 4096바이트입니다.

0개의 댓글