13 Repos
Routines for detecting hardware features and enumerating system resources during application startup.
Distinct from State Initialization: None of the candidates fit; they focus on web-based reactive state management rather than low-level hardware and windowing resource initialization.
Explore 13 awesome GitHub repositories matching operating systems & systems programming · System Resource Initializers. Refine with filters or upvote what's useful.
This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables firmware development using a familiar API. It functions as a microcontroller hardware abstraction layer and a firmware toolchain integration, bridging external development environments to the hardware for compilation and flashing. The system includes an embedded real-time operating system wrapper to manage multi-core execution and task scheduling, alongside a wireless communication suite for TCP/IP networking and Bluetooth Low Energy. It distinguishes itself by providing an obj
Controls the automatic initialization and startup of primary setup and loop functions upon device boot.
This project is a cross-platform library designed for desktop application development, providing a unified interface for window management, input handling, and hardware-accelerated graphics. It serves as a foundational framework that abstracts platform-specific windowing protocols and graphics APIs, enabling developers to create interactive software that functions consistently across Windows, macOS, and Linux. The library distinguishes itself by providing deep integration with low-level graphics APIs, specifically OpenGL and Vulkan. It manages the complexities of graphics context initializati
Prepare the library for use by detecting hardware features, enumerating monitors, and setting up internal resources for window management.
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
Starts the processor from a power-off state and executes the primary entry point to load the operating system kernel.
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 routines that transition the system from the boot loader to the kernel by enabling paging and setting the stack pointer.
This project is a Linux distribution build system and deployment framework designed to compile tailored Debian and Ubuntu server images for Amlogic ARM hardware. It functions as an operating system deployer and kernel builder, providing the tools necessary to flash system images to internal or external storage and manage boot configurations on ARM boards. The system includes a specialized build pipeline for compiling Linux kernels with hardware-specific patches and out-of-tree driver modules. It also features a dual-boot partition manager that enables the backup and restoration of original An
Executes shell scripts from a dedicated system directory to handle hardware-specific configuration during startup.
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
Loads and initializes the kernel and hardware into a known state using a dedicated boot loader.
Dieses Projekt ist eine Sammlung technischer Dokumentationen und Leitfäden, die als Erklärer für Computerarchitektur konzipiert sind. Es bietet Bildungsressourcen darüber, wie Prozessoren und Betriebssysteme Programme ausführen, mit Fokus auf den Fetch-Execute-Zyklus und die fundamentale Beziehung zwischen Hardware und Kernel. Die Dokumentation deckt ein breites Spektrum Low-Level-Systemoperationen ab, einschließlich detaillierter Anleitungen zum Executable and Linkable Format (ELF), virtuellem Speichermanagement und Kernel-Level-Operationen. Sie erforscht spezifisch die Mechanik des CPU-Schedulings, präemptives Multitasking und den Einsatz von Timer-Interrupts zur Verwaltung der Prozessausführung. Das Material erklärt zudem Workflows des Speichermanagements wie Adressübersetzung, Demand Paging und Copy-on-Write-Page-Sharing. Es behandelt auch Sicherheit und Zugriffskontrolle durch Prozessor-Privileg-Management und die Durchsetzung von Speicherseiten-Berechtigungen sowie das System-Call-Interface, das User-Space-Programme nutzen, um privilegierte Kernel-Operationen anzufordern. Die Leitfäden beschreiben zudem den Lebenszyklus der Programmausführung, vom initialen Boot-Sequenz- und Binär-Ladevorgang bis hin zum Prozess-Replacement und dem Bootstrapping von Userland-Prozessen.
Traces the boot sequence from firmware and bootloader to the final kernel initialization.
U-Boot is an embedded bootloader that initializes hardware components and loads operating system kernels into memory. It functions as a hardware abstraction layer providing standardized access to networking, storage, and peripheral buses, while also serving as a secure boot loader and a firmware update interface. The project distinguishes itself through the implementation of secure boot sequences that verify cryptographic signatures and interface with TPM modules to establish hardware-rooted trust. It further provides specialized capabilities for updating device firmware via standardized prot
Loads and executes kernel images or RAM disks from memory to start an embedded operating system.
melonDS ist ein Nintendo DS-Emulator und Emulator für Hardware-Architekturen. Es ist eine Softwareanwendung, die darauf ausgelegt ist, die ursprüngliche Systemarchitektur einer Handheld-Spielkonsole zu simulieren, um Originalspiele und Anwendungen auf verschiedenen Computerplattformen auszuführen. Das Projekt fungiert als Firmware-Loader, der in der Lage ist, die emulierte Umgebung unter Verwendung authentischer BIOS- und System-Firmware-Dumps zu initialisieren. Dies stellt die Softwarekompatibilität sicher, indem der Hardware-Zustand und die Boot-Sequenz des Originalsystems repliziert werden. Der Emulator bietet Funktionen für die Bewahrung von Retro-Spielen durch das Ausführen originaler Spiel-ROMs. Dies wird durch Hardware-Level-Architekturemulation erreicht, einschließlich Instruction-Set-Translation und Memory-Mapped-I/O-Simulation.
Provides routines that start the emulated processor and load the initial system state using BIOS dumps.
Dieses Projekt bietet Bildungsressourcen und technische Leitfäden für die Entwicklung von Mikrocontroller-Firmware. Es konzentriert sich auf das Schreiben von Low-Level-C-Code, der direkt auf der Hardware ohne zugrunde liegendes Betriebssystem läuft, und behandelt die Grundlagen von Hardware-Registern, Memory-Mapping und System-Clocks. Die Leitfäden beschreiben detailliert die Erstellung von Hardware-Abstraktionsschichten, um rohe speicherabgebildete Register in strukturierte Schnittstellen zu verpacken, und bieten Anleitungen zur Integration von TCP/IP-Stacks und HTTP-Servern in Bare-Metal-Umgebungen. Zudem wird die Implementierung von Build-Pipelines für eingebettete Systeme skizziert, von der Kompilierung von Binärdateien mit Linker-Skripten bis hin zum Deployment der Firmware auf physische Boards. Das Material deckt ein breites Spektrum an Embedded-Funktionen ab, einschließlich Hardware-Integration, Konfiguration von Peripherieregistern und Einrichtung von interruptgesteuertem Task-Scheduling. Es adressiert zudem den Debugging-Workflow für Mikrocontroller mittels UART-Kommunikation und Standard-IO-Umleitung. Das Repository enthält Anweisungen zur Verwaltung von Cross-Compilation-Toolchains sowie zur Automatisierung von Firmware-Builds und -Deployments.
Sets up the system vector table in flash memory to define the initial stack pointer and entry point.
unifi-common ist ein Startup-Dienstprogramm und eine Systemerweiterung für Ubiquiti UniFi-Netzwerkhardware. Es dient als Boot-Skript-Manager für UniFi-OS-Geräte und ermöglicht die Anwendung persistenter benutzerdefinierter Konfigurationen sowie die Initialisierung von Hintergrundprozessen während der Systemstartsequenz. Das Dienstprogramm bietet ein Framework zur Automatisierung der Netzwerkhardware-Einrichtung und zur Anpassung des Geräteverhaltens. Dies wird durch die Verwaltung und Ausführung einer Sammlung von Shell-Skripten und Konfigurationsdateien erreicht, die beim Systemstart ausgeführt werden sollen. Das System verwendet ein verzeichnisbasiertes Ausführungsmodell, das ein spezifisches On-Boot-Verzeichnis scannt, um Skripte sequenziell auszulösen. Dieser Hook-basierte Ansatz nutzt das Dateisystem, um zu bestimmen, welche benutzerdefinierte Logik und Softwareerweiterungen beim Booten des Geräts angewendet werden sollen.
Implements a boot sequence that automatically executes shell scripts located within a specific filesystem directory.
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.
Prepares the execution environment by loading firmware and establishing essential hardware-level interactions during system startup.
This project is a tutorial for developing a custom bare metal operating system specifically for the Raspberry Pi 4. It provides the guidance and resources necessary to write software that interacts directly with hardware without the use of a pre-existing kernel. The project centers on an ARM64 cross-compilation toolchain and a build pipeline that transforms source code into raw binary images. It utilizes linker scripts to define physical memory addresses and section placements, ensuring the resulting binary loads at the correct hardware entry point. The codebase covers direct hardware interf
Includes routines to initialize the processor and prepare memory stacks to establish a known functional state.