[EMAIL PROTECTED] wrote:
> "A.J.Mechelynck" <[EMAIL PROTECTED]> 写于 2006-12-01 04:58:02:
>> For individual Unix-like programs needed for work in a native-Windows
>> environment, I recommend getting them from the GnuWin32 project on
>> sourceforge
>> if it has them ( http://gnuwin32.sourceforge.net/ or something like that;
> not
>> 100% sure of the URL). Unlike Cygwin, which sets up a Unix-like virtual
>> machine on top of Windows, GnuWin32 is a rewrite of Unix utilities with
>> Windows system calls, and its programs works quite well in the cmd.
>> exe "Dos box".
>>
>> I have also occasionally tested unxutils but not with as much success.
> 
> A virtual machine emulates things so that the performance degrades. If
> Cygwin is really an emulation engine to build a virtual machine, it will
> have poor performance. But that is not the case. Compile the same source
> within Cygwin and Visual C++, chances are that you will get better
> performance in Cygwin!
> 
> Cygwin is not setting up a unix-like virtual machine, instead, it redirect
> Unix system call to Windows system call at source level, so the performance
> is as good as Windows Native applications.
> 
> An example: I had compiled 3 versions of LAME 3.97, on Cygwin, Visual C++ 7
> and Ubuntu Linux, and had done a thorough test, the Cygwin version of the
> lame.exe has the best performance. it is even faster than the same
> application compiled under linux in the same computer with the same version
> of gcc.
> 
> --
> Sincerely, Pan, Shi Zhu. ext: 2606
> 
> 

I'm not talking about the programs produced by the MinGW-for-Cygwin compiler
and linker (gcc compiler with -mno-cygwin and gcc linker with -mwindows),
which is a cross-compiler and cross-linker, but about the cygwin1.dll and the
programs which use it. These programs are doing Unix system calls, which the
cygwin1.dll translates into Windows system calls. The programs you talk about
(including Steve Hall's Vim for Windows) are doing Windows system calls at the
C-object-library level, even though they were compiled by a compiler and
linker issuing Unix system calls to the cygwin1.dll.

With Windows plus cygwin1.dll you have a "virtual Unix kernel" emulated by the
DLL running on top of Windows. I stand my case.


Best regards,
Tony.

Reply via email to