awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
eunomia-bpf avatar

eunomia-bpf/bpf-developer-tutorial

0
View on GitHub↗
4,145 estrellas·586 forks·C·MIT·8 vistaseunomia.dev/tutorials↗

Bpf Developer Tutorial

Este proyecto es un recurso educativo que proporciona un tutorial de desarrollo integral para escribir y cargar programas eBPF utilizando C, Go y Rust dentro del kernel de Linux. Sirve como una guía técnica para desarrollar lógica personalizada para ejecutar directamente en el kernel.

Los materiales cubren dominios especializados incluyendo observabilidad y rastreo del kernel, implementación de seguridad para detección de intrusiones e ingeniería de red de alto rendimiento para filtrado de paquetes y balanceo de carga. También incluye manuales dedicados para el rastreo del kernel de Linux y el uso de kprobes, uprobes y tracepoints.

El proyecto abarca una amplia gama de áreas de capacidad, como instrumentación del kernel, monitoreo y observabilidad del sistema, análisis de red y aplicación de seguridad. Además, se extiende a la depuración a nivel de hardware para GPUs y controladores, así como a la manipulación de sistemas de bajo nivel y gestión de recursos.

Features

  • eBPF Program Development - Provides a comprehensive tutorial on writing and loading eBPF programs using C, Go, and Rust.
  • Learning Resources - Provides a comprehensive development tutorial for writing and loading eBPF programs using C, Go, and Rust.
  • Kernel Tracing Manuals - Includes a detailed manual for implementing kprobes, uprobes, and tracepoints to capture real-time system events.
  • Security Implementation Guides - Provides a handbook for developing security policies and intrusion detection via system call interception.
  • Kernel Event Hooks - Provides interfaces for binding programs to kprobes and tracepoints to execute logic during specific system events.
  • Load Balancing - Distributes incoming network traffic across backend servers by processing packets at the driver level.
  • Network Traffic Engineering - Offers tutorials on implementing high-performance packet filtering, load balancing, and traffic redirection in the kernel.
  • Safe Packet Header Parsers - Implements bounds-checked parsing of Ethernet and IP headers from raw packet data using safe pointer arithmetic.
  • XDP Packet Processing - Implements high-performance packet processing and load balancing at the network interface driver level using XDP.
  • eBPF Socket Filters - Implements eBPF programs attached to network sockets to restrict or prioritize traffic based on custom logic.
  • Socket Redirections - Enables forwarding of network packets directly between sockets using rule maps to bypass the standard kernel network stack.
  • Traffic Distribution - Routes incoming packets to multiple backend servers by hashing source IP and port addresses.
  • Architecture-Agnostic Bytecode Execution - Translates a standardized instruction set into machine code for architecture-agnostic performance within the kernel.
  • CPU Execution Analysis - Samples processor execution and stack traces to identify CPU bottlenecks and function-level hotspots.
  • CPU Schedulers - Implements custom CPU scheduling algorithms and task dispatching logic directly within the kernel.
  • Completely Fair Schedulers - Tracks task execution time relative to weights to ensure fair resource distribution in the kernel.
  • Function Duration Measurement - Calculates function execution time distributions using nanosecond timestamps at function entry and exit.
  • GPU Driver Debugging - Traces proprietary drivers and GPU pipelines to analyze memory allocation, scheduling, and interrupts.
  • Bytecode Safety Verification - Validates bytecode properties and memory access before execution to ensure kernel stability and prevent crashes.
  • Learning Resources - Offers a dedicated course on implementing packet filtering, load balancing, and traffic redirection using eBPF.
  • Kernel Function Instrumentation - Demonstrates attaching custom logic to static kernel instrumentation points to monitor system events.
  • eBPF Context Memory Copiers - Implements safe memory copying from kernel structures into eBPF context to prevent system crashes.
  • Kernel State Maps - Utilizes shared hash maps and arrays to store and retrieve persistent state across program executions.
  • Unprivileged Kernel Instrumentation - Executes kernel monitoring logic using probes and tracepoints from an unprivileged userspace context.
  • Userspace Bytecode Interpretation - Runs eBPF programs within a userspace process using interpreters or JIT compilers for testing.
  • Userspace Application Tracing - Captures function calls and application state in user-space using a combination of uprobes and USDT.
  • Userspace Memory Verification - Validates that kernel programs correctly access userspace data structures using type information.
  • eBPF Bytecode Compilers - Transforms source code into eBPF bytecode files and packs them for kernel loading.
  • Bytecode Loading Toolchains - Provides specialized toolchains to compile custom logic into bytecode and load it into the kernel.
  • BPF Program Chaining - Controls packet flow through a sequence of eBPF programs using tail-call chaining and specific return codes.
  • Network Traffic Filtering - Provides capabilities for inspecting and modifying packet data at traffic control points to implement firewall-style filtering.
  • Runtime Security Enforcement - Teaches real-time blocking and alerting of security-significant system events and malicious network traffic.
  • Kernel Task - Buffers tasks in kernel-space queues to coordinate CPU workload assignment.
  • eBPF-Based Tracing - Uses eBPF-based tracing to capture predefined static tracepoints (USDT) in user-space programs.
  • System Call Tracing - Intercepts kernel system calls to track arguments and return values via a trace pipe.
  • Kernel Event Observability - Provides comprehensive guides on monitoring system events by attaching eBPF programs to kernel hooks.
  • Learning Resources - Ships a comprehensive guide for monitoring system calls and hardware events to analyze kernel behavior.
  • Dynamic User-Space Probes - Attaches dynamic probes to compiled binaries to monitor function calls without modifying source code.
  • Function IO Tracing - Demonstrates logging function input arguments and recording task durations by attaching probes to kernel functions.
  • Scheduler Performance Metrics - Collects periodic statistics on CPU core states to evaluate the effectiveness of the kernel scheduler.
  • Zero-Copy Memory Mappings - Creates sparse memory regions shared between kernel and userspace to eliminate expensive system calls.
  • Kernel-Level Complex Data Structures - Enables the construction of advanced data structures like linked lists and graphs using raw pointers in kernel memory.
  • Interrupt-Driven Caching - Serves requests from a cache during hardware interrupts to increase network packet throughput.
  • Kernel-Userspace Shared Memory - Creates sparse memory regions shared between kernel and userspace to avoid expensive system calls.
  • eBPF-Based CPU Profilers - Samples kernel and user-space stack traces at regular intervals to identify execution hotspots.
  • In-Kernel Event Aggregations - Implements the aggregation of occurrences into kernel maps and histograms for efficient performance analysis.
  • Flamegraph Generators - Formats combined processor and graphics trace data into folded stack files for flamegraph visualization.
  • Off-CPU Latency Analyzers - Measures thread wait times between scheduler events to identify blocking bottlenecks.
  • Kernel Event Correlation - Links data across separate kernel entry and exit events by maintaining state in hash maps.
  • CPU Scheduling Event Recorders - Captures fine-grained kernel scheduling events such as context switches and runnable transitions for analysis.
  • In-Kernel Event Filtering - Implements in-kernel event filtering using global variables passed from user-space to reduce data noise.
  • Packet Capture Implementations - Implements kernel-level interception and recording of raw TCP packet header information.
  • Hardware-Accelerated Packet Forwarding - Translates bytecode into parallelized instructions for execution on hardware-based FPGA network cards.
  • Malformed Packet Injection - Transmits arbitrary ethernet frames and malformed packets to verify system handling and stability.
  • Round-Trip Time Measurement - Measures network round-trip time and aggregates latency data into histograms for connection analysis.
  • Per-Connection Latency Measurements - Calculates round-trip time for individual TCP connections by tracing network stack events.
  • Socket Lifecycle Monitoring - Monitors and restricts how applications handle connections by hooking socket-level events.
  • TCP Connection Status Monitoring - Observes and tracks TCP state transitions using version-aware kernel programs.
  • eBPF Traffic Analyzers - Analyzes connection states and HTTP traffic by attaching eBPF and XDP programs to network interfaces.
  • Userspace Packet Processing - Integrates network traffic filtering logic within userspace data planes using kernel-assisted eBPF programs.
  • BPF Filesystem Mount Delegations - Controls available BPF commands and map types via a bitmask-based delegation policy.
  • Device Access Controls - Restricts hardware access by monitoring and intercepting device open, read, and write requests.
  • Hardware Trace Correlation - Synchronizes processor stack traces and graphics activity records using shared timestamps for a unified view.
  • I/O Trace Analysis - Includes tutorials on monitoring block-level storage operations to track the size and frequency of I/O requests.
  • In-Kernel Storage Logic - Executes storage logic and index lookups directly within kernel drivers to reduce system stack overhead.
  • eBPF Lifecycle Management - Manages the lifecycle of eBPF programs across a cluster using a privileged daemon for loading and unloading.
  • Object Persistence - Allows pinning eBPF programs and maps to the filesystem to maintain persistence independently of the loader.
  • eBPF Program Loading Delegations - Uses scoped delegation tokens to load eBPF programs without requiring full administrative privileges.
  • Execution Ordering - Defines the sequence and execution order of multiple eBPF programs along a network data path.
  • Userspace Program Orchestration - Controls kernel program execution and configures global variables from userspace to manage event notifications.
  • Arena-Based Memory Management - Implements arena-based memory management using reference counting to optimize kernel performance.
  • Variable-Length Memory Validation - Provides techniques for processing memory regions of dynamic sizes using handles to ensure safe bounds access.
  • Heap Allocation Call Stack Recorders - Demonstrates recording full call stacks during allocation events to pinpoint memory leaks in the kernel.
  • Argument Modification - Overwrites user space memory during system calls to redirect file access and change kernel request behavior.
  • Kernel Object Manipulations - Alters system call arguments or hides process information by manipulating data flowing through the kernel.
  • Asynchronous Kernel Data Streaming - Transfers captured kernel data to applications asynchronously using high-performance memory buffers.
  • Interrupt Execution Analysis - Measures the timing, distribution, and performance of hardware and software interrupt handlers within the kernel.
  • Kernel Extensions - Adds custom kernel behavior through specialized functions and schedulers without modifying core source code.
  • Custom Kfunc Extensions - Provides guidance on defining new kernel functions within modules to implement specialized operations and optimizations.
  • Kernel Object Iteration - Traverses internal kernel data structures via iterators to filter and format data for userspace export.
  • Dynamic Subsystem Updating - Implements the replacement of kernel function pointers with eBPF programs to update logic without requiring system reboots.
  • Kernel Structure Tracing - Allows dereferencing and inspecting internal kernel data structures using raw pointers and type information.
  • User-Space Argument Extraction - Extracts arguments and return values from user-space functions using kernel-level probes.
  • Library Function Hooking - Intercepts function calls within shared libraries via uprobes to aggregate data without restarting processes.
  • Perf Event Array Streaming - Streams kernel events to userspace applications via perf event arrays and ring buffers.
  • Process Execution Capture - Records process and user identifiers by intercepting system calls responsible for process execution.
  • Shared Memory Management - Implements zero-copy shared memory regions and complex data structures using dynamic pointers.
  • Traffic Control Interfaces - Provides utilities for manipulating kernel-level networking rules and traffic control settings using link-based semantics.
  • User-Kernel Control Flow Correlation - Links high-level user API calls to corresponding low-level kernel ioctl implementations to reveal full control flow.
  • Userspace to Kernel Data Transfer - Passes messages from user space to kernel mode using a single-producer consumer model.
  • Stateful Filtering - Enforces security policies by maintaining filter state across multiple system call interpositions.
  • Handshake Latency Analysis - Analyzes encryption establishment time by tracking the start and end of secure connection handshakes.
  • Security Policy Enforcers - Implements access control and threat detection using security hooks and delegated privileges within the kernel.
  • IP Blocking Middleware - Intercepts connection requests to block network traffic to specific forbidden IP addresses.
  • ML-Based Detection - Runs machine learning models directly in the kernel to classify and detect malicious network flows.
  • Goroutine Execution Tracing - Intercepts goroutine state transitions in Go programs using user-level probes to reveal concurrency issues.
  • Task Execution Monitoring - Tracks the execution of the exec family of functions to monitor process spawning and execution flow.
  • Device-Specific Event Filtering - Implements the ability to restrict I/O statistics tracking to specific hardware device identifiers.
  • Driver Operation Tracing - Implements probes for kernel module functions to monitor execution flow and identify performance hot paths in drivers.
  • Kernel Function Call Monitoring - Intercepts kernel function entry and exit points to capture arguments for auditing and tracing purposes.
  • Latency Distribution Histograms - Provides histogram-based visualization of process scheduling delays to analyze latency distributions.
  • Graphics API Tracing - Records sequences of graphics commands by intercepting runtime calls via shared library injection.
  • Kernel Ring Buffer Streams - Transfers captured kernel data to user-space asynchronously using high-performance memory ring buffers.
  • Probe Discovery Utilities - Provides utilities for discovering available kernel and user-space instrumentation points using wildcard searches.
  • Process Lifecycle Tracing - Monitors the spawning and termination of processes to calculate resource statistics and durations.
  • Network Traffic Analysis - Processes packets and monitors connection states to implement kernel-level load balancing and traffic control.
  • Kernel Traffic Sketching - Implements compact, probabilistic data structures in the kernel to summarize high-volume network traffic efficiently.
  • Disk I/O Performance Analysis - Provides analysis of disk I/O patterns by calculating the ratio of random to sequential requests via sector tracking.
  • Process Resource Statistics - Gathers real-time metrics on CPU, memory, and resource consumption during the process termination phase.
  • Driver Interaction Monitoring - Monitors operations between the kernel and hardware drivers to debug device activity and energy consumption.
  • Scheduler Latency Analyzers - Quantifies the time between a process becoming runnable and its actual execution on a CPU.
  • Scheduler Performance Monitoring - Aggregates task queue statistics in userspace to monitor real-time kernel scheduling behavior.
  • SSL TLS Data Capture - Implements interception of plaintext data from SSL/TLS libraries using probes for observability.
  • Process Duration Monitoring - Calculates the total elapsed time from the start to the termination of operating system processes.
  • Execution Stack Samplers - Samples kernel and user-level stack traces at regular intervals to identify processor bottlenecks.
  • Kernel Stack Trace Capture - Records full user-space call chains with nanosecond precision using kernel probes.
  • Flame Graph Generators - Transforms kernel stack trace data into interactive flame graphs to visualize execution hotspots.
  • Wall-Clock Flame Graphs - Generates normalized visualizations that merge processor samples and blocking time into wall-clock flame graphs.
  • Memory Leak Detection - Tracks allocation and deallocation events in the kernel to identify memory blocks that are not freed.
  • Isolated Program Testing - Validates BPF program logic using synthetic inputs without sending actual network traffic.
  • Synthetic Traffic Generators - Injects synthetic packets directly into the kernel fast path to benchmark network stack stability.

