このページの本文へ

前へ 1 2 次へ

仮想マシンではなく、Windows環境とUbuntu環境が同時に動く仕組み

Buildで発表された「Bash on Ubuntu on Windows」とは?

2016年04月06日 07時00分更新

文● 大塚昭彦/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 「BashがWindowsにやって来る(Bash coming to Windows)」。Build 2016の基調講演で、マイクロソフトのケビン・ギャロ氏はそう宣言した。今夏に予定されているWindows 10の次期メジャーアップデート「Windows 10 Anniversary Update」でそれが実現するという。

マイクロソフトはBuild 2016の基調講演で「Bash coming to Windows」と発表(画像はChannel 9より)

Bashの発表やデモを行った、マイクロソフト Windows&Devicesグループ コーポレートVPのケビン・ギャロ(Kevin Gallo)氏

Bashだけでなく、多数のオープンソースツールがネイティブで動作する

 「これは仮想マシンでも、(Cygwinのような)クロスコンパイルしたツールでもない。新しいWindowsサブシステムの“魔法”によって、Ubuntuのネイティブバイナリがそのまま動作する」(ギャロ氏)

 ギャロ氏の短いデモでは「Windows上でBashが動作する」ことだけが強調されたが、実際にはBashだけでなく、Ubuntuが提供するユーザーモードアプリケーション(ELFバイナリ)の多くがそのまま動作するという。実際、ギャロ氏のデモにおいても、Bashから起動したEmacsやsshクライアントが動作していた(言うまでもなく、これらはBashとは独立したバイナリである)。

Buildの基調講演では、BashからEmacsエディタを起動してJavaScriptファイルの内容を修正するデモが披露された

 ギャロ氏によると、この“Ubuntu on Windows”環境は、Windowsストアから直接パッケージをダウンロード/インストールできるようになるという。さらにインストール後は、Ubuntuのapt-getコマンド(パッケージ管理コマンド)を使って、vi/vim、Python、Ruby、GCC、gitなど、Ubuntuが提供する豊富なOSSアプリケーション群を追加することも可能だ。

 Ubuntuの開発を主導する英カノニカルのダスティン・カークランド(Dustin Kirkland)氏は、自身のブログ投稿で“Ubuntu on Windows”のパッケージ化を手がけたことを明らかにし、Windowsエクスプローラーで表示したスクリーンショットを掲載している。

rootfsフォルダを基点(ルート)として/bin、/lib、/etcといった、Linuxユーザーにはおなじみのディレクトリ構成が見られる(カークランド氏ブログより)

 このスクリーンショットを見ると、Ubuntuのルートファイルシステムは、Windows側から見れば「C:\Users\[ユーザー名]\AppData\Local\Lxss\rootfs\」以下に(隠しフォルダとして)展開される。一方で、Ubuntu側からはここがルート(/)になる。なお、Ubuntu側からWindowsのファイルシステムにアクセスしたい場合は、「/mnt/C(Cドライブ)」などのディレクトリをたどればよい。

 カークランド氏によれば、現在のパッケージはUbuntu 14.04 LTSベースで作成したものだが、数週間後には最新版であるUbuntu 16.04 LTSのパッケージ化も完了するという。

Windowsサブシステムの正体は“通訳者”である

 カークランド氏は、マイクロソフトのギャロ氏が“魔法”と称した「Windows Subsystem for Linux」の仕組みについても簡単な説明を加えている。

 マイクロソフトが開発したこのWindowsサブシステムは、Ubuntuのユーザーモードバイナリが発するLinuxのシステムコールを、リアルタイムにWindows OSのシステムコールへと変換してWindowsカーネルに伝える役割を果たす。“Linuxの言葉(システムコール)”を理解する“通訳者(サブシステム)”が仲介することで、Ubuntuのバイナリを修正することなくWindows環境で動作させることができるわけだ。

WindowsサブシステムはLinuxシステムコールを“通訳”する(Channel 9より)。この仕組みにより、Windowsカーネルは、WindowsアプリケーションとUbuntuアプリケーションの両方を同時に実行できる

 上述の仕組みを考えると、サブシステムにおける“翻訳”処理のオーバーヘッドが気になるだろう。しかしカークランド氏は、「Sysbenchによるベンチマークでは、CPU/メモリ使用率やI/Oパフォーマンスは(ベアメタルのLinuxマシンで動作させる場合と)ほぼ同等だった」と証言している。少なくとも、仮想マシンでUbuntuを立ち上げ、バイナリを実行するよりはずっと負荷が少ないと考えてよさそうだ。

 マイクロソフトのスコット・ハンセルマン氏も、自身のブログ投稿の中で、Cygwinとは違ってLinuxバイナリがそのまま動作し、しかも仮想マシンとは異なり動作は軽量だと述べ、これまでの手法とは異なることを説明している。

マイクロソフト Webプラットフォーム&ツール プリンシパルコミュニティアーキテクトのスコット・ハンセルマン(Scott Hanselman)氏(Channel 9より)

BashでCPU情報を表示。仮想マシンではないので、物理CPUそのものの情報が見えている(Channel 9より)

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

アクセスランキング

  1. 1位

    ITトピック

    実用化が楽しみすぎるスマート技術たち 「長距離ワイヤレス給電」から「室内向け太陽電池」「超音波センサー」まで

  2. 2位

    sponsored

    AIインフラ市場“一強体制”を崩せるか AMDが「Helios」で体現するオープン戦略とフィジカルAIのラストマイル

  3. 3位

    ITトピック

    IT技術者の約半数が「AIの進化で転職を意識」/これから起きるのは「SaaSの死ではなく変容」/バックアップ市場は堅調に成長、ほか

  4. 4位

    デジタル

    買い切り型クラウド「pCloud」がDX総合EXPOへ CEO来日で日本展開を加速

  5. 5位

    ITトピック

    6.4万人の熱狂をAIが導く FIFA W杯全スタジアム「デジタルツイン」化が変えた観戦体験

  6. 6位

    デジタル

    kintone MCP Server とは?現在提供されている3つの選択肢をフラットに比較

  7. 7位

    データセンター

    IOWNによるGPU分散インフラ「GPU over APN」実証環境を開放 NTTドコビジが全国8拠点をつなぎ提供

  8. 8位

    sponsored

    「IT機器が高すぎる」「熟練メンバー不在で分からない」… 情シスさんの“現場の悩み”をエンジニア3人に聞いてみた

  9. 9位

    Team Leaders

    SharePointリストへの登録データを、CSVファイル形式に成形/変換して自動保存する方法

  10. 10位

    Team Leaders

    AIエージェントが顧客対応から“恋愛相談”まで マッチングアプリwithのCSを変えたチャネルトーク

集計期間:
2026年07月13日~2026年07月19日
  • 角川アスキー総合研究所