2.1K Views
April 16, 26
スライド概要
LPIC 101システムアーキテクチャ0から入門編 文系・未経験から始める Linux の世界 〜 新人エンジニアのための 2.5H 集中講座 〜 YukikoIshiguro
はじめまして、yukikoと申します。 DX推進のお力になれれば嬉しいです! 気軽にLinkedinなどでお声がけくださいね! ★スキル LPICレベル2取得者 AI、Python、Splunk、BIが得意領域です。
LPIC 101 システムアーキテクチャ 0から入門編 文系・未経験から始める Linux の世界 〜 新人エンジニアのための 2.5H 集中講座 〜 小豆本 第1章 対応 補足資料 YukikoIshiguro
今日のゴール & タイムテーブル ゴール:Linuxの起動の流れを人に説明できるようになる! 0:00 - 0:30 ハードウェアの基礎 0:30 - 0:50 BIOS / UEFI 0:50 - 1:10 デバイスファイル・udev・/proc 1:10 - 1:25 休憩 1:25 - 1:50 デバイス情報コマンド&ドライバ 1:50 - 2:10 システム起動の流れ 2:10 - 2:30 init / systemd / まとめ 学習 → 実践 → アウトプット のサイクルで身につけよう!
Part 1 ハードウェアとは? ハードウェア = 「目に見える・触れる」コンピュータの部品 スマホで考えてみよう! CPU メモリ ストレージ 入力装置 出力装置 =「頭脳」 =「作業机」 =「本棚」 =「口・手」 =「目・耳」 計算・処理を行う 一時的にデータを置 く データを長期保存 情報を入れる 結果を出す ソフトウェア(OS・アプリ)は「目に見えない」プログラムのこと
Part 2 BIOS / UEFI ってなに? 電源を入れたら最初に動く「目覚まし係」のプログラム(ファームウェア) BIOS(バイオス) UEFI(ユーイーエフアイ) = 昔からある「目覚まし係」 = 新しい「高機能な目覚まし係」 → Basic Input/Output System の略 Unified Extensible Firmware Interface ✓ BIOSの後継・より高機能 ✓ セキュリティ機能強化 ✓ ネットワーク対応 ✓ 今のPCはほぼこれ! ✓ 電源ONで最初に起動 ✓ ハードウェアの初期化 ✓ 起動デバイスの検出 ✓ F12キーなどで設定画面へ BIOS/UEFI で設定できること 日付・時刻 デバイスの設定 電源管理 起動ドライブの順序
Part 3 デバイスファイルと udev デバイスファイルとは? udev とは? ハードウェアを「ファイル」として 扱えるようにしたもの USB等を挿したら自動で使える ようにしてくれる仕組み 場所:/dev ディレクトリ ルールファイル: 例えるなら… /lib/udev/rules.d/(標準) /etc/udev/rules.d/(カスタム) プリンタ → /dev/lp0 ハードディスク → /dev/sda D-Bus でアプリと連携 仕組みの流れ USB を挿す → カーネルが検知 → udev がルール参照 → /dev にファイル作成 → 使えるようになる!
Part 4 /proc ディレクトリ /proc = Linux が認識しているデバイス情報が入っている特別なフォルダ ファイル名 中身 コマンド例 /proc/cpuinfo CPU の情報 cat /proc/cpuinfo /proc/meminfo メモリの情報 cat /proc/meminfo /proc/ioports I/O アドレス情報 cat /proc/ioports /proc/interrupts 割り込み番号 cat /proc/interrupts /proc/dma DMA チャネル cat /proc/dma ポイント:cat コマンドで中身を見るだけ! 覚え方 → 「/proc は PC の健康診断書」
Part 5 デバイス情報を確認するコマンド lspci lsusb lscpu PCI デバイス情報 (マザーボード接続機器) USB デバイス情報 (USBメモリ等) CPU の情報 (≒ cat /proc/cpuinfo) 主なオプション 主なオプション 主なオプション -v 詳細表示 -vv もっと詳細 -s 特定デバイス -v 詳細表示 -d [ID] 特定デバイス オプション不要 そのまま実行! 覚え方 → ls = list(一覧表示)+ pci / usb / cpu !
Part 6 デバイスドライバのロード デバイスドライバ = ハードウェアを動かすためのプログラム(カーネルの一部) lsmod modprobe ドライバを手動でロード/削除 ロード済みドライバの一覧表示 「今どのドライバが動いてるの?」 → lsmod で確認! modprobe [ドライバ名] → ロード(追加) modprobe -r [ドライバ名] → アンロード(削除) 普段は自動ロード。手動は modprobe。確認は lsmod。この2つを覚えよう!
最重要 システム起動の流れ 電源 ON パソコンのスイッチを押す BIOS/UEFI 起動 ハードウェアの初期化&チェック ブートローダー読込 LinuxOS を読み込むプログラム カーネル起動 Linux の本体が起動! 初期プロセス実行 必要なサービスを順番に起動 起動完了! ログイン画面が表示される ↓ ↓ ↓ ↓ ↓ この流れは dmesg コマンドで確認できる! ログ:/var/log/messages, /var/log/boot.log
Part 7 初期プロセス(init)の進化 初期プロセス = カーネルが最初に起動するプロセス。全プロセスの「親」! SysVinit Upstart systemd 昔 中間 今(主流) • 順番に1つずつ起動(直列) → • イベント駆動型で並列起動 → • Unit 単位で管理 • /etc/inittab で設定 • SysVinitより高速! • systemctl コマンドで操作 • ランレベル(0〜6)で管理 • /etc/event.d にジョブ定義 • 並列起動で超高速! • 起動が遅いのが弱点 • 一時的な中間世代 • 現代のほとんどのLinux 試験では3つとも出る! 特に systemd と SysVinit のランレベルは必須
Part 8 ランレベルって何? ランレベル = 「Linux のモード切替スイッチ」(0〜6 の数字で設定) レベル 0 1/S 動作 覚え方 停止(シャットダウン) Off! シングルユーザー 修理モード 2 マルチユーザー(NFS停止) 3 マルチユーザー(テキスト) 4 未使用 5 マルチユーザー(GUI) デスクトップ! 6 再起動(リブート) Reboot! runlevel ← 現在のランレベル確認 サーバーはコレ! (空き番号) init [N] / telinit [N] ← ランレ /etc/inittab ← デフォルト設定ファ ベルの変更 イル
超頻出 systemd と systemctl コマンド Unit の種類 .service .device .mount .target サービスを起動 デバイスを表す マウント処理 Unitをグループ化 例: httpd.service 例: dev-sda.device 例: home.mount 例: multi-user.target systemctl コマンド一覧 サブコマンド 書式:systemctl [サブコマンド] [Unit名] 動作 使用例 start 起動する systemctl start apache2 stop 停止する systemctl stop apache2 restart 再起動する systemctl restart apache2 status 状態確認 systemctl status apache2 enable 自動起動 ON systemctl enable apache2 disable 自動起動 OFF systemctl disable apache2
Part 9 システムの停止と再起動 shutdown コマンド shutdown [オプション] [時間] [メッセージ] -h now -h +5 -r now -k now "msg" 今すぐ停止 5分後に停止 今すぐ再起動 メッセージのみ その他の停止・再起動コマンド halt → システム停止 poweroff → 電源OFF reboot → 再起動 サーバー運用では shutdown -h +5 "メンテナンスのため停止します" のように事前通知が大事!
今日のまとめ ハードウェア CPU・メモリ・ストレージ・入出力装置 BIOS/UEFI 電源ON時に最初に動くファームウェア デバイスファイル /dev 配下。udev が自動作成 /proc デバイス情報の格納場所 確認コマンド lspci / lsusb / lscpu / lsmod 起動の流れ 電源→BIOS→ブートローダ→カーネル→init init の進化 SysVinit → Upstart → systemd systemctl start / stop / enable / status 停止コマンド shutdown -h / -r / halt / reboot お疲れさまでした! 次のステップ → 小豆本 第2章問題へ