リネオブログ

Linux vs. Windows

2018 年 04 月 06 日   Linux 技術ネタ

なつかしさ

一昔前に、デスクトップ環境は Linux か、Windows かなんて議論があったことも忘れていましたが、最近 Windows のMicrosoft Storeの検索のキーワードに linux を入れるとなんと、こんな感じに表示され、C ドライブ上に Linux on Windows なんて魅惑的な文字が表示されます。

C:\> Linux on Windows? 本当です。

Linux 上で Windows アプリを動かす場合は、Wine を使ったり、最近では仮想マシンをインストールしたりいろいろと工夫がされています。また、昔は Windows上で Linux 環境を構築しようとすると、Cygwin であったり、 MinGW を使ったりするのですが、ファイル名の大文字小文字の区別がつかなかったり ( Linux の kernel の構築ではまるパターン)、リンクの問題が解決しなかったりと、過去当社の製品の ELITE の Windows 版もこの問題があり、結果 Windows 上の仮想マシンに ELITE をインストールすることを推奨環境としました。

Windows Subsystem for Linux って?

概要は以下の Microsoft のページから、読み取ることができます。

The Windows Subsystem for Linux lets developers run Linux environments -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a virtual machine.

The Windows Subsystem for Linux は、開発者へ Linux 環境を動作させることを許可する、ほとんどのコマンドラインツール、ユーティリティ、アプリケーション、それも仮想マシンのオーバヘッドなく、変更することなく、Windows 上で直接に。とのこと。なんだか仮想マシンより性能が良さそうな印象を持ってしまいます。

さらに、同じく Microsoft 社 MSDN のブログでは

We recently announced Bash on Ubuntu on Windows which enables native Linux ELF64 binaries to run on Windows via the Windows Subsystem for Linux (WSL). This subsystem was created by the Microsoft Windows Kernel team and has generated a lot of excitement...

と Native の Linux ELF64 バイナリを WSL 経由の Windows 上で動作させる、みたいです。

動かしてみよう

Microsoft Store からは、Kali Linux、Debian ProjectからのDebian GNU/Linux、SUSE Enterprise Server、OpenSUSE、Ubuntu などが選べます。

インストールの方法などは、Windows のビルドバージョンにも依存しますので、ご注意ください。

自分の開発マシンも Ubuntu をインストールしておりますので、今回は Ubuntu を選択してみます。インストールは C ドライブ指定のようで、195.6MB の空き容量の確認後インストールが開始されます。特に問題なくインストールは終えたのですが、起動するも添付エラーとなっております。指示の通り、Microsoft Bing に行ってみますと、こちらのサイトにジャンプして、内容確認したところ

error 0x8007007e

Troubleshooting: Installation failed with error 0x8007007e

This error occurs when your system doesn't support Linux from the store. Make sure that:

  • You're running Windows build 16215 or later.?Check your build. ⇒これは良さそう
  • The Windows Subsystem for Linux optional component is enabled and the computer has restarted.?Make sure WSL is enabled. ⇒これっぽい

Windows の検索に powershell と入力して、管理者権限で起動後以下の指定のコマンドを入力した結果、なんだか再起動が必要そう。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Windows の再起動後、Ubuntu を起動すると以下の感じでインストールが始まり

インストールが始まり

ユーザ名とパスワードを入力して

ユーザ名とパスワードを入力

で、dir コマンドも、ls コマンドも使える Windows 上の Linux が動きました。

Linux が動きました。

df すると windows 上のドライブがマウントされていることを確認できます。

もっと動かしてみよう

となると、やっぱり X Window あたりを動かしたくなってきます。ネットで検索してみますと、VcXsrv が良さそうですので、関連するパッケージを Ubuntu(Windows 上の)にインストールしていきます。

Windows Subsystem for Linux + VcXsrv + RubyMine でWindowsでも快適なRails開発環境を作ろう

sudo apt-get update
sudo apt-get install language-pack-ja
sudo apt-get upgrade

当方の環境では、先に language-pack-ja をインストールしないと upgrade でエラーになりました。その後、Ubuntu(Windows 上の)に gnome-terminal をインストールします。

sudo apt install -y xterm

さて、肝心のXサーバですが、どうやら Windows 上で動作させる必要があるとのことです。VcXsrv Windows X Serverから vcxsrv-64.1.19.6.2.installer.exe をダウンロードし、Windows でインストールを行います。

Windows 上から vcxsrv を起動後に DISPAY 環境変数を設定し、その後、xterm を起動すると

export DISPLAY=:0.0
xterm

Windows の画面に xterm が起動されます。

Windows の画面に xterm が起動

Windows から見ると、Ubuntu(Windows 上の)の terminal も、xterm もアプリケーションとなりますのでタスクマネージャーからはこんな感じに見えます。なんだか Linux vs. Windows という状況でなく、もうシームレスに動いている感じです。

タスクマネージャー

Yocto Project 公式実践講座 5 月 ~ 7 月 開催分 受講お申込み受付中!
Yocto Project よもやま話
新企画「Yocto Project よもやま話」の連載を始めます
新企画「Yocto Project よもやま話」の連載を始めます

2022 年 04 月 28 日 Yocto Project よもやま話

Linux 技術ネタ
イベントレポート
ET & IoT 2021 レポート
ET & IoT 2021 レポート

2021 年 12 月 01 日 イベントレポート

組込み総合技術展 Embedded Technology 2019 レポート
組込み総合技術展 Embedded Technology 2019 レポート

2019 年 12 月 13 日 イベントレポート

組込み総合技術展 関西 ETWest2019 レポート
組込み総合技術展 関西 ETWest2019 レポート

2019 年 06 月 20 日 イベントレポート

リクルート
違うズラ
違うズラ

2018 年 10 月 26 日 リクルート

信州で人生がかわる
信州で人生がかわる

2018 年 07 月 24 日 リクルート

新入社員インタビュー
新入社員インタビュー

2017 年 02 月 28 日 リクルート

北小野通信
入笠山ハイキング その 2
入笠山ハイキング その 2

2019 年 10 月 09 日 北小野通信

入笠山ハイキング その 1
入笠山ハイキング その 1

2019 年 10 月 09 日 北小野通信

氷の世界
氷の世界

2019 年 01 月 22 日 北小野通信

ソリューション統括部
シリコンバレー探検記 2019 ~番外編~
シリコンバレー探検記 2019 ~番外編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~後編~
シリコンバレー探検記 2019 ~後編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~前編~
シリコンバレー探検記 2019 ~前編~

2019 年 12 月 10 日 ソリューション統括部

マーケティング統括部
大成功決起大会!!(ET2019)
大成功決起大会!!(ET2019)

2019 年 12 月 13 日 マーケティング統括部

ESEC 2019 決起大会
ESEC 2019 決起大会

2019 年 04 月 25 日 マーケティング統括部

シリコンバレー探検記 その 2
シリコンバレー探検記 その 2

2018 年 12 月 18 日 マーケティング統括部