核心功能: - ✅ 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)
183 lines
4.8 KiB
Markdown
183 lines
4.8 KiB
Markdown
# 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_<fs>, <fs>.util, newfs_<fs>, fsck_<fs>
|
|
|
|
### 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:**
|
|
```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 |