Выбирай : Покупай : Используй

Вход для партнеров

Вход для продавцов

0

Windows превращается в Linux. В ОС Microsoft появился набор утилит, который был в Linux со времен основания


Утилиты из Linux в Windows

Пользователям операционной системы Windows 11 стал доступен пакет Coreutils, включающий набор утилит с интерфейсом командной строки, хорошо знакомый пользователям Linux.

Coreutils нацелена на программистов и, как ожидается, позволит сохранять работоспособность скриптов и прочих инструментов разработки при их переносе из одной операционной системы в другую.

«Разработчики постоянно переключаются между платформами, но привычные команды ведут себя непоследовательно, что приводит к необходимости поиска обходных путей, снижению скорости и переключению контекста», – говорится в анонсе Microsoft.

Пользователям Windows 11 стали доступны утилиты из пакета Coreutils

Сборка 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. Она позволяет выполнять различные команды с правами другого пользователя, имеющегося в системе, при этом не переключаясь на другую учетную запись.