Çö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

I'm not Batman

Hectopat
Katılım
12 Mayıs 2019
Mesajlar
2.648
Çözümler
27
Yer
Gotham City
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.

 

SypeR

Gigapat
Katılım
6 Ekim 2013
Mesajlar
12.808
Makaleler
43
Çözümler
97
Yer
Sakarya
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ı.
 
KS
KS
Jeytenoamus

Jeytenoamus

Decapat
Katılım
2 Aralık 2020
Mesajlar
2.643
Çözümler
17

Recep Baltaş

Technopat
Yönetici
Katılım
14 Ağustos 2010
Mesajlar
72.689
Makaleler
163
Çözümler
1.535
Yer
İstanbul
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

TheAny

Hectopat
Katılım
18 Aralık 2018
Mesajlar
2.708
Makaleler
6
Çözümler
35
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.
 
Yukarı