天天看点

Linux系统小技巧(6):刀锋组合-strace和wireshark工具

Linux系统小技巧(6):刀锋组合-strace和wireshark工具
the system call is the fundamental interface between an application and the linux kernel. 系统调用是应用和内核之间的根本接口。

如果需要每个系统调用消耗的时间,可以增加-t选项

举个例子。下图就是通过时间戳,把包重传和线程的行为联系了起来。通过这一步,还可以把线程行为向业务逻辑映射,从业务层面上解释线程行为。

Linux系统小技巧(6):刀锋组合-strace和wireshark工具

但是,从捕捉到的系统调用分析进程执行路径,不掌握一部分常见的系统调用,肯定是不行的。那么,又那些系统调用我们需要掌握呢?

除此之外,还需要掌握30个左右的常见系统调用。我们以提问的方式,把这些系统调用列出来,供大家参考

Linux系统小技巧(6):刀锋组合-strace和wireshark工具

现在的工具,甚至是echo,因为跨平台、维持历史兼容性、各种选项支持等原因已经足够复杂。这里我们提供一个demo供大家实战。

这是个demo shell,大家可以按照需要编译之,而后使用strace追踪之。

比如,为了尽可能的能和源码对照,我们可以这么实验

实际运行的结果如下

我们也给出log.20541和log.20542的内容,供不能编译实验的同学使用

看看子进程(运行了ls命令)的strace日志

训练并且享受你的刀锋战队吧。

<a href="https://book.douban.com/subject/1768601/">the design of the unix operating system</a>

<a href="https://www.gitbook.com/book/haoozi/modern-operating-system/details">modern operating system 4th 中文版</a>

<a href="http://www.makelinux.net/kernel_map">linux内核交互图</a>

继续阅读