MicrosoftのCoreutilsプロジェクト、LinuxコマンドをWindowsにネイティブ移植

Image

Microsoftは本日、開発者向けカンファレンス「Build 2026」にて「Coreutils for Windows」の公開を発表しました。これにより、Linuxで広く使われているコマンドラインユーティリティの多くが、Windowsのネイティブアプリケーションとして利用できるようになります。

本プロジェクトはオープンソースのuutilsプロジェクトをベースにしており、GNU coreutilsをRustでクロスプラットフォーム対応に再実装したものです。Linux、macOS、Windows、そしてWindows Subsystem for Linux(WSL)間を移動する際にワークフローを変更せずに済むよう、開発者の利便性向上を目的として設計されています。

「開発者は常に複数のプラットフォームを行き来しています。しかし、使い慣れたコマンドが一貫して動作しないため、回避策の模索や作業速度の低下、コンテキストスイッチングといった問題が生じています」とMicrosoftは発表しています

「この課題に対応するため、私たちはuutilsオープンソースプロジェクトをベースとしたCoreutils for Windowsを開発しました。これはGNU CoreutilsをRustでクロスプラットフォーム対応に再実装したものです。Windowsネイティブで動作するLinux互換のコマンドラインユーティリティ群です。」

Microsoftによれば、既存のコマンドやツールをプラットフォーム間で共通して動作させることで、スクリプトを変更なしにWindowsでも使用できるようにすることが目標とのことです。

Coreutils for Windowsプロジェクトは、Microsoftが管理するパッケージとしてGitHubにも公開されており、uutils/coreutils、findutils、GNU互換のgrep実装を単一のバイナリにまとめています。

WindowsネイティブとしてLinuxユーティリティを実行

Coreutils for Windowsには、cat、cp、find、grep、hostname、ls、mv、pwd、rm、sleep、tee、uptimeなど、Linuxで一般的に使われる多数のコマンドが含まれています。

各ユーティリティはWinGetを使って次のコマンドでインストールできます。

winget install Microsoft.Coreutils

Microsoftはプログラムごとに個別の実行ファイルを作成するのではなく、すべての機能を単一のcoreutils.exeバイナリにまとめました。

Coreutils for Windowsをインストールすると、ls.exe、cp.exe、cat.exe、rm.exeなど、サポートされるコマンドごとのNTFSハードリンクが作成され、これらはすべてc:\Program Files\coreutils\coreutils.exeを指しています。

ユーザーがこれらのコマンドのいずれかを実行すると、WindowsはCoreutilsを読み込み、実行されたコマンド名をもとにどのユーティリティを起動するかを判断します。この仕組みにより、Microsoftは単一の実行ファイルを維持しながら、Linux風の個別コマンドを提供できています。

fsutil hardlink list coreutils.exeを実行すると、cat.exe、cp.exe、cut.exe、base64.exeなど、同一ファイルを参照する数十ものコマンド名が表示されます。

Coreutils using NTFS hardlinks to map commands to binary

Linuxのコマンド名の多くはコマンドプロンプトやPowerShellの既存コマンドと競合するため、Microsoftは各ユーティリティがWindowsの各シェルでどのように動作するかを示した互換性一覧表を公開しています。

たとえば、ls、cat、cp、mv、rm、pwd、sleep、teeなどのコマンドはパッケージに含まれています。

ただし、Coreutils版が実行されるかどうかは、使用しているシェルの種類、システムPATH内のディレクトリの順序、PowerShellのエイリアステーブルの設定によって異なります。

一方、dir、more、paste、whoamiなどのコマンドは、既存のWindowsコマンドと競合するため今回は含まれていません。

また、chmod、chown、chroot、nohup、tty、whoなど、POSIX機能に依存する一部のUnixユーティリティについては、Windowsでは利用できないためリリースされていません。

さらに、WindowsはPOSIXシグナルをサポートしていないため、「kill」コマンドや「timeout」コマンドも今回は含まれていませんが、将来的には対応できる可能性があるとしています。

Microsoftはまた、改行コード、ファイルパーミッション、POSIXサポートの違いにより、Linuxの動作とWindowsでのコマンド動作に差異が生じる場合があると注意を促しています。

Coreutils for Windowsの発表は、WindowsをDeveloper-Friendly(開発者に優しいプラットフォーム)にするというMicrosoftの戦略の一環として位置づけられています。

Build 2026では、「WSLコンテナ」も発表されました。これにより、ネイティブのCLIおよびAPIツールを使ってWindows上でLinuxコンテナの作成・実行・操作が標準機能として行えるようになります。

検証のギャップ:自動ペネトレーションテストが答えられるのは一つの問いだけ。必要なのは六つの視点

自動ペネトレーションテストツールは確かな価値を持ちますが、そもそも「攻撃者がネットワーク内を横断できるか」という一つの問いに答えるために作られたものです。コントロールが脅威をブロックできるか、検知ルールが正しく機能するか、クラウド設定が堅牢かどうかを検証するためのツールではありません。

本ガイドでは、実際に検証すべき6つのサーフェスを解説しています。

今すぐダウンロード

翻訳元: https://www.bleepingcomputer.com/news/microsoft/microsofts-coreutils-project-brings-linux-commands-to-windows/

ソース: bleepingcomputer.com