75 مستودعات
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.
نواة Linux هي نواة نظام تشغيل متجانسة تدير موارد الأجهزة، والذاكرة، وجدولة العمليات عبر بنيات حوسبة متنوعة. توفر بيئة قياسية متوافقة مع POSIX لتنفيذ التطبيقات مع الحفاظ على إطار عمل تعريف (driver framework) معياري يسمح بالتحميل والإزالة الديناميكية لواجهات الأجهزة. يتميز المشروع بمجموعة أدوات التزامن عالية الأداء، والتي تستخدم بدائيات المزامنة الخالية من القفل وآليات القراءة-النسخ-التحديث لإدارة الوصول إلى البيانات المشتركة في بيئات متعددة النواة. يتضمن مجموعة شاملة لتتبع النواة والأدوات التي تتيح مراقبة غير تدخلية لأحداث النظام، وتنفيذ الوظائف، ومقاييس زمن الوصول. علاوة على ذلك، تفرض النواة ضمانات صارمة لاستقرار الواجهة وتتبع دورة الحياة لضمان التوافق مع الإصدارات السابقة للتطبيقات التابعة. بعيداً عن هويتها الأساسية، يتضمن النظام قدرات واسعة لتجريد الأجهزة، وتنفيذ بروتوكولات الشبكة، وفرض سياسات الأمن. وهو يدعم المتطلبات الهندسية المتخصصة من خلال إدارة حالة الطاقة، وتحسينات الأنظمة المدمجة، وعمليات التمهيد القائمة على البرامج الثابتة. تتميز البنية أيضاً بأطر تشخيصية قوية لتحليل الذاكرة، والتحقق من تنفيذ النظام، والتحقق من صحة نماذج البرمجة المتزامنة. يوفر مستودع المصدر نظام بناء كاملاً لتحويل الكود إلى صور ثنائية قابلة للتنفيذ، بما في ذلك أدوات لاختيار ميزات النواة وتحسين التكوين لتكييف المخرجات مع متطلبات الأجهزة المحددة.
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 هي نواة نظام تشغيل هجينة تجمع بين بنية النواة الدقيقة وطبقة متجانسة لخدمات النظام. توفر أساساً لتطوير نظام التشغيل، وتدمج واجهات استدعاء النظام القياسية، وإطار عمل تعريف جهاز معياري، وأمن التحكم في الوصول الإلزامي. تتميز البنية بنواة دقيقة قائمة على Mach وطبقة متجانسة قائمة على BSD. تستخدم ناقل تواصل بين العمليات قائم على تمرير الرسائل لتبادل البيانات الآمن بين مكونات النواة المعزولة وعمليات مساحة المستخدم، إلى جانب إطار عمل تعريف موجه للكائنات يفصل المنطق الخاص بالأجهزة عن النواة الأساسية. يتضمن النظام محرك تحكم في الوصول إلزامي لفرض الأمن القائم على السياسة ومصحح أخطاء نواة بعيد لفحص الذاكرة الحية وتحليل ذعر النظام. تغطي القدرات الإضافية جدولة المعالجات المتعددة، وتنسيق موارد الأجهزة، ونظام بناء لتوليد صور قابلة للتمهيد عبر بنيات مختلفة. يوفر المشروع أدوات لإدارة بناء النواة، وتوليد رموز التصحيح، وإطار عمل للتحقق من استدعاء النظام.
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.