01. Linuxの全体像: まずは地図を持つ
Linuxを学び始めると、最初はコマンドに目が行きがちです。
でも本当に大事なのは、Linuxがどんな部品でできていて、どうつながっているかです。
この記事では「つまりLinuxって何なのか」を、最初に整理します。
Linuxを3つの層で見る
Linuxはざっくり次の3層で考えると理解しやすくなります。
1. ユーザー空間: bash、nginx、pythonなど
2. カーネル空間: process管理、メモリ管理、ファイル管理、ネットワーク管理
3. ハードウェア: CPU、メモリ、NIC、ディスク
図解テキスト
[User Space]
bash / nginx / python / sshd
|
| syscall
v
[Kernel Space]
process scheduler
memory manager
VFS
network stack
|
v
[Hardware]
CPU / RAM / SSD / NIC
なぜこの見方が必要か
例えばWebアプリが重いとき、原因は次のどれかにあります。
- processが増えすぎてCPU待ち
- メモリ不足でswap発生
- ディスクI/Oが詰まる
- ネットワーク遅延
どこで詰まっているかを判断するには、Linux内部の地図が必要です。
DockerやAWSとのつながり
- Dockerコンテナは、Linux kernelをホストと共有している
- EC2の中身はLinuxが多く、トラブル時はLinux知識が直結する
- systemdやjournalの理解が、運用トラブルの調査速度を上げる
まず手を動かす
uname -a
cat /etc/os-release
ps -ef | head
mount | head
ip addr
ここでのポイント
- Linuxは単なるCLI環境ではなく、資源管理をするOS
- kernelは見えないが、すべてのI/Oの中継点
- ユーザー空間のプログラムはsyscallでkernel機能を使っている
今回理解できたこと
- Linuxは「層」で理解すると迷いにくい
- コンテナやクラウドの理解にもLinux内部知識が効く
- 次回以降は各層を分解して見る
コメントを残す