Новая версия Cygwin 3.0, GNU-окружения для Windows
17 февраля 2019 года
После двух лет разработки компания Red Hat опубликовала новый значительный релиз пакета Cygwin 3.0.0, включающего DLL-библиотеку для эмуляции базового Linux API в Windows, позволяющую с минимальными изменениями собирать созданные для Linux программы. В пакет также входят непосредственно собранные для выполнения в Windows стандартные Unix-утилиты, серверные приложения, компиляторы, библиотеки и заголовочные файлы.
Основные изменения:
- Реализована возможность обработки в окружении Windows каталогов с учётом регистра символов. Вызов mkdir теперь автоматически создаёт регистрозависимые каталоги внутри дерева каталогов, в которое установлен Cygwin. Возможность доступна только начиная с выпуска Windows 10 1803 при наличии подсистемы WSL (Windows Subsystem for Linux);
- Добавлена поддержка файловой системы exFAT;
- Добавлены новые файловые ioctl-вызовы FS_IOC_GETFLAGS и FS_IOC_SETFLAGS, при помощи которых можно устанавливать и сбрасывать атрибуты файлов, манипулировать разрежёнными файлами с пустотами внутри, обеспечивать шифрование и сжатие на уровне ФС, программно симулировать различие регистра символов в именах каталогов;
- Добавлены новые утилиты chattr и lsattr для установки и просмотра атрибутов файлов, манипулируя вышеприведёнными ioctl в командной строке;
- Добавлена поддержка специфичного для Linux флага O_PATH в функции open();
- Добавлена поддержка специфичного для Linux флага AT_EMPTY_PATH в функции linkat();
- Добавлена поддержка переполнения счётчика для POSIX-таймеров (при помощи вызовов timer_getoverrun() или siginfo_t::si_overrun);
- Добавлены новые API: signalfd, timerfd_create, timerfd_gettime, timerfd_settime и timer_getoverrun;
- Реализация fork() теперь может корректно обрабатывать ситуацию с удалением/заменой исполняемого файла или DLL в процессе работы (Windows не разрешает удаление используемых исполняемых файлов, но fork() реализован через "хак" в режиме "non-copy-on-write", так как не может быть реализован поверх Win32 API);
- Добавлена поддержка режимов работы таймера CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE,
CLOCK_MONOTONIC_RAW, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM и CLOCK_BOOTTIME_ALARM. В функциях clock_nanosleep, pthread_condattr_setclock и timer_create реализована поддержка всех видов таймеров, кроме CLOCK_PROCESS_CPUTIME_ID и CLOCK_THREAD_CPUTIME_ID;
- В окружении Windows 10 1709+ для NTFS задействована новая семантика
для POSIX-вызовов unlink и rename - файл теперь удаляется или заменяется другим, а не помещается в корзину;
- При вызове open(..., O_TMPFILE) файл теперь сразу перемещается в корзину для освобождения места в родительском каталоге;
- Cygwin PID и Windows PID теперь разделены: PID-идентификаторы Cygwin генерируются как предписывает POSIX, инкрементируя значение в диапазоне от 2 до 65535. При запуске родных процессов Windows их PID отражается в диапазон значений, превышающий 65535.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.