【LPICの講師応援公開】LPIC101_原理原則と図解_7日間研修

-- Views

April 23, 26

スライド概要

profile-image

はじめまして、ALJ Education Plus 株式会社のyukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。 ◆IT研修講師をお探しの方は [email protected] にお気軽にお問い合わせください。 ※ALJ Education Plus 株式会社を通して、ご支援させていただきます。 ◆Zenn https://zenn.dev/yukiko_sapporo/articles/46c13e9f98b110

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

LPIC-101 原理原則×図解 文系出身エンジニアのための 7日間集中研修 面白きこともなき世を面白く Yukiko

2.

7本の柱 — 研修全体像 MAP Day1 起動の原理 電源 → Linux Day6 Day2 仮想化・ライブラリ原理 パッケージ管理の原理 共有 → 分離 依存 → 一貫性 Linux 起動され、動き続けるOS Day5 Day3 シェル・ストリーム原理 ファイルシステム原理 入出力 → 合成 iノード → FHS Day4 権限・プロセス原理 分離 → 安全 Day 7 LPIC-101 原理原則編 / ALJ Education Plus ◆ 7本の柱を束ねる — 総まとめ 2

3.

この教材の約束 — 丸暗記ではなく「なぜ」から INTRO 01 02 03 原理から入る 図で捉える 現場で応用する コマンド表ではなく、なぜその仕組み が必要になったのかという設計の背景 から学びます。 Linuxの仕組みは層と関係でできていま す。文字の羅列ではなく、図として理 解します。 試験のための知識ではなく、トラブル が起きた時に戻れる拠り所としての原 理を身につけます。 一言で 覚えるのではなく、思い出せる状態にする。 LPIC-101 原理原則編 / ALJ Education Plus 3

4.

Day 1 起動の原理 電源ONから Login プロンプトまで、Linuxはどう立ち上がるのか BIOS / UEFI ・ Boot Loader ・ Kernel ・ initramfs ・ init / systemd

5.

起動は5段階で進む — うさうさラーメン店の開店準備 Day 1 / 起動 Linuxは「少ない情報から段階的に自分を組み立てる」構造になっている 原理 ① 電源ON ② ブートローダ ③ カーネル ④ initramfs ⑤ init / systemd ファームウェア BIOS / UEFI GRUB2 が カーネルを選ぶ vmlinuz が メモリに展開 仮のルートを 一時的に使う サービスを 順に起動 ラーメン店に例えると ラーメン店に例えると ラーメン店に例えると ラーメン店に例えると ラーメン店に例えると 店主が店に来る 鍵を開ける どの麺にするか メニューを選ぶ スープの仕込み を開始する 冷蔵庫の食材で 最初の一杯 一言で 従業員出勤 開店ベルを鳴らす 少ない情報から「次を読み込む」連鎖。どこで止まったかが切り分けの鍵。 LPIC-101 原理原則編 / ALJ Education Plus 5

6.

BIOS と UEFI — 最初にカーネルを見つける役目 Day 1 / 起動 ファームウェアは「OSがまだ無い段階で、OSを探して起動する」装置 原理 BIOS ( 旧世代 ) M B R パーティション領域 ( プライマリ 最大4 ) 先頭 512B UEFI ( 現代 ) G P T ESP /boot/efi にマウント ( FAT32 ) ◆ 最大 2.2 TB まで ◆ ZB 級の大容量に対応 ◆ プライマリ4個まで ◆ ブート情報を MBR に直書き ◆ パーティション 128 以上 ◆ ブートローダは ESP 内のファイル 一言で データ領域 最大 128 パーティション UEFIはブートローダを「ファイル」として扱える。だから起動修復も ESP を見に行く。 LPIC-101 原理原則編 / ALJ Education Plus 6

7.

initramfs — 鶏と卵の問題を解く一時ファイルシステム 原理 Day 1 / 起動 ルートFSを読むドライバが、そのルートFSの中にあるという矛盾を解消するための仕掛け 問題 解答 カーネルは最小構成で起動する。 メモリに最小の仮ルートを一時的に置く。 読みたい ルートFS (/ の中身) カーネル 中にドライバが… 1 initramfs を展開 メモリ上が仮の / 2 必要なドライバを読む ディスク・LVM・暗号化 3 本物のルートに切替 pivot_root / switch_root 読むにはドライバが要る / ドライバはルートFSの中にある → 読めないから読めない 一言で 起動失敗時に「initramfsの中だけ動く」状態なら、ドライバ読込の段階で止まったと推測できる。 LPIC-101 原理原則編 / ALJ Education Plus 7

