システムアーキテクチャ
wiki:システムの構成・動作原理を表している。
- 基本的なシステムハードウェア CPU メモリ USB
-
BIOS/UEFI
BIOS:キーボードやハードウェアを制御するもっとも基本的な制御プログラム
パソコンさんの電源が入って最初に動く、主にハードウェアを制御するプログラムのこと。
OS(コンピュータの人格に相当するソフト)が動き出す前のお仕事をやってくれるプログラムUEFI:BIOSの後継機
OS(コンピュータの後継機人格に相当するソフシスブイイニットト)とファームウェア(ハードウェアを制御するプログラム)のやり取りに関する取り決めのひとつPCの電源をいれるときに特定のキーを押すことで、セットアップ画面に入れる(F2)
設定項目
・日付
・キーボードの使用/不使用
・各種デバイスの使用/不使用 デバイス情報の確認
ハードウェアのアクセスを抽象化するデバイスファイル
/devディレクト以下にある
udevという仕組みによって自動的に作成されている
/procディレクトリ以下の主なファイル
・/proc/cpuinfo
・/proc/meminfo
・/proc/bus/usb/*USBデバイス
udev
?デバイスドライバのロード
デバイスを制御するための必要な制御プログラムをデバイスドライバ
デバイスドライバをカーネルに取り込むことをロードするという https://wa3.i-3-i.info/word15.html
1.2.1 システムが起動するまでの流れ
BIOS/UEFI ハードウェアの初期化
ブートローダ 起動したデバイス上からカーネルをメモリ上へ読み込む
カーネル メモリの初期化やシステムクロックを行う
init/systemd ログインプロンプトを実行
*電源を入れてからシステムを起動するまでの流れをbootstrapまたはbootという
1.2.2 起動時のイベント確認
dmesgコマンドでシステム起動時に行ったカーネルの処理がわかる
1.2.3 システムのシャットダウンと再起動
shutdown [オプション] 時間 [メッセージ]
1.3 SysVinit
SysVinit -> systemd システムの電源をいれてからLinuxが起動する手順はここ数年で大きく変わった。という新しい起動仕組みになった。
1.3.1 SysVinit(シスブイイニット)による起動
SysVinit
あらかじめ決められた順にサービスが起動していく->起動遅い
systemdシスブイイニット
サービスを並列で起動できる・依存関係を適切に設定してくれる->短時間で起動
1.3.2 ランレベル
SysVinitを採用しているシステムは、ランレベルと呼ばれるいくつかの動作モードがある
ex)ランレベル5ではクライアントPCとして必要なGUI環境を利用できる
ex)ランレベル1でrootユーザーだけが利用できる特殊な状態->システムのメンテナンスなど、一般のユーザーがシステムを利用しては困る場合とかに利用
1.3.3 ランレベルの確認と変更
現在のランレベルを確認 runlevelコマンド
1.3.4 起動スクリプトによるサービスの管理
1.3.5 デフォルトのランレベルの設定
/etc/inittab
1.4.1 systemdの概要
systemdは必要なサービスのみが起動する
SysVinitでは設定されているサービスは必要なかったとしても起動される
1.4.2 systemdの起動手順
1.4.3 systemctlによるサービスの管理
systemdでサービスを管理するsystemctl