Windowsで、PythonやRubyの学習をする際、Windows上でLinuxを動かすために、WSL2のインストールが必要になるとよく言われる。
そもそもLinuxって、たまに聞くけど一体何なのか?
整理してみた。
目次 閉じる
OSとは?カーネルとは?
OS(オペレーティングシステム)
パソコン全体を管理し、ユーザーとアプリに使いやすい環境を提供する。
例:Windows, macOS, Android
構成要素:カーネル + 各種アプリケーション + システムツール
カーネル
OSの中核部分として、ハードウェアとソフトウェアをつなぐ。
例:Linuxカーネル, Windows NTカーネル, XNUカーネル
構成要素:CPU管理, メモリ管理, デバイス制御, ファイル管理
OSとカーネルの関係
図解すると以下のようなイメージ。
カーネルはあくまでOSの一部。

私はずっとLinuxはOSのことだと思っていたが、Linuxはカーネルの名称だった。
以下はOSとカーネルの組み合わせ表。
OS | カーネル |
---|---|
Windows | Windows NTカーネル |
macOS | XNUカーネル |
Linux系(Ubuntu, Debian, Fedora など) | Linuxカーネル |
よく耳にするUbuntsuはOSの名称。UbuntsuのカーネルがLinuxという関係性になる。
プログラミング学習におけるWSLの役割
WSLとは
WSL(Windows Subsystem for Linux)は、Window上でLinux操作できる仕組み。
以下のプロンプトで簡単にインストールできる。
wsl --install
WSLの役割
macOSには、開発ツールをすぐに使える機能が整備されており、Linuxと同様のパッケージ管理ができる。
一方、Windowsには、標準機能として開発ツールやパッケージ管理システムが備わっていない。
具体的には、Python開発やソフトのインストールをすることがそのままでは難しい。
そこで、WSLが大事な役割を果たす。
下図のように、WindowsOSにWSLを導入することで、LinuxカーネルやUbuntsuを使えるようになる。
結果として、Linuxと同様に開発ツールやパッケージ管理ができるようになる。

WSLの役割がクリアになっていないので、理解を深めていきたい。