Microsoft представила Coreutils for Windows — набор UNIX-подобных утилит командной строки, работающих в Windows нативно, без запуска WSL. Проект основан не на классических GNU Coreutils, а на uutils/coreutils — кроссплатформенной реализации GNU Coreutils на Rust. Анонс был сделан в рамках Microsoft Build 2026, где компания описала Coreutils for Windows как часть «developer-optimized» окружения для Windows 11.
Coreutils for Windows распространяется как поддерживаемая Microsoft сборка uutils/coreutils, findutils и grep, упакованная в единый multi-call binary. То есть один исполняемый файл предоставляет привычные команды под стандартными именами вроде cat.exe, grep.exe, find.exe, ls.exe, cp.exe, rm.exe, xargs.exe и других. Задача проекта — сделать перенос скриптов и привычных пайплайнов между Linux, macOS, WSL, контейнерами и Windows менее болезненным.
Установить пакет можно через WinGet:
winget install Microsoft.Coreutils
На GitHub первый релиз опубликован 2 июня 2026 года под тегом v2026.5.29. В него вошли Rust-реализация GNU Coreutils, реализация FindUtils, новая реализация grep, прослойка для совместимости с DOS-вызовами sort и find, а также PowerShell-обёртка для более привычной работы с glob-шаблонами.
Есть и ограничения. Репозиторий прямо отмечает, что проект пока находится в состоянии preview, хотя в блоге Build 2026 Microsoft описывает Coreutils for Windows как generally available. Для PowerShell требуется версия 7.4 или новее, а часть команд конфликтует со встроенными командами CMD и PowerShell. Например, cat, cp, ls, rm, pwd, tee и другие могут пересекаться с алиасами или встроенными командами оболочки, поэтому фактическое поведение зависит от PATH и таблицы алиасов.
Некоторые POSIX-ориентированные команды в поставку не включены: например, chmod, chown, chroot, groups, id, mkfifo, mknod, nohup, tty, uname, who и ряд других. Причина в том, что они завязаны на POSIX-модель прав, сигналов, пользователей или устройств, которая в Windows напрямую отсутствует. Отдельно отмечены Windows-особенности вроде CRLF-переводов строк, отсутствия /dev/null, отличий ACL от POSIX permission bits и отсутствия POSIX-сигналов вроде SIGHUP и SIGPIPE.
Код проекта опубликован в репозитории microsoft/coreutils под лицензией MIT. Microsoft принимает баг-репорты и pull request’ы, но подчёркивает, что изменения в поведении утилит желательно сначала проводить через соответствующие upstream-проекты uutils, а Windows-специфичная обвязка, упаковка и multi-call wrapper живут уже в репозитории Microsoft.
Фактически Microsoft не портировала GNU Coreutils в Windows напрямую, а сделала Windows-сборку Rust-альтернативы GNU-инструментам. Это важная деталь: проект находится ближе к экосистеме uutils, чем к классическому GNU-пакету. Для пользователей Windows это означает появление привычных grep, find, xargs, ls, tail, head, wc, sha256sum и других инструментов «из коробки» через официальный пакет Microsoft, а для FOSS-сообщества — ещё один крупный пример того, как Rust-реализации базовых Unix-утилит выходят за пределы Linux-дистрибутивов.
Перемещено dataman из opensource