8.

systemd — 「全部 Unit」で統一した思想 原理 Day 1 / 起動 サービスもマウントもタイマーも、すべて Unit という同じ粒度で扱う 旧来 : System V init 現代 : systemd ( Unit と Target ) sysinit.target .service ( デーモン ) ◆ ランレベル 0〜6 の数字 basic.target ◆ /etc/rc*.d の番号順 ◆ シェルスクリプトで起動 multi-user.target ◆ 並列起動が苦手 ◆ /etc/inittab で既定を決める graphical.target .socket ( ソケット ) .mount ( マウント ) .timer ( タイマー ) 並列起動 + 依存解決 一言で systemd は「どう起動するか」を依存グラフとして宣言する。既定の状態は default.target。 LPIC-101 原理原則編 / ALJ Education Plus 8

9.

Day 2 パッケージ管理の原理 ソフトウェアは独立していない。依存の森を一貫して管理する発想 依存グラフ ・ リポジトリ ・ 低レベルツール と 高レベルツール ・ GRUB と ブート管理

10.

ソフトウェアは独立していない — 依存の連鎖 Day 2 / パッケージ 一つのパッケージは、多くの共有ライブラリと他パッケージに支えられて動く 原理 依 存 元 ( このアプリを使う ) アプリB アプリC アプリD アプリA 依 存 先 ( このアプリが必要 ) libc 一言で libssl libxml2 libpng zlib libreadline 入れる・消すの操作には必ず「ついてくる誰か」がいる。だからマネージャーが要る。 LPIC-101 原理原則編 / ALJ Education Plus 10

11.

パッケージマネージャの3つの責務 原理 01 Day 2 / パッケージ 「入れる」「消す」だけではない。依存解決・一貫性維持・来歴記録の3本立て 依存解決 02 03 一貫性維持 来歴記録 ✓ 必要なライブラリやツールを自動的に洗 い出し、正しい順序で取ってくる。 システム全体のバージョンを整合させる 。壊れた状態を検出し修復する。 何を・いつ・どのバージョンで入れたか を台帳に残す。再現とロールバックの土 台。 Dependency Resolution Integrity Bookkeeping 一言で マネージャーが居るから「安全に入れて、安全に消せる」。全部手作業では壊れる。 LPIC-101 原理原則編 / ALJ Education Plus 11

12.

リポジトリ方式 — みんなで同じ倉庫を見る Day 2 / パッケージ 各マシンが個別にサイトを探すのではなく、信頼できる公式倉庫を共有で参照する 原理 Repository パッケージ群 + 署名 + インデックス (Packages.gz / repodata) インデックスが効く理由 ◆ 事前にパッケージ名と依存を一覧 ◆ 署名によって改ざん検知 ◆ 差分更新でネット負荷軽減 マシン A マシン B マシン C sources.list / *.repo 同じ倉庫を参照 同じバージョンで揃う 一言で 「どこを見るか」を先に合意する。リポジトリ設定がズレると世界がズレる。 LPIC-101 原理原則編 / ALJ Education Plus 12

13.

低レベル と 高レベル — ツールを2層に分けた設計 原理 Day 2 / パッケージ 単品操作と依存込み操作を分離することで、両方の責務を壊さない 利 用 者 ( あなた ) 高 レ ベ ル ( 依存解決 + リポジトリと通信 ) apt / apt-get ( Debian系 ) yum / dnf ( Red Hat系 ) 低 レ ベ ル ( 1個のパッケージだけを直接操作 ) dpkg ( *.deb を直接入れる ) 一言で rpm ( *.rpm を直接入れる ) 「依存は追わない単品操作」と「依存ごと面倒を見る上位」を分けるから、両立できる。 LPIC-101 原理原則編 / ALJ Education Plus 13

14.

Day 3 ファイルシステムの原理 ファイルは名前ではない — iノードという本体と、名前の付箋でできている iノード ・ リンク ・ 仮想ファイルシステム ・ MBR/GPT ・ FHS ・ LVM

15.

