甲骨文公司
DTrace 已经
eBPF 是内置于 Linux 内核中的字节码解释器,允许您创建网络操作处理程序、监视系统操作、拦截系统调用、控制访问、使用计时处理事件 (perf_event_open)、计算操作的频率和执行时间、使用 kprobes 执行跟踪/uprobes/跟踪点。 由于使用了 JIT 编译,字节码可以即时翻译为机器指令,并以本机代码的性能执行。 DTrace 可以在 eBPF 之上实现,类似于在 eBPF 之上的实现方式
DTrace技术是为Solaris操作系统开发的,旨在解决动态跟踪系统内核和终端应用程序的问题,使用户能够详细监控系统行为并实时诊断问题。 在调试过程中,DTrace 不会影响正在研究的应用程序的运行,也不会以任何方式影响其性能,这使您可以即时组织对正在运行的系统的分析。 DTrace 的优势之一是高级 D 语言,类似于 AWK,在其中创建跟踪脚本比使用提供的工具通过 C、Python 和 Lua 以及外部库编写 eBPF 处理程序要容易得多。
Oracle 的工程师也在致力于为 GCC 创建 eBPF 后端,并且已经发布了
除了字节码生成后端之外,建议的 GCC 补丁还包括用于 eBPF 的 libgcc 端口和用于生成 ELF 文件的工具,从而可以使用内核提供的加载器在 eBPF 虚拟机中执行代码。 目前,C 语言的代码可以翻译为字节码(并非所有语言功能都可用),但将来预计会扩展可用的 C 语言功能,添加对其他语言的支持,创建模拟器,以及添加 GCC 支持,以便在不加载到内核的情况下调试 eBPF 程序。
来源: opennet.ru