# IEN-008 - Stage 7 — System Service Initialization

At the end of the previous stage, the Linux kernel has successfully transferred control to PID 1.

Whether PID 1 is implemented as **SysV init**, **Upstart**, or **systemd**, the operating system has now entered the userspace initialization phase.

For the first time since the power button was pressed, Linux is no longer focused on preparing itself to boot.

Instead, it begins preparing itself to **serve users and applications**.

This stage is responsible for transforming a mounted filesystem into a fully operational operating system.

---

# What Is a System Service?

A Linux system consists of much more than the kernel.

Even after the kernel has initialized hardware and mounted the root filesystem, the system still lacks many essential capabilities.

For example:

- Networking is not yet configured.
- Remote SSH access is unavailable.
- System logs are not being collected.
- Scheduled tasks are inactive.
- Time synchronization has not started.
- Firewalls may not yet be enforced.
- Databases and web servers are still offline.

These capabilities are provided by **system services**, also known as **daemons**.

A daemon is simply a process that runs in the background and performs a specific function.

Examples include:

<div class="TyagGW_tableContainer" id="bkmrk-service-purpose-sshd"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1977" data-start="1663"><thead data-end="1684" data-start="1663"><tr data-end="1684" data-start="1663"><th class="last:pe-10" data-col-size="sm" data-end="1673" data-start="1663">Service</th><th class="last:pe-10" data-col-size="sm" data-end="1684" data-start="1673">Purpose</th></tr></thead><tbody data-end="1977" data-start="1707"><tr data-end="1737" data-start="1707"><td data-col-size="sm" data-end="1716" data-start="1707">`sshd`</td><td data-col-size="sm" data-end="1737" data-start="1716">Remote SSH access</td></tr><tr data-end="1782" data-start="1738"><td data-col-size="sm" data-end="1757" data-start="1738">`NetworkManager`</td><td data-col-size="sm" data-end="1782" data-start="1757">Network configuration</td></tr><tr data-end="1822" data-start="1783"><td data-col-size="sm" data-end="1804" data-start="1783">`systemd-journald`</td><td data-col-size="sm" data-end="1822" data-start="1804">System logging</td></tr><tr data-end="1859" data-start="1823"><td data-col-size="sm" data-end="1835" data-start="1823">`chronyd`</td><td data-col-size="sm" data-end="1859" data-start="1835">Time synchronization</td></tr><tr data-end="1898" data-start="1860"><td data-col-size="sm" data-end="1870" data-start="1860">`crond`</td><td data-col-size="sm" data-end="1898" data-start="1870">Scheduled task execution</td></tr><tr data-end="1936" data-start="1899"><td data-col-size="sm" data-end="1913" data-start="1899">`firewalld`</td><td data-col-size="sm" data-end="1936" data-start="1913">Firewall management</td></tr><tr data-end="1977" data-start="1937"><td data-col-size="sm" data-end="1946" data-start="1937">`dbus`</td><td data-col-size="sm" data-end="1977" data-start="1946">Inter-process communication</td></tr></tbody></table>

</div></div>Without these services, Linux would boot successfully but remain largely unusable in a production environment.

---

# From PID 1 to Running Services

The initialization sequence now looks like this:

```
Kernel
    │
    ▼
PID 1 (systemd/init)
    │
    ▼
Load Unit Files / Init Scripts
    │
    ▼
Resolve Dependencies
    │
    ▼
Start Core Services
    │
    ▼
Start Optional Services
    │
    ▼
Reach Target State
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--2"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--3"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>Each step builds upon the previous one.

Unlike the firmware and kernel stages, this phase is highly configurable.

Administrators can decide:

- Which services start automatically.
- The order in which they start.
- Whether a failure should stop the boot process.
- Whether a service should restart automatically.

---

# Service Dependencies

Modern Linux systems rarely start services in a fixed order.

Instead, they rely on **dependencies**.

Consider an SSH server.

It cannot accept remote connections until:

- the network interface exists,
- IP addresses are configured,
- the firewall is initialized,
- DNS (if required) is available.

The dependency graph looks something like this:

```
Hardware Ready
      │
      ▼
udev
      │
      ▼
Network Stack
      │
      ▼
IP Configuration
      │
      ▼
Firewall
      │
      ▼
SSH Server
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--5"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--6"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>If one dependency fails, downstream services may also fail or wait indefinitely.

---

## Engineering Insight

A common misunderstanding is that Linux starts services one by one in a hard-coded sequence.

Modern systems using **systemd** actually construct a dependency graph and start many services in parallel whenever possible.

This approach significantly reduces boot time while ensuring that dependent services do not start before their prerequisites are satisfied.