ファイル ≠ 名前 — iノードという本体と 名前の付箋 原理 Day 3 / FS ファイルの実体は iノードに記された属性+データブロック。名前は付け替え可能な付箋 ディレクトリの中身 ( 名前 → iノード番号 ) report.txt → inode 4218 inode テーブル ( ファイルの属性本体 ) inode 4218 2 所有者 / 権限 / mtime / リンク数 = 2 / データブロック位置 leaflet.txt backup.txt → → inode nlink 4218 inode inode 9701 9701 1 所有者 / 権限 / mtime / リンク数 = 1 / データブロック位置 nlink image.png → inode 5503 inode 5503 1 所有者 / 権限 / mtime / リンク数 = 1 / データブロック位置 nlink 一言で 名前を消してもリンク数が残っていれば、実体は消えない。それが rm の正体。 LPIC-101 原理原則編 / ALJ Education Plus 15

16.

ハードリンク vs シンボリックリンク 原理 Day 3 / FS 同じ実体に別名を付けるか、別名を指し示す道しるべを置くか ハードリンク ( 同じ iノードを指す別名 ) シンボリックリンク ( 別ファイルを指し示す道標 ) a.txt パスを保持 inode 4218 nlink=2 link.txt (symlink) b.txt inode 9701 ◎ 同一FS内だけ ◎ 別ファイルシステム・異種対象OK ◎ ディレクトリには付けられない ◎ 片方を消しても実体は残る ◎ ディレクトリにも付けられる ◎ 指し先が消えると壊れる(dangling) 一言で real.txt 「本体が複数か、道標が一つか」。バックアップ戦略や権限設計の発想が変わる。 LPIC-101 原理原則編 / ALJ Education Plus 16

17.

/proc は仮想 — カーネルと話すための窓 原理 Day 3 / FS ディスクには存在しない。開くと、その瞬間のカーネル状態を読み出して返している ユーザ空間 カーネル空間 CPU 情報 あなたのコマンド ( cat / ps / top など ) 要求 メモリ使用量 マウント状態 /proc/cpuinfo /proc/meminfo /proc/mounts /proc/modules ロード済みモジュール 応答 open / read で触る瞬間にだけ生成される 一言で プロセスツリー ディスクに実体はない /proc を開く行為 = カーネルに現在地を尋ねる行為。だから情報はいつも最新。 LPIC-101 原理原則編 / ALJ Education Plus 17

18.

MBR と GPT — 32bit世代からの卒業 原理 Day 3 / FS パーティション情報をどこに・どう書くか。設計年代の違いが容量・個数の制限に直結 MBR GPT 1983年 ( 40年超の古株 ) 2000年代 ( UEFI とセット ) 最大ディスク 2.2 TB ZB 級 ( 事実上無制限 ) プライマリ数 最大 4 個 既定 128 個 ディスク先頭 512 バイト 先頭+末尾に二重化 ブート情報 MBR 内に直書き ESP (FAT32) のファイル 壊れた時 即死に近い 予備があり復旧容易 設計年代 場所 一言で 大容量ディスクで MBR を使わない理由はここ。GPT と UEFI はセットで捉える。 LPIC-101 原理原則編 / ALJ Education Plus 18

19.

FHS — ディレクトリは「用途」で分ける 原理 Day 3 / FS どこに何を置くかが決まっているから、他人のマシンでも迷わず動ける / 一言で /bin 起動や基本操作に必要なコマンド /var 可変 ( ログ・メール・キャッシュ ) /sbin 管理者用のシステム管理コマンド /usr ユーザプログラム本体 ( 読取中心 ) /boot カーネル本体と initramfs /usr/local /etc システム全体の設定ファイル /proc 仮想 — カーネル状態 /home 一般ユーザのホームディレクトリ /tmp 一時ファイル ( 再起動で消える ) 手元で作ったものを入れる場所 「何を」より「なぜそこか」を覚える。自作バイナリは /usr/local/bin が定位置。 LPIC-101 原理原則編 / ALJ Education Plus 19

20.

Day 4 権限とプロセスの原理 壊さないために「分離する」— 所有者・グループ・プロセスの線引き 3層権限 ・ SetUID ・ umask ・ シグナル ・ ジョブ制御

21.

