Files
markbase/MarkBaseFS/docs/FSKIT_MODULE_INSTALLATION.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.5 KiB

FSKit Module Installation Guide

Date: 2026-05-26

Version: 1.0


Overview

FSKit Module System-Level Installation

FSKit Modules need to be installed at system level to be loaded by macOS FSKit framework.


FSKit Module Architecture

FSKit Module Components

Component Type Description
Bundle Type XFSK FSKit Module Bundle (defined in project.yml)
Bundle ID com.accusys.markbase.fskitmodule Unique identifier
Module Class MarkBaseFSModule FSUnaryFileSystemOperations implementation
Volume Class MarkBaseFSVolumeFSKit FSVolume implementation

Installation Methods

Method 1: Manual Bundle Installation (POC)

Step 1: Build FSKit Module Bundle

cd /Users/accusys/markbase/MarkBaseFS
xcodebuild -project MarkBaseFS.xcodeproj \
    -target MarkBaseFSFSKitModule \
    -configuration Debug \
    build

Expected Output:

  • Bundle location: build/Debug/MarkBaseFSFSKitModule.bundle
  • Bundle type: XFSK (FSKit Module Bundle)

Step 2: Install Bundle to System Directory

# Create filesystems directory (if not exists)
sudo mkdir -p /Library/Filesystems

# Copy FSKit Module bundle to system directory
sudo cp -R build/Debug/MarkBaseFSFSKitModule.bundle \
    /Library/Filesystems/MarkBaseFSFSKitModule.bundle

# Set proper permissions
sudo chmod 755 /Library/Filesystems/MarkBaseFSFSKitModule.bundle
sudo chown root:wheel /Library/Filesystems/MarkBaseFSFSKitModule.bundle

Step 3: Restart FSKit Service

# Restart FSKit service (requires macOS restart or specific command)
# This step may require further research
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.fskit.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.fskit.plist

FSKit Module may be installed via System Extension API

Research Required:

  • SystemExtension framework for FSKit Module installation
  • OSSystemExtensionRequest for requesting installation
  • Requires user approval via System Preferences

Hypothesis: FSKit Modules may be installed similar to System Extensions:

  1. Application requests installation via System Extension API
  2. macOS prompts user for approval
  3. User approves installation via System Preferences
  4. FSKit Module installed to system directory

Method 3: FSKit Client API (Unknown)

FSClient.fetchInstalledExtensions() can retrieve installed modules

Unknown:

  • How to install FSKit Module via FSClient API
  • No public API for module installation found yet

Verification Methods

Method 1: FSClient.fetchInstalledExtensions()

import FSKit

let client = FSClient.shared
client.fetchInstalledExtensions { modules, error in
    if let modules = modules {
        for module in modules {
            print("Module: \(module.bundleIdentifier)")
            print("  URL: \(module.url)")
            print("  Enabled: \(module.enabled)")
        }
    }
}

Method 2: Check System Directory

# Check if bundle exists in system directory
ls -la /Library/Filesystems/

# Expected output:
# MarkBaseFSFSKitModule.bundle (if installed)

Current Status

POC Status

Status Description
FSKit Module Build MarkBaseFSFSKitModule.bundle compiled successfully
System Installation Manual installation method tested (POC)
FSKit Service Restart Requires further research
Module Loading Requires FSKit framework to load module

Next Steps

Research Required

  1. FSKit Module Installation API

    • Search Apple Developer Documentation
    • Search WWDC videos for FSKit demos
    • Search Apple Developer Forums
  2. System Extension Integration

    • Research System Extension framework
    • Test System Extension installation for FSKit Module
  3. FSKit Service Management

    • Research how to restart FSKit service
    • Research how to force FSKit to reload modules

Known Limitations

POC Limitations

  • Manual installation may not be persistent
  • FSKit service restart may not be supported
  • Module loading requires macOS FSKit framework cooperation

References

  • /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/FSKit.framework/
  • FSModuleIdentity.h - Installed module representation
  • FSClient.h - Module management API
  • FSUnaryFileSystem.h - File system module entry point

Last Updated: 2026-05-26