본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Dokan Library

0

Dokany 프로젝트가 개발한 Dokan Library는 Windows에서 FAT나 NTFS가 아닌 새로운 파일 시스템을 만들기 위한 사용자 모드 파일 시스템 라이브러리입니다.

Windows드라이버라이브러리파일 시스템

소개

Dokany 프로젝트가 개발한 Dokan Library는 Windows에서 FAT나 NTFS가 아닌 새로운 파일 시스템을 만들기 위한 사용자 모드 파일 시스템 라이브러리입니다. Dokan 0.6.0의 포크 프로젝트로, 버그 수정과 최신 빌드 도구 지원이 반영되어 있습니다. 동봉된 FUSE 래퍼를 통해 기존 FUSE 파일 시스템을 거의 수정 없이 Windows로 이식할 수 있으며, 사용자 모드 DLL과 커널 모드 드라이버로 구성되어 Windows 탐색기 등 일반 프로그램에서 바로 인식되는 가상 파일 시스템을 만들 수 있도록 돕습니다.

상세정보

사용자 모드 파일 시스템 개발

Dokan 라이브러리 사용자 모드 DLL(do2.dll)과 커널 모드 파일 시스템 드라이버(dokan2.sys)를 함께 제공합니다. 드라이버가 설치되면 Windows 탐색기에서 일반 파일 시스템처럼 보이는 새로운 파일 시스템을 만들 수 있으며, CreateFile, ReadFile, WriteFile 같은 파일 연산 요청이 Dokan 드라이버를 거쳐 사용자 모드 애플리케이션의 콜백 함수로 전달되는 구조입니다.

다양한 언어 API 지원

기본 C 라이브러리 외에도 .NET(DotNet), Java, Delphi, Ruby 등 여러 언어로 래핑된 API를 제공해 각 언어 환경에서 파일 시스템을 구현할 수 있습니다. 이를 통해 개발자는 익숙한 언어와 도구로 사용자 모드 파일 시스템 드라이버를 작성할 수 있습니다.

FUSE 래퍼

Dokan FUSE 래퍼(dokanfuse2.dll)는 FUSE API와 호환되도록 만들어져, 기존 FUSE 소스 코드를 Cygwin/MinGW 환경에서 변경 없이 재빌드하고 라이브러리에 링크하는 것만으로 Windows에서 동작하도록 합니다. 메인 소스 저장소와 인스톨러에 기본 포함되어 있습니다.

안전한 사용자 모드 실행

파일 시스템 로직이 사용자 모드에서 실행되므로 커널 모드 디바이스 드라이버를 직접 작성하지 않아도 됩니다. 복잡한 다중 보안 계층을 포함한 사용자 정의 접근 제어가 가능하며, 테스트 중 BSOD 위험 없이 안전하게 디버깅할 수 있습니다.

Dokan 프로젝트의 역사는 무엇인가요?

Dokan Library는 2007년 Hiroki Asakawa가 시작해 2011년까지 유지한 프로젝트로, 2011년부터 2014년까지 커뮤니티의 다양한 포크로 관리되었고, 2014년부터 Adrien J.와 Maxime C.가 Dokany 포크로 적극 관리하고 있습니다. ISLOG가 코드 서명 등을 지원하고 있습니다.

어떤 운영체제에서 동작하나요?

Windows 7 SP1 이상, Windows 8/8.1/10/11과 Windows Server 2008 R2 SP1 이상 2022까지 지원하며, x86, x64, ARM, ARM64 플랫폼을 모두 다룹니다.

화면으로 보는 주요 기능

블루스크린 오류 화면

블루스크린 오류 화면

파란색 배경에 웃는 얼굴 이모티콘 대신 슬픈 얼굴 이모티콘(:()이 표시되어 있다. 텍스트는 'Your PC ran into a problem and needs to restart. We're just collecting some error info, and then we'll restart for you. (0% complete)'라고 되어 있으며, 하단에는 'If you'd like to know more, you can search online later for this error: HAL_INITIALIZATION_FAILED'라는 오류 코드가 있다.

시스템 요구사항

라이브러리 자체는 별도의 계정이나 API 키 없이 사용할 수 있습니다. Windows용 파일 시스템을 만들기 위한 개발 도구로는 Visual Studio 2019와 Windows 10 SDK, 그리고 WDK 10이 필요합니다. 사용자 모드에서 동작하므로 BSOD(블루스크린)와 같은 커널 모드 위험 없이 안전하게 디버깅할 수 있는 환경이 제공되며, LGPL 및 MIT 라이선스 조건을 준수해야 합니다.