3層権限モデル — 所有者・グループ・その他 原理 Day 4 / 権限 権限は「誰が」×「何を」の2軸マトリクス。3×3で必要十分 読 r 書 w 実行 x 読み解き例 rwxr-x--所有者 (u) 4 2 1 所有者 : 読/書/実行 ( 4+2+1=7 ) グループ (g) 4 2 1 グループ : 読/実行 ( 4+0+1=5 ) その他 : 一切なし ( 0 ) = 750 その他 (o) 一言で 4 2 1 「rwxで考えない。数字の足し算で考える」。これだけで頭の疲れが激減する。 LPIC-101 原理原則編 / ALJ Education Plus 21

22.

SetUID — 実行した瞬間だけ所有者の権限を借りる 原理 一言で Day 4 / 権限 通常ユーザが「一部の特権操作」だけを安全に行うための、限定された橋渡し 実行前 実行中 終了後 UID: 1000 (you) UID: 1000 (you) UID: 1000 (you) EUID: 0 (root) ← 実効 UID: 1000 (you) UID: 1000 (you) あなたは一般ユーザ。 自分のファイルしか書けない。 SetUIDビットが立っている実行ファイル を動かすと、 その一瞬だけ所有者 ( 例: root ) の権限で 動作する。 プロセスが終われば権限も元通り。 あなたは一般ユーザに戻る。 passwd が一般ユーザでも動く理由はこれ。必要最小限の時間だけ権限を借りる仕組み。 LPIC-101 原理原則編 / ALJ Education Plus 22

23.

umask — 引き算で既定権限を決める 原理 Day 4 / 権限 ファイル作成時の権限は「あげる」で決めない。最大値から「削る分」を指定する 666 ファイル既定最大値 - 022 = umask ( 削る分 ) 644 rw- r-- r-実際に付与される権限 押さえどころ ◆ ディレクトリの既定最大値は 777 ( 実行権が初めから付く ) ◆ 引き算なので umask 027 は「グループは書込不可、その他は全部不可」を意味する ◆ セキュリティ設計は「最小限だけ許す」 = umask を 大きくする 方向に寄せる 一言で 「書ける所を増やす」のではなく「書けないよう削る」。引き算の世界。 LPIC-101 原理原則編 / ALJ Education Plus 23

24.

シグナル — プロセスに送る短い合図 原理 プロセスは電話ではなくベルで起こされる。番号ごとに意味が決まっている 主なシグナル キー入力 Ctrl+C / Ctrl+Z kill コマンド kill / pkill カーネル 異常時 / タイマー 一言で Day 4 / 権限 プロセス 2 SIGINT 割り込み ( Ctrl+C ) 15 SIGTERM 穏やかに終了を依頼 9 SIGKILL 強制終了 ( 無視不可 ) 19 SIGSTOP 一時停止 ( Ctrl+Z ) 18 SIGCONT 再開 受信して 対応する Ctrl+C = SIGINT、Ctrl+Z = SIGSTOP。キーは合図の入口。 LPIC-101 原理原則編 / ALJ Education Plus 24

25.

Day 5 シェル・ストリームの原理 Unix哲学 — 小さな道具を入出力で繋いで大仕事を組み立てる 標準入出力 ・ リダイレクト ・ パイプ ・ PATH ・ Unix哲学

26.

標準入出力 — すべてのコマンドに3つの窓がある 原理 Day 5 / シェル コマンドは入口1つ・出口2つ ( 正常と異常 ) で世界と繋がる。この3つが合成の鍵 FD 1 stdout 標準出力 ( 画面既定 ) コマンド FD 0 stdin 標準入力 ( キーボード既定 ) FD 2 stderr 標準エラー ( 画面既定 ) 一言で > file >> file 2> file 3つの窓を意識すれば、リダイレクトの記号「>」「2>」「2>&1」は怖くない。 stdout を上書き保存 LPIC-101 原理原則編 / ALJ Education Plus stdout を追記 stderr をファイルへ 2>&1 stderr を stdout に合流 26

27.

パイプ — Unix哲学の結晶 原理 Day 5 / シェル 一つを良くするコマンドを縦に並べ、出力を次の入力に直結する。これが合成の基本 ps aux grep nginx | 全プロセス一覧 wc -l | nginx 行だけ抽出 行数を数える 前の stdout → 次の stdin に自動接続される U n i x 哲 学 ( 受け継がれた4つの信条 ) 1 一言で 一つのことをうまくやる 2 プログラム同士は協調する 3 早く試作し早く直す 4 汎用データ ( テキスト ) で繋 ぐ grep, awk, sort, wc … 小粒の道具を「|」で数珠繋ぎにすれば大抵の仕事は片付く。 LPIC-101 原理原則編 / ALJ Education Plus 27

