Linuxでおなじみのコマンド群をWindowsで利用できるようにするCoreutils for Windows、Linuxコンテナを扱うWSL containers――MicrosoftはBuild 2026で、WindowsとLinuxの距離をさらに縮める施策を打ち出した。なぜMicrosoftはここまでLinuxを受け入れるのか。その背景には、AIやクラウド時代の開発環境の変化がある。
Build 2026で見えたWindowsとLinuxの接近
MicrosoftはBuild 2026で、LinuxでおなじみのlsやgrepなどのCoreutilsをWindowsに導入すると発表した。Windowsを単独の開発環境として磨くだけでなく、Linuxで慣れ親しまれたコマンド、コンテナ、環境構築の流儀をWindows側へ取り込む。その方向性が、今回の発表ではかなり明確になった。
かつてLinuxを競争相手としていたMicrosoftは、なぜ今ここまでLinuxを受け入れようとしているのだろうか。
これは突然の方針転換ではない。Windows Subsystem for Linux、すなわちWSLの登場以降、MicrosoftはWindowsとLinuxの境界を段階的に低くしてきた。かつてはWindowsでLinuxツールを使うにはCygwin、MinGW、Git Bash、仮想マシン、デュアルブートなどの選択肢が必要だった。いずれも有用ではあったが、Windowsの標準体験とは言いにくかった。WSLはその状況を変え、Windows上でLinux環境を動かすことを公式な開発体験にした。
Build 2026で示されたのは、その次の段階だ。Linuxを「別環境」として隣に置くのではなく、Windowsの開発者体験そのものへ組み込む段階だ。Coreutils for Windows、WSL containers、Developer Optimized Windowsはいずれも、開発者がWindowsを使いながら、Linux前提の開発ワークフローを違和感なく扱えるようにするための施策だ。
この動きは、Windowsの敗北を意味するものではない。むしろ逆だ。Microsoftは、開発者が実際に使っている道具立てにWindowsを合わせることで、Windowsを開発端末として残そうとしている。重要なのは、OSの思想を守ることではなく、開発者がクラウド、コンテナ、AI、オープンソースの現場で生産性を落とさずに作業できることだ。Build 2026のWindows発表は、その現実主義を強く示した。
Coreutils for Windows
最も象徴的な発表の一つが、Coreutils for Windowsだ。grep、ls、cp、mv、cat、chmod、mkdir、rmといったUnix/Linux系の基本コマンドを、Windowsネイティブで利用できるようにする取り組みだ。これらのコマンドはLinuxやmacOSでは日常的に使われるが、Windowsでは標準のコマンド体系が異なるため、同じ手順をそのまま使えないことが多かった。
開発者にとって、これは大きな摩擦となる。READMEに書かれた手順、CIのスクリプト、ビルド手順、トラブルシューティングのコマンド例は、LinuxやmacOSを前提にしていることが多い。そこにWindowsユーザーが入ると、コマンドをPowerShell向けに読み替えたり、別のツールを入れたり、WSLに移動したりする必要があった。例えば、「lsでファイルを確認し、grepで文字列を探し、cpでコピーする」という程度の作業でも、環境差が積み重なると開発体験の分断になる。
Coreutils for Windowsは、その分断を減らす。ポイントは、単に互換ツールを使えるという話ではなく、Microsoft自身がWindowsの開発者体験としてこれを取り込むことにある。これまでにもWindowsでUnix系コマンドを使う方法はあった。Git for Windowsに付属するGit Bash、MSYS2、Cygwin、WSLなどだ。しかし、それらはWindowsの外側、あるいはWindows上に追加された別レイヤーとして扱われることが多かった。
MicrosoftがCoreutilsをWindowsネイティブに提供する意味は、Linux的なコマンド体系をWindowsの公式な開発体験に近づける点にある。Windowsの開発者はPowerShellを捨てる必要はない。むしろPowerShell 7とCoreutilsが同じ端末で使えるようになれば、Windows固有の管理能力とLinux系の汎用的なテキスト処理を組み合わせられる。これは「WindowsかLinuxか」ではなく、「Windows上でLinuxワークフローも使う」という発想だ。
特に、AI開発やクラウド開発では、ドキュメントやサンプルコードがLinux前提で書かれることが多い。Python、Node.js、Go、Rust、Kubernetes、Terraform、各種CLIツールの世界では、シェル上での作業が前提になる。Windowsだけ別手順という状況は、開発者の心理的なハードルを上げる。Coreutils for Windowsは、そのハードルを下げるための地味だが実用的な施策だ。
WSLコンテナ (WSL containers)
もう一つの重要な発表が、WSL containersだ。WSL上でLinuxコンテナを扱えるようにする機能であり、Windowsにおけるコンテナ開発の位置づけを変える可能性がある。
これまでWindows上でLinuxコンテナを使う代表的な方法はDocker Desktopだった。Docker DesktopはWindowsユーザーにLinuxコンテナ環境を提供し、開発者はDocker CLIやDocker Composeを使って、ローカルでアプリケーションをビルドし、テストし、実行できた。内部的にはWSL 2や仮想化技術を利用し、WindowsとLinuxの橋渡しを担ってきた。
WSL containersは、この領域にMicrosoft自身がより深く入っていくことを意味する。Docker Desktopのような製品を直ちに置き換えるというより、WindowsとWSLの基盤としてLinuxコンテナ実行環境を整える動きと見るべきだ。Docker Desktopは、開発者向けの統合体験、GUI、Docker Hubとの連携、Composeや拡張機能、企業向け管理機能などを含む製品だ。一方、WSL containersは、Windows上でLinuxコンテナを扱うためのOS側の基盤に近い。
この違いは重要だ。Microsoftは、コンテナ開発の入口をWindowsの標準機能に近づけることを狙っていると考えられる。クラウドネイティブ開発では、アプリケーションはコンテナとしてパッケージされ、Kubernetes上で動くことが多い。ローカル開発環境でも、本番と近いLinuxコンテナを動かせることは大きな意味を持つ。Windows開発者がこの流れに乗るために、毎回外部製品や追加設定に依存するのではなく、WSLの延長としてコンテナを扱えるようにする。これがWSL containersの戦略的な意味だ。
また、WSL containersはWindowsとLinuxの関係をさらに一段進める。WSLはこれまで「Windows上でLinuxディストリビューションを動かす」仕組みだった。そこにコンテナ実行が加わると、Windows端末上でLinuxアプリケーション開発、Linuxコンテナ作成、Kubernetes向けワークロードの準備までを一貫して行えるようになる。開発者はWindowsのデスクトップ、セキュリティ、管理機能、アプリケーション互換性を維持しつつ、Linux本番環境に近い作業を進められる。
もちろん、コンテナの世界ではDocker、containerd、Podman、Kubernetesなど複数のレイヤーがある。WSL containersがどこまで既存ツールと互換性を持ち、どこまで企業利用の要件を満たすかは、実際のプレビューと導入事例を見なければ評価しきれない。しかし方向性は明確だ。Microsoftは、LinuxコンテナをWindowsの外部にあるものではなく、Windows開発者体験の中心部に置こうとしている。
Developer Optimized Windows
Developer Optimized Windows、あるいはWindows Developer Configurationsも、同じ文脈で理解できる。これは開発者向け設定やツール導入を一括で整える仕組みであり、Windows 11を開発マシンとして素早く使い始められるようにするものだ。WSL、PowerShell 7、Visual Studio Code、Git、GitHub Copilotなど、現代的な開発に必要なツール群をまとめて準備できる。
Windowsで開発環境を作る作業は、以前から面倒だった。エディターを入れ、Gitを入れ、ランタイムを入れ、パッケージマネージャーを入れ、WSLを有効化し、PowerShellを更新し、ターミナルを整え、SSHキーや認証情報を設定する。これらは一つ一つは難しくなくても、新しいPCをセットアップするたびに時間を取られる。チームで同じ環境をそろえる場合には、さらに差分が問題になる。
Developer Optimized Windowsは、この初期設定の摩擦を下げる。開発者がWindows PCを受け取ったとき、すぐにコードを書ける状態へ近づけることが目的だ。これは単なる便利機能ではない。企業にとっては、開発端末の標準化、セキュリティポリシーの適用、オンボーディング時間の短縮に直結する。個人開発者にとっても、環境構築でつまずく時間を減らせる。
ここでも重要なのは、Microsoftが「Windowsらしさ」だけにこだわっていない点だ。開発者に必要なものとしてWSL、Git、VS Code、PowerShell 7を前提に置いている。これは、現在の開発者が使う標準的な道具立てをMicrosoftが受け入れていることを示している。PowerShellだけで完結する世界でも、Visual Studioだけで完結する世界でもない。GitHub、VS Code、WSL、Linuxコンテナ、クラウドCLIが混在する現実の開発環境を、Windowsの公式なセットアップ体験に取り込もうとしている。
この発想は、macOSが開発者に好まれてきた理由とも関係する。macOSはUnix系の基盤を持ち、ターミナル、Homebrew、SSH、各種言語ランタイムとの相性がよい。開発者はデスクトップOSとしての使いやすさとUnix系ワークフローを同時に得られた。Windowsは長くこの点で不利だった。WSLとDeveloper Optimized Windowsは、その差を埋めようとする取り組みだ。
なぜMicrosoftはここまでLinuxを取り込むのか
この変化は、かつてのMicrosoftを知る人ほど意外に映るかもしれない。2000年代のMicrosoftはLinuxを競争相手とみなし、Windows Serverとの市場競争を繰り広げていた。しかし、AzureやGitHubを抱える現在のMicrosoftにとって、Linuxはもはや敵ではなく重要なパートナーになっている。
では、なぜMicrosoftはここまでLinuxを取り込むのか。答えは単純で、現在の開発とクラウドの中心にLinuxがあるからだ。
まずAzureだ。MicrosoftのクラウドであるAzureでは、Linuxワークロードが大きな比率を占めている。MicrosoftはもはやWindows Serverだけを売る会社ではない。AzureはLinux VM、Linuxコンテナ、Kubernetes、オープンソースデータベース、各種OSSミドルウェアを動かす基盤でもある。顧客がAzureでLinuxを使うなら、MicrosoftはLinuxを一級の対象として扱わなければならない。
次にKubernetesだ。Kubernetesはクラウドネイティブ開発の標準的な基盤になった。アプリケーションをコンテナ化し、クラスター上でスケールさせ、宣言的に管理する。この世界の中心はLinuxだ。Windowsコンテナも存在するが、エコシステムの大部分、サンプル、ツール、運用ノウハウはLinuxコンテナを前提にしている。Azure Kubernetes Serviceを提供するMicrosoftにとって、Linuxコンテナ開発をWindowsで快適にすることは、Azure利用を広げるうえでも合理的だ。
さらにAI開発もLinux中心で進んできた。機械学習フレームワーク、GPUドライバー、CUDA、Pythonパッケージ、分散学習基盤、MLOpsツール、コンテナイメージの多くはLinuxを前提に整備されている。AI開発者がローカルで試し、コンテナ化し、クラウドのGPU環境やKubernetesへデプロイする流れを考えると、Windowsだけ別の作法を強いるのは不利になる。Windows上でLinux的な作業が自然にできれば、AI開発者にとってWindowsを選ぶ理由が増える。
そして開発者自身の習慣がある。多くの開発者は、ls、grep、curl、ssh、git、make、bash、コンテナ、YAML、Kubernetesといったワークフローに慣れている。これはLinux専業の開発者だけの話ではない。macOSユーザーもUnix系コマンドに慣れている。クラウドドキュメントも、OSSのREADMEも、多くの場合はLinux/Unix的なコマンドラインを前提にしている。Windowsがその流れに合わせなければ、開発者はWindowsを避ける。
つまり、Microsoftにとって合理的な選択は、開発者にWindows流を強いることではない。Windows側がLinuxワークフローを受け入れることだ。これは戦略的な譲歩であると同時に、Windowsを開発者の机の上に残すための防衛策でもある。
Microsoftのビジネスモデルも変わった。Windowsのライセンスだけで成長する時代ではなく、Azure、Microsoft 365、GitHub、Copilot、セキュリティ、開発者向けクラウドサービスが重要になっている。開発者がWindowsを使うかどうかは、AzureやGitHubの利用にも影響する。Windowsが現代的な開発環境として魅力を失えば、Microsoftの開発者エコシステム全体に影響する。だからこそ、Linuxを取り込むことはWindowsの純度を下げる行為ではなく、Microsoftのプラットフォーム戦略を強める行為になる。
WindowsとLinuxは対立から共存へ
かつてWindowsとLinuxは対立軸として語られていた。企業のサーバー、デスクトップ、開発環境をめぐって、WindowsかLinuxかという選択が強調された時代があった。Microsoft自身も、オープンソースやLinuxに対して強い警戒感を示していた。
しかし現在の構図は大きく違う。クラウドではLinuxが広く使われ、MicrosoftはそのLinuxワークロードをAzureで支えている。GitHubはオープンソース開発の中心にあり、Microsoftの傘下にある。VS CodeはWindows、macOS、Linuxで使われるクロスプラットフォームのエディターになった。PowerShellもオープンソース化され、Linuxで動く。Windows Terminal、WSL、WinGet、Dev Home、GitHub Copilotなど、Microsoftの開発者向け施策はOSの境界をまたぐものになっている。
Build 2026で見えたのは、この流れの完成形に近い姿だ。WindowsはLinuxに勝つためのOSではなく、Linuxと共存するためのOSになりつつある。より正確に言えば、WindowsはLinuxを内包する開発端末になろうとしている。
この変化は、ユーザーにとっても企業にとっても現実的だ。企業はWindows PCを管理し続けたい。セキュリティ、ID、デバイス管理、Office連携、業務アプリケーション互換性の面で、Windowsには強みがある。一方で、開発現場はLinux、コンテナ、Kubernetes、OSS、AIツールチェーンを必要としている。この二つを両立するには、Windowsを捨ててLinuxへ全面移行するより、WindowsがLinuxを受け入れるほうが現実的な場合が多い。
開発者にとっても同じだ。Windowsのデスクトップ環境、ゲーミングPCや高性能ノートPC、企業支給端末、周辺機器互換性を使いながら、LinuxコンテナやUnix系コマンドを扱えるなら、OS選択の制約は小さくなる。Windowsで開発しているから不利、という状況を減らせる。
もちろん課題は残る。ファイルシステムの性能差、Windows側とWSL側のパスの違い、改行コード、権限モデル、ネットワーク、セキュリティ製品との相性など、WindowsとLinuxをまたぐ環境には独特の複雑さがある。Coreutils for WindowsやWSL containersが導入されても、すべての差異が消えるわけではない。むしろ、境界が曖昧になることで新しい混乱が生まれる可能性もある。
それでも、方向性は後戻りしないだろう。現代の開発は、単一OSの中で完結しない。ローカルPC、クラウド、コンテナ、CI/CD、リモート開発環境、AIエージェントがつながって一つの作業空間を作る。その中で、Windowsだけが独自の作法を守り続けることは難しい。Windowsが生き残るには、Linuxを外部の競争相手としてではなく、内部に取り込む標準的な開発基盤として扱う必要がある。
Build 2026のWindows関連発表は、そのメッセージをはっきり示している。AIの時代においても、開発者が実際に触るのはターミナルであり、コンテナであり、Gitであり、Linux的なツール群だ。MicrosoftはそこにWindowsを合わせようとしている。Windows vs Linuxの時代は終わりつつある。これからのMicrosoftが目指すのは、Windows + Linuxの開発環境だ。

