Saya tidak bertanya tentang cara membuat exe Windows berfungsi di Linux.
Saya bertanya MENGAPA itu tidak berhasil?
Apa yang berbeda tentang cara Windows menjalankan executable dan Linux menjalankan executable? Mengapa mereka harus berbeda? Selain itu, mengapa linux executable tidak memiliki ekstensi file?
Jawaban:
Executable Linux dan Windows menggunakan format yang berbeda. Linux menggunakan format ELF pada sebagian besar arsitektur, sedangkan Windows menggunakan format PE . ELF lebih cocok dengan cara Linux mengelola perpustakaan bersama, dan PE lebih cocok dengan cara Windows mengelola perpustakaan bersama, tetapi tidak ada alasan mendasar mengapa Linux tidak bisa menjalankan executable PE atau executable Windows ELF. Bahkan Linux dapat mengeksekusi executable PE, melalui Wine .
Kesulitannya adalah bahwa Windows dan Linux memiliki API yang sama sekali berbeda : mereka memiliki antarmuka kernel dan set pustaka yang berbeda. Jadi untuk benar-benar menjalankan aplikasi Windows, Linux perlu meniru semua panggilan API yang dibuat aplikasi. Itu banyak pekerjaan. Wine melakukannya sampai batas tertentu, tetapi sangat sulit, terutama karena pembuat Windows tidak mau bekerja sama. Anda dapat membandingkannya dengan, misalnya, belajar bahasa Inggris ketika bahasa ibu Anda adalah bahasa Cina: format yang dapat dieksekusi adalah alfabet (tidak terlalu sulit untuk dikuasai), API adalah kosakata (butuh bertahun-tahun untuk mencapai tingkat di mana Anda dapat mulai membaca literatur ).
sumber
Binari Windows memiliki ABI yang berbeda dan menggunakan API yang berbeda dari binari Linux.
Binari Linux tidak memerlukan ekstensi karena * nix menggunakan bit izin untuk mengidentifikasi yang bisa dieksekusi daripada ekstensi.
sumber
Ini adalah bagaimana saya mendengar sisi windows dijelaskan dalam istilah awam dari programmer.
Di Windows ada kait dalam program dan OS yang membuat panggilan untuk yang hanya ada di Linux. Karena perbedaan di kedua lingkungan. Awalnya Linux mencari izin, Windows mencari format yang dapat ditautkan terlebih dahulu dengan memeriksa ekstensi, melihat properti kemudian mencari di dalam file Exe dll.
Ada aplikasi seperti Netbackup yang dimulai di linux dan telah dimodifikasi untuk berjalan di lingkungan windows tanpa menggunakan wine IMHO, sering kali itu adalah beberapa aplikasi Windows berperilaku paling stabil.
Saat Aplikasi Windows. menjadi susah diatur biasanya itu karena beberapa kait yang dipegang oleh aplikasi tidak sepenuhnya dirilis dan windows mengira mereka (Memory Leaks). Ketika Windows memberikan ruang memori yang tidak dirilis ke aplikasi lain Crash and burn.
sumber