Files
markbase/docs/FSKIT_MACOS27_TODO.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  Categories/Series双视图管理(category_view.rs + import_markdown.rs)
-  FUSE Multi-Volume支持(tree_type参数)
-  SSH/SFTP/SCP/rsync协议完整实现(4042行)
-  NFS/SMB Module Phase 1-3完成
-  Archive Module Phase 1-4完成(2916行)
-  Download Center API完整实现
-  S3兼容API实现(560行)

Git配置修正:
-  删除错误origin(gitea.momentry.ddns.net)
-  删除m5max128(指向机器名)
-  设置origin = m5max128gitea.momentry.ddns.net/admin/markbase
-  设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase

数据清理:
-  删除38个临时SQLite(保留accusys.sqlite、demo.sqlite)
-  删除.bak、test_*.bin、调试脚本等临时文件
-  删除临时目录(build/、download files/、raid_test/等)
-  更新.gitignore排除临时文件

架构优化:
- 52个文件修改,2434行新增,4739行删除
- Workspace成员整合(16个crate)
- 数据库状态:accusys.sqlite保留(主demo测试)

远程同步:
-  准备推送到m5max128gitea(远程Gitea)
-  准备推送到m4minigitea(本地Gitea)
2026-06-12 12:59:54 +08:00

4.8 KiB

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 <fsname> 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:

# 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:

# 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:

# 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


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