3 dépôts
Definitions of memory addresses and sections for kernel code and data.
Distinct from Virtual Memory Layouts: None of the candidates address the static definition of kernel code/data sections for loading; they focus on runtime layout or VM simulation.
Explore 3 awesome GitHub repositories matching operating systems & systems programming · Kernel Memory Layouts. Refine with filters or upvote what's useful.
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
Defines the static memory addresses and sections for kernel code and data during system initialization.
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 how the kernel structures memory into distinct regions for code, data, devices, and per-CPU variables.
Ce projet est une collection de systèmes d'exploitation minimaux, de chargeurs de démarrage (bootloaders) et de pilotes matériels utilisés pour démontrer la programmation système x86 bas niveau et l'interfaçage matériel. Il sert de boîte à outils de développement de noyau et de laboratoire de programmation système conçu pour tester les concepts d'architecture et le comportement matériel au sein d'un émulateur système. Le dépôt fournit des implémentations de référence pour créer des images disque amorçables et charger des étapes de noyau. Il inclut des guides pour implémenter les transitions en mode protégé, la pagination mémoire, les tables de descripteurs d'interruption et le multiprocesseur symétrique sur matériel x86. La base de code couvre un large éventail de primitives système, incluant le mappage de mémoire virtuelle, la gestion des interruptions matérielles et la détection de mémoire physique. Il contient également des pilotes bare-metal pour le haut-parleur PC, le clavier PS/2, les ports série et les tampons texte VGA. Le projet inclut une chaîne d'outils binaire brute pour compiler le code source assembleur en images pour une exécution matérielle directe et prend en charge les tests via l'émulation matérielle et le débogage à distance.
Defines memory addresses and section alignments to ensure the hardware loads the kernel at the correct location.