【LPIC1対策(1)】主題101:システムアーキテクチャ

スポンサーリンク


本記事ではLPIC1(Ver4.0)101試験に合格するため『主題101:システムアーキテクチャ』について自分が勉強したことをまとめました。

LPIC1(Ver4.0)101試験の出題範囲はLPICのサイト(101試験範囲)に掲示されており、以下の様になっています。



目次



事前準備

1.Linuxの環境を用意する


LPICを勉強する上でLinuxの環境で実際に動かしてみるとよいです。Windows上でも仮想Linux環境を構築すれば簡単にLinuxを動かすことができます。以下にWindows上でubuntuを構築する方法をまとめました。参考にしてください。


Windows上でubuntuを構築する方法

2.テキストを購入する


Linux教科書 LPICレベル1 Version4.0対応』を参考にしながら勉強しました。このテキストにそって重要なところのみピックアップしてまとめているので大元はこちらのテキストを参照してください。



(101.1)ハードウェア設定の決定と構成



BIOSとUEFI

BIOS(Basic Input Output System)はキーボードなどのデバイスを制御するプログラム。
UEFI(Unified Extensible Firmware Interface)はBIOSの容量制限がなくなったり、GUIベースのセットアップ画面を利用できるなど拡張されている。



udev(Userspace DEVice management)

カーネルがパソコンへの接続を検出したデバイスに対して/devディレクトリ配下に動的にデバイス・ファイルを作成して割り当てる。
デバイスファイル作成時には/etc/udev/rules.dディレクトリ配下の設定ファイルが使用されており、設定ファイルを変更することでデバイスファイルの名前などを変えることもできる。

udev自体の設定ファイルは/etc/udev/udev.confにあり、udevのログレベルなど変更できる。



デバイスファイル

Linuxはハードウェアのアクセスを抽象化したデバイスファイルにて行う。
デバイスファイルは/devディレクトリ配下にある。

【デバイスファイルの確認】
> ls /dev



/procファイル

Linuxカーネルが認識しているデバイス情報が/procディレクトリ配下に格納

・CPU情報
/proc/cpuinfo

・IRQ(割り込み)情報
/proc/interrupts

・I/Oアドレス情報
/proc/ioports

・メモリ情報
/proc/meminfo

