Next, we're going to look at Systemd targets and ancillary components. Systemd has a concept of targets which serves a similar purpose as runlevels but operates differently. Each target is named instead of using runlevel numbers and is intended to serve a specific purpose. Previous versions of Red Hat Enterprise Linux, which were distributed with sysvinit or Upstart implemented a predefined set of runlevels that represented specific modes of operation. These runlevels were numbered from zero to six and were defined by a selection of system services to be run when a particular runlevel was enabled by the sys admin. In Red Hat Enterprise Linux 7 and later, the concept of runlevels has been replaced with these systemd targets. Systemd targets are represented by target units, target units and with the .target file extension. And their only purpose is to group together other Systemd units through a chain of dependencies. So for example, the graphical.target unit, which is used to start a graphical session, starts system services such as the known display manager, gdm.service, or the accounts service, accounts-daemon.service, and also activates the multi-user.target unit. Similarly, the multi-user.target unit starts other essential system services such as Network Manager, NetworkManager.service or D-Bus, dbus.service and activates another target unit named basic.target. Targets can be identified during system boot, but targets can also be activated as a reaction to an external event, such as the plugging in of USB storage. And to speed things up even more, targets can also start deferred. For instance, for a networking service, it means that Systemd will open the network socket itself, wait for traffic to arrive on this socket, and will only start the service once there is indeed traffic arriving. At boot time, Systemd creates listening sockets for all system services that support this type of activation and passes the sockets to these services as soon as they started. This not only allows Systemd to start services in parallel, but it also makes it possible to restart a service without losing any message sent to it while it's unavailable. The corresponding socket remains accessible, and all messages are queued. List of default targets available in the Linux system is shown here. Let's pick one of these, say bluetooth.target. This target is started automatically as soon as a Bluetooth controller is plugged in or becomes available at boot. This may be used to pull in Bluetooth management daemons dynamically when Bluetooth hardware is found. Now, as you know by now, Systemd is a software suite that provides an array of system components for Linux operating systems. On top of it being a startup manager as we've described, it can also work to provide several utilities. Let's take a look at a few of these utilities here. So first we have journald. This is a demon responsible for event logging, with append-only binary files serving as its logfiles. The System Administrator can choose if they want to use this. There are other options for logging as well, for example, syslog-ng or rsyslog. Now let's introduce logind. This is a system service that manages user logins. It's responsible for keeping track of users and sessions, generating and managing session IDs, multiseat management, and so on. Now what do I mean by a seat? We're trying to theoretically introduce some concepts here. And a seat, it consists of all hardware devices assigned to a specific workplace. It consists of at least one graphics device and usually also includes keyboard and mouse. It can also include video cameras, sound cards, and more. A session is defined by the time a user is logged in until they log out. A session is bound to one or no seats. A multiseat system allows multiple independent seats that can be individually and simultaneously used by different users and logind helps you out with this. Now, let's talk about networkd. This is a system service that manages networks. It detects and configures network devices as they appear, as well as creating virtual network devices. Networks are configured in .network files and virtual network devices are configured in .net dev files. Next, tmpfiles is a utility that takes care of creation and clean-up of temporary files and directories. It's normally round ones that start up and then in specified intervals. timedated is a system service that may be used as a mechanism to change the system clock in time zone as well as to enable or disable network time synchronization. Systemd-timedated is automatically activated on request and terminates itself when it is unused. udev's main purpose is to detect peripheral devices. It manages device nodes in the /dev directory by adding sym linking and renaming them. udev replaces the functionality of the older hotplug and HW detect services. udev handles separate events concurrently, meaning in parallel, leading to a potential performance improvement over older systems. libudev provides APIs to introspect and enumerate devices on the local system. Systemd-boot is that UEFI boot manager, which executes configured AFI images. The default entry is selected by a configuration pattern globe or an onscreen menu. Pressing the space key, or actually most keys work as well, during boot up will show an onscreen menu with all configured loaded entries to select from. Pressing enter on the selected entry loads and starts the AFI image. [MUSIC]