16 Repos
Mechanisms for managing memory address spaces and task execution states within a kernel.
Distinct from Kernel Development: Distinct from Kernel Development: focuses on the specific implementation of paging and scheduling logic.
Explore 16 awesome GitHub repositories matching operating systems & systems programming · Paging and Context Switching. Refine with filters or upvote what's useful.
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.
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 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
Provides guidance on implementing memory paging and context switching in custom kernels.
xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an instructional kernel for x86 and RISC-V architectures, featuring a virtual memory manager and support for symmetric multiprocessing. The system is designed to demonstrate core OS principles through a simplified re-implementation of Unix Version 6. It provides a controlled environment for studying system calls, trap handling, and process lifecycles. Its capability surface covers process management, including scheduling and context switching, and memory management via page tables for
Implements the fundamental kernel mechanism for saving and restoring CPU state to switch between processes.
DevOps-Bash-tools is a collection of shell scripts and aliases designed to automate cloud infrastructure, container orchestration, and CI/CD pipelines. It provides a comprehensive toolset for managing operational workflows through the command line. The project specializes in automating tasks across multiple platforms, including managing namespaces and secrets in Kubernetes, auditing resources in AWS and GCP, and triggering builds or managing environment variables in GitHub Actions, GitLab CI, and CircleCI. It also includes a toolkit for interacting with container registries to query manifests
Provides utilities to isolate and swap active Kubernetes namespaces and cloud profiles using temporary configuration files.
Podman Desktop is a graphical user interface for building, managing, and deploying containers and Kubernetes clusters from a local workstation. It serves as a container engine manager and a Kubernetes cluster dashboard, providing a visual environment for tasks typically handled via the command line. The project includes a container extension framework that allows users to integrate additional tools and capabilities into the management environment through a plugin system and extension catalog. The software covers the full container lifecycle, including image building and pushing to registries
Provides a system tray interface for swapping active cluster contexts and container engines.
FreeRTOS is a real-time operating system for embedded devices that provides a kernel for predictable task execution. It utilizes priority-based preemptive scheduling and deterministic timing to manage simultaneous hardware tasks. The project includes a symmetric multiprocessing kernel that distributes processing workloads across multiple CPU cores using a shared memory architecture. It also provides a thread-safe TCP/IP networking stack for managing internet protocol traffic and IPv6 connectivity on embedded processors. The system incorporates an embedded memory manager with fixed-size alloc
Manages concurrent execution threads by saving and restoring processor states via dedicated Task Control Blocks.
k3d is a containerized Kubernetes orchestrator and wrapper that manages the lifecycle of k3s nodes and servers within container runtimes. It serves as a tool for deploying and destroying multi-node Kubernetes environments on a single machine for local development and testing. The project distinguishes itself by wrapping k3s to provide integrated networking, resource limit control, and local registry orchestration. It enables multi-node cluster simulation by wrapping nodes as isolated containers and using host-entry injection and port proxying to route host TCP and UDP traffic into the cluster
Provides mechanisms to switch active configuration profiles and namespaces within local client tools.
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
Explains saving and restoring full CPU register state across tasks during context switches.
Kando is a cross-platform desktop pie menu launcher that runs on Windows, macOS, and Linux, including Wayland compositors. It opens a radial menu on a hotkey and lets users select applications, files, or shortcuts by moving the cursor toward a slice, and can also be controlled from the command line to open specific menus or trigger shortcuts. The project distinguishes itself through a gesture-based selection system that interprets pointer movement direction and distance rather than requiring precise clicking, and an input device abstraction layer that normalizes input from mouse, stylus, touc
Switches pie menu configurations based on the currently active application window.
Bitwise is a computer architecture education kit and a comprehensive set of guides for building a custom CPU, operating system, and compiler from scratch. It serves as a CPU design tutorial and a practical framework for implementing a unique instruction set architecture. The project provides a custom instruction set architecture toolchain, including resources for creating a matching assembler and compiler. It further includes a hardware development guide for synthesizing computer components and peripheral controllers for deployment on programmable logic devices and FPGAs. The kit covers full
Implements a kernel that manages concurrent execution through state-saving and restoring during context switches.
Sbt ist ein JVM-Build-Tool und Abhängigkeitsmanagementsystem, das für Scala und Java entwickelt wurde. Es fungiert als Multi-Projekt-Build-Orchestrator, der die Kompilierung von Quellcode verwaltet, externe Bibliotheken aus Remote-Repositories auflöst und Binärdateien für die Verteilung paketiert. Das Projekt zeichnet sich durch sein interaktives Build-System aus, das eine Read-Eval-Print-Loop für die Echtzeit-Zustandsinspektion und Aufgabenausführung bietet. Es nutzt ein auf Abhängigkeitsgraphen basierendes Ausführungsmodell, um Aufgaben zu verarbeiten, und unterhält einen typsicheren Schlüssel-Wert-Speicher für die dynamische Build-Konfiguration. Seine Funktionen decken die JVM-Build-Automatisierung mit inkrementeller Rekompilierung, modularer Projektorganisation und automatisierter Testausführung ab. Das System unterstützt zudem die versionsübergreifende Kompilierung, die Veröffentlichung von Artefakten in Cloud-Speichern und ein erweiterbares Plugin-Modell für das Hinzufügen benutzerdefinierter Build-Logik.
Executes specific commands against different language versions without permanently altering project configuration.
Uncloud is a decentralized container orchestrator designed to deploy and manage applications across multiple servers without a central control plane. It functions as a peer-to-peer system and a Docker Compose cluster deployer, using SSH-based infrastructure management to coordinate operations across remote nodes. The project distinguishes itself by using a secure mesh network overlay to enable direct inter-container communication across different physical machines. It facilitates container image distribution by transferring missing layers directly from local environments to target nodes, bypa
Enables switching between different named sets of cluster connections to change the active target environment.
This is a desktop HTTP client application used for constructing, sending, and analyzing HTTP and GraphQL requests. It provides a graphical interface for API development and testing, including a dedicated GraphQL client with schema-driven autocomplete and validation. The project features an integrated AI assistant that generates API requests from natural language prompts. It supports a complex organization system of spaces and collections with hierarchical authentication inheritance and recursive variable resolution for dynamic request values. The tool covers a broad range of capabilities, in
Implements high-level profile swapping for API environment variables and request targets.
uperf is an Android performance tuning tool and Linux kernel parameter manager designed to optimize device responsiveness and battery life. It functions as a CPU affinity and scheduling manager, a hardware power profile controller, and a real-time system monitor that adjusts kernel parameters and CPU frequencies. The project distinguishes itself through real-time system monitoring of touchscreen input and frame rendering to trigger immediate performance boosts. It utilizes hardware performance profiling to apply pre-tuned configuration files tailored to specific hardware platforms, balancing
Monitors system activity to identify app switches or screen unlocks and proactively adjusts resource allocation.