このページの本文へ

前へ 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位

    トピックス

    “持たない家電”ランキング、もはや定番のアレがやっぱり1位なような

  2. 2位

    トピックス

    思い切った慶應義塾 全教職員にNotion導入で168年分の知的資産をAIに食わせるプロジェクトが始動

  3. 3位

    ビジネス・開発

    こんどは“市区町村の財政状況”が丸わかり デジタル庁「ジャパン・ダッシュボード」に地方財政データ追加

  4. 4位

    トピックス

    リモートワークは福利厚生なの? ITエンジニアが本当に欲しい福利厚生第1位となる

  5. 5位

    ITトピック

    管理職ほど機密情報をAIに入力している実態、なぜ?/27卒学生の就職人気、IT業界トップ企業は/最新インシデントの傾向10パターンまとめ、ほか

  6. 6位

    トピックス

    ほぼスーパーで良くない? コンビニで「思ったより高い」と感じる人76%、実は中高年ほど割高感に悩んでるって知ってた?

  7. 7位

    トピックス

    若い人ほど「しっかり睡眠」、中高年は眠れないのか眠らないのか

  8. 8位

    トピックス

    インバウンドの頑張りランキングベスト3は「大分県」「岐阜県」「佐賀県」 努力が光る結果に

  9. 9位

    トピックス

    【無双状態】2025年、最も雑誌の表紙を飾ったのは「えなこ」! 1万誌を調査して見えた圧倒的カバークイーン

  10. 10位

    ビジネス

    管理職こそ大事にしないとまずくないか? 約4割が「続けたい、と答えない」現実

集計期間:
2026年04月21日~2026年04月27日
  • 角川アスキー総合研究所