DTrace architecture
(结构图)如下所示:
最上面是DTrace consumer
程序,它们是运行在user-mode
(用户态)的程序,并且使用libdtrace.so
作为和DTrace driver
打交道的接口。平时我们在命令行运行的dtrace
命令其实就是一个DTrace consumer
程序。
libdtrace.so
的一个核心模块就是D
脚本语言的编译器,它会把DTrace
脚本或是命令行翻译成一种byte-code
(字节码)程序。这些程序包含了和probe
(探针)绑定的predicate
(断言)和action
(动作)。DTrace kernel framework[......]