Linux入門の導入スライド
OSは、アプリとハードウェアの間で資源を管理する
複数のアプリは、CPU・メモリ・ディスクを直接取り合いません。OS が使う順番・量・アクセスを管理し、安全に共有できるようにします。
複数のアプリ
アプリ A・B・C が必要な資源を依頼する
OS
資源を割り当て、互いの処理を保護する
ハードウェア資源
CPU は計算、メモリは保持、ディスクは保存を受け持つ
OS が間に入ることで、複数のアプリが同じハードウェアを安全に共有できます。
1 / 3
Linuxでは、カーネルが機械を動かす
シェル・コマンド・アプリはユーザー空間で動き、必要な処理をカーネルへ依頼します。カーネルは CPU・メモリ・ディスクなどのハードウェアを直接制御します。
ユーザー空間
シェル・コマンド・アプリ
bash・ls・python など、ユーザーが触る道具
システムライブラリ
カーネル呼び出しを支える
Linux カーネル
要求を受け取る
ハードウェアを直接制御する
ハードウェア
CPU・メモリ・ディスク・NIC
カーネルの制御で動く
ユーザーが触るのはユーザー空間です。シェルやコマンドはハードウェアを直接操作せず、要求はカーネルを経由します。
2 / 3
カーネルだけでなく、道具をまとめて配る
厳密な Linux は、ハードウェアを制御するカーネルです。Ubuntu や Debian などのディストリビューションは、Linux カーネルに基本コマンドやパッケージ管理などを組み合わせ、OS として配布します。
Linux カーネル
ハードウェア制御と資源管理を担う、OS の中核
ディストリビューション
Linux カーネル+基本コマンド+パッケージ管理などを、使える OS としてまとめたもの 例: Ubuntu / Debian / Alpine
Ubuntu や Debian はカーネルの名前ではなく、Linux カーネルと道具群を含むディストリビューションです。
3 / 3
コードが動く先の多くはLinux
手元がmacOSやWindowsでも、Gitへ送ったコードは、CI、コンテナ、本番サーバーなど多くの実行環境でLinuxに触れます。
開発者 → Git
手元で書いたコードをリポジトリへ送る
CIランナー
Linux上でテストとビルドを実行する
コンテナイメージ
Linuxで動かすアプリと依存関係をまとめる
本番サーバー
Linux上でサービスとして動かす
手元のOSが違っても、コードが実際に動く環境を調べるにはLinuxの基礎が役立ちます。
1 / 4
障害対応は、4つの確認で切り分ける
サービス停止の連絡が来たら、対象へ入り、状態、ログ、資源の順に事実を集め、原因の範囲を狭めます。
ssh
対象のサーバーへ入る
systemctl status
サービスが動いているか確かめる
journalctl
停止前後の手がかりをログで探す
top
CPU・メモリの逼迫を確かめる
この回では役割と初動の順番だけを押さえ、各コマンドの詳しい操作は後続レッスンで扱います。
2 / 4
クラウドでも、OSの知識は消えない
クラウドやコンテナでも、ベースイメージ、導入するパッケージ、ファイルの置き場所はLinuxの前提に基づきます。抽象化されても、OSを理解して判断する場面は残ります。
ベースイメージを選ぶ
利用できるコマンドやライブラリの土台が決まる
必要なパッケージを加える
アプリが使う道具と依存関係が揃う
ファイルの配置先を決める
実行ファイルや設定をLinuxの場所へ置く
この回ではLinuxの前提が残る理由だけを押さえ、Dockerfileや各設定の書き方は扱いません。
3 / 4
Linuxの基礎は、職種を越えて長く使える
開発環境やサービスが変わっても、ファイルを確認する、文字列を探す、結果を集計するといった作業は繰り返し現れます。Linuxの基本操作を知ると、開発・運用・データ作業などで同じ考え方を応用できます。
環境ごとに変わる道具
IDE・クラウドサービス・フレームワーク 製品やチームに合わせて使い方が変わる
繰り返し使う基礎操作
ファイルを確認する・文字列を探す・結果を集計する 開発・運用・データ作業で何度も現れる
特定のコマンドを一生暗記するのではなく、基本操作の目的と組み合わせ方を理解すると、新しい環境にも応用しやすくなります。
4 / 4
ターミナルは表示、シェルは解釈を受け持つ
同じ画面の中に見えても、ターミナルとシェルは別のソフトウェアです。ターミナルはキー入力と文字表示を受け持ち、シェルは入力された文字列を解釈して実行を依頼します。
ターミナル
キー入力を受け取り、文字を表示する窓 例: iTerm2・Windows Terminal
シェル
入力された文字列を解釈し、実行を依頼する 例: bash・zsh
シェルの依頼を受け、プロセスの生成やファイルへのアクセスを処理するのはカーネルです。
1 / 4
入力は、ターミナルからカーネルへ進む
キーで入力した文字列はターミナルからシェルへ渡り、シェルの解釈に基づいてカーネルがプロセスを動かします。
キー入力
ユーザーが文字列を入力する
ターミナル
入力をシェルへ渡す
シェル
文字列を解釈し、実行を依頼する
カーネル
要求に応じてプロセスを作り、動作を支える
図の矢印は入力と実行依頼の流れです。実行されたプロセスの出力はターミナルに戻り、画面に表示されます。
2 / 4
Linux入門 - シェルとターミナルの違いを理解する
環境ごとに、シェルとカーネルの所在を分けて見る
手元のターミナルから操作する代表例で、文字列を解釈するシェルと、処理を支えるカーネルの所在を分けて見ます。
SSHでは手元のクライアントが接続先のシェルへ橋渡しします。コンテナは専用カーネルを持たず、実行基盤のLinuxカーネルを共有します。
| 操作する環境 | シェル → カーネル |
|---|---|
| ローカル(手元OS) | 手元OS上のシェル → 同じOSのカーネル |
| SSHで接続した先 | 接続先のシェル → 接続先OSのカーネル |
| コンテナ内でシェルを起動した場合 | コンテナ内のシェル → コンテナ実行基盤のLinuxカーネル |
3 / 4
困りごとは、担当する層から切り分ける
同じ画面で起きた困りごとでも、原因の候補は一つではありません。症状から、まず確認する層を分けます。
文字色や表示が崩れる
ターミナルの表示設定
プロンプトやシェルの別名(alias)の挙動が違う
シェルの設定
SSHで接続したときだけ挙動が違う
接続先のシェル
ファイルへのアクセスを拒否される
カーネルが判定するファイルのアクセス権限
ここでは確認先だけを切り分けます。設定変更や権限の修正は、後続のレッスンで扱います。
4 / 4
Linux入門 - ping で遅延を測る
ping で遅延を測る
ping は相手に小さなデータを送って、返ってくるまでの時間を測るコマンドです。返ってきた時間 (RTT) は、相手のおおまかな遠さの目安になります。
この time= の数字が何で決まるのかを、このあとの2つの図解で自分で確かめます。
ping を打つと、1 往復ごとにこの 1 行が返ってきます。
64 bytes from 10.0.0.1: time=1.2 ms1 / 6
Linux入門 - ping で遅延を測る
近いところを測る
3か所を順に押して、往復時間の伸び方を見てください。
- 同じ建物の中でも 0 にはならない。機器を通るぶんの時間が必ず乗る
- 距離が10倍でも時間は10倍にならない。固定の下駄があるぶん、伸び方はゆるい
2 / 6
考えてみよう外しても進めます
アメリカ西海岸までの往復は何 ms くらいだと思いますか。
選ぶと、この枚の中で答えと理由を確かめられます。
3 / 6
Linux入門 - ping で遅延を測る
遠いところを測る
2か所を押して、近いところとの桁の違いを見てください。
- 国内が 1〜10 ms なのに対し、海をまたぐと 100 ms 台に跳ねる
- 光が海底ケーブルを往復する時間そのものなので、機材を替えても縮まない
4 / 6
測った結果
5か所の往復時間を並べると、距離が伸びるほど往復時間も伸びるのが分かります。近いところでも 0 にならないのは、機器を通るぶんの固定の下駄があるからです。
同じ建物
東京
大阪
アメリカ西海岸
地球の裏側
棒の長さは往復時間の実測値そのままです。目盛りは加工していません。
サイトが遅いときは、相手が遠いか経路が混んでいるかを疑います。
5 / 6
距離は、機材では縮まらない
回線を速くしても、光が往復する時間そのものは変わりません。遠いところに置いたものは、遠いぶんだけ遅くなります。
6 / 6
