Real-Time Kernel (RTOS or lightweight scheduler) - Ensures predictable task execution (e.g., FreeRTOS, Zephyr, or custom microkernel).
Hardware Abstraction Layer (HAL) - Provides interface between OS and device-specific peripherals (UART, SPI, I2C, GPIO).
Device Drivers - Manage hardware like sensors, displays, and communication modules.
Bootloader - Initializes hardware and loads the embedded OS into memory.
File System (Optional) - Used in systems with storage (e.g., FAT, LittleFS for flash memory).
Networking Stack - Enables communication via Ethernet, Wi-Fi, BLE, LoRa, etc.
Power Management & Interrupt Handling - Essential for battery-powered or performance-critical systems.