Filesystem in Userspace
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Filesystem in Userspace (FUSE)는 사용자 공간 프로그램과 커널 간의 통신을 중개하여 새로운 파일 시스템을 구현할 수 있게 해주는 소프트웨어 인터페이스이다. AVFS의 일부로 시작되어 GNU 일반 공중 사용 허가서 및 BSD 라이선스 등으로 배포되었으며, 리눅스 커널 2.6.14부터 정식 지원되었다. FUSE는 가상 파일 시스템을 만드는 데 유용하며, 다양한 응용 분야에서 활용된다. 여러 운영 체제로 이식되었으며, 한국에서도 클라우드 스토리지, 분산 파일 시스템, 보안 파일 시스템 등 다양한 분야에서 사용되고 있다.
더 읽어볼만한 페이지
- 유닉스 파일 시스템 관련 소프트웨어 - Chmod
chmod는 파일 및 디렉터리의 접근 권한을 변경하는 유닉스 명령어이며, 문자열 또는 숫자 모드를 사용하여 권한을 설정하고 재귀적으로 하위 디렉터리에도 적용할 수 있다. - 유닉스 파일 시스템 관련 소프트웨어 - Chattr
`chattr`과 `chflags`는 리눅스와 BSD 계열 운영체제에서 파일 속성을 관리하는 명령어로, 파일 접근 권한 제어, 데이터 보안 강화, 파일 불변성 및 숨김 속성 설정 등을 통해 시스템 보안 및 데이터 무결성을 유지한다. - 리눅스 커널 특징 - 커널 기반 가상 머신
커널 기반 가상 머신(KVM)은 리눅스 커널의 가상화 확장 기능으로, CPU와 메모리 가상화를 지원하며 QEMU와 함께 완전한 가상화 솔루션을 구성하고 다양한 관리 도구를 제공한다. - 리눅스 커널 특징 - AppArmor
AppArmor는 리눅스 보안 모듈로, 프로그램의 정상적인 동작을 정의하는 프로필을 통해 비정상적인 행위를 차단하며 SELinux의 대안으로 제시되었으나 보안 취약점, 성능, 설정, 호환성 등에 대한 논란도 있다. - C로 작성된 자유 소프트웨어 - PostgreSQL
PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다. - C로 작성된 자유 소프트웨어 - 김프
김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
| Filesystem in Userspace - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 일반 정보 | |
![]() | |
| 이름 | Filesystem in Userspace (사용자 공간 파일 시스템) |
| 상세 정보 | |
| 개발자 | libfuse 프로젝트 팀 커널 부분: 알레산드로 리베라티 (Alessandro Rubini), 피터 바트크 (Peter Bartke) |
| 최신 안정화 버전 | 3.9.1 |
| 최신 안정화 버전 출시일 | 2020년 3월 20일 |
| 운영체제 | 유닉스, 유닉스 계열 |
| 프로그래밍 언어 | C |
| 장르 | 파일 시스템 드라이버 |
| 라이선스 | 리눅스 커널 부분: GPL Libfuse: LGPL FreeBSD: 간단화된 BSD 라이선스 OpenBSD: ISC 라이선스 macOS: 독점 라이선스 |
| 웹사이트 | libfuse GitHub 저장소 |
| 기타 정보 | |
| 관련 프로젝트 | OSXFUSE (macOS) WinFsp (Windows) |
2. 역사
FUSE 시스템은 원래 GNU Hurd의 번역기 개념에 큰 영향을 받은 파일 시스템 구현인 '''AVFS''' (''A Virtual Filesystem'')의 일부였다.[3] 이는 리눅스 사용자 공간 파일 시스템을 대체했으며 libfuse1에서 lufis를 사용하여 번역 인터페이스를 제공했다.
FUSE는 사용자 공간 프로그램과 커널 간의 통신을 중개하여 작동한다. 새로운 파일 시스템을 구현하려면 `libfuse` 라이브러리에 연결된 핸들러 프로그램을 작성해야 한다. 이 프로그램은 파일 시스템의 동작(읽기, 쓰기, 상태 확인 등)을 정의하고 커널에 등록된다. 사용자 요청은 커널을 통해 FUSE 핸들러로 전달되고, 핸들러의 응답은 다시 사용자에게 반환된다.[17]
FUSE는 원래 GNU 일반 공중 사용 허가서 및 GNU 약소 일반 공중 사용 허가서에 따라 출시되었으며, 이후 FreeBSD 기본 시스템의 일부로도 재구현되어[4] 단순화된 BSD 라이선스에 따라 출시되었다. Sylvestre Gallon의 ISC 라이선스 재구현은 2013년 3월에 출시되었으며,[5] 2013년 6월에 OpenBSD에 통합되었다.[6]
FUSE는 커널 버전 2.6.14에서 주류 리눅스 커널 트리에 병합되었다.[7]
FUSE의 사용자 공간 측면인 libfuse 라이브러리는 일반적으로 BSD 파생 제품과의 "최선의 노력" 호환성을 유지하면서 리눅스 커널 개발 속도를 따라갔다. 이는 커널 FUSE가 자체 "기능 수준" 또는 버전을 보고하기 때문에 가능하다. 예외는 macOS용 FUSE 포크인 OSXFUSE로, 라이브러리를 공유하기에는 차이점이 너무 많다.[8] libfuse 기록의 단절은 libfuse2에 비해 인터페이스 및 성능에서 일부 호환되지 않는 개선 사항을 포함하는 libfuse3이며 현재 유지 관리 모드에 있다.[9]
3. 작동 방식 및 활용
FUSE는 특히 가상 파일 시스템을 작성하는 데 유용하며, 실제 데이터를 저장하지 않고 기존 파일 시스템이나 저장 장치의 보기 또는 번역 역할을 한다. 원칙적으로 FUSE 구현에서 사용할 수 있는 모든 리소스를 파일 시스템으로 내보낼 수 있다.
3. 1. 응용 분야
FUSE는 다양한 분야에서 활용되고 있으며, 특히 다음과 같은 응용 프로그램들이 존재한다.
| 프로그램 | 설명 | 비고 |
|---|---|---|
| SSHFS | SSH를 통해 원격 파일 시스템에 접근을 제공한다. | |
| GlusterFS | 수 페타바이트까지 스케일 업 가능한 클러스터 분산 파일 시스템이다. | |
| GmailFS | Gmail의 메일로 데이터를 저장하는 파일 시스템. | |
| GVfs | GNOME용 가상 파일 시스템. | |
| EncFS | 암호화된 가상 파일 시스템 | |
| NTFS-3G, Captive NTFS | NTFS 파일 시스템에 접근을 가능하게 한다.[17] | |
| WikipediaFS | 위키백과 문서를 실제 파일처럼 참조하고 편집한다. | |
| Lustre (파일 시스템) | 썬 마이크로시스템즈에 의한 클러스터 파일 시스템. FUSE를 사용하여 사용자 공간에서 실행하는 것이 가능하며, FreeBSD로도 이식되었다.[17] | |
| ZFS | [http://zfs-fuse.net/ ZFS-Fuse-Linux 구현] | |
| [https://github.com/copy-app/copy-fuse/ copy-fuse] | Copy.com에 저장된 파일에 접근하기 위한 파이썬 FUSE 레이어 | |
| Wuala | 멀티 플랫폼의 자바 기반 OS 통합 분산 파일 시스템. 파일 시스템 통합에 FUSE, MacFUSE, Callback File System 중 하나를 사용 | 자바가 동작하는 웹 브라우저에서 접근 가능한 자바 기반 애플리케이션도 통합 |
| WebDrive | WebDAV, SFTP, FTP, FTPS, Amazon S3를 구현하는 상용 파일 시스템 | |
| [http://www.izysoftware.com/products/jsys/ jSYS] | FUSE를 이용한 사용자 공간에서 jail과 가상 파일 시스템을 생성하는 상용 소프트웨어 | |
| Transmit | MacFUSE를 통해 WebDAV, SFTP, FTP, 그리고 Amazon S3 서버를 Finder 내의 디스크로 마운트할 수 있는 기능을 추가하는 상용 FTP 클라이언트 | |
| ExpanDrive | FUSE를 이용하여 SFTP/FTP/S3/Swift를 구현한 상용 파일 시스템 | |
| [http://www.izysoftware.com/products/volatilefs/ VolatileFS] | FUSE를 이용한 상용 RAM 디스크 | |
| GAEDrive | 구글 앱 엔진 기반의 네트워크 스토리지 | |
| [https://code.google.com/archive/p/gae-filestore gae-filestore] | 구글 앱 엔진의 가상 파일 시스템 라이브러리 | |
| [https://github.com/relan/exfat fuse-exfat] | 오픈 소스 exFAT 파일 시스템의 구현. 파일 시스템의 생성과 읽기/쓰기가 가능하다. | |
| [https://code.google.com/p/exfat exFAT] | 마이크로소프트에서 제작했으며, exFAT 파일 시스템에 대한 읽기/쓰기가 가능하다. | |
| [http://loggedfs.sourceforge.net/ LoggedFS] | 파일 시스템 접근 로깅 | |
| HDFS | Hadoop 분산 파일 시스템용으로 FUSE 바인딩이 존재 | |
| [http://www.adebenham.com/mtpfs/ mtpfs] | Creative Zen 뮤직 플레이어와 같은 MTP 장치를 마운트 | |
| Sector File System | 대량의 상품 컴퓨터용으로 설계된 분산 파일 시스템. 마운트 가능한 로컬 파일 시스템 인터페이스를 제공하기 위해 FUSE를 사용 | |
| CurlFtpFS | FTP/SFTP 위치에 접근하기 위한 파일 시스템 | |
| [http://sourceforge.net/projects/fuse-ext2/ fuse-ext2] | 오픈 소스의 ext2/ext3 파일 시스템. MacFuse를 이용하여 Mac OS X v10.4 이후를 지원 (Universal Binary) | |
| [http://www.lessfs.com/ Lessfs] | 인라인의 Linux용 데이터 중복 제거 파일 시스템. LZO나 QuickLZ의 압축 및 암호화를 지원 | |
| CloudStore (구 Kosmos filesystem) | FUSE를 통해 마운트함으로써, 기존 Linux 유틸리티로 CloudStore에 통신할 수 있게 된다. | |
| [http://www.gurudigitalsolutions.com/projects/soundcloudfs SoundCloudFS] | Linux 시스템을 SoundCloud 스트림에 마운트하기 위한 오픈 소스 파일 시스템. 사용자가 소프트웨어를 선택하여 파일을 열 수 있다. | |
| MooseFS | 하나의 리소스로 보이는 여러 서버를 확장하는, 페타바이트의 데이터를 저장 가능한 오픈 소스 분산 결함 허용 파일 시스템 | |
| NagusFS | Nagios 서비스의 파일 시스템 표현 | |
| [http://sourceforge.net/apps/mediawiki/fuse/index.php?title=NetworkFileSystems#NagiosFS NagiosFS] | 값을 원격으로 모니터링하는 파일 시스템 표현 | |
| [https://code.launchpad.net/cassandrafs CassandraFS] | Cassandra 상의 파일 시스템 | |
| [https://code.google.com/archive/p/fuse-zip fuse-zip] | 파일 시스템으로 zip 파일을 이용할 수 있다(쓰기를 지원한다). | |
| [http://www.owfs.org OWFS] | 파일 시스템 디렉토리 구조를 통해 1-Wire 장치에 대한 접근을 제공하는 One-Wire 파일 시스템 | |
| TrueCrypt | 즉석 암호화(OTFE)를 이용한 소프트웨어 애플리케이션. 암호화된 파티션이나 완전한 스토리지 장치 내뿐만 아니라, 파일 내에도 가상 암호화 디스크를 생성 | |
| [https://code.google.com/archive/p/s3fs s3fs-FuseOverAmazonS3] | Amazon S3를 기반으로 하는 FUSE 기반 파일 시스템. 로컬 파일 시스템의 읽기/쓰기를 위해 버킷을 마운트. 파일이나 폴더를 AWS상에 투명하게 저장 | |
| [https://github.com/tongwang/s3fs-c s3fs-c] | Amazon S3를 기반으로 하는 파일 시스템. s3fs에서 갈라져 나와 AWS Management Console과 같은 다른 S3 클라이언트와 호환성을 유지하도록 다시 작성 | |
| FS] | Adobe Lightroom 카탈로그용 macOS 파일 시스템. MacFuse가 필요 | |
| [https://code.google.com/p/boxfs/ boxfs] | box.net 계정의 파일에 접근하기 위한 파일 시스템 | |
| [http://remotefs.sourceforge.net/ remotefs] | 홈 NAS에서 이용하기 위해 설계된 네트워크 파일 시스템 | |
| [http://packages.ubuntu.com/search?keywords=virtualbox-fuse virtualbox-fuse] | Virtualbox VDI 이미지의 마운트가 가능 | |
| [http://www.cse.iitd.ac.in/~srsarangi/software.html UsiFe] | 인트라 파일 암호화를 가능하게 하는, 유연한 파일 시스템. 파일의 일부를 선택하여 암호화와 복호화를 수행하며, 그것들을 표시 | |
| [http://projects.tlspu.com/PyMMB PyMMBfuse] | PyMMB 프로젝트용 FUSE 드라이버. MMC 플래시 카드 상의 BBC Microcompute 디스크 이미지에 접근 | |
| [http://djmount.sourceforge.net djmount] | UPnP AV 장치의 미디어 콘텐츠를 마운트 |
3. 1. 1. 온디스크 파일 시스템
- 선형 테이프 파일 시스템: 자기 테이프에 저장된 파일에 디스크 또는 이동식 플래시 드라이브의 파일과 유사한 방식으로 접근할 수 있도록 한다.
- NTFS-3G 및 Captive NTFS: NTFS 파일 시스템에 접근할 수 있게 한다.[17]
- [https://github.com/jaylogue/retro-fuse retro-fuse]: 구형 유닉스 시스템에서 생성된 파일 시스템을 최신 운영 체제에서 마운트할 수 있게 해주는 사용자 공간 파일 시스템이다. retro-fuse의 현재 버전은 벨 연구소의 Fifth, Sixth 및 Seventh Edition of Research Unix, 2.9BSD 및 2.11BSD 기반 시스템에서 생성된 파일 시스템 마운트를 지원한다.
- [https://github.com/relan/exfat fuse-exfat]: 오픈 소스 exFAT 파일 시스템 구현이다. 파일 시스템의 생성과 읽기/쓰기가 가능하다.
- [https://code.google.com/p/exfat exFAT]]: 마이크로소프트에서 제작했으며, exFAT 파일 시스템에 대한 읽기/쓰기가 가능하다.
3. 1. 2. 계층 파일 시스템
FUSE 파일 시스템은 기반 파일 시스템의 뷰를 생성하여 파일을 특정한 방식으로 변환할 수 있다. 대표적인 예시는 다음과 같다.- EncFS: 암호화된 가상 파일 시스템을 제공한다.
- FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: 압축된 가상 파일 시스템을 제공한다.
3. 1. 3. 아카이브 및 백업 파일 시스템
FUSE 파일 시스템은 압축을 풀지 않고도 아카이브나 백업 세트의 내용을 볼 수 있게 해준다.- archivemount
- Borg: 백업 아카이브를 FUSE 파일 시스템으로 마운트할 수 있는 중복 제거 백업 프로그램이다.
- [https://restic.net/ Restic]: 모든 백업 스냅샷을 일반 파일 시스템처럼 탐색할 수 있게 해주는 백업 소프트웨어다.
- [http://www.spictera.com SPFS]: 백업 서버 파일 공간을 어디에나 마운트하고 백업 서버 기능을 사용할 수 있게 설계된 Spectrum Protect용 파일 시스템으로, WORM 파일 시스템이다.
3. 1. 4. 원격/분산 파일 시스템 클라이언트
FUSE를 사용하면 원격 파일 시스템이나 분산 파일 시스템에 편리하게 접근할 수 있다. 다음은 FUSE를 활용하는 대표적인 예시이다.- CernVM-FS: HTTP 프로토콜을 통해 소프트웨어를 배포하는 읽기 전용 분산 시스템이다. 전 세계적으로 빠르고 안정적인 소프트웨어 배포를 지원한다.
- CloudStore (구 Kosmos 파일 시스템): FUSE를 통해 마운트하면 기존 리눅스 유틸리티를 사용하여 CloudStore와 상호 작용할 수 있다.
- ExpanDrive: SFTP, FTP, S3, Swift 등 다양한 프로토콜을 지원하는 상용 파일 시스템이다.
- SSHFS: SSH 프로토콜을 통해 원격 파일 시스템에 접근할 수 있도록 해준다.
- WebDrive: WebDAV, SFTP, FTP, FTPS 및 Amazon S3를 구현하는 상용 파일 시스템이다.
- WikipediaFS: 위키백과 문서를 일반 파일처럼 보고 편집할 수 있게 해주는 파일 시스템이다.
한국 관련 사례는 현재 자료에서 확인되지 않는다.
3. 1. 5. 기타 응용
- GVfs: GNOME 데스크톱을 위한 가상 파일 시스템이다.
- https://github.com/rmind/rvault rvault: 일회용 비밀번호(OTP) 인증을 사용하는 봉투 암호화를 통해 비밀과 작은 문서를 안전하게 인증된 저장소에 보관하며, FUSE를 사용하여 금고를 파일 시스템으로 노출한다.
4. 이식성
FUSE는 다양한 운영 체제에 이식되었다.
5. 한국의 FUSE 활용 및 전망
한국에서는 FUSE를 활용한 다양한 서비스와 기술이 개발 및 활용되고 있다. 특히 클라우드 스토리지 서비스 분야에서 FUSE의 활용이 두드러진다. FUSE는 사용자에게 친숙한 파일 시스템 인터페이스를 제공하면서, 실제 데이터는 클라우드 서버에 저장하는 방식으로 작동한다. 이러한 방식은 사용자가 로컬 저장 공간의 제약 없이 대용량 파일과 데이터를 쉽게 관리하고 접근할 수 있도록 돕는다.
현재 FUSE 기반의 파일 시스템과 서비스는 지속적으로 발전하고 있으며, 앞으로도 다양한 분야에서 활용될 것으로 전망된다.
참조
[1]
웹사이트
Home - FUSE for OS X
https://osxfuse.gith[...]
[2]
간행물
billziss-gh/winfsp
https://github.com/b[...]
2021-02-14
[3]
웹사이트
Some technical advantages of the Hurd
http://www.draketo.d[...]
2011-05-15
[4]
웹사이트
WhatsNew/FreeBSD10 - FreeBSD Wiki
https://wiki.freebsd[...]
[5]
웹사이트
openbsd dev - tech - Fuse (and sshfs) support for OpenBSD
http://openbsd.7691.[...]
2013-07-14
[6]
웹사이트
'CVS: cvs.openbsd.org: src' - MARC
http://marc.info/?l=[...]
[7]
웹사이트
file-systems.fuse.devel - FUSE merged to 2.6.14! - msg#00021 - Recent Discussion OSDir.com
[8]
웹사이트
libfuse/libfuse, the reference implementation of the Linux FUSE (Filesystem in Userspace) interface
https://github.com/l[...]
libfuse
2020-01-09
[9]
웹사이트
libfuse3 ChangeLog
https://github.com/l[...]
[10]
웹사이트
Lustre FreeBSD
http://lustre.sev.ne[...]
[11]
웹사이트
Architecture ZFS for Lustre
http://arch.lustre.o[...]
Sun Microsystems
[12]
웹사이트
minio/minfs
https://github.com/m[...]
2018-04-12
[13]
URL
http://osxfuse.githu[...]
[14]
URL
http://www.linux.com[...]
[15]
URL
http://openbsd.7691.[...]
[16]
URL
http://marc.info/?l=[...]
[17]
웹사이트
Lustre FreeBSD
http://lustre.sev.ne[...]
[18]
웹사이트
Architecture ZFS for Lustre
http://arch.lustre.o[...]
サン・マイクロシステムズ
[19]
간행물
billziss-gh/winfsp
https://github.com/b[...]
2021-02-14
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
