Initial startup process

You can modify the startup process to improve startup times and customize the launch order of services and applications that are started before SLM takes over.

The buildfile

When a QNX Neutrino system is built, it uses a buildfile to generate an IFS. This buildfile specifies:

Overview of the initial startup process

The following illustration shows an overview of the IFS startup process:

Figure 1. The startup sequence for a QNX Neutrino system
Note: The QNX Apps and Media buildfiles include many smaller .build files that the gen-ifs.py utility script combines into an output IFS file. For more information, see "IFS files."

After the hardware has initialized, startup proceeds as follows:

  1. The processor begins executing at the reset vector. The reset vector is the address at which the processor begins executing instructions after the processor's reset line has been activated. On the x86, for example, this is the address 0xFFFFFFF0.

    These instructions can be a BIOS, a ROM monitor, or an IPL. If they are a BIOS, then the code will find and jump to a BIOS extension (for example, a network boot ROM or disk controller ROM), which will load and jump to the next step. If it's a ROM monitor, typically U-Boot, then the ROM monitor jumps to the IPL code.

  2. The IPL minimally configures the hardware to create an environment that allows the startup program microkernel to run, then locates the IFS and transfers control to the startup program in the image.

    The IFS is a file with a directory structure; it contains the OS, your executables, and any data files related to your programs.

  3. The startup program configures the system and transfers control to the procnto module, which is a combined microkernel and process manager.
  4. The procnto module sets up the kernel and runs a boot script that contains drivers and other processes (which may include those you specify), and any additional commands for running anything else. The files included will be those specified by the mkifs buildfile.

When this process is complete, control is handed to the SLM service.