15 dépôts
Custom code executed within secure kernel sandboxes to enable advanced system observability.
Distinct from Kernel Development: Distinct from Kernel Development: focuses on observability and tracing rather than building kernel images.
Explore 15 awesome GitHub repositories matching operating systems & systems programming · Kernel Observability Programs. Refine with filters or upvote what's useful.
BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It functions as a performance analysis tool and debugging utility to capture system events, measure kernel latency, and provide network observability. The project distinguishes itself by providing a build system that integrates with LLVM to compile C-like code into BPF bytecode at runtime. It utilizes BPF Type Format data for relocations to maintain cross-kernel compatibility and extracts kernel headers to ensure the generated programs match the specific kernel version. The toolkit co
Develops and executes BPF programs for advanced system observability and kernel analysis.
FlameGraph is a performance profiling and visualization toolkit designed to identify bottlenecks in software execution. It functions as a processing engine that transforms raw stack trace samples into interactive, hierarchical diagrams. By representing aggregated execution frequency as nested rectangles, the tool allows developers to visualize hot code paths and analyze system behavior across both kernel and user-space environments. The project distinguishes itself through its ability to perform differential profile analysis, which highlights performance regressions or improvements by compari
Runs custom code within a secure kernel sandbox to enable advanced observability without modifying kernel source.
This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level implementation of kernel engineering, focusing on the fundamental construction of an OS from the hardware level up. The system is distinguished by its comprehensive approach to ARM64 processor control, featuring a red-black tree task scheduler and a hierarchical page table system for virtual memory management. It implements a sophisticated privilege model that handles transitions between kernel and user modes, ensuring process isolation through address space splitting and exception level m
Provides a formatted print function via UART to display register values and variables for kernel troubleshooting.
Waydroid is a containerized mobile runtime that executes a full Android operating system directly on Linux desktop environments. By utilizing Linux kernel namespaces, it isolates the mobile environment while sharing the host kernel to provide native-like performance and hardware access for mobile applications. The project distinguishes itself through deep integration with the host system, bridging mobile display buffers to native desktop windows and translating host input events into mobile gestures. It enables multi-window management, allowing mobile applications to run alongside native desk
Checks the host system for required kernel features to ensure the underlying platform supports containerized mobile operating system execution.
bpftrace is a high-level eBPF tracing tool and kernel instrumentation framework for Linux. It provides a tracing language to instrument kernel and user-space events without recompiling the system, functioning as a dynamic system profiler and event aggregator. The project enables dynamic system tracing and Linux kernel observability by capturing tracepoints and dynamic probes in real time. It allows for kernel data inspection and runtime process debugging by accessing internal data structures and filtering specific process events. Its capability surface covers system performance analysis, inc
Provides advanced observability of the Linux kernel by capturing internal events and inspecting system state in real time.
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
Loads and compiles programs to run within the kernel for system-level observability, networking, and security.
Pixie is an open-source observability platform for Kubernetes that uses eBPF to automatically capture telemetry data from clusters without requiring any manual instrumentation or code changes. It functions as an eBPF telemetry collector, a continuous application profiler, a network traffic analyzer, and a scriptable telemetry query engine, all within a single Kubernetes-native tool. The platform distinguishes itself through several integrated capabilities. It continuously samples stack traces from compiled-language code to identify CPU performance bottlenecks, visualizing the results as inter
Deploys arbitrary bpftrace programs across a cluster and collects their output into queryable tables.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Covers writing, verifying, and attaching eBPF programs to kernel hooks for secure kernel extension.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Implements a pluggable driver framework for early UART console output during kernel boot.
This is the official documentation repository for Raspberry Pi hardware and software. It covers the complete range of Raspberry Pi single-board computers, the RP-series microcontrollers, and the Raspberry Pi operating system. The documentation provides reference material for setting up devices, configuring hardware, and using the system for tasks including AI inference, camera and video capture, embedded development, and remote access. The documentation covers the full boot chain from the GPU firmware and EEPROM bootloader through to kernel loading, with detailed guidance on boot configuratio
Documents initializing the RP1 UART for early boot message output on the header.
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
Loads compiled eBPF programs into the kernel and manipulates them from user-space.
Ce projet est une ressource éducative fournissant un tutoriel de développement complet pour écrire et charger des programmes eBPF en utilisant C, Go et Rust au sein du noyau Linux. Il sert de guide technique pour développer une logique personnalisée à exécuter directement dans le noyau. Les matériaux couvrent des domaines spécialisés, notamment l'observabilité et le traçage du noyau, l'implémentation de la sécurité pour la détection d'intrusion et l'ingénierie réseau haute performance pour le filtrage de paquets et l'équilibrage de charge. Il inclut également des manuels dédiés pour le traçage du noyau Linux et l'utilisation de kprobes, uprobes et tracepoints. Le projet englobe un large éventail de domaines de capacités, tels que l'instrumentation du noyau, la surveillance et l'observabilité du système, l'analyse réseau et l'application de la sécurité. Il s'étend en outre au débogage au niveau matériel pour les GPU et les pilotes, ainsi qu'à la manipulation système de bas niveau et à la gestion des ressources.
Provides a comprehensive tutorial on writing and loading eBPF programs using C, Go, and Rust.
m1n1 est un bootloader bas niveau pour le matériel Apple Silicon basé sur ARM64. Il sert d'outil de firmware et d'environnement d'expérimentation pour charger des noyaux externes et des systèmes d'exploitation non natifs. Le projet permet l'exécution de charges utiles binaires concaténées contenant des noyaux, des device trees et des ramdisks. Il fournit une plateforme pour l'expérimentation de firmware et le déploiement de noyaux personnalisés sur les puces Apple Silicon. Le système couvre l'abstraction matérielle bas niveau, incluant l'accès aux registres mappés en mémoire, la transmission de device trees et le bootloading par étapes. Il inclut également un débogage série via UART pour les journaux système et le dépannage.
Provides debug logging and command acceptance via the UART serial port for low-level troubleshooting.
Mezzano is a self-hosted operating system written entirely in Common Lisp. It employs a language-integrated kernel architecture where both the kernel and user-space applications execute within a single, unified high-level language runtime. The system is designed for both bare-metal environments, booting from physical external media, and as a guest operating system within virtual machine software. It implements symmetric multiprocessing to distribute computational workloads across multiple CPU cores. The environment includes capabilities for automated memory recovery via generational garbage
Analyzes running code through disassembly tools and interactive editors to observe system behavior.
Inspektor Gadget is an eBPF observability toolset and program framework designed for tracing Linux systems and debugging Kubernetes nodes. It provides a suite of tools to collect kernel-level telemetry and export system metrics via the OpenTelemetry standard. The project distinguishes itself by packaging inspection tools as OCI-compliant container images, allowing for standardized distribution and deployment across clusters and hosts. It employs a modular data processing pipeline that utilizes WebAssembly modules to transform and filter telemetry, and leverages Compile Once Run Everywhere for
Manages the loading and execution of eBPF bytecode within the Linux kernel from a userspace application.