Learning
토픽 59 / 85·파일 시스템, I/O, 시스템 구조

FUSE (Filesystem in Userspace)

FUSE (Filesystem in Userspace)

파일시스템을 커널 모듈이 아닌 사용자 공간 프로세스로 구현할 수 있게 하는 Linux 인터페이스로, 커널 권한 없이 커스텀 파일시스템을 개발하고 안전하게 실행 가능

목적: 사용자 공간 파일시스템, 빠른 프로토타이핑, 안전한 개발, 커널 권한 불필요

특징: 사용자 공간 실행, 커널 모듈 불필요, 간단한 개발, 다양한 언어 지원, 안전성

구성요소: FUSE 커널 모듈(/dev/fuse), libfuse 라이브러리, 사용자 공간 파일시스템 데몬

동작 원리: ① 응용 프로그램이 파일 연산(open, read, write) → ② VFS(Virtual File System) 레이어 → ③ FUSE 커널 모듈 → ④ /dev/fuse → ⑤ 사용자 공간 데몬 처리 → ⑥ 응답 반환

주요 함수: getattr, readdir, open, read, write, release, mkdir, unlink, rename

장점: 커널 권한 불필요, 빠른 개발, 안전(사용자 공간 크래시 시 커널 보호), 다양한 언어(Python, Go, Rust), 프로토타이핑 용이

단점: 성능 오버헤드(컨텍스트 스위칭), 커널 FS보다 느림, 복잡한 디버깅

적용사례: SSHFS(SSH over FUSE), GlusterFS, Ceph, Google Drive FS, 클라우드 스토리지 마운트, 압축 파일시스템

비교: FUSE(사용자공간/안전/느림) vs 커널 FS(커널/빠름/위험)

연관: VFS, 파일시스템, 사용자 공간, libfuse, SSHFS