1P by neo 2달전 | favorite | 댓글 1개
  • Python으로 FUSE 파일 시스템 작성 가이드 시작

    • DebConf22에서 Eeveelweezel과의 대화 후, Chicago Python User Group에서 발표를 준비하라는 초대를 받음.
    • Python을 자주 사용하지 않지만, 학생들이 쉽게 이해할 수 있는 언어로 가르치고 있음.
    • FIUnamFS라는 간단한 파일 시스템을 수업 프로젝트로 사용하고 있으며, 학생들에게 FUSE를 사용하여 투명한 인터페이스를 제공하도록 권장함.
  • FUSE 파일 시스템 구현의 어려움

    • Python에서 FUSE 기반 파일 시스템을 구축하는 것이 쉽지 않음.
    • 여러 예제와 웹 페이지가 있지만, 대부분 오래되었고 따라가기 어려움.
    • Python에서는 python-fuse, Pyfuse, Fusepy 등 다양한 인터페이스가 존재함.
  • GitLab 프로젝트 시작

    • Python으로 FUSE 기반 파일 시스템을 작성하는 가이드를 제공하기 위해 GitLab 프로젝트를 등록함.
    • RAM 기반 및 패스스루 기반 파일 시스템 구현을 포함하여 여러 작업을 단계별로 추가함.
    • 학생들이 재미있고 유용한 예제를 통해 배울 수 있도록 DNS 파일 시스템, 실시간 마크다운 컴파일 파일 시스템, 압축 해제 파일 시스템, 주석 제거 파일 시스템 등의 아이디어를 추가함.
  • 발표 및 교육 계획

    • ChiPy에서 발표 예정이며, Santa Fe, Argentina에서 열리는 Jornadas Regionales de Software Libre와 Mexico City에서 열리는 nerdear.la에서도 발표할 예정임.
    • 학생들에게 이 프로젝트를 공유하고, Python에서 FUSE 구현에 관심을 가지도록 유도할 계획임.
  • GN⁺의 정리

    • 이 기사는 Python으로 FUSE 파일 시스템을 구현하는 데 관심이 있는 사람들에게 유용한 정보를 제공함.
    • 다양한 예제와 단계별 가이드를 통해 학생들이 쉽게 배울 수 있도록 돕고 있음.
    • FUSE 구현의 어려움을 해결하기 위한 노력이 돋보이며, Python 커뮤니티에 기여하고자 하는 의도가 긍정적으로 평가됨.
    • 유사한 기능을 가진 프로젝트로는 Dokan과 WinFsp가 있음.
Hacker News 의견
  • libfuse GitHub에는 C/C++의 복잡성을 증가시키는 좋은 예제들이 있음

    • passthrough.c는 기존 파일 시스템을 미러링하지만 성능이 좋지 않음
    • passthrough_fh.c는 성능이 조금 더 나음
    • passthrough_ll.c는 저수준 API로 구현되어 세 가지 중 가장 나음
    • passthrough_hp.cc는 C++로 작성된 고성능 버전임
    • 흥미로운 FUSE 프로젝트로는 대용량 파일을 세그먼트로 나누기, ZFS 증분 스냅샷을 파일로 표시하기, 투명한 파일 시스템 압축 등이 있음
  • FUSE 외에도 9p 프로토콜을 통한 가상 파일 시스템 구현이 가능함

    • py9p를 사용한 Python 경험이 fuse-python보다 나았음
    • FUSE를 통해 9p 서비스를 마운트할 수 있으며, diod 9p 서버를 사용했음
    • 전체적으로 탐색하기 좋은 생태계임
  • FUSE를 사용하여 Jira를 파일 시스템으로 변환하는 프로젝트를 시작했음

    • 이슈 ID를 디렉토리 이름으로 사용하여 자동화가 쉬워졌지만, 사람이 탐색하기 어려웠음
    • issue-type-with-summary 디렉토리 유형을 추가하여 문제를 해결했음
  • FUSE에 관심 있는 사람들은 CUSE 프로젝트에도 관심을 가질 수 있음

    • CUSE는 사용자 공간에서 하드웨어를 에뮬레이션하는 프로젝트임
    • Python을 사용하여 IOCTL을 지원하는 하드웨어 장치를 작성했음
    • CUSE는 원래 사용자 공간 사운드 장치를 만들기 위해 구현되었음
  • 다양한 FUSE 마운트 옵션이 존재하며, JuiceFS는 객체 저장소를 POSIX 파일 시스템으로 마운트하는 데 흥미로움

  • 최근 NFS 기반 파일 시스템을 구현하는 사람들이 늘고 있음

    • Mac에서는 rclone이 이를 지원함
  • azuline/rosé는 가상 파일 시스템을 가진 음악 관리자로, 학습하기 좋은 코드베이스를 제공함

  • FUSE를 사용하여 Makefile이 임의의 리소스에 대해 DAG를 지정할 수 있게 함

    • 예를 들어, Kubernetes 클러스터 상태를 노출하는 FUSE 파일 시스템이 있음
  • Python FUSE 파일 시스템을 만들어 dokuwiki와 상호작용했음

    • easyfuse라는 래퍼를 만들어 dokuwiki와 관련 없는 저수준 API를 구현했음
  • FUSE를 사용하여 git 저장소를 노출하는 작은 프로젝트를 작성했음

    • .git 폴더를 통해 모든 커밋과 브랜치를 자체 폴더로 노출함
    • 모든 것이 읽기 전용임