SystemTap

什么是system Tap ?

SystemTap 提供环境用来获得更多关于内核几乎所有组件的信息,用以被进一步分析。SystemTap也可以被当作一种工具,为用户研究和监控内核详情提供便利。

运行system tap需要些什么 ?

- 需要如下组件包 :

  • kernel-debuginfo

  • kernel-debuginfo-common

  • kernel-devel

  • systemtap-runtime

  • gcc

如何运行 SystemTap ?

SystemTap脚本通过stap命令运行。stap 可以从标准输入或文件运行 SystemTap。

要运行systemstap,用户需要root权限。要让没有root访问权限的用户运行 SystemTap,需要把他们添加到如下的用户组之一 : "stapdev" , "stapusr"

SystemTap 如何工作 ?

它以如下方式工作:

  1. 首先,SystemTap检查已有公用tapset库对应的脚本。 然后,SystemTap将添加所有本地tapsets.

  1. SystemTap将把脚本翻译成C,再通过系统的C编译器来生成内核模块。

  2. SystemTap 加载该模块,并使能脚本中所有的probes(包括events 和 handlers) 。

  3. 当这些 events 发生时,对应的 handlers被执行。

  4. 一旦 systemTap 会话终止,probes被关闭 ,同时该内核模块被卸载。

总的来讲,当我们运行systemtap时, systemtap 通过脚本构建一个内核模块,并将其加载到内核,之后,内核允许它直接从内核抽取数据。

获取更多信息请参考 : http://sourceware.org/systemtap/langref/SystemTap_overview.html

SystemTap

What is system Tap ?

SystemTap provides environment to get more information on almost any component within the kernel so that it may be further analysed. OR SystemTap is tool which provides facility to user to study and monitor the activities of the kernel in detail.

What we need to run system tap ?

- Need below group of packages to run system tap in system :

  • kernel-debuginfo

  • kernel-debuginfo-common

  • kernel-devel

  • systemtap-runtime

  • gcc

How to run SystemTap ?

SystemTap scripts are run through the command stap. stap can run SystemTap scripts from standard input or from file.

To run systemstap user need root privileges, not all users can run systemstap. To allow secondary users to run SystemTap without root access need to add them toone of these user groups : "stapdev" , "stapusr"

How SystemTap works ?

It runs in following fashion :

  1. First, SystemTap checks the script against the existing tapset library for any tapsets used. SystemTap will then add any located tapsets with their corresponding definitions in the tapset library.

  1. SystemTap then translates the script to C, running the system C compiler to create a kernel module from it.

  2. SystemTap loads the module, then enables all the probes(events and handlers) in the script.

  3. As the events occur, their corresponding handlers are executed.

  4. Once the systemTap session is terminated, the probes are disabled, and the kernel module is unloaded.

In short, When we run systemtap, systemtap builds a kernel module out of that script and then loads the module into the kernel. Once this done kerenl allow it to extract specified data directly from kernel.

To get more information on system tap refer below link : http://sourceware.org/systemtap/langref/SystemTap_overview.html

https://kernelnewbies.org/SystemTap

[译] SystemTap的更多相关文章

  1. RxJS + Redux + React = Amazing!(译一)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...

  2. Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新

    因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...

  3. RxJS + Redux + React = Amazing!(译二)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...

  4. [systemtap手记]debian体系安装过程

    Debian体系,本人测试用机 Ubuntu 11.10 uname -r 查看原本的内核版本为 3.0.0-12-generic 第一步: 安装systemtap包 $ sudo apt-get i ...

  5. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

  6. CSharpGL(31)[译]OpenGL渲染管道那些事

    CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...

  7. [译]基于GPU的体渲染高级技术之raycasting算法

    [译]基于GPU的体渲染高级技术之raycasting算法 PS:我决定翻译一下<Advanced Illumination Techniques for GPU-Based Volume Ra ...

  8. Entity Framework 6 Recipes 2nd Edition(9-4)译->Web API 的客户端实现修改跟踪

    9-4. Web API 的客户端实现修改跟踪 问题 我们想通过客户端更新实体类,调用基于REST的Web API 服务实现把一个对象图的插入.删除和修改等数据库操作.此外, 我们想通过EF6的Cod ...

  9. Entity Framework 6 Recipes 2nd Edition(10-1)译->非Code Frist方式返回一个实体集合

    存储过程 存储过程一直存在于任何一种关系型数据库中,如微软的SQL Server.存储过程是包含在数据库中的一些代码,通常为数据执行一些操作,它能为数据密集型计算提高性能,也能执行一些为业务逻辑. 当 ...

随机推荐

  1. FreeMarker缓存处理

    FreeMarker 的缓存处理主要用于模版文件的缓存,一般来讲,模版文件改动不会很频繁,在一个流量非常大的网站中,如果频繁的读取模版文件对系统的负担还是很重的,因此 FreeMarker 通过将模版 ...

  2. [转载]spring security 的 logout 功能

    原文地址:security 的 logout 功能">spring security 的 logout 功能作者:sumnny 转载自:http://lengyun3566.iteye ...

  3. mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)

    http://blog.csdn.net/yinjiabin/article/details/7489030 建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的 ...

  4. ReverseInteger

    public class ReverseInteger { public static int reverse(int x) { long ret = 0; //如果是个位数,直接返回. if(x/1 ...

  5. spring的事物回滚

    //默认spring只能在捕获到runtimeException时才会回滚, throw new RuntimeException("出现runtime异常"); } catch ...

  6. shell基础之书写需要用到的小工具

    一.简单介绍 下面介绍几个可能不太常用但是面试题经常会用用到的小工具: 命令:cut 作用:截取某一个字段 '-d' 后面跟分隔字符,把字段分割为若干个区间. '-c' 后面接的是第几个字符,也可以是 ...

  7. dp3--codevs2598 编辑距离问题

    dp3--codevs2598 编辑距离问题 一.心得 1.字符串相关问题dp的时候从0开始是个陷阱 二.题目 2598 编辑距离问题  时间限制: 1 s  空间限制: 128000 KB  题目等 ...

  8. SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1)

      SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1) 安装Quick Start工具 RML(Replay Markup Language)是MS ...

  9. Dom节点操作常用方法

    1.访问/获取节点 document.getElementById(id); //返回对拥有指定id的第一个对象进行访问 document.getElementsByName(name); //返回带 ...

  10. 使用log4j的邮件功能

    Log4j的邮件功能能够为我们做这样的事情----当程序运行完的时候,或者正在运行也是可以的,它将程序的日志通过邮件的方式发到你的邮箱上. 这样,对于程序运行的控制就不用每次都跑到机器上去看日志文件这 ...