พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

ทำไม Linux ถึงเล่นไฟล์ .exe ไม่ได้อะครับ

+2 votes
หรือเพราะ Linux run ไฟล์ตระกูลพวกนี้ไม่ได้หรอครับ
ถามเมื่อ May 11, 2012 in ทั่วไป โดย Aniwat Piyasupkij (162 คะแนน)
   

1 Answer

+14 votes

ไม่ได้ครับ EXE เป็น Windows Executable file ส่วนใหญ่จะมีส่วนหัวไฟล์เป็น MZ ตามชื่อของ Mark Zbikowski

หากจำเป็นต้อง run ไฟล์ EXE บน Linux อาจพิจราณาใช้ Wine (Windows Emulator) ครับ แต่ก็อย่าหวังว่ามันจะทำงานได้ครบถ้วนสมบูรณ์

อีทางหนึ่งคือใช้ Virtual Machine ครับ ... ติดตั้ง Windows ลงใน VM guest แล้วก็ใช้งานใน VM

ไฟล์ executable ของ linux นั้นไม่กำหนดนามสกุล แต่จะใช้ file mode +x ครับ แล้วก็จะอ่านจากหัวไฟล์ว่าประมวลผลอย่างไร เช่น ELF (Executable Linux File) ก็ทำงานได้ทันที, #!/bin/bash อันนี้ให้ bash ประมวลผล หรือ #!/usr/bin/python ก็เป็น Python ประมวลผล เป็นต้น

หากผิดพลาดจุดใด รบกวนช่วยแก้ไขด้วยครับ

ตอบเมื่อ May 11, 2012 โดย K. Chaowanawatee (565 คะแนน)
ตอบให้ตรงประเด็นมากขึ้นนะ ... Runtime บน Windows และ Linux นั้นต่างกัน ... ส่วนใหญ่บน Windows จะใช้ msvcrt (Microsoft Visual C Runtime) ในขณะที่บน Linux นั้นจะเป็น libc

นอกจากนั้นก็คือสถาปัตยกรรมของ OS และ Kernel ที่ต่างกัน ทำให้ไม่สามารถโอน native executable file ข้ามระหว่าง OS กันได้ครับ

จะมีก็ไฟล์ในลักษณะ script และ byte code ที่ต้องการ VM เฉพาะ เช่น Java ที่ต้อง run บน JVM ในลักษณะนี้ทาง Java เองเรียกมันว่า WORA (Write Once, Run Anywhere) ... แต่ถึงจะเป็นอย่างนั้น VM ของแต่ละระบบก็ข้ามกันไม่ได้อยู่ดี ยังไงก็ต้อง compile VM สำหรับ OS นั้นๆ ก่อน ซึ่งใน Java นั้น Oracle (แต่ก่อนเป็น Sun Microsystem) เป็นผู้จัดการในจุดนี้

Related questions

0 votes
1 คำตอบ
+1 vote
1 คำตอบ
445 views ถามเมื่อ Jul 17, 2012 in ทั่วไป โดย BiffGq P-Mungsin (103 คะแนน)
+2 votes
1 คำตอบ
...