![FuseFS 파일 시스템을 사용할 때의 장점과 단점은 무엇입니까?](https://linux55.com/image/42130/FuseFS%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%EC%9D%98%20%EC%9E%A5%EC%A0%90%EA%B3%BC%20%EB%8B%A8%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
일부 파일 시스템이 Fuse를 통해 자체적으로 나타나는 것을 알고 있으며 이 접근 방식의 장단점을 알고 싶습니다.
답변1
Unix 파일 시스템은 전통적으로 커널에서 구현됩니다.퓨즈사용자 프로그램이 파일 시스템을 구현할 수 있도록 합니다.
커널 내 파일 시스템은 프로그램과 데이터의 기본 파일 시스템으로 더 적합합니다.
- 부팅 미디어에서 사용할 수 있습니다(FUSE 파일 시스템을 구현하는 프로그램은 어딘가에서 로드되어야 함).
- 프로세스가 충돌하거나 오류로 인해 종료되어도 사라지지 않기 때문에 더욱 강력합니다.
- 좀 빠른 편이에요.
FUSE 파일 시스템에는 주로 유연성과 관련된 다른 장점이 있습니다.
- 일반 사용자가 로드하고 마운트할 수 있으므로 네트워크 액세스, 아카이브 파일 검색, 이동식 미디어 등 사용자가 직접 마운트하는 경향이 있는 파일 시스템에 편리합니다.
- FUSE 파일 시스템 드라이버가 충돌하더라도 커널에 패닉이 발생하지 않습니다. 즉, 파일 시스템에 액세스하는 응용 프로그램에서 I/O 오류보다 더 나쁜 것은 표시되지 않습니다.
- 매우 빠르게 프로그래밍할 수 있습니다.퓨즈 바인딩많은 스크립팅 언어의 경우 유용한 FUSE 파일 시스템 드라이버를 수백 줄의 코드로 작성할 수 있습니다.
- 설치를 위해 관리자 개입이 필요하지 않고 다른 장치 간에 쉽게 이식할 수 있기 때문에 매우 빠르게 배포할 수 있습니다.지원되는 운영 체제.
- 커널 정적 링크와 관련된 라이센스 문제는 없습니다(영향을 미침)지브스).
답변2
실제 디스크 파일 시스템을 의미하는지, 아니면 다른 파일 시스템을 의미하는지 잘 모르겠습니다. FUSE가 일반 파일 시스템에 사용되는 것을 본 적이 없습니다. FUSE의 주요 이점은 파일 시스템처럼 보이지만 실제로는 함수 파일일 뿐이라는 점입니다. 사용자가 디렉터리에 파일을 나열하거나 새 파일을 만드는 등의 작업을 수행하려고 하면 애플리케이션이 호출됩니다.계획 9/proc
FUSE는 응용 프로그램이 이 패턴을 쉽게 따를 수 있는 방법인 파일 시스템을 통해 모든 것에 액세스하려고 시도하는 것으로 유명합니다 .
예를 들어 다음은 SE 사이트 데이터에 액세스할 수 있는 (매우 기능적이지 않은) FUSE 파일 시스템의 스크린샷입니다.
물론 이러한 파일은 실제로 존재하지 않습니다. 디렉터리의 파일 목록을 요청하면 FUSE ls
는 사용자 73(나)에 대한 정보를 로드하기 위해 사이트에 API를 요청하는 함수를 내 프로그램에서 호출 합니다 . 디스크에 실제로 존재하는 데이터 없이 메모리에서 캐시된 데이터를 반환하는 더 많은 기능cat
display_name
website_url
답변3
FUSE는 실제로 파일 시스템 자체가 아니라 파일 시스템을 커널 모듈이 아닌 프로세스로 구현할 수 있도록 하는 코드입니다.
FUSE의 가장 유용한 이점 중 하나는 GPL 코드를 GPL이 아닌 코드와 "혼합"할 수 있다는 것입니다. 예를 들어 Gnu/Linux 및 ZFS(zfs-퓨즈, 이제 더 이상 사용되지 않으며 더 이상 사용되지 않습니다.오픈ZFS) 또는NTFS-3GOpenSolaris/illumos 및 *BSD와 같은 많은 운영 체제에서
가장 큰 단점은 기본(예: 커널) 드라이버에 비해 사용자 공간 드라이버가 성능에 미치는 영향입니다.