1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace architecture简介

DTrace architecture(结构图)如下所示:

architecturearchitecture1

最上面是DTrace consumer程序,它们是运行在user-mode(用户态)的程序,并且使用libdtrace.so作为和DTrace driver打交道的接口。平时我们在命令行运行的dtrace命令其实就是一个DTrace consumer程序。

libdtrace.so的一个核心模块就是D脚本语言的编译器,它会把DTrace脚本或是命令行翻译成一种byte-code(字节码)程序。这些程序包含了和probe(探针)绑定的predicate(断言)和action(动作)。DTrace kernel framework会提供一个类似于虚拟机的环境去运行这些byte-code程序。

DTrace provider提供和管理probe。在D程序运行时,由DTrace kernel framework根据程序通知DTrace provider激活相应的probe,并且把需要收集的数据返回给DTrace consumerD程序终止时,DTrace provider会使被激活的probe失效,恢复到之前的状态。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.