GNU/Linux >> Znalost Linux >  >> Linux

Proč nefungují soubory Windows EXE v systému Linux?

Spustitelné soubory pro Linux a Windows používají různé formáty. Linux používá formát ELF na většině architektur, zatímco Windows používá formát PE. ELF je vhodnější pro způsob, jakým Linux spravuje sdílené knihovny, a PE je vhodnější pro způsob, jakým Windows spravuje sdílené knihovny, ale neexistuje žádný zásadní důvod, proč by Linux nemohl spouštět spustitelné soubory PE nebo spustitelné soubory Windows ELF. Ve skutečnosti Linux umí spouštět PE spustitelné soubory prostřednictvím Wine.

Potíž je v tom, že Windows a Linux mají zcela odlišná API:mají různá rozhraní jádra a sady knihoven. Aby tedy Linux skutečně spustil aplikaci pro Windows, musel by emulovat všechna volání API, která aplikace provádí. To je hodně práce. Wine to do jisté míry dělá, ale je to velmi těžké, zvláště když výrobce Windows nespolupracuje. Můžete to porovnat například s učením angličtiny, když je vaším rodným jazykem čínština:spustitelným formátem je abeceda (není tak těžké ji zvládnout), API je slovní zásoba (trvá roky, než se dostanete na úroveň, kdy můžete začít číst literaturu ).


Binární soubory Windows mají jiné ABI a používají jiné API než binární soubory Linuxu.

Linuxové binární soubory nepotřebují rozšíření, protože *nix používá bity oprávnění k identifikaci spustitelného souboru namísto rozšíření.


Linux
  1. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  2. Linux – Proč Setuid nefunguje?

  3. Linux – Proč Locale Es_mx funguje, ale Es ne?

  1. Linux vs Windows – Proč je Linux lepší pro programování a vývoj webu

  2. Skryjte skryté soubory Linuxu ve Windows

  3. Proč systém Windows nerozpozná soubory uvnitř oddílů Linux?

  1. 10 úžasných tipů a triků pro práci s Linuxem

  2. Práce se soubory ZIP v Linuxu

  3. proč linux bridge nefunguje