问题标签 [smartos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
100 浏览

smartos - Illumos kernel preprocessor macro

I can't find any info on what macro to use in an ifdef to determine the illumos kernel. I use __linux to catch Linux.

Filler for stackoverflow grammar check filler filler filler filler.

0 投票
1 回答
191 浏览

smartos - 不支持使用品牌 Joyent 配置数据集 - smartos

今天我正在尝试使用 smartos 创建一个虚拟机。

我构建了这个配置文件(称为router.json):

运行此命令:

但是当我尝试创建虚拟机时仍然出现错误:

有人有想法吗?非常感谢。

0 投票
1 回答
887 浏览

zfs - 接收克隆和覆盖源的增量 ZFS 流

tldr; 我正在尝试接收一个 ZFS 流,该流-R已从克隆的文件系统创建为复制 ()。使用zfs recv -o origin=[clone-origin]只是给出cannot receive: local origin for clone [...] does not exist.

前提

我有一个 SmartOS 区域 ZFS 文件系统,它是从特定映像克隆的。IMAGE-uuid 和ZONE-uuid 已被替换以提高可读性)

区域文件系统有多个快照:

关于基础镜像,SmartOS(更好vmadm)为新创建的区域创建镜像快照。区域根目录创建为基于此快照的克隆(此处使用 guid 11194422825011190557)。

备份

为了创建我的区域根目录的备份,我创建了一个快照和一个复制流。

检查它zstreamdump显示预期的来源。它是十六进制的,0x9b5a943fae511b1d但是11194422825011190557

恢复

为了恢复灾难,我使用vmadm createvm 描述的备份来重新创建区域(ZONE保留 -uuid)。vmadm拉取映像并zones/[IMAGE]使用快照创建相应的 zfs 文件系统,作为重新创建的区域文件系统的克隆源zones/[ZONE]

所以结构和崩溃前一样:

然而,图像快照(由 创建)的 guidvmadm是不同的 - 正如预期的那样。流期望0x9b5a943fae511b1d(或11194422825011190557),但实际上是12464070312561851369

这就是 - 我想 --o origin=参数的zfs recv来源。

问题

通过接收 zfs 流恢复实际数据,最终会出现错误:

SNAP0备份文件系统的第一个快照在哪里,请参阅上面的“前提条件”)

这是意料之中的,因为指南发生了变化。因此,我使用新的 guid ( ) 将原点强制为图像快照12464070312561851369,但错误仍然存​​在:

问题

我对-o origin=-parameter 的解释是否正确?

为什么没有按预期工作?

如果这是错误的方法,我该如何创建备份并恢复克隆的 zfs 文件系统?

非常感谢阅读和帮助!

0 投票
0 回答
158 浏览

macos - macOS 上 Rust 程序的类 DTrace 函数追踪

我有一个使用 C FFI 的 Rust 程序,我想在任何时候调用该 C FFI 中的函数并将参数传递给它。

我在 macOS 上开发,看起来 DTrace 很合适,但是在启用 macOS SIP 的情况下,DTrace 不能很好地工作。我不想禁用 SIP。

我正在考虑使用这个 DTrace 提供程序: pid$target:::entry

问题:

  • 有没有更好的方法在 macOS/Rust 上执行此操作?

  • 为了在我的 Rust 程序上使用 DTrace/eBPF,作为 VM 运行的最佳操作系统是什么?

0 投票
1 回答
28 浏览

c++ - xy::isfinite 可在 Linux、BSD 和 Windows 上编译,但不能在 SmartOS 上编译

我正在尝试将Quadlods 移植到 SmartOS。它在 Linux 和 DragonFly BSD 上编译和运行。我还没有尝试在 Windows 上运行它,但是使用 xy 类和 isfinite 方法的其他程序可以在 Windows 上编译和运行。但是,在 SmartOS 上编译它,我得到这个错误:

定义宏的文件,导致这个奇怪的错误,是 /usr/include/iso/math_c99.h:

头文件中的类定义是

是否可以在不重命名方法的情况下在 SmartOS 上进行编译?我想过取消定义 isfinite 宏,但是在另一个程序(不是 Quadlods,其头文件只有 quadlods.h)中,xy 类位于库的头文件中。此外,isfinite 方法调用 std::isfinite。