Various tools which provide functionality similar to a Linux on Windows

Cygwin (32-bit)

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Download Cygwin 3.2.0 (32-bit)

  -  1.2 MB  -  Open Source

What's new in this version:

Cygwin 3.2.0 (32-bit)
- Revamped pseudo console support. Conditionally activating it only when a non-cygwin application is run
- New C11 threads API: call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock, mtx_timedlock, mtx_trylock, mtx_unlock, thrd_create, thrd_current, thrd_detach, thrd_equal, thrd_exit, thrd_join, thrd_sleep, thrd_yield, tss_create, tss_delete, tss_get, tss_set.
- In cygwin console, new thread which handles special keys/signals such as Ctrl-Z (VSUSP), Ctrl- (VQUIT), Ctrl-S (VSTOP), Ctrl-Q (VSTART) and SIGWINCH has been introduced. There have been a long standing issue that these keys/signals are handled only when app calls read() or select(). Now, these work even if app does not call read() or select().
- Fchmodat(2) now has limited support for the AT_SYMLINK_NOFOLLOW flag.
- Cygwin now recognizes native Windows AF_UNIX sockets (as regular files, not as socket files). This allows tools like 'ls' and 'rm' to work.

- Allow ~5000 child processes per process on 64 bit, ~1200 child processes per process on 32 bit. So far, only 256 child processes per process were supported
- A few FAQ updates
- Have tmpfile(3) make use of Win32 FILE_ATTRIBUTE_TEMPORARY via open(2) flag O_TMPFILE
- Utilize Windows 10 1809 FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE flag to allow simpler unlink of files with DOS readonly flags set
- Getdtablesize(3), sysconf(_SC_OPEN_MAX), and getrlimit(RLIMIT_NOFILE) now return the true limit on the number of open descriptors, 3200. Previously they returned the current size of Cygwin's internal file descriptor table, which can grow dynamically.
- Facl(2) now fails with EBADF on a file opened with O_PATH
- Allow to start Windows Store executables via their "app execution aliases". Handle these aliases (which are special reparse points) as symlinks to the actual executables.

- Iterate at least 4 times over pthread_key_t destructors per POSIX
- The pthread_yield declaration in pthread is now visible by default or when defining _BSD_SOURCE, too
- Fix SEGV in modfl call
- Fix a collision of offical and internally used file flags
- Fix assertion failure on an invalid path under /proc/<pid>/fd/
- Fix crash on stat(2)'ing /dev/ptmx on 32 bit
- Fix return value of sqrtl on negative infinity
- Fix a path handling problem if there is a WSL symlink in PATH
- Fix a bug in fstatat(2) on 32 bit that could cause it to return garbage
- Fix the errno when a path contains .. and the prefix exists but is not a directory
- Fix the return value when ptsname_r(3) is called with a bad file descriptor
- Fix path handling in case the Cygwin installation dir is accessed via a Windows junction point.
- Fix potential handle leaks when dup'ing descriptors
- Fix a bug that could cause fstat(2) to return incorrect results on a FIFO
- Fix some system calls on AF_LOCAL sockets that are not socket files
- Fix access to block devices under /proc/sys

Cygwin 3.1.7 (32-bit)
- Fix acl_get_* functions in 32-bit Cygwin (pointer sign extension)
- Fix select/poll issue in case a socket connect call fails.
- Fix multiple reader support for FIFOs
- Fix an mmap issue that could cause failure with errno EFBIG
- Fix the behavior of C++ apps after an unhandled exception (64-bit only)

Cygwin 3.1.6 (32-bit)
- This is mainly a bugfix release

What changed:

Bug Fixes:
- Fix IPPROTO_TCP option handling, especially in terms of TCP_MAXSEG
- Fix a buffer overrun in Cygwin-internal string comparison
- Fix microcode registry lookup for /proc/cpuinfo output

Cygwin 3.1.4 (32-bit)
- Allow symlinks to be opened with O_PATH | O_NOFOLLOW
- Allow the pathname argument to readlinkat(2) to be an empty string, provided the dirfd argument refers to a symlink opened with O_PATH | O_NOFOLLOW. The readlinkat call then operates on that symlink.
- Support the Linux-specific AT_EMPTY_PATH flag for fchownat(2) and fstatat(2)
- Allow AF_LOCAL sockets to be opened with O_PATH
- <signal.h>: New macro _NSIG replacing NSIG. NSIG is now only visible to MISC builds, as on Linux
- The new locale modifier @cjksingle allows enforcing of single-width character property for usually double-widthed characters. This will be supported by upcoming mintty releases. For the reasoning, see

Bug Fixes:
- Define CPU_SETSIZE, as on Linux
- Fix a regression that prevented the root of a drive from being the Cygwin installation root
- Many fixes in new pseudo console support

Cygwin 3.1.2 (32-bit)
- Change log not available for this version

Cygwin 3.1.1 (32-bit)
- This is a bugfix release. Due to an oversight, Cygwin 3.1.0 does not run on Windows Vista and Windows Server 2008. Cygwin 3.1.1 fixes that

Cygwin 3.0.7 (32-bit)
- Change log not available for this version

Cygwin 3.0.6 (32-bit)
- Change log not available for this version

Cygwin 3.0.5 (32-bit)
- Fix /proc/version after uname change
- Addresses:
- Fix a crash in wcsxfrm_l if destination size is 0.
- Addresses:
- Fix a problem in process enumeration which led to `ps -W' showing Cygwin processes twice and potentially with incorrect Windows PID. Addresses: Report on IRC

Cygwin 3.0.3 (32-bit)
- Change log not available for this version

Cygwin 3.0.1 (32-bit)

- New API: secure_getenv

Bug Fixes:
- Relax fork child permissions to avoid a potential fork failure
- Fix Command-line argument handling of kill(1) in terms of negative PID. Addresses: report on IRC
- Fix an accidentally introduced O_TEXT handling of pipes inherited from native Windows processes
- Re-enable creating user token from scratch in seteuid to allow user context switch on old systems not supporting MsV1_0S4ULogon

Cygwin 2.10.0 (32-bit)

- New open(2) flags O_TMPFILE and O_NOATIME
- scanf/wscanf now handle the POSIX %m modifier
- scanf now handles the %l[ conversion
- Improved hostprogs compatibility for cross-compiling the Linux kernel
- New headers: <asm/bitsperlong.h>, <asm/posix_types.h>
- Built-in implementation of Stack Smashing Protection compiler feature
- New APIs: __stack_chk_fail, __stack_chk_guard
- Built-in implementation of POSIX.1-2001 message catalog support
- New APIs: catclose, catgets, catopen. New tool: gencat
- New APIs: sigtimedwait, wmempcpy

What changed:
- Standard headers no longer use macros to support K&R C
- confstr(3) and getconf(1) accept LFS_CFLAGS, LFS_LDFLAGS, etc
- The __always_inline and __nonnull macros in <sys/cdefs.h> are now compatible with glibc
- Feature Test Macros improvements in <fcntl.h>, <limits.h>, <netdb.h>, <strings.h>, and <unistd.h>

Bug Fixes:
- Fix a problem in unlink on NFS
- Addresses: Shows up in GAWK testsuite test "testext"
- Fix errno setting bug in posix_fadvise and posix_fallocate
- Fix two bugs in the limit of large numbers of sockets
- Fix a fork failure with private anonymous mmaps
- Remove a call to fflush from ftell{o}, which may result in wrong offsets
- Fix file pointer computation after short writes on block devices

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.