# FSKit Research Summary - macOS 27 TODO ## Research Date: 2026-05-29 ## Status: Blocked by SIP protection, waiting for macOS 27 WWDC --- ## ✅ Completed Research ### 1. Rust FSKit Module (markbase-fskit) - **Files**: markbase-fskit/src/fskit/volume.rs (746 lines) - **Operations**: 18 FSKit operations implemented - **Thread Safety**: AnyThread support - **Backend**: SQLite-backed file system - **Binary**: - dylib: libmarkbase_fskit.dylib (34KB) - executable: markbase_fs (2.3MB) ### 2. Swift Extension Prototype - **Bundle**: ExtensionKit .appex format - **Status**: Compiled, signed, dylib embedded - **Blocking**: mount command cannot discover it ### 3. macOS .fs Bundle Analysis - **Apple bundles**: exfat.fs, hfs.fs analyzed - **Format**: Traditional executable tools format - **Info.plist keys**: FSMediaTypes, FSPersonalities - **Mount helpers**: mount_, .util, newfs_, fsck_ ### 4. C POC v15 Validation - **Performance**: 649.77 MB/s verified - **Features**: Thread-safe, LRU cache, hash cache - **Technology**: FUSE-T 1.2.6 - **Status**: Working, ready to use --- ## ❌ Key Blockers (macOS 26.5) ### 1. SIP Protection - `/System/Library/Filesystems/` **READ-ONLY** (SIP protected) - Cannot install custom .fs bundles - Cannot modify Apple built-in filesystems ### 2. mount Discovery - `mount -t ` **only searches** `/System/Library/Filesystems/` - `/Library/Filesystems/` **NOT searched** - No alternative discovery mechanism ### 3. FSKit Framework - `/System/Library/Frameworks/FSKit.framework` is **header-only** - No binary implementation - No ObjC class support for custom filesystems ### 4. Documentation - Apple FSKit API **not publicly documented** - Binary format requirements **unknown** - Extension discovery mechanism **unknown** --- ## 🎯 macOS 27 TODO (WWDC 2026) ### Phase 1: WWDC Announcements Research **Step 1: Check WWDC 2026 FSKit sessions** - Watch FSKit-related sessions - Check for new FSKit API documentation - Check for ExtensionKit FSKit support - Check for SIP policy changes **Step 2: Check Xcode 18 beta** - Download Xcode 18 beta (if available) - Check FSKit framework binary - Check FSKit headers for new APIs - Check .fs bundle templates **Step 3: Check macOS 27 beta** - Install macOS 27 beta - Test `/Library/Filesystems/` discovery - Test SIP policy (if relaxed) - Test mount command behavior --- ### Phase 2: Implementation Testing **Option A: If FSKit ObjC API released** **Test Rust FSKit module:** ```bash # Check if macOS 27 recognizes .appex bundles pluginkit -m -p com.apple.fskit # Try mounting via FSKit mount -t markbasefs /path/to/database /Volumes/MarkBase ``` **Option B: If .fs bundle format supported** **Test user-level installation:** ```bash # Install to /Library/Filesystems/ sudo cp -R markbasefs.fs /Library/Filesystems/ # Test mount mount -t markbasefs /path/to/database /Volumes/MarkBase ``` **Option C: If new FSKit Extension format** **Research new format:** - Check Apple documentation for new FSKit Extension type - Test new Info.plist keys - Test new binary format requirements --- ### Phase 3: C POC Integration (Backup) **If FSKit still blocked:** **Use C POC v15:** ```bash # Compile gcc -Wall -O3 docs/fuse_poc/markbase_v15_balanced.c \ -I/usr/local/include/fuse3 -L/usr/local/lib \ -lfuse3 -lsqlite3 -lpthread \ -Wl,-rpath,/usr/local/lib \ -o markbase_fuse # Run export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH ./markbase_fuse -f /tmp/mb_mount # Performance: 649.77 MB/s (verified) ``` --- ## 📁 Files to Preserve **Rust FSKit module:** - `/Users/accusys/markbase/markbase-fskit/` - `/Users/accusys/markbase/target/release/markbase_fs` - `/Users/accusys/markbase/target/release/libmarkbase_fskit.dylib` **Swift Extension:** - `/Users/accusys/markbase/MarkBaseFS/MarkBaseFS.xcodeproj` - `/Users/accusys/markbase/MarkBaseFS/MarkBaseFS/MarkBaseFSModule.swift` **C POC:** - `/Users/accusys/markbase/docs/fuse_poc/markbase_v15_balanced.c` - `/Users/accusys/markbase/docs/fuse_poc/markbase_v15_balanced` **Test bundles:** - `/tmp/markbasefs_new.fs/` (.fs bundle prototype) - `/tmp/markbasefs.fs/` (earlier .fs bundle) --- ## 📊 Research Statistics **Time invested**: 3+ hours deep research **Key discoveries**: 4 major blockers identified **Files created**: 20+ prototype files **Tests run**: 50+ test commands **Conclusions**: macOS 26.5 does NOT support custom filesystem extensions --- ## 🔗 Quick Links **Apple WWDC 2026**: https://developer.apple.com/wwdc/ **FSKit Documentation**: https://developer.apple.com/documentation/fskit (check after WWDC) **SIP Documentation**: https://support.apple.com/en-us/HT204899 **FUSE-T Project**: https://github.com/macos-fuse-t/fuse-t --- **Last Updated**: 2026-05-29 **Next Review**: WWDC 2026 (June 2026) **Status**: Waiting for macOS 27