3.0 Porting Guide/Tizen Bootup Overview

From Tizen Wiki
Jump to: navigation, search

This section provides a brief overview of the typical booting sequence, starting from the boot loader to the kernel and the platform.


Kernel Bootup

The Tizen bootup process is the same as any other Linux kernel. You just need to make sure that the correct device tree binary or machine ID and the boot arguments are passed from the boot loader.

Platform Bootup

  • If initramfs exists
    • After the initial RAM disk image has been mounted, initramfs hands over the control to systemd as the system manager daemon in Tizen platform.
  • If there is no initramfs
    • Kernel hands over the control to systemd as system manager daemon in Tizen platform.

From this point, systemd is responsible for probing all remaining hardware, mounting all necessary file systems and spawning all configured services. Basically, the system boot-up process is split up in various discrete steps. To synchronize point during start-up, target units (files whose name ends in .target) are used for grouping units. The boot-up process is highly parallelized in each target so that the order in which specific target units are reached is not deterministic. The system-plugin is an target-specific plugin for configuration setting such as mount point (/etc/fstab) and specific target boot scripts.

The following figure shows the early boot sequence after starting the kernel.

Tizen 3.0 boot2.png

  • sysinit.target
    • Special target unit for early boot-up scripts
    • It has dependencies on necessary services and targets such as local-fs.target.
    • At this point, most of file systems like /opt and /tmp are mounted and systemd related daemons, such as systemd-journald, are launched.
  • basic.target
    • Special target unit for basic boot-up.
    • At this point, all necessary initialization for general purpose daemons such as mount points, sockets, timers, and path units are completed.
    • Tizen specific services (such as tizen-system-env) also are executed.

For more information, see systemd bootup process and systemd special target.

The following figure shows the overview of normal booting sequence in Tizen platform.

Tizen 3.0 normal noot.png

  • multi-user.target
    • Special target unit for setting up a multi-user system which is non-graphical support.
    • In Tizen platform, this target is used for launching platform infrastructure daemons such as dbus (system session), device manager, resource manager, gps manager, telephony daemon, WRT (Web Runtime) security daemon, media server, tlm, and daemons related to connectivity.
    • Some systemd-related daemons (such as systemd-logind) are also started in this phase.
  • graphical.target
    • Special target unit for setting up a graphical environment.
  • systemd user session
    • systemd user session is executed by tlm and systemd-logind to execute user@.service.
    • Tizen platform uses the systemd user session for the user privilege daemons.
    • Some daemons related with graphic system such as Enlightenment (Windows manager) are launched as user privilege in this phase.
    • ac.service and launchpad-process-pool are launched as user privilege.
    • Tizen applications are running as user privilege.