28.

PATH — シェルはディレクトリを順に歩いて探す Day 5 / シェル コマンド名は「名前だけ」。PATHに並んだ順にディレクトリを見て、最初に見つけた実体を実行する 原理 $PATH = /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /sbin : /bin /usr/local/sbin /usr/local/bin /usr/sbin × × × 無し 無し 無し /usr/bin ここで発見 /sbin /bin ? ? 未探索 未探索 先頭から順に探索 一言で 「コマンドが見つかりません」は PATH を疑う。which / type で実体の場所を確かめる。 LPIC-101 原理原則編 / ALJ Education Plus 28

29.

Day 6 仮想化・ライブラリの原理 「共有する」と「分離する」— 同じ土台を使いながら互いを邪魔しない技法 共有ライブラリ ・ 動的リンク ・ VM ・ コンテナ ・ LVM

30.

共有ライブラリ — 各アプリが持たず、OSが持つ 原理 Day 6 / 共有・分離 同じ処理を全アプリに同梱すると太る。OSに置いた一つを皆で参照する 静 的 リ ン ク ( 全部入り ) 動 的 リ ン ク ( 共有 ) App1 App2 App3 libc 内包 libc 内包 libc 内包 App1 大きくなる / libc 更新時は全アプリ再ビルド App2 App3 libc ( 1つ ) ldd という道具 実行ファイルに対して走らせると、そのバイナリが必要とする共有ライブラリの一覧と、 実際にどこのライブラリを使う予定かが分かる。動かない時は「共有ライブラリが見つからない」を疑う。 一言で 動的リンクがあるからOSは小さく保てる。壊れる時は大抵ライブラリの依存ズレ。 LPIC-101 原理原則編 / ALJ Education Plus 30

31.

仮想マシン と コンテナ — どこまで分離するか 原理 ハードを騙して別OSを丸ごと動かすか、カーネルを共有して軽く分離するか 仮想マシン ( VM ) コ ン テ ナ ( Container ) OS ごと分離 / 重いが別 OS が動く カーネル共有 / 軽量で秒起動 アプリ1 アプリ2 ゲストOS1 ゲストOS2 アプリ 1 アプリ 2 アプリ 3 Container Container Container ハイパーバイザ 一言で Day 6 / 共有・分離 コンテナランタイム ホストOS ホストOS + カーネル ハードウェア ハードウェア VM は「別世界」、コンテナは「同じ台所の別シェフ」。用途で選ぶ。 LPIC-101 原理原則編 / ALJ Education Plus 31

32.

LVM — 物理ディスクと論理領域を切り離す 原理 直接ディスクを切らず、抽象化された層を置くことで 後からの拡張・縮小を可能にする LV lv_root LV lv_home LV lv_var ( 論理 40% ) ( 論理 35% ) ( 論理 25% ) VG ( ボリュームグループ ) PV ( 物理ボリューム ) /dev/sda 一言で Day 6 / 共有・分離 myvg PV ( 物理ボリューム ) /dev/sdb PV ( 物理ボリューム ) /dev/sdc 「後から足せる、後から分け直せる」。この柔軟性が LVM の存在意義。 LPIC-101 原理原則編 / ALJ Education Plus 32

33.

7本の柱 — 原理原則まとめ Day 7 / まとめ コマンドは忘れる。原理だけは残る。困った時に戻れる7つの拠り所 原理 Day 1 Day 2 Day 3 Day 4 段階起動 依存と一貫性 iノードと名前 最小権限 少ない情報から次を読む連鎖 パッケージは一人では立たない 実体と名前は別のもの 必要な分だけ、必要な時だけ許す Day 5 Day 6 Day 7 入出力の合成 共有と分離 思い出せる状態 道具を繋ぐ | 組み立てる 同じ土台で互いを邪魔しない 暗記ではなく、原理から辿り着く 一言で 原理を持って問題に当たる。それが資格の先にある本当の力。 LPIC-101 原理原則編 / ALJ Education Plus 33

34.

面白きこともなき世を面白く 原理を知ると、Linux はもっと面白くなる。 LPIC-101 合格 は スタート ラ イ ン。 Yukiko