Новая версия 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.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Новая версия Cygwin 3.0, GNU-окружения для Windows», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.