2022/03/14 追記
UbuntuをWSL2上にインストールした内容を別記事にしました。
2019/04/13 更新
Windows10 バージョン1809 (October 2018 Update)で再インストールしたので、それに合わせて記事を見直しました。
前回までは中国でのSIMカードの話題を紹介をしてきました。
今回からは話題を変えてWindowsとDebian GNU/Linuxの話題です。
Debian GNU/Linuxについて
Debian GNU/LinuxはLinuxをカーネルとするオープンソースのオペレーティングシステムです。
というより老舗のLinuxのディストリビューションという方がわかりやすいかもしれません。
公式サイトは下記になります。
私はLinuxを使い始めた頃にたまたまDebianを選択し、その縁でLinuxではDebianを使い続けてきました。もう15年になるでしょうか。
このブログ用のサーバでもDebianを利用しています。
Windows Subsystem for Linux
Windows Subsystem for LinuxはLinuxアプリケーション(ELFバイナリ)をWindows 10上で動かすための互換レイヤーです。
イメージとしてはWindows 10がLinuxカーネルのふりをするためのソフトウェアという感じです。
これまでWindows上でLinuxに近い環境をそろえようとすると、VirtualBoxのような仮想マシンを使うか、Cygwinという互換環境を使う必要がありました。
しかし、仮想マシンはRAM等のリソースを多く消費しますし、Cygwinはバイナリ互換性がないなど一長一短という印象です。
以前はCooperative Linux (coLinux)というLinux上で動く軽量な環境があったのですが、開発が停止してしまったようです。
Windows Subsystem for Linuxは、MicrosoftがWindowsとLinuxの相互運用性を高めるために開発したシステムで第三の選択肢(むしろ第一の選択肢)となることが期待できます。
この機能は2017年からWindowsの正式機能となり(有効化する設定が必要ですが)、利用できるディストリビューションとしてUbuntu・Suse等がありました。
UbuntuはDebianベースなのでUbuntuをインストールしても良かったのですが、最近DebianもサポートされたのでDebianをインストールしてみることにしました。
ちょうどWindows上でプログラミング環境を整備したかったので、Windows Subsystem for Linuxが使えることを期待したいところです。
インストールまでの準備
Windows Subsystem for Linuxを使うには少し手順が必要です。
なお、公式の案内は下記になりますが英語です。
Windowsのバージョンの確認
Windows Subsystem for LinuxはWindows 10のBuild 16215以降で利用可能です。
ビルド番号は、Windwsキー+Rを押して「winver」を実行すると確認できます。
この数値が「16215」以上であることを確認しましょう。普通にアップデートしていればこの条件は満たしているはずです。
それ以下の場合はWindows UpdateをしてOSを更新しましょう。
Windows Subsystem for Linuxの有効化
Windows Subsystem for LinuxはWindowsの正式機能となりましたが、手動で有効にする必要があります。
まずWindowアイコン(スタートメニュー)を右クリックして「アプリと機能」を選択します。
アプリと機能の画面が開いたら、アプリ一覧の部分をずっと下にスクロールしていくと関連設定のところに「プログラムと機能」があります。
これを選択します。
これでプログラムと機能画面が開くので「Windowsの機能の有効化または無効化」を選択します。
これで「Windowsの機能」の画面が開くので「Windows Subsystem for Linux」のチェックボックスをONにします。
OKを選択すると、ちょっとした処理が走り、下記のような画面になったら再起動すれば準備完了です。
GUIでなくてもPowerShellを使うと簡単に設定することができます。
管理者権限でPowerShellを開き、下記を実行してから再起動するとGUIでWindows Subsystem for Linuxを有効にしたのと同じになります。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
実はこちらが公式の方法ですので、コマンドライン(PowerShell)が苦手でない人は、この方法でWindows Subsystem for Linuxを有効にすることをお勧めします。
確認
再起動したら念のためWindows Subsystem for Linuxが有効になっているかどうかを確認しましょう。
Windowsアイコンを右クリックして「Windows PowerShell (管理者権限)」を選択して開いた画面で、下記を実行します。
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
これで次のようにStateが「Enabled」と表示されれば問題ありません。
Debian GNU/Linuxのインストール
準備で問題なければインストールしていきます。
Microsoft Storeでの検索
あとはMicrosoft Storeでディストリビューションを見つけるだけです。
これはMicrosoft Storeアプリを立ち上げて「Linux」で検索すると候補が表示されます。
これで好きなディストリビューションを選べばインストールできることになります。
インストール
今回はDebian GNU/LinuxをインストールするのでDebian GNU/Linuxを選択して表示された画面で「入手」を選択します。
インストールが完了すると「入手」が「起動」に変わるのでこれを選択しましょう。
これで「Debian GNU/Linux」というタイトルのウィンドウが起動します。初回起動時はインストール作業があるので数分待ちます。
インストール作業が終わるこのDebian GNU/Linux用のユーザ作成を要求されます。
ここではアルファベットからなるユーザ名とパスワードを入力します。パスワードは確認を含めて2回入力する必要があります。
このユーザ名はあくまでもこのLinux環境用のユーザ名となります。
Windows Subsustem for Linuxとして別のLinux環境を構築した場合は、また新たなユーザ名を作成する必要があります。
なお、ここで作成したユーザは
- デフォルトのユーザ ・・・ スタートメニューからLinux環境を起動したときに自動的にログインするユーザ
- Linux環境の管理者 ・・・ sudoグループのメンバー
となります。
ユーザの作成に成功すると次のようにbashのプロンプトとなります。
環境の確認
これでbashが使えるようになったのでちょっと試してみました。
まずはDebian GNU/Linuxとしてのバージョンです。これは9.7でした。半年前が9.4だったので更新されています。
$ cat /etc/debian_version 9.7
Linuxカーネルは4.4.0でした。半年前と同じバージョンですがビルド番号が上がっています。またビルド日も2019/3/6と最近になっています。
$ cat /proc/version Linux version 4.4.0-17763-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #379-Microsoft Wed Mar 06 19:16:00 PST 2019
メモリはWindows10のメモリが全部見えるようです。この辺は専用のメモリを確保する仮想マシンと違うところです。
$ free -h total used free shared buff/cache available Mem: 15G 3.6G 12G 17M 223M 12G Swap: 48G 0B 48G
半年前は起動直後で7GBぐらいメモリを消費していたのですが、今回は3.6GBになっています。最適化が進んだのでしょうか。また、スワップファイルがかなり大きめになっています。
HDDを確認すると、Cドライブ・Dドライブは/mntの下にマウントされてます。ただルートディレクトリの空き容量などを見ると、WindowsのCドライブがそのまま見えているようです。
$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 446G 72G 375G 17% / none 446G 72G 375G 17% /dev none 446G 72G 375G 17% /run none 446G 72G 375G 17% /run/lock none 446G 72G 375G 17% /run/shm none 446G 72G 375G 17% /run/user C: 446G 72G 375G 17% /mnt/c D: 1.9T 1.8T 82G 96% /mnt/d E: 233G 113G 121G 49% /mnt/e
CPUを確認して見るとこちらもWindows10のCPUがそのまま見えています。
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 10 model name : AMD Phenom(tm) II X6 1065T Processor stepping : 0 microcode : 0xffffffff cpu MHz : 2900.000 cache size : 512 KB physical id : 0 siblings : 6 core id : 0 cpu cores : 6 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 16 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow pni monitor cx16 popcnt bogomips : 5800.00 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: 以下省略
こうして見るとWindows Subsystem for LinuxはWindowsが動いているリソース(CPU・HDD・メモリ)を直接利用してることがわかります。
このことから仮想マシンを使うよりオーバヘッドがなく、高速に動くことが期待できます。
まとめ
今回はWindows Subsystem for Linuxを使ってWindows10にDebina GNU/Linuxをインストールしてみました。
さすがに正式版の機能となっているだけあってインストールは簡単です。面倒なのはWindows Subsystem for Linuxを有効化するところだけでしょう。
次回は今回インストールしたDebian環境を整備していきます。
コメント