Утилиты из Linux в Windows
Пользователям операционной системы Windows 11 стал доступен пакет Coreutils, включающий набор утилит с интерфейсом командной строки, хорошо знакомый пользователям Linux.
Coreutils нацелена на программистов и, как ожидается, позволит сохранять работоспособность скриптов и прочих инструментов разработки при их переносе из одной операционной системы в другую.
«Разработчики постоянно переключаются между платформами, но привычные команды ведут себя непоследовательно, что приводит к необходимости поиска обходных путей, снижению скорости и переключению контекста», – говорится в анонсе Microsoft.
Сборка Coreutils для Windows 11 базируется на коде проекта uutils (свободно доступен на Github). В рамках этого проекта создается новая кросс-платформенная реализация вспомогательных программ из состава GNU Coreutils – сразу на безопасном языке программирования Rust.
Использование оригинального кода, вероятно, могло бы обернуться для Microsoft проблемами в правовом поле, поскольку он распространяется на условиях строгой «копилефт»-лицензии GPLv3.
Нативное приложение и коллекция жестких ссылок
Coreutils для Windows понимает множество команд, которые широко используются в современных ОС на базе ядра Linux, в том числе cat, cp, find, hostname, ls, mv, pwd, rm, tee и uptime – всего 77 штук.
Все 77 утилит Microsoft упаковала в единственный нативный бинарный файл Windows под названием “coreutils.exe”, который занимает на диске не многим более 9 МБ.
Вызвать любую команду Coreutils можно запустив эту программу через командную строку и указав в качестве первого аргумента название желаемой команды. Кроме того, при установке пакета внутри целевого каталога автоматически создается подкаталог “bin”, внутри которого находится 77 жестких ссылок NTFS на “coreutils.exe” – по одной на каждую доступную команду (“cat.exe”, “cp.exe” и т.д.). Благодаря такому подходу становится возможным выполнить любую команду, просто указав ее в командной строке – в точности, как в Linux. Главное – не забыть добавить путь к каталогу, в который был установлен Coreutils, в локальную переменную среды Path.
Установить пакет может любой желающий посредством командной строки из официального репозитория приложений Microsoft (потребуются полномочия администратора). Для этого понадобится выполнить единственную команду: “winget install Microsoft.Coreutils”.
Чего не хватает в пакете
В состав Coreutils попали не все утилиты, доступные в оригинальном пакете, разработанном под в рамках проекта GNU. Так, команды dir, more, paste и whoami пришлось из него исключить, поскольку в противном случае возникал бы конфликт с одноименными программами, встроенными в Windows.
Кроме того, за бортом осталось несколько популярных Unix-утилит, для работы которых необходима POSIX-совместимая операционная система. Windows таковой в противовес GNU/Linux и macOS не является. Ввиду этого пользователям Coreutils в Windows недоступны такие команды как chmod, chown, chroot, nohup, tty и who.
Microsoft также не стала обеспечивать поддержку команд kill и timeout (используются для управления процессами в ОС), поскольку Windows не поддерживает POSIX-сигналы, но не исключено, что эта проблема будет решена в дальнейшем и утилиты все же появятся в составе Microsoft Coreutils.
Microsoft стирает границы между Windows и Linux
Microsoft пытается упростить жизнь разработчиков кросс-платформенного ПО, одновременно являющихся пользователями Windows, уже около 10 лет.
Сначала в 2016 г. была представлена подсистема Linux для Windows (WSL) – прослойка совместимости, которая обеспечивала трансляцию системных вызовов Linux и обеспечивала взаимодействие с ядром Windows NT.
В 2019 г. была выпущена WSL2, которая строилась на полноценном ядре Linux, специальным образом модифицированным Microsoft, и опиралась не технологии виртуализации.
В апреле 2021 г. Microsoft начала публичное тестирование WSLg – части подсистемы Windows для Linux, которая отвечает за вывод графического интерфейса Linux-программ. В мае 2025 г. исходный код WSL2 был открыт.
В 2019 г. пользователи Windows получили доступ к многофункциональному эмулятору терминала Windows Terminal. Эмуляторы терминала популярны в среде Linux. Например, Ubuntu по умолчанию предустанавливается с GNOME Terminal в составе.
В 2021 г. для Windows стал доступен полноценный менеджер пакетов winget с консольным интерфейсом, устроенный по подобию популярных Linux-утилит вроде apt или yum – «надстроек» над dpkg и rpm.
Наконец, в 2024 г. Microsoft решила, что пользователям Windows может пригодиться аналог Linux-утилиты sudo. Она позволяет выполнять различные команды с правами другого пользователя, имеющегося в системе, при этом не переключаясь на другую учетную запись.



