pt_regs小笔记struct pt_regs用以在堆栈中保存异常发生时的现场寄存器信息,其具体定义与CPU架构相关。此外使用eBPF的uprobe和uretprobe时,上下文信息就是使用该结构体类型。 关于使用eBPF对pt_regs进行操作需要注意的是:你永远不能修改寄存器的值,但是如果寄存器的值是一个对象的地址,你可以顺着地址去修改那块地址的内容~ 1. 上下文切换与pt_regs: pt_re 2023-05-03 计算机基础 > 操作系统 > Linux > 内核
Linux内核调试和Perf Tracing注意: /sys/kernel/debug/tracing/tracing_on不仅是用来控制 ftrace这个工具的启用与否,还会控制kprobe、uprobe等内核功能,因此ftrace的使用不应频繁控制tracing_on的开关(echo 1或者echo 0进去),而应当通过echo "nop" > current_tracer的方式关闭ftrace 1. 内 2023-05-02 计算机基础 > 操作系统 > Linux > 内核
内核源码-/include/net/inet_sock.h1. 网络序与字节序: inet_sock.h比较值得关注的内容是inet_sock: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465/** struct inet_sock - representat 2023-04-26 计算机基础 > 操作系统 > Linux > 内核源码 > net
内核相关资料整理前面对eBPF进行了简单了解,但是eBPF使用kprobes和tracepoint时都需要引用到内核中的函数(如syscall)或者tracepoint。如果直接看内核源码未免难度过于高,因此作为一个eBPF或者内核新手,先对相关资料进行整理。【持续更新】 1. 系统调用: 注意,kprobe不只是能绑定在syscall上,几乎有所内核中的函数都能绑定~ Linux的系统调用数量较多,已 2023-04-26 计算机基础 > 操作系统 > Linux > 内核
项目问题:文件描述符限制1. 背景: 项目需要搭建ElasticSearch、Logstash、Filebeat、Kibana、Prometheus等工具进行微服务系统的性能监控,此外我们额外构建了一个后台,从ElasticSearch中读取保存的监控数据,绘制到前端页面中。整套微服务系统和检测工具都部署在minikube单机集群中,而前后端系统开发过程中使用另一台主机,后端要想访问单机集群中的ES数据库,需要对ES数 2023-04-17 项目总结 > 遇到的问题
Linux 进程调试1. Linux进程的Core Dump机制 当Linux进程在运行过程中出现异常终止或崩溃,系统会将程序当时的状态记录下来,保存在一个core文件中,这种机制称为Core Dump,又叫"核心转储"。core文件中包含了程序异常时的内存数据、寄存器以及运行堆栈等信息,开发人员可以使用调试工具来快速定位程序异常原因。 顺便说一句,在Linux中如果想看一个运行中进程的堆 2023-04-13 计算机基础 > 操作系统 > Linux
(二)eBPF的Hello World1. 准备工作 这一章的主要内容是用eBPF写一个Hellow World程序,因此就需要开始一些简单的环境搭建工作,作为后续深入的准备。 首先为了更好的上手eBPF,我们从BCC(BPF Compiler Collection)入手,这个工具提供了eBPF的Python Binding。 安装方式可以参考仓库中给出的指南,注意,目前只推荐通过源码的方式进行安装。 2. Hello Wor 2023-04-11 计算机基础 > 操作系统 > Linux > eBPF
(一)什么是eBPF?为什么eBPF非常重要?现在将会开始一个较为长期的的笔记系列,来记录eBPF的学习过程。这系列的笔记并不会把eBPF的历史、eBPF的概念等内容抄上来复述一遍,如果遇到不懂的概念还需要自己主动去查找资料去思考和学习,带有思考的阅读价值可能会更大一些。这一系列的笔记主要是参考《Learning eBPF》这本官方给出的电子书,当这一系列结束时,这本书也就阅读完毕,希望写者与读者都能成为eBPF的beginner水平~ 2023-04-11 计算机基础 > 操作系统 > Linux > eBPF
Skip List(跳表)跳表 跳表在很多数据结构的书中都不会提到,但是由于Redis的zset底层有时是基于跳表实现的,因此跳表这个数据结构在面试时成为一个有概率被问起的热点问题。 In computer science, a skip list (or skiplist) is a probabilistic data structure that allows O(logn)O(logn)O(logn) aver 2023-04-08 算法和数据结构 > 数据结构
面试高频题:海量数据中找到具有某个特征的数字题目描述:有一个1G大小的文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词 思路: 这类面试题有个非常统一的特点,要处理的文件非常大而内存非常小,基本都需要用到归并思想,但是如何归并要视场景的不同而变化 在分而治之的背景下,统计词频首先需要解决“同步”和“通信”问题,或者是使用某种预处理能够避免不同子问题之间有交叉。一种想法是将不同数 2023-04-03 #面经