What is Cygwin DLL & emulation Layer ?

Warren Young warren@etr-usa.com
Thu May 14 07:26:00 GMT 2009

Neeraj Sahu wrote:
> Why you have designed cygwin as DLL ? What's the advantage ?

The advantage relative to what?  Propose another way it could work, and 
we can compare and contrast the alternatives.

> What is Cygwin emulation layer ?

cygwin1.dll.  It sits between POSIX type programs and the Windows API, 
allowing these programs to believe they are running on a POSIX type 
operating system, so they don't have to know how to use the Windows 
equivalent APIs.

In addition to the Cygwin DLL, there is also a huge library of POSIX 
software ported to use the DLL, to provide a complete POSIX operating 
environment.  These things are not Cygwin proper, but they are 
considered part of a working Cygwin system, in the same way that the 
Linux kernel is only part of a complete "Linux" operating system.

> How Cygwin work internally. Please explain in brief ?

The Cygwin DLL translates POSIX system calls into Windows system calls. 
  Where there is no exact match between the behavior of Windows and the 
expected behavior on a POSIX operating system, the Cygwin DLL provides 
the functionality to make up the gap.  In some places the "thickness" of 
the DLL is very thin, while in other places it has to do a lot of work 
to provide POSIX behavior in terms of the Windows API.

Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

More information about the Cygwin mailing list