Çözüldü Linux İşletim Sistemleri Neden .exe Açamıyor?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Çözüm
Linux ve Windows yürütülebilir dosyaları farklı biçimler kullanır. Linux çoğu mimaride ELF biçimini kullanırken, Windows PE biçimini kullanır . ELF, Linux'un paylaşılan kitaplıkları yönetme biçimine daha uygundur ve PE, Windows'un paylaşılan kitaplıkları yönetme biçimine daha uygundur, ancak Linux'un PE yürütülebilir dosyalarını veya Windows ELF yürütülebilir dosyalarını yürütememesinin temel bir nedeni yoktur. Aslında Linux , PE yürütülebilir dosyalarını Wine aracılığıyla yürütebilir.

Zorluk, Windows ve Linux'un tamamen farklı API'lere sahip olmasıdır: farklı çekirdek arabirimlerine ve kitaplık kümelerine sahiptirler. Bu nedenle, bir Windows uygulamasını gerçekten çalıştırmak için, Linux'un uygulamanın yaptığı tüm API çağrılarını taklit etmesi gerekir. Bu çok iş. Wine bunu bir dereceye kadar yapıyor, ancak özellikle Windows'un yapımcısı işbirliği yapmadığı için çok zor. Örneğin, ana diliniz Çinceyken İngilizce öğrenmekle karşılaştırabilirsiniz: yürütülebilir biçim alfabedir (uzmanlaşması o kadar da zor değil), API kelime bilgisidir (edebiyat okumaya başlayabileceğiniz bir düzeye gelmeniz yıllar alır).

Kaynak
EXE formatı Windows'a özel bir formattır. Linux'un EXE desteği sunmasına gerek yoktur çünkü Linux'un kendi çalıştırılabilir formatları mevcuttur. Mesela AppImage formatı buna örnek verilebilir. AppImage dosyaları sadece Linux ile çalıştırılabilir. Aynı EXE dosyalarının sadece Windows'ta doğal bir şekilde çalıştırılabilmesi gibidir. Sadece Windows'a çıkan yazılım ve oyunları Linux'ta çalıştırmak için de Wine, Proton gibi çözümler mevcuttur. Ayrıca bazı kompleks ve Wine ile çalıştırılması zor olan yazılımların da Linux'ta ücretsiz ve kaliteli alternatifleri mevcuttur.

 
iOS neden APK açmıyorsa aynı sebep :D exe dosyası Windows için.
 
Soru başlıkta arkadaşlar. Neden Linux dağıtımları .exe açamıyor?
Çünkü .exe dosyaları Windows işletim sistemine ait kütüphaneleri barındıran derlenmiş bir çalıştırılabilir uygulama. Bu kütüphanelerin çoğunu Linux içerisinde barındırmıyor. Barındırsa bile yine çalıştıramaz çünkü donanıma erişim yöntemleri (kernel çağrıları) çok farklı.
 
Linux ve Windows yürütülebilir dosyaları farklı biçimler kullanır. Linux çoğu mimaride ELF biçimini kullanırken, Windows PE biçimini kullanır . ELF, Linux'un paylaşılan kitaplıkları yönetme biçimine daha uygundur ve PE, Windows'un paylaşılan kitaplıkları yönetme biçimine daha uygundur, ancak Linux'un PE yürütülebilir dosyalarını veya Windows ELF yürütülebilir dosyalarını yürütememesinin temel bir nedeni yoktur. Aslında Linux , PE yürütülebilir dosyalarını Wine aracılığıyla yürütebilir.

Zorluk, Windows ve Linux'un tamamen farklı API'lere sahip olmasıdır: farklı çekirdek arabirimlerine ve kitaplık kümelerine sahiptirler. Bu nedenle, bir Windows uygulamasını gerçekten çalıştırmak için, Linux'un uygulamanın yaptığı tüm API çağrılarını taklit etmesi gerekir. Bu çok iş. Wine bunu bir dereceye kadar yapıyor, ancak özellikle Windows'un yapımcısı işbirliği yapmadığı için çok zor. Örneğin, ana diliniz Çinceyken İngilizce öğrenmekle karşılaştırabilirsiniz: yürütülebilir biçim alfabedir (uzmanlaşması o kadar da zor değil), API kelime bilgisidir (edebiyat okumaya başlayabileceğiniz bir düzeye gelmeniz yıllar alır).

Kaynak
 
Çözüm
Güzel bir soru. API farklılıkları. Linux işletim sistemleri, Windows'un sahip olduğu API'lere sahip değil. Normal olarak herhangi bir .exe dosyasını çalıştırdığınızda belirli API'lara çağrı yaptıktan sonra Windows çekirdeği tarafından çalıştırılacaktır. Ancak Linux'ta bu API'lar olmadığı gibi Linux başlı başına ayrı bir çekirdek.
 

Geri
Yukarı