75 repository-uri
Resources and guides for building operating system kernels and bootloaders from scratch.
Distinguishing note: Focuses specifically on low-level kernel and bootloader implementation rather than general system administration or high-level OS utilities.
Explore 75 awesome GitHub repositories matching operating systems & systems programming · Kernel Development. Refine with filters or upvote what's useful.
Kernel-ul Linux este un nucleu de sistem de operare monolitic care gestionează resursele hardware, memoria și programarea proceselor pe diverse arhitecturi de calcul. Oferă un mediu standardizat, compatibil POSIX, pentru execuția aplicațiilor, menținând în același timp un framework modular de drivere care permite încărcarea și eliminarea dinamică a interfețelor hardware. Proiectul se distinge prin setul său de instrumente de concurență de înaltă performanță, care utilizează primitive de sincronizare fără blocare și mecanisme de tip read-copy-update pentru a gestiona accesul la date partajate în medii multi-core. Încorporează o suită cuprinzătoare de urmărire și instrumentare a kernel-ului care permite monitorizarea neintruzivă a evenimentelor de sistem, execuția funcțiilor și metricile de latență. Mai mult, kernel-ul impune garanții stricte de stabilitate a interfeței și urmărirea ciclului de viață pentru a asigura compatibilitatea inversă pentru aplicațiile dependente. Dincolo de identitatea sa de bază, sistemul include capabilități extinse pentru abstractizarea hardware, implementarea protocoalelor de rețea și aplicarea politicilor de securitate. Suportă cerințe de inginerie specializate prin gestionarea stării de alimentare, optimizări pentru sisteme embedded și procese de boot bazate pe firmware. Arhitectura dispune, de asemenea, de framework-uri de diagnosticare robuste pentru analiza memoriei, verificarea execuției sistemului și validarea modelelor de programare concurentă. Repository-ul sursă oferă un sistem complet de build pentru transformarea codului în imagini binare executabile, incluzând instrumente pentru selectarea funcționalităților kernel-ului și optimizarea configurației pentru a adapta output-ul la cerințe hardware specifice.
Implements dynamic module loading to allow runtime insertion and removal of drivers without system restarts.
This project provides a containerized virtualization engine that runs full Windows operating system instances within isolated containers. By acting as a cross-platform virtualization runtime, it enables the deployment of desktop environments on any host that supports standard container runtimes, ensuring consistent execution across diverse infrastructure. The system distinguishes itself by utilizing kernel-level virtualization primitives and hardware emulation to execute guest operating systems. It leverages accelerated kernel execution to offload CPU instructions to the host processor for pe
Offloads guest CPU instructions directly to the host processor for near-native performance.
WSL is a compatibility layer and virtualization platform that enables the execution of native Linux binaries directly on a host operating system. By utilizing a lightweight virtual machine and direct kernel system call mapping, it provides a high-performance environment that bridges Linux-based command line utilities with host-native tools. This architecture allows for full system call compatibility while maintaining minimal resource overhead. The platform distinguishes itself through deep integration with the host environment, allowing users to run isolated Linux distributions alongside stan
Maps Linux system calls directly to the host kernel to avoid traditional emulation overhead.
This project is a technical reference and educational guide focused on the internal architecture of the Linux kernel. It serves as a low-level systems programming resource and documentation for operating system internals, detailing the implementation of core mechanisms within the kernel source code. The materials provide a detailed study of the Linux kernel, tracing behavior through actual C source and assembly. It specifically covers the progression from the bootloader and decompression to the final kernel entry point, alongside the management of hardware interrupts and symmetric multiproces
Provides guides on the processes for compiling source code, linking binaries, and submitting patches for the kernel.
This project is an educational curriculum designed to teach the fundamentals of operating system development and low-level systems programming. It provides a structured sequence of lessons and code samples that guide users through building a functional kernel and bootloader from scratch, enabling a practical understanding of how software interacts directly with computer hardware. The repository distinguishes itself by focusing on the core mechanics of bare-metal execution. It covers the implementation of essential system components, including assembly-based bootloaders that transition process
Provides educational resources and implementation details for building functional kernels and bootloaders from the ground up.
Modular is a unified machine learning development platform designed for building, compiling, and deploying high-performance neural network models. It provides a comprehensive execution engine that supports both local and production-grade inference, enabling developers to manage the entire model lifecycle from initial architecture definition to scalable, containerized service deployment. The platform distinguishes itself through a hardware-agnostic runtime that abstracts diverse silicon architectures, allowing models to execute efficiently across varied compute environments. It includes a spec
Provides a low-level programming interface for writing high-performance hardware kernels with direct memory control.
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.
kubectx is a set of command-line productivity tools designed to simplify the switching of cluster contexts and active namespaces for Kubernetes CLI users. It serves as a context manager that allows users to quickly change the current cluster environment and default namespace within the configuration. The tool provides capabilities for renaming cluster contexts to improve identification and the ability to toggle rapidly between two clusters by preserving the previous active state. It also supports launching isolated shell sessions constrained to a specific cluster or configured as read-only to
Provides a utility to quickly change the active cluster context and toggle back to the previously used environment.
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 freestanding kernel written in Rust that boots on x86 hardware without a standard library. It serves as a low-level system implementation focusing on the creation of a bare metal operating system. The system implements a bootable disk image toolchain that transforms source code into binaries compatible with a bootloader. It features a custom memory allocator for dynamic memory management and an x86 kernel implementation that includes paging, interrupt handling, and VGA text mode. The project covers several core capability areas, including low-level memory management through
Provides the complete workflow for building operating system kernels and bootloaders from scratch.
This project is a comprehensive technical interview preparation resource and computer science interview guide. It serves as an educational reference for developers to study core software engineering fundamentals and common coding patterns required for employment screenings. The repository provides detailed guides and references covering data structures and algorithms, networking and security, operating systems, and web development. It specifically focuses on the implementation and complexity analysis of sorting, searching, and graph algorithms. The material encompasses a wide breadth of comp
Explains the mechanism for saving and restoring process states to switch between tasks within a kernel.
This project is an educational resource for developing bare-metal operating systems and kernels from scratch on Raspberry Pi hardware. It provides a structured guide to systems programming using the Rust language, focusing on the implementation of core kernel components that execute directly on ARM-based hardware without the support of an underlying operating system or standard library. The tutorials emphasize a modular architecture that separates hardware-independent kernel logic from processor-specific and board-specific configurations. By utilizing a hardware abstraction layer and distinct
Demonstrates how to interface directly with processor registers and hardware peripherals on ARM-based hardware.
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
Manages the saving and restoring of CPU registers and stack pointers during transitions between kernel and user modes.
This project is a comprehensive educational framework designed to guide learners through the complexities of systems engineering and low-level software development. It provides structured learning paths that integrate hardware simulation, source code analysis, and project-based exercises to help developers master the foundational concepts of computer architecture, operating systems, and firmware design. The curriculum distinguishes itself by emphasizing direct interaction with system internals, requiring learners to examine and modify existing open-source kernel and driver implementations. By
Guides learners to build, debug, and contribute to the Linux kernel by exploring source code and implementing custom device drivers.
This project is a monolithic operating system kernel designed to serve as the foundational software layer for diverse computing architectures and embedded platforms. It manages core system services, including processor scheduling, memory allocation, and hardware resource distribution, to facilitate communication between user applications and physical hardware. The kernel utilizes a hardware abstraction layer and platform-specific device trees to ensure consistent operation across a wide variety of processors and specialized computing devices. It supports dynamic functionality through loadable
Enables dynamic insertion of binary code segments into the running kernel without requiring a reboot.
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.
XNU este un kernel de sistem de operare hibrid care combină o arhitectură de microkernel cu un strat monolitic pentru serviciile de sistem. Oferă o fundație pentru dezvoltarea sistemelor de operare, încorporând interfețe standardizate de apeluri de sistem, un framework modular de drivere de dispozitiv și securitate bazată pe controlul accesului obligatoriu. Arhitectura dispune de un microkernel bazat pe Mach și un strat monolitic bazat pe BSD. Utilizează un bus de comunicare inter-proces bazat pe transmiterea de mesaje pentru schimbul securizat de date între componentele izolate ale kernel-ului și procesele din user-space, alături de un framework de drivere orientat pe obiecte care decuplează logica specifică hardware-ului de kernel-ul de bază. Sistemul include un motor de control al accesului obligatoriu pentru aplicarea securității bazate pe politici și un debugger de kernel la distanță pentru inspectarea memoriei live și analizarea panicii sistemului. Capabilitățile suplimentare acoperă programarea multi-procesor, coordonarea resurselor hardware și un sistem de build pentru generarea de imagini bootabile pe diferite arhitecturi. Proiectul oferă instrumente pentru gestionarea build-ului kernel-ului, generarea simbolurilor de depanare și un framework pentru verificarea apelurilor de sistem.
Provides a modular framework for developing and managing kernel-mode hardware device drivers.
This project is a Windows Precision Touchpad driver and Apple Trackpad HID driver. It functions as an input device gesture driver that converts raw touch data from Apple trackpads and MacBooks into native multi-touch gestures and precise pointer movement. The driver implements the precision touchpad protocol to enable native Windows gesture and pointer controls for Apple hardware. This allows the operating system to recognize Apple trackpads as precision touchpads, replacing basic mouse functionality with native multi-finger swipes and precise scrolling. The implementation covers kernel-mode
Implements a kernel-mode driver to intercept hardware interrupts and manage low-level touchpad communication.
xv6-riscv is a simplified Unix-like teaching operating system designed for the study of kernel design and hardware interaction. It provides a low-level RISC-V kernel implementation that serves as a bootable system image for execution and debugging within a virtual machine or emulator. The project focuses on educational instruction regarding the RISC-V architecture. It enables the study of operating system concepts through a minimal kernel that implements process management and memory handling. The system covers core kernel operations including multiprocessor resource management and the imple
Offers a complete workflow for building and testing a RISC-V kernel from source.
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.