9 Repos
Operations for inserting page table entries to map physical frames into thread virtual address spaces.
Distinguishing note: None of the candidates relate to kernel-level virtual memory management; this is a core OS systems programming concern.
Explore 9 awesome GitHub repositories matching operating systems & systems programming · Virtual Memory Mapping. Refine with filters or upvote what's useful.
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
seL4 maps a physical frame into a thread's virtual address space by inserting a page table entry, requiring a page table to exist first.
Dieses Projekt ist eine Sammlung minimaler Betriebssysteme, Bootloader und Hardware-Treiber, die verwendet werden, um systemnahe x86-Programmierung und Hardware-Interfacing zu demonstrieren. Es dient als Kernel-Entwicklungs-Toolkit und Labor für Systemprogrammierung, das darauf ausgelegt ist, Architekturkonzepte und Hardwareverhalten innerhalb eines Systememulators zu testen. Das Repository bietet Referenzimplementierungen für die Erstellung bootfähiger Disk-Images und das Laden von Kernel-Stufen. Es enthält Anleitungen zur Implementierung von Protected-Mode-Übergängen, Memory-Paging, Interrupt Descriptor Tables und symmetrischem Multiprocessing auf x86-Hardware. Die Codebasis deckt ein breites Spektrum an Systemprimitiven ab, einschließlich virtuellem Memory-Mapping, Hardware-Interrupt-Handling und physischer Speichererkennung. Sie enthält zudem Bare-Metal-Treiber für den PC-Speaker, PS/2-Tastaturen, serielle Schnittstellen und VGA-Textpuffer. Das Projekt enthält eine Raw-Binary-Toolchain, um Assembly-Quellcode in Images für die direkte Hardware-Ausführung zu kompilieren, und unterstützt das Testen mittels Hardware-Emulation und Remote-Debugging.
Maps virtual addresses to physical memory frames using a multi-level page table structure.
Asterinas is a memory-safe operating system kernel designed to prevent data races and memory corruption. It functions as a Linux-ABI compatible kernel, enabling the execution of existing Linux binaries and container workloads while providing a declarative operating system distribution model. The project distinguishes itself by acting as a virtual machine container host and a confidential computing guest OS, allowing it to run within hardware-isolated Trusted Execution Environments such as Intel TDX. It implements a minimal trusted computing base by isolating unsafe low-level operations and se
Provides low-level operations to create, modify, and remove private and shared memory mappings.
AsmJit ist ein Laufzeit-Maschinencode-Generator und JIT-Compiler-Backend, das High-Level-Definitionen in ausführbare Prozessorinstruktionen übersetzt. Es bietet eine einheitliche Instruction-Emission-API und einen Manager für ausführbaren Speicher, um virtuelle Speicherseiten über mehrere CPU-Architekturen hinweg zuzuweisen und zu schützen. Die Bibliothek fungiert als Assembler-Engine für x86 und ARM und unterstützt die plattformübergreifende Assembler-Generierung durch ein einheitliches Backend. Sie ermöglicht die Erstellung optimierter Maschinencodes für verschiedene CPUs bei gleichzeitiger Beibehaltung einer einzigen Codebasis. Das Projekt deckt Low-Level-Systemabstraktionen ab, einschließlich Registerallokation, architekturspezifischer Calling-Conventions und dynamischer binärer Instrumentierung. Es verwaltet die Übersetzung von Zwischenrepräsentationen in Binärcode unter Verwendung von Label-basierter Offset-Auflösung und Direct-to-Buffer-Emission.
Implements dual-mapped memory allocation to comply with operating system security restrictions on executable pages.
Dieses Projekt ist ein Bildungs-Framework und Toolkit, das für die Entwicklung und das Testen von Betriebssystem-Kerneln konzipiert ist. Es bietet eine strukturierte Umgebung für die Implementierung grundlegender System-Primitive, einschließlich virtueller Speicherverwaltung, präemptiver Prozessplanung und Dateisystemorganisation, unter Verwendung von Rust und C. Das Framework ist speziell auf RISC-V- und x86-Architekturen ausgerichtet und dient als Labor für das Erlernen der Entwicklung von Kernsystemsoftware von Grund auf. Das Projekt zeichnet sich dadurch aus, dass es sowohl Bare-Metal-Deployment als auch Hardware-Emulation unterstützt, was es Entwicklern ermöglicht, die Kernel-Logik auf physischer Hardware oder in simulierten Umgebungen zu validieren. Es enthält eine umfassende Build-Toolchain, die architekturübergreifende Kompilierung und Firmware-Initialisierung handhabt und sicherstellt, dass der Kernel korrekt gebootstrappt und auf verschiedenen Zielplattformen ausgeführt werden kann. Das System deckt ein breites Spektrum an Low-Level-Funktionen ab, einschließlich Hardware-Abstraktionsschichten, die die Systemlogik von spezifischen Prozessordesigns entkoppeln, und System-Call-Schnittstellen, die die Grenze zwischen User-Space-Anwendungen und Kernel-Services verwalten. Es integriert zudem Observability-Funktionen wie Runtime-Logging und Ausführungsüberwachung, um die Analyse des Systemverhaltens während der Entwicklung zu unterstützen.
Maps logical memory addresses to physical hardware locations to provide isolated and protected address spaces.
embedded-notes ist eine Sammlung technischer Studienleitfäden und Entwicklungsnotizen mit Fokus auf Embedded Linux, Linux-Kernel-Internals und C-Programmierung. Sie dient als Referenz für die Entwicklung eingebetteter Systeme und als Vorbereitungsressource für technische Vorstellungsgespräche in diesem Bereich. Das Projekt bietet detaillierte Dokumentation zum Schreiben von Gerätetreibern, zur Verwaltung von virtuellem Speicher und zum Verständnis der Kernel-Internals. Es enthält zudem Leitfäden zu IoT-Netzwerkprotokollen wie MQTT und TCP/IP und skizziert die architektonischen Details von Chip-Architekturen und Hardware-Peripheriegeräten. Das Material deckt ein breites Spektrum der Systemprogrammierung ab, einschließlich manueller Speicherverwaltung, Prozesslebenszyklus-Management und der Implementierung von Konzepten für Echtzeitbetriebssysteme. Es enthält zudem Referenzen für Low-Level-Tools wie Cross-Kompilierung für ARM, Binäranalyse und Shell-Scripting für Build-Automatisierung.
Documents the process of inserting page table entries to map physical RAM into virtual address spaces.
rCore is a Rust-based operating system kernel and microkernel designed for Linux compatibility. It functions as a self-hosted development kit that implements a system call interface to support the execution of standard Linux userspace applications. The system is designed for modularity, featuring a mechanism for loading and integrating kernel modules into the active environment without requiring a system reboot. The kernel provides core operating system capabilities, including virtual memory mapping for process isolation, a disk-based file system for data persistence, and a layered network p
Manages memory allocation and process isolation through a page table-based virtual memory mapping system.
Dieses Projekt ist eine webbasierte Bildungsumgebung zur Simulation von 8-Bit-Prozessorarchitektur und Assembly-Sprachausführung. Es fungiert als virtuelle Maschine, die symbolischen Assembly-Code in Maschinenbefehle übersetzt, was es Benutzern ermöglicht, den Fetch-Decode-Execute-Zyklus und dessen Auswirkungen auf den Systemzustand in Echtzeit zu beobachten. Der Simulator zeichnet sich durch ein reaktives Interface aus, das visuelle Register- und Speicheranzeigen direkt an den zugrunde liegenden Prozessorzustand bindet. Er enthält einen Zwei-Pass-Assembler, der symbolische Label-Auflösung und Speicheradress-Mapping verwaltet und eine strukturierte Möglichkeit bietet, Assembly-Programme zu organisieren und zu navigieren. Benutzer können die Taktfrequenz des virtuellen Prozessors steuern, was es ihnen ermöglicht, die Befehlsausführung für detaillierte Beobachtung und Debugging zu verlangsamen. Die Anwendung bietet eine umfassende Suite von Tools zur Überwachung interner Prozessor-Flags, Registerwerte und Speicherinhalte. Sie unterstützt flexible Datenformatierung für Speicher und Register, was es erlaubt, Werte entweder in hexadezimaler oder dezimaler Notation zu betrachten. Die Umgebung ist als browserbasierte Anwendung konzipiert, was das Studium von Low-Level-Computing-Konzepten und Embedded-System-Logik ohne externe Hardware erleichtert.
Manages a linear array of bytes as simulated system memory for direct addressing and label resolution.
Varnish Cache ist ein HTTP-Reverse-Proxy und Content-Beschleuniger, der vor Webservern platziert wird. Er fungiert als Caching-Engine, die häufig abgerufene Webinhalte im Speicher speichert, um die Verarbeitungslast auf Backend-Origin-Servern zu reduzieren und die Bereitstellungszeiten für Endbenutzer zu beschleunigen. Die Software zeichnet sich durch eine domänenspezifische Konfigurationssprache aus, die Request-Handling-Logik für die Ausführung mit Wire-Speed in maschinennahen Bytecode kompiliert. Sie nutzt einen Multi-Threaded-Event-Loop zur Verwaltung gleichzeitiger Verbindungen und verwendet Shared-Memory-Objektspeicherung neben virtuellem Memory-Paging, um schnellen Datenabruf und Festplattenzugriff zu ermöglichen. Über die Kern-Caching-Funktionen hinaus bietet das System umfassendes Traffic-Management, einschließlich Request-Response-Pipeline-Verarbeitung und Backend-Health-Probing. Diese Funktionen ermöglichen die Verteilung eingehender Netzwerkanfragen auf mehrere Server, um Hochverfügbarkeit und das dynamische Routing von Traffic weg von überlasteter Infrastruktur sicherzustellen.
Maps large cache files directly into the process address space to leverage kernel optimizations for disk access.