Linux: Linux入門 — オープンソースOSの革命
Linuxは、すべての開発者がいずれ直面するオペレーティングシステムです。バックエンドサービスのデプロイ、データベースの設定、CI/CDパイプラインの運用 — そのサーバーはほぼ確実にLinuxで動いています。
📋 前提条件:事前知識は不要
1. このレッスンで学ぶこと
- Linux、Windows、macOSの根本的な違い
- オープンソースの理念とGNU/Linuxの関係
- Linuxディストリビューションの選び方
- サーバー市場でLinuxが支配的な理由
- デスクトップにおけるLinuxの現状
2. 初心者のストーリー:初めてサーバーに向き合う
(1) 悩み:初めてサーバーに直面して途方に暮れる
小明は最近Linuxに切り替えた開発者です。会社からMacBookを支給されましたが、バックエンドの同僚たちはターミナルを軽快に操っています。彼はLinuxサーバーにログインしてログを確認する必要がありましたが、ターミナルを開いても「ls」の意味さえ分かりませんでした。
先輩エンジニアのボブは言いました。「Linuxはすべての開発者にとって必須のスキルです — デスクトップOSとして必要だからではなく、インターネットサービスの圧倒的多数がLinux上で動いているからです。」
(2) Linuxが提供する解決策
ボブは小明にLinuxを紹介しました:無料でオープンソースのOSカーネルで、何年も連続稼働できるほど安定しています。ラズベリーパイからNASAの火星探査車まで、あらゆるデバイスで動作します。
# Check how long a Linux server has been running
uptime
# Sample output: 10:23 up 187 days, 4 users, load average: 0.08 0.03 0.01
(3) 得られるもの:インフラの理解
このレッスンを終えると、小明は毎日使っているGitHub、Netflix、YouTubeのサービスを支えるOSが何か — そしてサーバー市場でLinuxが圧倒的なシェアを持つ理由を理解しました。
3. 知識ポイント
(1) Linuxとは何か
厳密に言えば、Linuxはカーネルに過ぎません — オペレーティングシステムの中核コンポーネントで、ハードウェアリソースの管理、プロセスのスケジューリング、ファイルシステムなどを担当します。1991年、フィンランドの大学生リーナス・トーバルズが最初のバージョンを公開しました。
しかし、人々が一般的に「Linux」と呼ぶものは、実際にはGNU/Linuxオペレーティングシステムを指します — LinuxカーネルとGNUツールセット(cp、mv、ls、bashなどのコマンド)の完全な組み合わせです。
(2) Linux vs Windows vs macOS
3大オペレーティングシステムは設計と理念が根本的に異なります:
| 項目 | Linux | Windows | macOS |
|---|---|---|---|
| カーネル | Linux(オープンソース) | NT(クローズドソース) | XNU(一部オープン) |
| パッケージ管理 | apt/yum/dnf | EXE/MSI | Homebrew |
| コマンドライン | bash/zsh(コア体験) | PowerShell(追加機能) | zsh(Linux風) |
| ファイルシステム | ext4/XFS/Btrfs | NTFS | APFS |
| デスクトップ環境 | GNOME/KDE(ユーザーの選択) | 固定デスクトップ | Aqua |
| ライセンス | GPL(オープンソース、無料) | 商用ライセンス | 商用ライセンス |
| 主要市場 | サーバー / 組み込み | デスクトップ / エンタープライズ | デスクトップ / クリエイティブ |
(3) 主要ディストリビューションファミリー
Linuxには数百のディストリビューションがありますが、中核となるのは4つのファミリーだけです:
| ファミリー | パッケージマネージャ | 代表的ディストリビューション | 向いている用途 |
|---|---|---|---|
| Debian系 | apt/.deb | Ubuntu、Debian、Linux Mint | 初心者、サーバー |
| RHEL系 | yum/dnf/.rpm | RHEL、Fedora、CentOS | エンタープライズサーバー |
| Arch系 | pacman | Arch Linux、Manjaro | 愛好家、最新ソフトウェア |
| Alpine | apk | Alpine Linux | 最小Dockerイメージ |
(4) なぜサーバーはLinuxで動くのか
- 無料:Windows Serverのライセンス費用が不要
- 安定:サーバーは何年も再起動なしで稼働可能
- リモート対応:SSHターミナルで管理、GUI不要
- 低リソース消費:コマンドラインインターフェースは数百MBのRAMしか必要としない
- 豊かなエコシステム:Nginx/MySQL/Python/Node.jsはすべてLinuxサポートを優先
- コンテナネイティブ:Docker/KubernetesはLinux上でネイティブ動作
(5) ▶ サンプル:Linuxカーネルバージョンの確認
uname -r
# Sample output: 5.15.0-91-generic
出力:
TEXT 📖 参照専用5.15.0-91-generic
(6) ▶ サンプル:ディストリビューション情報の確認
lsb_release -a
# Sample output:
# Distributor ID: Ubuntu
# Description: Ubuntu 22.04.3 LTS
# Release: 22.04
# Codename: jammy
(7) ▶ サンプル:システム稼働時間の確認
uptime
# Sample output: 10:23:45 up 187 days, 4 users, load average: 0.08 0.03 0.01
出力:
TEXT 📖 参照専用10:23:45 up 187 days, 4 users, load average: 0.08, 0.03, 0.01
(8) ▶ サンプル:CPUとメモリ情報の確認
# CPU info
lscpu | grep "Model name"
# Total memory
free -h | grep Mem
出力:
TEXT 📖 参照専用Model name: Intel(R) Core(TM) i7-12700K Mem: 15Gi 4.0Gi 11Gi 256Mi 2.0Gi 11Gi
(9) ▶ サンプル:各ディストリビューションのパッケージ管理コマンド
# Debian/Ubuntu
sudo apt install nginx
# RHEL/Fedora/CentOS
sudo yum install nginx # or dnf
sudo dnf install nginx
# Arch
sudo pacman -S nginx
# Alpine
apk add nginx
出力:
TEXT 📖 参照専用Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed: nginx 0 upgraded, 1 newly installed, 0 to remove. Need to get 42.3 kB of archives.
(10) ▶ 総合例:Linuxシステムを知ろう
Linuxマシン(またはWSL)にログインし、以下のコマンドで基本情報を確認しましょう:
echo "=== Kernel Version ===" && uname -r && \
echo "=== Distribution ===" && lsb_release -d && \
echo "=== Uptime ===" && uptime && \
echo "=== CPU ===" && lscpu | grep "Model name" && \
echo "=== Memory ===" && free -h | grep Mem
❓ よくある質問
Q: LinuxとUnixの違いは何ですか? A: Unixは1970年代にベル研究所で開発されたOSで、商用ライセンスのクローズドソースです。Linuxはリーナス・トーバルズがゼロから書いたUnix系カーネルで、完全にオープンソースで無料であり、Unixのコードを含んでいません。Linuxは「Unix系」と表現されます。
Q: なぜほとんどのサーバーはLinuxで動いているのですか? A: 無料(Windows Serverのライセンス費用不要)、安定(何年も再起動なしで稼働可能)、低リソース消費(CLIは数百MBのRAMしか必要としない)、リモート対応(SSH)、そして豊かなエコシステム(ほぼすべてのサーバーソフトウェアがLinuxサポートを優先)。
Q: 初心者に最適なディストリビューションはどれですか? A: \1
Q: デスクトップのLinuxは日常使用に適していますか? A: 一般的なオフィス作業(ブラウザ/オフィスアプリ/開発ツール)には適していますが、まだ短所があります:Adobeスイートは利用不可、一部のゲームは非対応、Tencent系エコシステム(WeChat/QQ)の体験は平凡です。開発者には、デスクトップはWindows/Mac + 開発はWSL/仮想マシンを推奨します。
Q: LinuxカーネルとGNU/Linuxの関係は何ですか? A: \1
📖 まとめ
- Linuxは1991年にリーナス・トーバルズが作成したオープンソースカーネル
- 完全なOSはGNU/Linuxと呼ばれる(Linuxカーネル + GNUツールセット)
- 4大ディストリビューションファミリー:Debian / RHEL / Arch / Alpine
- サーバー市場でLinuxが支配的な理由:無料、安定、リモート対応、コンテナネイティブ
- 初心者にはUbuntu LTSを推奨
📝 練習問題
- 基本(難易度 ⭐):「Linux market share 2025」を検索し、サーバー、デスクトップ、組み込み市場それぞれのシェアの違いを調べる
- 中級(難易度 ⭐⭐):UbuntuとFedoraの公式サイトで比較(デスクトップ vs サーバー、安定性 vs 新機能)し、結果を表にまとめる
- 上級(難易度 ⭐⭐⭐):日常的に使っている5つのWebサイト/アプリを挙げ、それらがLinuxで動いているかどうかを調査(ヒント:WhoIsHostingThisで確認)し、インターネットインフラにおけるLinuxの役割をまとめる