mirror of
https://github.com/eunomia-bpf/bpf-developer-tutorial.git
synced 2026-02-03 18:24:27 +08:00
implement opensnoop and uprobe
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<!-- TOC -->
|
||||
|
||||
- [eBPF 入门开发实践指南一:介绍 eBPF 的基本概念、常见的开发工具](#ebpf-入门开发实践指南一介绍-ebpf-的基本概念常见的开发工具)
|
||||
- [1. 什么是eBPF](#1-什么是ebpf)
|
||||
- [1. 为什么会有 eBPF 技术?](#1-为什么会有-ebpf-技术)
|
||||
- [1.1. 起源](#11-起源)
|
||||
- [1.2. 执行逻辑](#12-执行逻辑)
|
||||
- [1.3. 架构](#13-架构)
|
||||
@@ -18,15 +18,11 @@
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
## 1. 什么是eBPF
|
||||
## 1. 为什么会有 eBPF 技术?
|
||||
|
||||
Linux内核一直是实现监控/可观测性、网络和安全功能的理想地方,
|
||||
但是直接在内核中进行监控并不是一个容易的事情。在传统的Linux软件开发中,
|
||||
实现这些功能往往都离不开修改内核源码或加载内核模块。修改内核源码是一件非常危险的行为,
|
||||
稍有不慎可能便会导致系统崩溃,并且每次检验修改的代码都需要重新编译内核,耗时耗力。
|
||||
Linux内核一直是实现监控/可观测性、网络和安全功能的理想地方,但是直接在内核中进行监控并不是一个容易的事情。在传统的Linux软件开发中,实现这些功能往往都离不开修改内核源码或加载内核模块。修改内核源码是一件非常危险的行为,稍有不慎可能便会导致系统崩溃,并且每次检验修改的代码都需要重新编译内核,耗时耗力。
|
||||
|
||||
加载内核模块虽然来说更为灵活,不需要重新编译源码,但是也可能导致内核崩溃,且随着内核版本的变化
|
||||
模块也需要进行相应的修改,否则将无法使用。
|
||||
加载内核模块虽然来说更为灵活,不需要重新编译源码,但是也可能导致内核崩溃,且随着内核版本的变化,模块也需要进行相应的修改,否则将无法使用。
|
||||
|
||||
在这一背景下,eBPF技术应运而生。它是一项革命性技术,能在内核中运行沙箱程序(sandbox programs),而无需修改内核源码或者加载内核模块。用户可以使用其提供的各种接口,实现在内核中追踪、监测系统的作用。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user