・USBデバイス情報
/proc/bus/usb/*

・PCIデバイス情報
/proc/bus/pci/*
カーネルが初期化時に見つけたPCIデバイスのリスト

・カーネルオプション
/proc/cmdline
起動時にカーネルオプションが格納

【デバイス情報の確認】
> ls /proc



lspciコマンド(PCIデバイス情報を表示)

PCIデバイス情報を表示させるコマンド

【PCIデバイス情報を表示】
> lspci [オプション]

オプション

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20140303/540546/



lsusbコマンド(USBデバイス情報を表示)

USBデバイス情報を表示させるコマンド

【USBデバイス情報を表示】
> lsusb [オプション]

オプション

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20140303/540548/

補足
・「usbmodules」コマンド・・・USBデバイスが利用できるモジュールを表示する



lsmodコマンド(モジュール一覧を表示)

Linuxに読み込まれているモジュールの一覧を表示するコマンド

【モジュール一覧を表示】
> lsmod



modprobeコマンド(カーネルモジュールをロード/アンロード)

カーネルモジュールをロードまたはアンロードするコマンド

【カーネルモジュールをロード/アンロード】
> modprobe [オプション] [カーネルモジュール] [モジュールオプション]

オプション

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20130909/503342/






(101.2)システムのブート



Linuxの起動シーケンス

1.電源ON

2.BIOS/UEFI
・ハードウェアのチェック、初期化
・ディスクの先頭ブロック(MBR)にあるブートローダをメモリにロード

3.ブートローダ
・カーネルをメモリにロード
※Linuxの代表的なブートローダにはLILOとGRUBがある

4.カーネル
・メモリの初期化、システムのクロック設定
仮のルートファイルシステム(initramfs)をマウントする
・最初のプロセスinitもしくはsystemdプロセスを実行

5.initもしくはsystemd
・必要なサービスを順次起動
※ Linuxの代表的な起動方法はSysVinitとsystemdがある




SysVinit(System Five Init)

カーネルによって最初に実行されるプロセスであるinitが順次サービスを起動する仕組み
SysVinitはあるサービスの起動が滞るとそれ以降のサービス起動が待たされてしまい全体として起動が遅くなる。

起動の流れは以下
1.initが/etc/inittabファイルを読み込む
最近のシステムには/etc/inittabファイルがないことが多い
2.initが/etc/rc.sysinitスクリプトを読み込む
3.initが/etc/rcスクリプトを実行する
4./etc/rcスクリプトが「/etc/rc<ランレベル>.d」ディレクトリ以下のスクリプトを実行する
「/etc/rc<ランレベル>.d」ディレクトリ配下には/init.d配下のスクリプトのシンボリックリンクが格納されている。

カーネルが一番最初に実行するユーザプロセスは「/sbin/init」である。



systemd

カーネルによって最初に実行されるプロセスであるsystemdが各種サービスを管理する。
サービスの起動は並列的に行われるため、システムの起動時間はSysVinitよりも起動時間は短縮される。

systemdはUnitと呼ばれる処理単位に分かれている。
代表的なUnitは以下
service:各種サービスを起動する
device:各種デバイスを表す
mount:ファイスシステムをマウントする
swap:スワップ領域を有効にする
target:複数のUnitをグループにする

起動の流れは以下
1.起動すると/etc/systemd/system配下にあるdefault.targetを実行する
※事前にdefault.targetにランレベルにあったターゲットを設定する必要がある。
2.default.targetに紐づいたサービスが順次実行される

systemdでデフォルトのtargetを決めたい場合、
カーネルオプションで「systemd.unit=xxx.target」と指定する・



Upstart

・SysVinitを改善したinitの仕組み
・イベントドリブンで指定された処理が実行される。
・initctlコマンドでジョブの開始や停止、表示が可能
・SysVinitとは互換性あり



dmesgコマンド(カーネルのメッセージ表示)

【カーネルのメッセージ表示】
> dmesg [オプション]

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20130909/503271/?rt=nocnt

補足
・システム起動後に長時間立つと、起動時のメッセージが消えてしまう可能性あり
※リングバッファのため
・/var/log/dmesgファイルに内容は保存



(101.3)ランレベル/ブートターゲットの変更とシステムのシャットダウンまたはリブート



ランレベル

SysVinitではランレベルという動作モードがある。
※systemdではdefault.targetにリンクを張る(後述)
動作モードは以下



runlevelコマンド(ランレベルを表示)

ランレベルを表示するコマンド

【ランレベルを表示】
> runlevel [オプション]

オプション


※直前のランレベルが存在しない場合は「N」と出力される。

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20131218/525642/



initコマンド(ランレベルを変更)

プロセス制御・ランレベルを変更するコマンド

【ランレベルを変更】
> init [オプション] [ランレベル]

オプション

コマンド詳細
https://webkaru.net/linux/init-command/

補足
telinitコマンドでも同様のことができる
・telinitコマンドは-qオプションでinitに/etc/inittabを再読み込みさせることができる。



/etc/inittabでデフォルトランレベル設定

SysVinitでは/etc/inittabを変更することで起動したときのランレベルを指定できる。
記述方法は以下
id:<ランレベル>:initdefault:

/etc/inittabでは他にもCtrl+Alt+Delキー入力によるシャットダウン操作も無効化できる。



systemdでデフォルト起動方式の設定(ランレベル相当)

systemdではdefault.targetのシンボリックリンクを作成することで起動方法を指定できる。
※systemdではランレベルという概念がないみたい

デフォルトの起動方式の設定は「systemctl get-default」,「systemctl set-default」コマンドで表示,設定が可能

ランレベルとターゲットに比較は以下



wallコマンド(ユーザにメッセージを送信)

ログインしているユーザにメッセージを送信するコマンド

【ユーザにメッセージを送信】
> wall [文字列]

コマンド詳細
http://www.itsenka.com/contents/development/unix-linux/wall.html



systemctlコマンド(サービスを管理)

systemdでサービスを管理するコマンド

【サービスを管理】
> systemctl [サブコマンド] [Unit名]

サブコマンド

補足
・デフォルトの起動方式の設定は「systemctl get-default」,「systemctl set-default」コマンドで表示,設定が可能
・ユニットタイプが「.service」だと、「.service」を省略してユニット名のみでOK



shutdownコマンド(シャットダウン・再起動実行)

システムをシャットダウン・再起動するコマンド

【シャットダウン・再起動実行】
> shutdown [オプション] 時間 [メッセージ]

オプション

補足
・時間は0:0やnowなどが使える
・1時間後を指定する場合は「-r +60」と分単位で指定する
・「shutdown -k “メッセージ”」で再起動はせずにメッセージを送れる。

コマンド詳細
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230883/



関連するページ


LPIC-1 試験対策のまとめページ

【LPIC1対策】LPIC-1試験対策 まとめ
LPICレベル1の出題範囲について自分が勉強したことをまとめました。


(次の章) 【LPIC1対策(2)】主題102:Linuxのインストールとパッケージ管理

【LPIC1対策(2)】主題102:Linuxのインストールとパッケージ管理
本記事ではLPIC1(Ver4.0)101試験に合格するため『主題102:Linuxのインストールとパッケージ管理』について自分が勉強したことをまとめました。







以上!!!

スポンサーリンク

フォローする

スポンサーリンク