.exe
arquivos estão em um formato chamado "Portable Executable" - que suporta outros tipos de arquivos que não são .exe. Os executáveis do Windows são executados em um (ou nenhum) de vários subsistemas diferentes no Windows.
Seu típico "aplicativo" do Windows é um executável padrão ou .NET Win32. Eles são executados sob o subsistema Win32, que é o subsistema típico do Windows, aplicativos .NET que exigem um .NET framework.
Existem também subsistemas POSIX e OS / 2 (obsoletos). Se você instalar o Services for Unix Applications, acredito que, então, você poderá executar os executáveis do subsistema POSIX.
Os executáveis que não são executados em nenhum subsistema são nativos. Isso inclui autochk.exe
- a versão de chkdsk
que é executada antes do início do Windows, o executável do subsistema Win32 central csrss.exe
e ntoskrnl.exe
e relacionados. (Eu usei o link para verificar - as informações estão em "Cabeçalho opcional")
ATUALIZAÇÃO: Parece que, embora seja "marcado" como um aplicativo nativo, não é. O artigo da Wikipedia sobre ntoskrnl.exe explica.
This system binary is not a native application (in that it is not
linked against ntdll.dll), instead containing a standard main entry
point, a stub that calls the kernel initialization function but is
unused as the OS loader (internal symbol OSLOADER) calls
KiSystemStartup directly.
Você não pode iniciar um aplicativo nativo a partir do subsistema Win32, então é por isso que quando você clica em C:\windows\system32\ntoskrnl.exe
você vê uma mensagem de erro dizendo que não pode ser executado a partir do modo Win32.
Os kernels Linux são empacotados no formato ELF, o mesmo que é usado para executáveis no Linux. Imagino que, em outros sistemas operacionais semelhantes ao UNIX, seja apenas um arquivo binário executado diretamente pelo booloader da plataforma.
Eu nunca tentei executar /boot/vmlinuz
diretamente. Vou tentar fazer isso e atualizar com os resultados.
ATUALIZAÇÃO:
root@my_cool_computer:/boot# ./vmlinuz-3.2.0-4-amd64
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified
No protocol specified
err:process:create_process starting 64-bit process L"Z:\boot\vmlinuz-3.2.0-4-amd64" not supported in 32-bit wineprefix
wine: Bad EXE format for Z:\boot\vmlinuz-3.2.0-4-amd64.
No protocol specified
No protocol specified
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
err:systray:initialize_systray Could not create tray window
root@my_cool_computer:/boot#
Coçando minha cabeça neste ... Espero que isso ajude.