FreeBSD 使用手册
上一页 | 第25章 　DTrace | 下一页

# 25.2 实现上的差异

虽然 FreeBSD 上的 DTrace 与 Solaris™ 上的非常相似， 在继续深入之前我们需要说明一下存在的差异。 用户首先会注意到的便是 FreeBSD 上的 DTrace 需要明确地被启用。 DTrace 相关的内核选项和模块必须开启后才能正常工作。 稍后我们会作详细介绍。

有一个 `DDB_CTF` 内核选项用来开启从内核与内核模块加载 `CTF` 数据。 CTF 是 Solaris Compact C Type Format 封装了类似于 DWARF 和 venerable stabs 简化的调试信息。CTF 数据是由 `ctfconvert` 和 `ctfmerge` 工具加入二进制文件的。`ctfconvert` 工具分析由编译器生成的 DWARF ELF 调试 section， `ctfmerge` 合并目标文件的 CTF ELF section 到可执行文件或共享库。更多关于在启用 FreeBSD 内核上启用此项的详细内容即将完成。

比起 Solaris， FreeBSD 有几个不同提供器。 最值得注意的是 `dtmalloc` 提供器， 可以让你根据类型追踪 FreeBSD 内核中的 `malloc()`。

只有 `root` 可以使用 FreeBSD 上的 DTrace。 这是由系统安全上的差异造成的，Solaris 提供了一些 FreeBSD 上还未实现的低层的安全检查。 同样， `/dev/dtrace/dtrace` 也被严格的限制为仅供 `root` 用户访问。

最后，DTrace 为 Sun™ CDDL 许可下发布的软件。随 FreeBSD 发行的 `Common Development and Distribution License` 可以在查阅 `/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE` 或者通过 http://www.opensolaris.org/os/licensing 查看在线版本。

这个许可表示带有 DTrace 选项的 FreeBSD 内核仍为 BSD 许可； 然而， 以二进制发布模块， 或者加载二进制模块则需遵守 CDDL。

上一页 | 起始页 | 下一页
DTrace | 上一级 | 启用 DTrace 支持

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.