# Startup ## Introduction The startup subsystem is responsible for starting key system processes and services after the kernel is started and before applications are started. The subsystem consists of the following modules: - init This module can be used on platforms powered by LiteOS Cortex-A or Linux kernel. The module starts system service processes from the time the kernel loads the first user-space process to the time the first application is started. In addition to loading key system processes, it needs to configure their permissions during the startup and keep the specified process alive after sub-processes are started. If a key process exits abnormally, the module needs to perform a system restart. For details, see [init Module](../device-dev/subsystems/subsys-boot-init.md). - appspawn This module comes with the Lite and Standard editions. The Lite edition can be used on platforms powered by the LiteOS-A kernel, and the Standard edition can be used on platforms powered by the Linux kernel. The module spawns application processes upon receiving commands from the application framework, configures permissions for new processes, and calls the entry function of the application framework. - bootstrap This module can be used on platforms powered by the LiteOS Cortex-M kernel. The module provides entry identifiers for starting services and features. When SAMGR is started, the entry function identified by **bootstrap** is invoked and system services are started. - syspara This module obtains and sets system attributes. The module can be used on all platforms. Supported system attributes consist of default, OEM-specified, and custom system attributes. OEM-specified system attributes provide only default values. The specific values need to be adjusted as required. For details, see [syspara Module](../device-dev/subsystems/subsys-boot-syspara.md). ## Directory Structure **Table 1** Directory structure of the source code for the startup subsystem