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 工具环境,接入与目标工具版本匹配的运行时组件。
原生 NVMe 读取
通过 JMS583 USB 桥读取 NVMe Identify 与 SMART 信息,提供控制器、命名空间和健康数据。
统一自动化接口
通过 JSON-RPC 组织设备会话和命令序列,支持自有客户端与可选 JavaScript 参考客户端。
明确记录执行结果
保留命令状态、实际传输长度和设备回复;命令失败或超时后不自动重发。
原生设备后端
原生后端通过 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 接入成为一个后端,原生设备通信成为另一个后端。两条路径共用接口与执行记录,分别满足工具接入和独立设备研究的需要。