Cygwin

botond published Jan. 2018, 10, 17:22 p.m. time

Cygwin is a Unix-like environment and command line interface for the Microsoft Windows operating system. Cygwin offers native integration of Windows-based applications, data, and other system resources for Unix-like applications. This makes it possible to start Windows applications from the Cygwin environment and run Unix-based programs on Windows.

Cygwin - LXDE desktop integration in Windows 7

Cygwin - LXDE desktop integration in Windows 7

 

The system was originally developed by Cygnus Solutions, which was later purchased by Red Hat. It is free and open source software subject to the terms of the GNU Lesser General Public License, Version 3. It is currently maintained by Red Hat, NetApp and other volunteers.

Cygwin consists of two parts: a DLL library which POSIX it implements system calls and API functions using Win32 system calls and an extensive software package that provides the elements and appearance of a Unix-like system. This software package includes, for example, the GNU program development toolkit, which enables software development in the Cygwin system, and it also contains equivalents of programs in Unix/Linux systems.

Cygwin allows the installation of inetd, syslogd, sshd, Apache and other daemons as standard Windows services, providing Microsoft Windows systems with emulation of Unix and Linux servers.

The Cygwin environment does not have an internal package manager, so program packages are installed by running the main installer, which downloads the selected packages from repositories on the Internet. The installer can install, upgrade, and delete packages. The size of the entire installation can exceed 36 Gb, but a usable configuration can already be assembled with 1-2 Gb of storage.

 

 

Compatibility between Windows and Unix / Linux systems

Efforts to reconcile differences between Windows and Unix systems:

  • Unix mount The Cygwin-specific version of the command allows the Windows path as a "file system" in the Unix file space. Initial mount points can be configured in the / etc / fstab file, which is very similar to the format used on Unix systems, except that Windows paths are displayed instead of the devices. File systems can be installed in binary mode (by default) or in text mode, which allows automatic conversion between LF and CRLF (which only applies to programs that open files, without explicitly specifying text or binary).
  • Cygwin's 1.7 version introduced comprehensive support for POSIX locales, making UTF-8 encoding the default. Windows filenames and other identifiers encoded in UTF-16 will automatically switch to the selected character encoding.
  • Windows drive letters are "mapped" to a special Unix directory, such as C: drive / Cygdrive / c will be made available via Route cygdrive prefix can be changed).
    Windows network paths such as \\ host \ SHARED \ FILE and a // host / SHARED / FILE paths.
    Windows paths can also be used directly from Cygwin programs, but many programs do not support them properly and are not recommended.
  • Fully functional / Dev and / Proc file systems are provided. A / Proc / registry route for example, provides direct access to the Windows registry (registry).
  • Cygwin supports POSIX symbolic links, which appear in the file system as a simple text file with a system attribute. Cygwin recognizes NTFS nodes and treats them as POSIX symbolic links.
  • The Solaris API for managing access control lists (ACLs) supports and manages the Windows NT ACL.
  • A / Etc / passwd and / Etc / group files contain the equivalent of Windows users and groups.
  • Various utilities are available for converting Windows and Unix paths and file formats, managing end-of-line (CRLF / LF) problems, displaying executable DLLs, etc.
  • Inetd, syslogd, sshdApache and other daemons under Cygwin as a standard Windows service (service), allowing Unix / Linux servers to run on Microsoft Windows systems.
  • And many more additions that bridge the differences between the two systems ...