Etherealm Research存储工具

Etherealm NVMe Bridge

面向 NVMe 设备研究的命令桥接工具,以统一 RPC 接口连接原生设备后端与 Windows EasyTools 后端。

产品介绍
概念示意
项目归属
Etherealm Research
平台 / 运行环境
  • Windows
  • macOS
  • Linux
技术
  • C++17
  • JSON-RPC
  • JavaScript

关于项目

Etherealm NVMe Bridge(ENB)把 NVMe 设备研究中的连接、命令执行与结果读取组织为统一接口。研究脚本通过 RPC 选择设备、打开连接、提交命令序列并读取结果,设备通信由后端完成。

ENB 由 Etherealm Research 开发,包含原生后端与 EasyTools 后端。原生后端独立运行于 Windows、macOS 和 Linux;EasyTools 后端面向 Windows x86 工具环境,接入与目标工具版本匹配的运行时组件。

  1. 原生 NVMe 读取

    通过 JMS583 USB 桥读取 NVMe Identify 与 SMART 信息,提供控制器、命名空间和健康数据。

  2. 统一自动化接口

    通过 JSON-RPC 组织设备会话和命令序列,支持自有客户端与可选 JavaScript 参考客户端。

  3. 明确记录执行结果

    保留命令状态、实际传输长度和设备回复;命令失败或超时后不自动重发。

原生设备后端

原生后端通过 JMS583 USB 转 NVMe 桥访问设备,标准读取覆盖 Identify Controller、Identify Namespace 与 SMART。Windows 与 Linux 使用系统存储接口,macOS 使用直接 USB 通信。运行后端无需 EasyTools、虚拟机或 Node.js;设备访问需要对应系统权限。

原生接口的硬件范围为 JMS583 USB 桥接设备,不包含内置 PCIe NVMe 直连。Windows 和 Linux 由系统驱动决定 BOT 或 UASP 传输;macOS 提供显式协议选择。设备身份、打开的连接和执行结果分别记录,重新枚举后需使用新的设备身份。

让脚本与设备通信分工

统一接口采用基于 TCP 的 JSON-RPC 2.0,客户端可使用任意支持该协议的语言实现。可选 JavaScript 参考客户端提供标准读取流程;同一服务也为设备会话、命令序列和结果查询提供一致的入口。

执行记录保留命令状态、实际长度、设备回复与传输错误。超时或通信失败后不自动重发命令,也不自动切换协议。文件记录需要显式开启,便于按研究任务保留结果。

从 ezt-hook 到 ENB

ezt-hook(Etherealm EasyTool Bridge)是 ENB 的历史基础,最初位于 mptool-parser 项目中。它通过 Windows 启动器与运行时 Hook 接入 EasyTools,以适配配置匹配工具版本,复用工具中的调用能力并向外提供 RPC。

独立为 ENB 后,项目迁入 ezt-hook 的源码、构建脚本、测试和文档,并将共享核心、RPC 与客户端整理到独立工程中。EasyTools 接入成为一个后端,原生设备通信成为另一个后端。两条路径共用接口与执行记录,分别满足工具接入和独立设备研究的需要。