---

# systemd Units

Unlike SysV init, which relied primarily on shell scripts, systemd manages resources using **unit files**.

Common unit types include:

<div class="TyagGW_tableContainer" id="bkmrk-unit-type-purpose-.s"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="4237" data-start="3898"><thead data-end="3921" data-start="3898"><tr data-end="3921" data-start="3898"><th class="last:pe-10" data-col-size="sm" data-end="3910" data-start="3898">Unit Type</th><th class="last:pe-10" data-col-size="sm" data-end="3921" data-start="3910">Purpose</th></tr></thead><tbody data-end="4237" data-start="3946"><tr data-end="3981" data-start="3946"><td data-col-size="sm" data-end="3959" data-start="3946">`.service`</td><td data-col-size="sm" data-end="3981" data-start="3959">Background service</td></tr><tr data-end="4015" data-start="3982"><td data-col-size="sm" data-end="3994" data-start="3982">`.socket`</td><td data-col-size="sm" data-end="4015" data-start="3994">Socket activation</td></tr><tr data-end="4051" data-start="4016"><td data-col-size="sm" data-end="4028" data-start="4016">`.target`</td><td data-col-size="sm" data-end="4051" data-start="4028">Logical boot target</td></tr><tr data-end="4083" data-start="4052"><td data-col-size="sm" data-end="4063" data-start="4052">`.mount`</td><td data-col-size="sm" data-end="4083" data-start="4063">Filesystem mount</td></tr><tr data-end="4132" data-start="4084"><td data-col-size="sm" data-end="4099" data-start="4084">`.automount`</td><td data-col-size="sm" data-end="4132" data-start="4099">Automatic filesystem mounting</td></tr><tr data-end="4162" data-start="4133"><td data-col-size="sm" data-end="4144" data-start="4133">`.timer`</td><td data-col-size="sm" data-end="4162" data-start="4144">Scheduled task</td></tr><tr data-end="4194" data-start="4163"><td data-col-size="sm" data-end="4175" data-start="4163">`.device`</td><td data-col-size="sm" data-end="4194" data-start="4175">Hardware device</td></tr><tr data-end="4237" data-start="4195"><td data-col-size="sm" data-end="4205" data-start="4195">`.path`</td><td data-col-size="sm" data-end="4237" data-start="4205">File or directory monitoring</td></tr></tbody></table>

</div></div>This modular design allows systemd to manage far more than just services.

For example, mounting a filesystem or waiting for a hardware device can be handled through dedicated unit types rather than custom scripts.

---

# Reaching the Target State

One of systemd's primary goals is to bring the system to a predefined **target**.

Common targets include:

<div class="TyagGW_tableContainer" id="bkmrk-target-purpose-rescu"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="4844" data-start="4597"><thead data-end="4617" data-start="4597"><tr data-end="4617" data-start="4597"><th class="last:pe-10" data-col-size="sm" data-end="4606" data-start="4597">Target</th><th class="last:pe-10" data-col-size="sm" data-end="4617" data-start="4606">Purpose</th></tr></thead><tbody data-end="4844" data-start="4639"><tr data-end="4686" data-start="4639"><td data-col-size="sm" data-end="4657" data-start="4639">`rescue.target`</td><td data-col-size="sm" data-end="4686" data-start="4657">Single-user recovery mode</td></tr><tr data-end="4740" data-start="4687"><td data-col-size="sm" data-end="4709" data-start="4687">`multi-user.target`</td><td data-col-size="sm" data-end="4740" data-start="4709">Multi-user text environment</td></tr><tr data-end="4795" data-start="4741"><td data-col-size="sm" data-end="4762" data-start="4741">`graphical.target`</td><td data-col-size="sm" data-end="4795" data-start="4762">Graphical desktop environment</td></tr><tr data-end="4844" data-start="4796"><td data-col-size="sm" data-end="4817" data-start="4796">`emergency.target`</td><td data-col-size="sm" data-end="4844" data-start="4817">Minimal emergency shell</td></tr></tbody></table>

</div></div>Most production servers aim to reach:

```
multi-user.target
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--10"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--11"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>while desktop systems typically boot into:

```
graphical.target
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--12"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--13"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>Once the target is reached, Linux is considered operational.

---

# Parallel Startup

One of the most significant innovations introduced by systemd is **parallel service startup**.

Older SysV init systems generally followed a linear process:

```
Service A
    │
    ▼
Service B
    │
    ▼
Service C
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--15"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--16"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>If one service took ten seconds to start, every subsequent service had to wait.

Systemd instead starts independent services simultaneously:

```
               systemd
          ┌──────┼──────┐
          ▼      ▼      ▼
      Logging  Network  Cron
          │      │
          ▼      ▼
       SSH      NTP
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--17"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--18"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>As long as dependency requirements are met, multiple services can initialize concurrently, reducing overall boot time.

