嵌入式軟體指燒錄於硬體裝置中的非 PC 作業系統與開發工具,產業鏈涵蓋晶片設計、嵌入式系統軟體、電子設備研發製造。軟體分三層:嵌入式 OS、支撐軟體、應用軟體。從事研發者即嵌入式工程師。相較一般軟體工程師,嵌入式跨越 OS 與硬體兩大領域,就業廣度、深度與薪資待遇通常更具優勢。
從上電到 OS 啟動需經引導過程,此關鍵程式即 Bootloader。它在 OS 運行前執行,完成硬體初始化、記憶體映射建立,構建軟硬體環境,最終喚醒核心。
Java (Java ME) 允許面向物件開發,避免 C 語言記憶體管理陷阱,運行時環境提供自動記憶體管理、核心類庫整合等優勢。但嵌入式領域兩大核心約束 — 空間受限 與 即時性要求 — 是 Java 歷來難以完美解決的痛點。Java ME 透過 CLDC/MIDP 配置針對資源受限裝置優化,但在硬核即時控制、極致記憶體壓縮場景下,C/C++ 仍具不可替代性。
有志於嵌入式 Linux 開發者,建議系統學習:Linux 核心架構、裝置驅動開發、Buildroot/Yocto 系統構建、Bootloader 移植 (U-Boot)、檔案系統 (YAFFS, JFFS2, ext4) 及交叉編譯工具鏈。Java 方向則聚焦 Java ME (CLDC/MIDP, CDC)、Java Card 及嵌入式 JVM (如 JamaicaVM, Excelsior JET) 原理與調優。