유닉스 파일시스템
유닉스 파일 시스템은 유닉스 운영체제 및 유닉스 계열 운영체제(리눅스, macOS 등)에서 사용되는 파일 시스템의 구조 및 구현 방식을 포괄적으로 지칭하는 용어이다. 이는 계층적 디렉토리 구조, 파일 및 디렉토리의 속성 관리, 데이터 저장 방식 등을 포함한다. 유닉스 파일 시스템은 다양한 파일 시스템 구현체를 포괄하며, 각 구현체는 성능, 기능, 안정성 면에서 차이를 보인다.
핵심 개념
-
계층적 디렉토리 구조: 파일과 디렉토리가 트리 형태로 구성되어 있으며, 최상위 디렉토리를 루트 디렉토리("/")라고 한다.
-
파일: 데이터를 저장하는 기본 단위이다. 유닉스에서는 일반 파일, 디렉토리, 장치 파일 등 다양한 종류의 파일이 존재한다.
-
디렉토리: 파일 및 다른 디렉토리를 포함할 수 있는 컨테이너이다. 디렉토리는 파일 시스템의 구조를 조직화하는 데 사용된다.
-
inode: 파일에 대한 메타데이터(소유자, 권한, 크기, 수정 시간 등)를 저장하는 데이터 구조이다. 파일 이름은 inode와 별도로 관리되며, 여러 파일 이름이 동일한 inode를 가리킬 수 있다(하드 링크).
-
파일 시스템 유형: 유닉스 계열 운영체제에서는 ext2, ext3, ext4, XFS, JFS, ZFS 등 다양한 파일 시스템 유형을 지원한다. 각 파일 시스템은 성능, 기능, 안정성 면에서 차이를 보인다.
주요 기능
-
파일 및 디렉토리 관리: 파일 생성, 삭제, 이름 변경, 이동, 복사 등의 기능을 제공한다.
-
접근 권한 제어: 파일 및 디렉토리에 대한 접근 권한을 사용자, 그룹, 기타 사용자에 대해 설정하여 보안을 강화한다.
-
저널링: 파일 시스템의 변경 사항을 로그에 기록하여 시스템 장애 발생 시 데이터 손실을 최소화한다 (저널링 파일 시스템의 경우).
-
할당량 관리: 사용자 또는 그룹별로 사용할 수 있는 디스크 공간을 제한한다.
역사
유닉스 파일 시스템은 1969년 AT&T 벨 연구소에서 개발된 초기 유닉스 운영체제에서 비롯되었다. 이후 BSD, System V 등 다양한 유닉스 파생 시스템이 등장하면서 각 시스템에 맞는 파일 시스템이 개발되었다. 리눅스에서는 ext2 파일 시스템이 널리 사용되었으며, 이후 ext3, ext4 등의 개선된 파일 시스템이 등장했다.
참고 자료
- 각 운영체제별 파일 시스템 관련 문서
- 리눅스 파일 시스템 관련 자료