Historial de estrellas

Gráfico del historial de estrellas de eunomia-bpf/bpf-developer-tutorialGráfico del historial de estrellas de eunomia-bpf/bpf-developer-tutorial

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Bpf Developer Tutorial

Proyectos open-source similares, clasificados según cuántas características comparten con Bpf Developer Tutorial.
  • aya-rs/ayaAvatar de aya-rs

    aya-rs/aya

    4,321Ver en GitHub↗

    Aya is a Rust-native framework for writing, compiling, and loading eBPF programs into the Linux kernel. It provides a complete development environment that eliminates the need for a C toolchain or libbpf, allowing developers to work entirely within the Rust ecosystem. The framework manages the full lifecycle of eBPF programs, including async runtime integration, CO-RE BTF resolution for kernel version portability, ELF-based program loading, and safe kernel memory access. The framework distinguishes itself through its pure Rust compilation pipeline, which compiles Rust source code directly int

    Rustbpfebpfobservability
    Ver en GitHub↗4,321
  • cilium/tetragonAvatar de cilium

    cilium/tetragon

    4,753Ver en GitHub↗

    Tetragon is an eBPF-based runtime security and observability toolset designed for Linux and Kubernetes environments. It functions as a security policy manager, observability agent, and enforcement engine that hooks into kernel functions and tracepoints to detect privilege escalation, container escapes, and unauthorized system activity. The project distinguishes itself through its ability to perform real-time, in-kernel enforcement, allowing it to synchronously terminate malicious processes or modify function return values before a system call completes. It provides deep Kubernetes integration

    C
    Ver en GitHub↗4,753
  • cilium/ebpfAvatar de cilium

    cilium/ebpf

    7,529Ver en GitHub↗

    This project is a Go library and runtime for loading and managing eBPF programs and maps. It provides a bytecode loader and kernel interface to inject instructions into kernel hooks for system-level execution and observability across both Linux and Windows operating systems. The library features a relocation engine and tooling to ensure program compatibility across different kernel versions and distributions. It supports portable deployment by embedding compiled objects for multiple CPU architectures into a single binary and provides the ability to load signed system drivers on Windows. The

    Gobtfebpfgo
    Ver en GitHub↗7,529
  • frrouting/frrAvatar de FRRouting

    FRRouting/frr

    4,184Ver en GitHub↗

    FRRouting is an internet routing suite comprising a collection of daemons that implement standard IPv4 and IPv6 routing protocols. It provides a protocol engine for BGP, an EVPN network virtualizer, and an MPLS label manager, alongside a gRPC routing interface for programmatic configuration and data retrieval using YANG models. The suite is distinguished by its extensibility through a Lua scripting framework that executes custom scripts at internal hooks to modify routing behavior. It also features a transactional configuration model that uses separate candidate and running databases to ensur

    Cbabelbgpeigrp
    Ver en GitHub↗4,184