---

# Service Failures During Boot

Not every service failure prevents Linux from booting.

For example, if a monitoring agent fails to start, the operating system can usually continue running.

However, failures involving critical services may leave the system in a degraded state.

Examples include:

- Network initialization failure.
- Storage mount failure.
- Authentication service failure.
- Device manager failure.
- Logging subsystem failure.

Systemd records these failures and provides detailed diagnostic information for later analysis.

---

# Investigating Boot Problems

One of systemd's greatest strengths is its diagnostic capabilities.

Several commands are particularly useful when troubleshooting service initialization issues.

```
systemctl --failed
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--21"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--22"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>Lists services that failed during startup.

```
systemctl status <service>
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--23"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--24"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>Displays the status, recent log entries, and dependency information for a specific service.

```
journalctl -b
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--25"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--26"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>Shows all log messages generated since the current boot.

```
journalctl -u sshd
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--27"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--28"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>Displays logs related to the SSH service.

```
systemd-analyze
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--29"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--30"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>Reports the total boot time.

Example:

```
Startup finished in 2.432s (kernel)
               + 8.917s (userspace)
               = 11.349s
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--31"><div class=""><div class="contents"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="pe-11 pt-3"><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--32"><div class="cm-scroller"></div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div>For deeper analysis:

```
systemd-analyze blame
```

<div class="relative w-full mt-4 mb-1" id="bkmrk--33"><div class=""><div class="contents"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="relative h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class=""><div class="relative"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼs ͼ16" dir="ltr" id="bkmrk--34"><div class="cm-scroller"></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div></div></div></div>lists services sorted by startup duration, helping identify bottlenecks.

---

## Engineering Insight

When a Linux system appears to "boot slowly," the kernel is often blamed.

In reality, the kernel typically completes its work within a few seconds. Delays are more commonly caused by userspace services waiting for storage devices, network configuration, DNS resolution, or external resources.

Tools such as `systemd-analyze blame` and `journalctl -b` are often far more useful than focusing solely on kernel messages.

---

# Common Service Initialization Failures

The table below summarizes several common issues encountered during this stage.

<div class="TyagGW_tableContainer" id="bkmrk-symptom-possible-cau"><div class="group TyagGW_tableWrapper flex flex-col-reverse w-fit" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="8089" data-start="7745"><thead data-end="7773" data-start="7745"><tr data-end="7773" data-start="7745"><th class="last:pe-10" data-col-size="sm" data-end="7755" data-start="7745">Symptom</th><th class="last:pe-10" data-col-size="sm" data-end="7773" data-start="7755">Possible Cause</th></tr></thead><tbody data-end="8089" data-start="7803"><tr data-end="7851" data-start="7803"><td data-col-size="sm" data-end="7825" data-start="7803">Network unavailable</td><td data-col-size="sm" data-end="7851" data-start="7825">Network service failed</td></tr><tr data-end="7901" data-start="7852"><td data-col-size="sm" data-end="7877" data-start="7852">SSH connection refused</td><td data-col-size="sm" data-end="7901" data-start="7877">`sshd` did not start</td></tr><tr data-end="7967" data-start="7902"><td data-col-size="sm" data-end="7935" data-start="7902">Boot stops waiting for a mount</td><td data-col-size="sm" data-end="7967" data-start="7935">Filesystem dependency failed</td></tr><tr data-end="8036" data-start="7968"><td data-col-size="sm" data-end="7999" data-start="7968">System enters emergency mode</td><td data-col-size="sm" data-end="8036" data-start="7999">Critical mount or service failure</td></tr><tr data-end="8089" data-start="8037"><td data-col-size="sm" data-end="8054" data-start="8037">Long boot time</td><td data-col-size="sm" data-end="8089" data-start="8054">Slow or blocked service startup</td></tr></tbody></table>

</div></div>Unlike earlier stages, these failures occur **after the operating system has already mounted the root filesystem and started PID 1**.

This distinction helps narrow the investigation to userspace rather than firmware, bootloader, or kernel components.

---

# Summary

The service initialization stage transforms Linux from a mounted operating system into a fully functional platform capable of supporting users and applications.

PID 1 launches essential services, resolves dependencies, manages failures, and brings the system to its configured operational target.

While earlier boot stages focus on hardware and storage, this stage focuses on functionality—networking, logging, scheduling, security, and every background process required for normal operation.

By the time the target state is reached, Linux is ready to present a login interface and begin accepting user sessions.