IT未経験者がLinuxを学びLPIC-1を取得したい!!【第1章システムアーキテクチャ】4/4

目次に戻る

以下参考書になります。必要な方は購入して一緒に勉強していきましょう!

また、ご指摘がある場合はコメントにて報告をお願いいたします。

 

※実際にLinuxを触らないと理解できないと思います。
Windows/Macともにほとんど同じインストール方法ですので以下の記事のWindows10.isoデータの箇所だけ読み替えしてインストールしてみてください。
VirtualBox CentOS インストール
ってGoogle先生で検索しても色々記事が出てきますので確認しましょう!

MacでWindowsを起動させたい!【VirtualBox】

 

第1章システムアーキテクチャ目次(全4記事)

 

systemd

systemdの概要

「systemd」を採用したシステムでは、initプロセスの代わりにsystemdプロセスが起動し、各種サービスを管理します。
systemdでは以下の表のような複数のデーモンプロセス(常駐プロセス)が連携して動作します。
※デーモンとは?デーモン(daemon)は、メモリ上に常駐してシステムサービスやサーバサービスを提供するプロセスです。「メモリ上に常に常駐する」プロセスは、起動した後ずっと動作し続けます。ちなみにですがdaemon(守護神)、demon(悪魔)ですので、今回使われているdaemonは守護神という意味で使われていますのでご注意を!

プロセス 説明
systemd systemdのプロセス
systemd-journald ジャーナル(ログ)管理プロセス
systemd-logind ログイン処理プロセス
systemd-networkd ネットワーク管理プロセス
systemd-timesyncd シシテムクロック同期プロセス
systemd-resolved 名前解決プロセス
systemd-udev デバイス動的検知プロセス

systemdでは、システムの起動処理は多数の「Unit」と呼ばれる処理単位に分かれています。「Unit」にはサービスを起動するUnitや、ファイルシステムをマウントするUnitなどがあります。
Unitはいくつかの種類に分類できます。サービスを起動するUnit、ファイルシステムをマウントするUnitなどあります。例えば「httpd.service」はhttpd(webサーバ)サービスの起動に使われるUnitです。

表:Unitの主な種類

種類 説明
service 各種サービスを起動する
device 各種デバイスを表す
mount ファイルシステムをマウントする
swap スワップ領域を有効にする
target 複数のUnitをグループ化する
timer 指定した日時や間隔で処理を次項する

systemd」は、サービスAを起動するには先にサービスBを起動する、といった各種サービスの依存関係や順序関係を処理できます。
SysVinit」ではサービスは順次起動していきます。
デフォルトで起動するよう設定されたサービスは、その時点で必要がなかったとしても起動されます。また、途中でサービス起動処理が遅滞すると、次のサービス起動処理は待たされてしまい、結果としてシステムの起動時間は長くなります。systemdでは必要なサービスのみが起動します。また、サービスの起動は並列的に行われるのでシステムの起動時間はSysVinitに比べ短縮されます。

 

systemdの起動手順

システムが起動すると、まずdefault.targetというUnitが処理されます。このUnitの設定ファイルは/etc/systemd/systemディレクトリ以下にあります。

「graphical.target」というのは、グラフィカルログイン(従来のランレベル5)で起動するようなサービスをまとめたUnit(ターゲット)です。このようなターゲットが従来のランレベルに相当します。グラフィカルログインをデフォルトの環境とするには「/lib/systemd/system/graphical.target」へのシンボリック(ショートカット)「default.target」を作成します。

「SysVinit」におけるランレベル(Red Hat系ディストリビューション)と、「systemd」におけるターゲットの対応表を以下にまとめました。

ランレベル ターゲット
0 poweroff.target
1 rescue.target
2,3,4 multi-user.target
5 graphical.target
6 reboot.target

なお、「graphical.target」にはランレベル5で必要だったすべてのサービスが含まれているというわけではありません。「graphical.target」にはマルチユーザー環境で起動するサービスを起動する「multi-user.target」というUnitが「multi-user.target」にはランレベルにかかわらず必要なサービスを起動する「basic.target」というUnitがそれぞれ紐づけされています。したがって、「graphical.target」を起動すると、グラフィカル環境に必要なサービスがすべて起動することになるのです。

 

sytemctlによるサービスの管理

systemdでサービスを管理するには、「systemctl」コマンドを使います。

書式:systemctl サブコマンド[Unit名] [-t 種類]

sytemctlコマンドの主なサブコマンド一覧

 

サブコマンド 説明
start サービスを起動する
stop サービスを終了する
restart サービスを再起動する
reload サービスの設定を再読み込みする
status サービスの稼働状況を表示する
is-active サービスが稼働しているかどうかの確認
enable システム起動時にサービスを自動起動する
disable システム起動時にサービスを自動起動しない
mask 指定したUnitをマスクし手動でも起動できないようにする
unmask 指定したUnitのマスクを解除する
list-dependencies Unitの依存関係を表示する
list-units 起動しているすべてのUnitと状態を表示する
list-unit-files 全てのUnitを表示する
reboot システムを再起動する
poweroff システムをシャットダウンする