Ver las 30 alternativas a Bpf Developer Tutorial→

Preguntas frecuentes

¿Qué hace eunomia-bpf/bpf-developer-tutorial?

Este proyecto es un recurso educativo que proporciona un tutorial de desarrollo integral para escribir y cargar programas eBPF utilizando C, Go y Rust dentro del kernel de Linux. Sirve como una guía técnica para desarrollar lógica personalizada para ejecutar directamente en el kernel.

¿Cuáles son las características principales de eunomia-bpf/bpf-developer-tutorial?

Las características principales de eunomia-bpf/bpf-developer-tutorial son: eBPF Program Development, Learning Resources, Kernel Tracing Manuals, Security Implementation Guides, Kernel Event Hooks, Load Balancing, Network Traffic Engineering, Safe Packet Header Parsers.

¿Qué alternativas de código abierto existen para eunomia-bpf/bpf-developer-tutorial?

Las alternativas de código abierto para eunomia-bpf/bpf-developer-tutorial incluyen: aya-rs/aya — Aya is a Rust-native framework for writing, compiling, and loading eBPF programs into the Linux kernel. It provides a… cilium/tetragon — Tetragon is an eBPF-based runtime security and observability toolset designed for Linux and Kubernetes environments.… cilium/ebpf — This project is a Go library and runtime for loading and managing eBPF programs and maps. It provides a bytecode… frrouting/frr — FRRouting is an internet routing suite comprising a collection of daemons that implement standard IPv4 and IPv6… inspektor-gadget/inspektor-gadget — Inspektor Gadget is an eBPF observability toolset and program framework designed for tracing Linux systems and… acassen/keepalived — Keepalived is a high availability manager and virtual IP failover tool that ensures continuous service availability.…