12 repositorios
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 12 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.
Este proyecto es una colección de documentación técnica y guías diseñadas como un explicador de arquitectura de computadores. Proporciona recursos educativos sobre cómo los procesadores y sistemas operativos ejecutan programas, centrándose en el ciclo de fetch-execute y la relación fundamental entre el hardware y el kernel. La documentación cubre una amplia gama de operaciones de sistema de bajo nivel, incluyendo guías detalladas sobre el formato binario ejecutable y enlazable (ELF), gestión de memoria virtual y operaciones a nivel de kernel. Explora específicamente la mecánica de la planificación de CPU, multitarea preventiva y el uso de interrupciones de temporizador para gestionar la ejecución de procesos. El material explica además flujos de trabajo de gestión de memoria como la traducción de direcciones, paginación bajo demanda y el uso compartido de páginas copy-on-write. También cubre la seguridad y el control de acceso mediante la gestión de privilegios del procesador y la aplicación de permisos de páginas de memoria, así como la interfaz de llamadas al sistema utilizada por programas en user-space para solicitar operaciones privilegiadas del kernel. Las guías detallan también el ciclo de vida de ejecución del programa, desde la secuencia de arranque inicial y la carga de binarios hasta el reemplazo de procesos y el bootstrapping de procesos de usuario.
Traces the boot sequence from firmware and bootloader to the final kernel initialization.
U-Boot es un bootloader embebido que inicializa los componentes de hardware y carga los kernels del sistema operativo en la memoria. Funciona como una capa de abstracción de hardware que proporciona acceso estandarizado a redes, almacenamiento y buses periféricos, sirviendo también como un cargador de arranque seguro y una interfaz de actualización de firmware. El proyecto se distingue por la implementación de secuencias de arranque seguro que verifican firmas criptográficas e interactúan con módulos TPM para establecer una confianza basada en hardware. Además, proporciona capacidades especializadas para actualizar el firmware del dispositivo mediante protocolos estandarizados como Fastboot y DFU, y actúa como un manipulador de árbol de dispositivos (device tree) para configurar los parámetros de hardware antes de que inicie el sistema operativo. El sistema cubre una amplia gama de operaciones de bajo nivel, incluyendo la inicialización de la CPU y el controlador de memoria, gestión de caché de hardware y la ejecución de aplicaciones independientes. Admite el aprovisionamiento remoto de kernels mediante la obtención de imágenes de arranque y árboles de dispositivos desde servidores a través de protocolos de red, y gestiona el comportamiento del sistema mediante variables de entorno y ejecución de scripts de comandos. El proceso de compilación incluye herramientas para el empaquetado de imágenes de arranque y la configuración de objetivos de hardware para garantizar la compatibilidad binaria con dispositivos embebidos específicos.
Loads and executes kernel images or RAM disks from memory to start an embedded operating system.
melonDS es un emulador de Nintendo DS y emulador de arquitectura de hardware. Es una aplicación de software diseñada para simular la arquitectura del sistema original de una consola de juegos portátil para ejecutar juegos y aplicaciones originales en diferentes plataformas informáticas. El proyecto funciona como un cargador de firmware capaz de inicializar el entorno emulado utilizando volcados auténticos de BIOS y firmware del sistema. Esto garantiza la compatibilidad del software al replicar el estado del hardware y la secuencia de arranque del sistema original. El emulador proporciona capacidades para la preservación de juegos retro mediante la ejecución de ROMs de juegos originales. Esto se logra mediante la emulación de arquitectura a nivel de hardware, incluyendo la traducción del conjunto de instrucciones y la simulación de E/S mapeada en memoria.
Provides routines that start the emulated processor and load the initial system state using BIOS dumps.
Este proyecto proporciona recursos educativos y guías técnicas para el desarrollo de firmware de microcontroladores. Se centra en escribir código C de bajo nivel que se ejecuta directamente en el hardware sin un sistema operativo subyacente, cubriendo los fundamentos de registros de hardware, mapeo de memoria y relojes del sistema. Las guías detallan la creación de capas de abstracción de hardware para envolver registros mapeados en memoria en interfaces estructuradas y proporcionan tutoriales para integrar pilas TCP/IP y servidores HTTP en entornos bare-metal. También describe la implementación de tuberías de construcción para sistemas embebidos, desde la compilación de binarios con scripts de enlazador hasta el despliegue de firmware en placas físicas. El material cubre una amplia gama de capacidades embebidas, incluyendo integración de hardware, configuración de registros de periféricos y la configuración de programación de tareas basada en interrupciones. También aborda el flujo de trabajo de depuración de microcontroladores mediante comunicación UART y redirección de E/S estándar. El repositorio incluye instrucciones para gestionar cadenas de herramientas de compilación cruzada y automatizar la construcción y despliegue de firmware.
Sets up the system vector table in flash memory to define the initial stack pointer and entry point.
unifi-common es una utilidad de inicio y extensión del sistema para hardware de red Ubiquiti UniFi. Sirve como gestor de scripts de arranque para dispositivos UniFi OS, permitiendo la aplicación de configuraciones personalizadas persistentes y la inicialización de procesos en segundo plano durante la secuencia de inicio del sistema. La utilidad proporciona un framework para automatizar la configuración del hardware de red y personalizar el comportamiento del dispositivo. Logra esto gestionando y ejecutando una colección de scripts de shell y archivos de configuración diseñados para ejecutarse en el momento del arranque. El sistema emplea un modelo de ejecución basado en directorios, escaneando un directorio específico de arranque para activar scripts secuencialmente. Este enfoque basado en hooks utiliza el sistema de archivos para determinar qué lógica personalizada y extensiones de software deben aplicarse a medida que el dispositivo arranca.
Implements a boot sequence that automatically executes shell scripts located within a specific filesystem directory.
Este proyecto es un framework educativo y kit de herramientas diseñado para desarrollar y probar kernels de sistemas operativos. Proporciona un entorno estructurado para implementar primitivas fundamentales del sistema, incluyendo gestión de memoria virtual, programación de procesos preventiva y organización de sistemas de archivos, utilizando Rust y C. El framework está orientado específicamente a arquitecturas RISC-V y x86, sirviendo como laboratorio para aprender a construir software de sistema central desde cero. El proyecto se distingue por admitir tanto el despliegue bare-metal como la emulación de hardware, permitiendo a los desarrolladores validar la lógica del kernel en hardware físico o dentro de entornos simulados. Incluye una cadena de herramientas de compilación completa que maneja la compilación entre arquitecturas y la inicialización del firmware, asegurando que el kernel pueda ser correctamente arrancado y ejecutado en diferentes plataformas objetivo. El sistema cubre una amplia gama de capacidades de bajo nivel, incluyendo capas de abstracción de hardware que desacoplan la lógica del sistema de diseños de procesadores específicos e interfaces de llamadas al sistema que gestionan el límite entre las aplicaciones de espacio de usuario y los servicios del kernel. También incorpora características de observabilidad, como registro en tiempo de ejecución y monitoreo de ejecución, para ayudar en el análisis del comportamiento del sistema durante el desarrollo.
Prepares the execution environment by loading firmware and establishing essential hardware-level interactions during system startup.