Introduction —
Startup Sequence —
Measuring Bootup Time —
Bootloader Optimizations —
Microkernel versus Monolithic Kernel —
Modular versus Monolithic Application Design —
Library Load Time —
Language Choice
[+]
Introduction
Many embedded applications must perform a set of actions within a strict timeframe after the system boots. Meeting these deadlines can be a challenge, and the system architect ...
Startup Sequence
Like most operating systems, the QNX Neutrino RTOS boots in several stages. Here is a brief description of each stage ...
Measuring Bootup Time
To optimize any boot stage, you must measure its duration, modify the code, then measure again to see how much timing has improved. Some basic techniques ...
Bootloader Optimizations
Once developers get the system to boot for the first time, bootloader development often goes on the backburner. Here are a few techniques that sometimes get overlooked ...
Microkernel versus Monolithic Kernel
If you're used to working with a monolithic kernel like Linux or Windows CE, you might be inclined to start all your drivers before you start ...
Modular versus Monolithic Application Design
If you design a system with a single main application, none of the application logic can run until the entire application is loaded into memory. The larger ...
Library Load Time
Shared libraries take time to load. When an application is linked to a shared object, the process loader will first check whether that shared object ...
Language Choice
Chances are, you wouldn’t use Java to meet early boot requirements. The Java Virtual Machine (JVM) and class libraries must load before ...
Establishing a Baseline
Developers and system designers can employ many techniques to meet early boot requirements. However, before applying any of the techniques ...