Que tipos de programas posso executar no Cygwin?

1
  1. O Cygwin só executa executáveis do Windows? Quando eu executo um programa ELF dentro do Cygwin rodando no Windows 10, diz que

    $ ./wkhtmltopdf
    -bash: ./wkhtmltopdf: cannot execute binary file: Exec format error
    
    $ file wkhtmltopdf
    wkhtmltopdf: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter
    /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18,
    BuildID[sha1]=b6566a9e44c43a0eebf18d8c1dc6cb616801a77e, stripped
    
  2. O Cygwin fornece implementações desses recursos comuns? utilitários Linux como executáveis do Windows com o mesmo nome de base, mas adicionando .exe como nome da extensão?

  3. O Cygwin pode executar qualquer executável nativo do Windows, ou a maioria deles?

Obrigado.

    
por Tim 09.02.2017 / 21:57

2 respostas

6

De link

Cygwin is:

  • a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

  • a DLL (cygwin1.dll) which provides substantial POSIX API functionality.

Cygwin is not:

  • a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
  • a way to magically make native Windows apps aware of UNIX® functionality like signals, ptys, etc. Again, you need to build your
    apps from source if you want to take advantage of Cygwin
    functionality.

Então, sobre suas perguntas:

  1. você não pode executar o ELF no Windows. Você precisa de uma máquina virtual com Linux para isso
  2. cygwin fornecem utilitários Unix, mas alguns podem ter o mesmo nome do Windows one. A extensão Exe é mantida para compatibilidade.
  3. sim. Os programas Cygwin também são Windows one
  4. sim. Os programas do Cygwin podem iniciar programas normais do Windows (não-cygwin).
por 09.02.2017 / 22:38
1

O cygwin executa programas executados a partir do cmd.exe Assim, os programas cmd.exe podem ser executados a partir do cygwin.exe e os programas cygwin.exe podem ser executados a partir do cmd.exe

Mesmo ao ponto em que você pode até usar um utilitário cygwin que você quase nunca executaria normalmente a partir do cmd.exe simples e você pode executá-lo

C:\cygwin\bin>chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...

Você pode até mesmo iniciar o bloco de notas do cygwin

user@comp ~
$ notepad.exe a.a


user@comp ~
$ xcopy /?
Copies files and directory trees.

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

Você pode tentar o dir, embora ele execute a implementação do cygwin do dir, que é como o ls.

user@comp ~
$ where dir
C:\cygwin\bin\dir.exe

user@samsung350 ~
$ dir
a         adfff           dfds      gg2.exe             r.php

Pode-se perguntar então quais são as diferenças entre as implementações do cygwin e as implementações do cmd.exe. Duas diferenças que eu tenho - Geralmente, as implementações de utilitários da cygwin favorecem o LF em oposição ao CRLF. E, em alguns casos, pode ser projetado mais para ser usado com aspas simples, em oposição às aspas duplas.

    
por 10.02.2017 / 00:16