Background这段时间的工作涉及x86 CPU的早期启动,参与了几个与此有关的bugfix,涉及到的问题: 在没有日志信息的情况下,怎么利用寄存器的状态确定CPU运行到了哪种状态 smp init / shutdown的细节 INIT, SIPI对CPU的影响 kexec-tools载入im ...
eBPF系列四:eBPF与CO-RE
迫于Linux eBPF文档过少,我边学习边把对其的理解记录下来,供后来者参考。本文是eBPF系列的第四篇:eBPF与CO-RE。 若对Linux tracing技术不清晰,可参考前置篇the Overview of Linux Tracing Tools 若对eBPF的工作流程不清晰,可参考eB ...
eBPF系列三:eBPF map
迫于Linux eBPF文档过少,我边学习边把对其的理解记录下来,供后来者参考。本文是eBPF系列的第三篇:eBPF map。 若对Linux tracing技术不清晰,可参考前置篇the Overview of Linux Tracing Tools 若对eBPF的工作流程不清晰,可参考eBPF ...
eBPF系列二:例子——openat2
迫于Linux eBPF文档过少,我边学习边把对其的理解记录下来,供后来者参考。本文是eBPF系列的第二篇:例子——openat2。 若对Linux tracing技术不清晰,可参考前置篇the Overview of Linux Tracing Tools 若对eBPF的工作流程不清晰,可参考e ...
eBPF系列一:Hello eBPF
迫于Linux eBPF文档过少,我边学习边把对其的理解记录下来,供后来者参考。本文是eBPF系列的第一篇:hello eBPF。 若对Linux tracing技术不清晰,可参考前置篇the Overview of Linux Tracing Tools Overview先写了一个eBPF例子 ...
Linux动态追踪技术一览
Note: 如果有理解错误的地方,欢迎指正,我的邮箱 river#vvl.me IntroductionLinux存在众多tracing tools,比如ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如tracepoint、trace even ...
Linux Kernel代码中的异常检测与日志类API
BackgroundLinux Kernel的代码中存在一些异常检测、日志输出相关的API,也存在用于debug字段的内核参数。本文聚焦: 编译时用于静态检查API的种类与作用 运行时日志输出类的API与相关的内核参数 内核参数kernel.print与启动参数loglevel / quiet / ...
一个HTTP代理与Linux下TCP透明代理的演示
TheoryHTTP Proxy有关原理,这里HTTP 代理原理及实现(一)、HTTP 代理原理及实现(二)描述得很清楚,总结如下: HTTP代理分为两类 普通代理:Web代理服务器扮演中间人角色,对于连接到它的客户端它是服务端,对于要连接的服务端它是客户端 隧道代理:通过Web代理服务器用隧道方 ...
Linux下的wait()
Background写了点代码,用于测试开启seccomp机制下的系统调用是否正常工作,思路很简单——先创建子进程,再执行系统调用测试用例,通过使用测试用例返回的errno打印测试用例错误信息,考虑到非测试系统调用的报错,决定返回-errno。核心代码如下: // main function#def ...