サブコマンドを使ったコマンド例を見てみましょう

 

上の2つの例を見ると「/etc/systemd/sytem」ディレクトリ以下のファイルが操作されているのが分かります。「/etc/systemd/system」ではホストごとに修正されたUnitの設定ファイルが配置されます。また、オリジナルの設定ファイルは「/usr/lib/systemd/system」ディレクトリに配置されています。

「/etc/systemd/system/multi-user.target.wants」ディレクトリ以下を見ると「multi-user.target」に含まれるUnitを確認できます。

 

 

 

1章のおさらい(練習問題)

こちらの練習問題の解答、解説に関しては参考書にて確認してください!
私の記事を見ても回答にたどり着けると思いますが、自身で見つけるチカラが必要だなと感じたので解答、解説は伏せさせていただきます。

問題1.1

コンピューターに組み込まれているデバイスの有効・無効を切り替えたり、デフォルトの起動ドライブを選択したり、キーボードやマウスなどの外部周辺機器の使用・不使用を設定したりといった、システム構成の変更はどやって行えばよいですか?
A.systemctlコマンドを使って構成を変更する
B.シングルユーザーモードに切り替えてから構成を変更する
C.システム起動時にBIOS/UEFIセットアップ画面から構成を変更する
D./etc/init.d以下のファイルを作成・削除して構成する
E./proc/sys以下のカーネルパラメータを手動で設定する

 

問題1.2

システムを構成するハードウェアに関する情報を確認するためには、_______________ディレクトリ以下のファイルが役に立ちます。例えばcpuinfoファイルにはCPUに関する情報が格納されています。
下線部に当てはまるディレクトリ名を絶対パスで記述してください。

 

問題1.3

PCIデバイスの1つが不具合を起こしているようです。PCIデバイスの情報を詳細に表示したい場合に実行すべきコマンドはどれですか?
A. cat/dev/pci
B. lspci -vv
C. cat/dev/bus/pci
D. cat/proc/bus/pci
E. dmesg | grep pci

 

問題1.4

ネットワークインターフェースが有効にならない為、lsmodコマンドを実行してみると、ネットワークカードのデバイスドライバがロードされていませんでした。手動でロードするために実行すべきコマンドはどれですか?
A. loadmod
B. modload
C. modprobe
D. modinfo
E.  rmmod

 

問題1.5

システム起動時のメッセージから、イーサネットアダプタ(ネットワークカード)のデバイスを特定しようとしています。下腹部に当てはまるコマンドで、システム起動時のカーネルメッセージを出力するコマンドを記述してください。なお、このシステムではsystemdを採用してません。
$____________________________ | grep enp

 

問題1.6

システムの電源を入れてからOSが起動するまでの流れを、正しい順に並べてください。
A. init/systemd
B. カーネル
C. BIOS/UEFI
D. ブートローダー

 

問題1.7

デフォルトのランレベルを指定するには_________________ファイルにおいて「id:5:initdefault:」のように設定します。
下線部に当てはまるファイル名を絶対パスで記述してください。

 

問題1.8

1時間後にシステムを再起動するコマンドを必要なオプション、引数とともに記述してください。

___________________________________________________

 

問題1.9

システムをメンテナンスするためシングルユーザーモードに変更する必要があります。すべてのユーザーは既にログアウトしています。実行すべきコマンドを選択してください。(複数選択可能)
A. init 0
B. init 1
C. init 6
D. init s
E. init 3

 

問題1.10

systemdを採用しているシステムでwebサーバサービスhttpd.serviceを開始するコマンドを必要なサブコマンドや引数とともに記述してください。なお、現在httpd.serviceは停止しています。
_________________________________________

 

問題1.11

systemdのファイルを調査しています。
/etc/systemd/system/sshd.serviceファイルはシンボリックリンクです。このシンボリックリンクの元ファイルの絶対パスとして下線部に当てはまる部分を記述してください。

$ ls -l /etc/systemd/system/ssh*
1rwxrwxrwx 1 root root 31 Apr 26 2018
/etc/systemd/system/sshd.service -> _______________________/ssh.service

 

これにて1章終了です!

お疲れさまでした!記事にしたおかげか、若干理解できたような気がします。
次回は「第2章」になります!お楽しみに

第1章システムアーキテクチャ目次(全4記事)

この記事が気に入ったら
いいね ! しよう

Twitter で

のぼじい

基本的に興味あるものは何でも手をつけます。でも3日坊主で終わることがしばしば笑 現在はPCサポートの仕事をしながら独学で、ブログ作成、LINEスタンプ作成、プログラミング、映像関係の勉強をしています。

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です